Unità Insiemi

Analisi … Unità {************************************************************************} Unit Insiemi; {************************************************************************} INTERFACE {************************************************************************} Const MaxIns = 20; Type  Elemento = 1..MaxIns;     Insieme = Array[Elemento] Of Boolean; Procedure AggiungiE    (Var I: Insieme; e: Elemento     ); Procedure TogliE       (Var I: Insieme; e: Elemento     );  Function AppartieneE  (    I: Insieme; e: Elemento … Leggi tutto

Unità Complessi

Analisi … Unità Unit Complex; {—————————————————————-} Interface {—————————————————————-} Type Comp = Record       reale,       immag: Real;     End; Procedure InitC (Var r: Comp; reale, immag: Real); Function RealeC (Var r: Comp): Real; Function ImmagC (Var r: Comp): Real; Procedure RecC (Var r: Comp); Procedure OppC (Var r: Comp); Function … Leggi tutto

Unità Date

Analisi … Unità Unit LeDate; Interface Type    TData = Record        Giorno,        Mese,        Anno: Integer;    End;    DataErrore = Byte; { 0..1 } Procedure DataInit (Var  D: TData; G, M, A: Integer; Var E: DataErrore); Procedure DataSplit(     D: TData; Var G, M, A: … Leggi tutto

Unità Logici

Analisi Elementi: VERO, FALSO Struttura: semplice Dominio: VERO, FALSO Operazioni: Leggi(), Scrivi(), MyAnd(), MyOr(), MyNot(), MyXor() Specifica delle operazioni LEGGI() Interfaccia: Procedure LEGGI(A: LOGICO); Effetti: inserimento del valore logico VERO(1) o FALSO (0) in A Prerequisiti: input controllato di una stringa di tipo ‘Vero’/’Falso’ Esempio: Leggi(A); SCRIVI() Interfaccia: Procedure SCRIVI(A: LOGICO); Effetti: stampa il valore logico associato alla variabile … Leggi tutto

Lista multipla

Una possibile combinazione di lista multipla è la seguente lista primaria (A-B-C): a doppi puntatori con puntatore di testa e puntatore di coda liste secondarie (p, q-r-s, …): semplici con puntatore di testa e puntatore di coda Dichiarazioni Type   tInfoP = “qualsiasi”; {le informazioni nel nodo principale}   tInfoS = “qualsiasi”; {le informazioni nel nodo secondario} … Leggi tutto

Lista bidirezionale

Puntatore di testa, puntatore di coda e tre nodi con puntatori nelle due direzioni Dichiarazioni Type   tInfo   = “qualsiasi”; {le informazioni nel nodo}   pNodoDP = ^NodoDP;   NodoDP  = Record     Info: tInfo;     Succ,                {puntatori nelle due direzioni}     Prec: pNodoDP; … Leggi tutto

Lista circolare

Puntatore di testa e tre nodi con informazioni A-B-C o meglio, con puntatore di coda… Dichiarazioni Type   tInfo = “qualsiasi”;  {le informazioni nel nodo}   … Operazioni Aggiungere un nodo in Testa … Aggiungere un nodo in Coda … Aggiungere un nodo in Ordine …

Lista con testa e coda

Puntatore di testa, puntatore di coda e tre nodi con informazioni A-B-C Dichiarazioni Type tInfo   = “qualsiasi”; {le informazioni nel nodo} pNodoTC = ^NodoTC; NodoTC  = Record Info: tInfo; Succ: pNodoTC; End; ListaTC = Record       {puntatori di testa e di coda} Testa, Coda: pNodoTC; End; Operazioni Aggiungere un nodo in Testa … Leggi tutto

Lista semplice

Puntatore di testa e tre nodi con informazioni A-B-C Dichiarazioni Type   tInfo = “qualsiasi”;  { le informazioni nel nodo }   pNodo = ^Nodo;   Nodo  = Record     Info: tInfo;     Succ: pNodo;    ( puntatore in avanti )   End;   Lista = pNodo;    { puntatore di testa } … Leggi tutto

Insertion sort

Algoritmo alternativo al bubble sort ma più complesso… A ogni passata l’elemento i-esimo viene parcheggiato in X. Gli elementi più grandi, che lo precedono, vengono spostati in avanti di una posizione e X viene posizionato al posto giusto. In questo modo il sottovettore da 1 a i è sicuramente ordinato. Procedure INSERTSORT(var V: Vettore; N: … Leggi tutto