- Scrivere un programma che memorizzi in un array bidimensionale (a due indici) 4 voti per 10 materie: matematica, italiano, inglese, scienze, storia, ginnastica, fisica, informatica, latino, greco. Successivamente eseguire la media di ogni materia.
- Scrivere un programma che memorizzi 100 numeri casuali compresi fra 0 e 255, creati dal programma e che esegua la somma di tutti. Suggerimento: per sapere come produrre un numero casuale, vedere l'appendice sui numeri casuali.
- Scrivere un programma che memorizzi 20 nomi e successivamente chieda all'utente di immettere un numero X e visualizzi il nome numero X (con 1<X<20).
- Trovare gli errori nel seguente codice sorgente (i numeri indicano le righe):
01 Program Errore; 02 uses crt; 03 var b[1..30]:array of integer; 04 c:string; 05 06 begin 07 clrscr; 08 write('Immettere un numero: '); 09 readln(b[1]); 10 for b[2]:=b[1] to b[1]+28 11 b[b[2]-b[1]+3]:=b[2]; 12 write('Inserire una stringa:') 13 readln(c); 14 b[31]:=c; 15 for i:=30 downto 1 do 16 write(b[i]); 17 readln 18 end.
Le soluzioni a fondo pagina.
Le soluzioni:
riga 03: gli array s dichiarano come <var>:array[<min>..<max>] of <tipo>, e non come è scritto nel programma;
riga 10: il ciclo for porta a considerare una variabile b[31], che è oltre i limiti dell'array;
riga 12: manca ; dopo write;
riga 14: indice oltre i limiti dell'array (da 1 a 30)
riga 14: errore di cast, conversione da stringa a intero.
A cura di: Il Totem