
bruno.demarini (Normal User)
Pro
    
Messaggi: 84
Iscritto: 22/03/2010
|
Ciao ragazzi, sto imparando quindi ho copiato questo programma dal mio libro sul Pascal. Solo che c'è un problema: alla fine, quando chiede se si vuole proseguire, nonostante io inserisca S o s, il programma finisce, non ricomincia il ciclo repeat..until
Il codice è questo:
Codice sorgente - presumibilmente Delphi |
uses wincrt; const max = 50; var a : array[1..max] of string[25]; i,n : integer; x : string; segnala : boolean; continua : char; begin repeat clrscr; writeln('quanti nominativi vuoi introdurre? (N <= ',max,')'); readln(n); until (n <= max); for i := 1 to n do begin writeln('introduci il nominativo di posto ',i); readln(a[i]); end; repeat writeln('quale nominativo vuoi cercare?'); readln(x); segnala := true; i := 1; while (i <= n) and segnala do begin if a[i] = x then segnala := false; i := i + 1; end; if segnala then writeln(x,' non si trova nell''elenco dato') else writeln(x,' si trova al posto ',i - 1); writeln('vuoi continuare la ricerca?'); writeln('(digita S per proseguire, un altro tasto per terminare)'); readln(continua) until (continua <> 'S') or (continua <> 's'); end.
|
Grazie.
P.S: Utilizzo Turbo Pascal per Windows.
Ultima modifica effettuata da bruno.demarini il 23/08/2010 alle 19:14 |
|

a_butta (Member)
Expert
    
Messaggi: 578
Iscritto: 16/03/2010
|
potresti anche usare in maniera più elegante secondo me un
Codice sorgente - presumibilmente Pascal |
until uppercase(continua)<>'S';
|
|
|

bruno.demarini (Normal User)
Pro
    
Messaggi: 84
Iscritto: 22/03/2010
|
Postato originariamente da a_butta:
potresti anche usare in maniera più elegante secondo me un
Codice sorgente - presumibilmente Pascal |
until uppercase(continua)<>'S';
|
|
Hai ragione. D'ora in poi farò sempre così;
grazie mille, ciao |
|

bruno.demarini (Normal User)
Pro
    
Messaggi: 84
Iscritto: 22/03/2010
|
Ho risolto da solo. In pratica avevo sbagliato la condizione, che doveva essere
until (continua <> 's') and (continua <> 'S')
Lasciando OR, una delle due condizioni risultava sempre vera e quindi il ciclo finiva.
Grazie lo stesso, ciao
|
|