Oppure

Loading
24/06/11 13:01
gigiuz96
Ho da poco cominciato a studiare un po' di Pascal e ho provato a scrivere un programma in cui l'utente, dopo aver inserito il lato di un quadrato, può scegliere se calcolarne il perimetro o l'area. Il problema è che il compilatore segnala alcuni errori che non capisco...Vi posto il codice sperando che qualcuno di più esperto possa aiutarmi. Non escludo la possibilità di errori "mostruosi" nel codice dal momento che ho appena cominciato ad applicarmi in materia! :)

program area_perimetro_quadrato;
var scelta:string[25];
var lato,ar,per:real;
begin
writeln('Questo programma permette di calcolare, a scelta, area o perimetro di un quadrato ');
write('Inserisci il lato del quadrato: ');
readln(lato);
write('Che cosa vuoi calcolare tra area e perimetro? ');
readln(scelta);
if scelta='area' then
begin
ar:=lato*lato
write('Area: ')
writeln(ar:10:3)
write('Programma terminato. Digita INVIO per chiudere... ')
if scelta='perimetro' then
begin
per:=4*lato
write('Perimetro: ')
writeln(per:10:3)
write('Programma terminato. Digita INVIO per chiudere... ')
else
begin
writeln('Opzione scelta non disponibile! Le opzioni disponibili sono: ');
writeln('- perimetro ');
writeln('- area ');
write('Per ritentare, riavvia il programma ');
end;
readln;
end.


Vi riporto anche i messaggi restituiti dal compilatore:

progetto.pas(13,1) Fatal: Syntax error, ";" expected but "identifier WRITE" found
progetto.pas(0) Fatal: Compilation aborted


;)
aaa
24/06/11 13:17
Alex
ti sei dimenticato un sacco di ";"..
mancano a riga 12,13,14,15,da 18 a 20..


inoltre ti sei anche dimenticato gli end dei primi due if...
Ultima modifica effettuata da Alex 24/06/11 13:18
aaa
05/07/11 8:24
lollo 97
Mettendo qualche punto e virgola qua e la ecco il programma come dovrebbe venire...
p.s. Ricordati sempre di commentare il codice!!:heehee:

            program area_perimetro_quadrato;
    var scelta:string[10];//tanto le lettere di 'perimetro' sono 9...
    var lato,ar,per:real;
    begin
    writeln('Questo programma permette di calcolare, a scelta, area o perimetro di un quadrato ');
    write('Inserisci il lato del quadrato: ');
    readln(lato);
    write('Che cosa vuoi calcolare tra area e perimetro? ');
    readln(scelta);
    if scelta='area' then
    begin
    ar:=lato*lato;
    write('Area: ');
    writeln(ar:10:3);
    write('Programma terminato. Digita INVIO per chiudere... ');
    end;
    if scelta='perimetro' then
    begin
    per:=4*lato;
    write('Perimetro: ');
    writeln(per:10:3);
    write('Programma terminato. Digita INVIO per chiudere... ');
    end
     else
     begin
     writeln('Opzione scelta non disponibile! Le opzioni disponibili sono: ');
     writeln('- perimetro ');
     writeln('- area ');
     write('Per ritentare, riavvia il programma ');
     end;
    readln;
    end.
Ultima modifica effettuata da lollo 97 05/07/11 8:26
aaa
05/07/11 9:05
Lafa_96
giusto qualche piccolo consiglio: quando fai la scelta tra area e perimetro, anzichè usare una stringa per il controllo, usa solo un carattere e magari usa il metodo "readkey" della libreria crt in modo da non dover scrivere tutta la parola e poi premere invio. altra cosa, anzichè usare 2 if, usane uno solo e al posto del secondo metti un elseif! ancora un consiglio, al posto di 2 variabili reali, una per il perimetro e una per l'area usane solo una, perchè tanto il programma esegue solo un calcolo per volta! credo di aver finito :rotfl:
Ultima modifica effettuata da Lafa_96 05/07/11 9:08
aaa