Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
02/11/11 18:45
ape96
Buonasera a tutti,
Prima di tutto mi volevo complimentare per l'ottimo sito, veramente ben fornito, con tanti argomenti e sopratutto molto chiaro :k:
Considerando che ho da poco iniziato il Pascal a scuola, credo che passerò spesso da queste parti!
Detto questo, continuo ad avere un problema compilando un programma...

program Esempio;
Uses WinCRT;
Var F,P,G,U,O:string;

begin
F:=('Esempio1');
P:=('Esempio2');
G:=('Esempio3');
U:=('Esempio4');

writeln('Inserisci le due lettere');
readln(O);
case 'O' of
'AB':writeln(F);
'CD':writeln(P);
'DE':writeln(G);
'EF':writeln(U);
end;
readln
end.


Io vorrei fare in modo che, dopo che il programma mi chiede "Inserisci le due lettere", io inserisca ad esempio "AB", il programma mi scrivi la stringa F, quindi "Esempio1".

Tuttavia, Dev Pascal continua a darmi errore:

imageshack.us/photo/my-images/341/…


Ringrazio subito chi mi vorrà aiutare :)
Ultima modifica effettuata da ape96 02/11/11 18:47
aaa
02/11/11 19:43
TheKaneB
Devi mettere:

case variabile of
costante1: istruzione1;
costante2: istruzione2;

....


end;

Tu hai messo:
case costante of
ecc... ecc...

'O' è infatti la costante che identifica il codice ASCII della lettera O, mentre avresti dovuto mettere semplicemente

case O of
ecc....

dove O, in questo caso, è la variabile di nome O di tipo string.

Tuttavia, anche dopo questa modifica non funzionerà, perchè il case...of funziona soltanto con costanti intere e costanti di tipo carattere. Non funziona con le stringhe e con i tipi complessi in generale.
In quest'ultimo caso, dovrai usare una catena di if, e in ciascuna istruzione if dovrai controllare una stringa alla volta.
aaa