Oppure

Loading
13/04/17 8:21
zuzzuviu
Buongiorno ragazzi.

Sto ripassando un pò di pascal, ma mi sono inchiodato sul codice del "Capitolo 10° - Gli array monodimensionali" della guida.

A parte la mancanza di apici, ci sta qualcosa che non torna. Molto probabilmente nel blocco while, in particolare l condizione di terminazione.

Potreste gentilmente venirmi incontro?!? Non riesco a far girare l'esempio...

Grazie e complimenti per tutto il vostro impegno.
aaa
14/04/17 18:50
Poggi Marco
Ciao!
Il sorgente
Program Esempio5;
Uses Crt;
Var nome:array[1..40] of string[60];
    i:byte;
    c:char;

begin
    clrscr;
    i:=1;
    while nome[i]<> do
      begin
      writeln(Inserisci il nome numero ,i,:);
      readln(nome[i]);
      i:=i+1;
      end;
    clrscr;
    repeat
    write(Vuoi visualizzare un altro nome? s/n);
    c:=readkey;
    if c=s then
      begin
      write(Inserisci il numero associate a quel nome: );
      readln(i);
      write(Il nome numero ,i, è ,nome[i]);
      readln;
      clrscr;
      end;
    until c=n;
end.
Contiene un errore di logica sui cicli:
La variabile i funziona come indice, deve assumere i valori da 1 fino all'ultimo elemento dell vettore, in modo da memorizzare tutte le proprie celle.
Il programma corretto:
Program Esempio5;
Uses Crt;
Var nome:array[1..40] of string[60];
    i:byte;
    c:char;

begin
    clrscr;
    i:=1;
    while i<=40 do // Esegue il ciclo finché i  e <= a 40
      begin
      writeln('Inserisci il nome numero ',i, ' : ');
      readln(nome[i]);
      i:=i+1;
      end;
    clrscr;
    repeat
    write('Vuoi visualizzare un altro nome? s/n ');
    c:=readkey;
    writeln(c); // Visualizza il carattere inserito 
    if c='s' then 
      begin
      write('Inserisci il numero associate a quel nome: ');
      readln(i);
      write('Il nome numero ',i,' e'' ', nome[i],' ');
      readln;
      clrscr;
      end;
    until c='n';
end.
Ultima modifica effettuata da Poggi Marco 14/04/17 18:52
aaa
27/04/17 7:15
zuzzuviu
Ti ringrazio per la risposta!

Ora i conti tornano :k:
aaa