Oppure

Loading
29/03/09 16:21
minicuzzu
Ciao a tutti sono nuovo in questo sito fantastico , ho scritto un programmino con Dev pascal , ma al momento di compilarlo mi da 3 errori , ecco il rpogramma , mi rivolgo a voi esperti a finchè possiate dirmi dove sbagli , grazie a tutti.

Program domande;
uses crt;
var a,b:integer;
parola:string[40];
begin
writeln('seleziona una tra le domanda 1 , 2 o 3');
readln(a);
case a of
1:writeln(' chi ha scritto la Divina commedia ?:');
readln(parola);
if parola='Dante Alighieri' then
writeln('esatto');
else
begin
writeln(' Sbagliato la risposta e" Dante Alighieri ');
2:writeln('quanto fa 1+3 ?:');
readln(b);
if (b=4) then
writeln('esatto')
else
begin
writeln('sbagliato la risposta e" 4');
3:writeln('la capitale della Francia e"?:');
readln(parola);
if parola='Parigi' then
writeln('esatto');
else
begin
writeln('sbagliato la risposta e " Parigi');
end;
end;
end;
readln
end.
aaa
29/03/09 16:50
minicuzzu
vi prego aiutatemi cmq ho risolto due errori , nella variabile a ho messo byte e in b ho lasciato integer quindi ho uno string un integer e un bity
aaa
29/03/09 16:51
minicuzzu
nonoooooooooo non ho risolto niente , vi prego sono confusooooooooo
aaa
29/03/09 16:56
Anonymous
Prima di tutto devi eliminare tutti i punti e virgola che stanno prima degli else...

poi devi racchiudere tra un begin e end tutte le istruzioni che stanno tra un caso e l'altro del case of..

per esempio

case a of
1: begin
//tutto quello che vuoi
end;
2: begin
//di nuovo tutto quello che vuoi
end;
end;

ora correggi questo.. poi se ti da ancora errore dimmelo che do una controllatina più approfondita
aaa
29/03/09 17:08
minicuzzu
Guardo l'ho cambiato in questo modo , ora mi due errori

Program Domande;
uses crt;
var a,b:integer;
parola:string[40];

begin
clrscr;
writeln('seleziona una tra le domanda 1 , 2 o 3');
readln(a);
case a of
1:begin
writeln(' chi ha scritto la divina commedia ?');
readln (parola);
if parola='Dante Alighieri' then
writeln('esatto')
else
begin
writeln(' Sbagliato la risposta e" Dante Alighieri');
end;
end;
2:begin
writeln('quanto fa la somma di uno e tre ?');
readln(b);
if b=(4) then
writeln('esatto')
else
begin
writeln('sbagliato la risposta e 4');
end;
end;
3:begin
writeln('la capitale della Francia e ?');
readln(parola);
if parola='Parigi' then
writeln('esatto')
else
begin
writeln('sbagliato la risposta e " Parigi');
end;
end;
else
begin
a:=>(3);
writeln('non hai scelto nessuna domanda');
end;
readln
end.
aaa
29/03/09 17:10
Anonymous
Postato originariamente da minicuzzu:

begin
a:=>(3);
writeln('non hai scelto nessuna domanda');
end;


quella riga subito dopo il begin non significa niente... è un errore toglilo...

e poi devi aggiungere un altro end alla fine
Ultima modifica effettuata da Anonymous 29/03/09 17:11
aaa
29/03/09 17:11
minicuzzu
ho aggiunto i due punti in if parola:='dante'
aaa
29/03/09 17:14
Anonymous
no... nella condizione if then i due punti non ci vogliono

perché se tu metti := significa che fai una assegnazione, invece il costrutto if then fa una valutazione di una condizione.. e la valutazione va fatta solo con l'=

cmq fa come ti ho detto.. togli quella riga alla fine e agigungi un end
aaa