Vettori e recordAnalizza e commenta le singole istruzioni seguenti A.x:=(A.y = A.z);Assegna ad A.x il risultato del confronto tra A.y e A.z, x è boolean e y e z sono dello stesso tipo. A.V[3]:=A.V[1]+A.V[2];Assegna a V[3] il valore della somma tra V[1] e V[2], V (vettore) è un campo di A. V[W[i]]:=V[W[i]+1];Assegna alla posizione W[i] di V il valore contenuto alla posizione W[i]+1 di V, W è un vettore di interi. Dichiara (e commenta) un tipo di dato per immagazzinare i compleanni dei tuoi conoscentiConst Namici=30;Type Compleanno=Record Nome: String[15]; Data: String[8]; end; I_compleanni=Array[1..Namici] of Compleanno;i tuoi impegni mensiliConst Nimpegni=100;Type Impegno=Record Descr: String[15]; Data_Ora: String[14]; end; Gli_impegni=Array[1..Nimpegni] of Impegno;oppure Const Ngiorni=31; Nimpegni=12; {in un giorno}Type Impegno=Record Descr: String[15]; Orario: String[5]; end; Gli_impegni=Array[1..Ngiorni, 1..Nimpegni] of Impegno;La data e l'ora potrebbero essere trattati come ADT... Progetta (analisi con esempi, algoritmo risolutivo, interfaccia) e realizza (dichiarazione dei tipi di dato, codifica commentata) un sottoprogramma risolutivo per ognuno dei problemi Dati due vettori di reali determinare a quali posizioni contengono (o meno) gli stessi valori.Const Nmax=10;Type VETT_REAL=Array[1..Nmax] of Real; VETT_BOOL=Array[1..Nmax] of Boolean;{Utilizzo un vettore di Boolean (VR) per immagazzinare le Nmax risposte...} Procedure Confronta(V1, V2: VETT_REAL; Var VR: VETT_BOOL);Var i: Integer;Begin For i:=1 To Nmax Do VR[i]:=(V1[i] = V2[i]);End; Data la sequenza dei risultati di una squadra di calcio (3-2, 2-0, 0-1, ...) si vuole calcolare la differenza reti (2).Const Npartite=34; {campionato a 18 squadre...}Type UNRISULTATO=record GiocatoCon: String[15]; {facoltativo...} GolFatti, GolSubiti: Byte; End; IRISULTATI=Array[1..Npartite] of UNRISULTATO;Function DifferenzaReti(VR: IRISULTATI; Ngiocate: Byte): Integer;Var i, Risp: Integer;Begin Risp:=0; For i:=1 To Ngiocate Do Risp:=Risp+(VR[i].GolFatti-VR[i].GolSubiti); DifferenzaReti:=Risp;End; oppure ... Fatti:=0; Subiti:=0;... Fatti:=Fatti+VR[i].GolFatti; Subiti:=Subiti+VR[i].GolSubiti;...DifferenzaReti:=Fatti-Subiti; |