const vettLenght = 1000; {Capacita' del tipo-array vett} type vett = array [0..vettLenght-1] of integer; << INSERIRE QUI EVENTUALI ALTRE DEFINIZIONI DI TIPI >> var v1 : vett; v1Size : integer; {Numero di elementi utilizzati nell'array v1} v2 : vett; v2Size : integer; {Numero di elementi utilizzati nell'array v2} << INSERIRE QUI EVENTUALI ALTRE DICHIARAZIONI DI VARIABILI >> { AI: 0 <= vSize <= vettLength-1 AF: v[0..vSize-1] contiene vSize interi letti da terminale } procedure leggiVett (var v:vett; vSize:integer) var i:integer; begin { IC: 0 <= i <= vSize AND v[0..i-1] contiene i interi letti da terminale } for i:=0 to vSize-1 do begin write('Inserisci l'elemento di indice ',i,':'); readln(v[i]); end; end; { AI: 0 <= vSize <= vettLength-1 AND v[0..vSize-1] e' inizializzato AF: gli elementi di v[0..vSize-1] sono stati stampati su terminale } procedure stampaVett (v:vett; vSize:integer) var i:integer; begin { IC: 0 <= i <= vSize AND gli elementi di v[0..i-1] sono stati stampati su terminale } for i:=0 to vSize-1 do begin writeln(v[i]); end; end; << INSERIRE QUI EVENTUALI ALTRE DEFINIZIONI DI procedure O function >> begin{main} repeat begin writeln('Quanti elementi vuoi inserire nell'array (numero >= 0 e', ' <= ',vettLength,')?'); readln(v1Size); end until (0 <= v1Size) and (v1Size <= vettLength); leggiVett(v1,v1Size); writeln('Gli elementi inseriti sono:'); stampaVett(a,aSize); << INSERIRE QUI EVENTUALI ALTRE ISTRUZIONI >> end.
RICHIESTA: usare una procedure:
{ AI: 0 <= vSize <= vettLength-1 AND v[0..vSize-1] e' inizializzato AND s e' inizializzato AF: v[0..vSize-1] contiene gli elementi originari moltiplicati per s } procedure prodPerScalare (var v:vett; vSize:integer; s:integer)
RICHIESTA: usare una procedure:
{ AI: 0 <= v1Size <= vettLength-1 AND v[0..v1Size-1] e' inizializzato AND s e' inizializzato AF: v1Size = v2Size AND v2[0..v1Size-1] contiene gli elementi di v1[0..v1Size-1] moltiplicati per s } procedure prodPerScalare ( v1:vett; v1Size:integer; s:integer; var v2:vett; var v2Size:integer)
RICHIESTA: usare una function:
{ AI: 0 <= size <= vettLength-1 AND v1[0..size-1] e' inizializzato AND v2[0..size-1] e' inizializzato AF: resituisce v1[0]*v2[0] + ... + v1[size-1]*v2[size-1] } function prodScalare (v1,v2:vett; size:integer):integer;