PDA

Visualizza la versione completa : [PASCAL] errore con " end; "


Ricky_13
08-01-2009, 14:05
Salve a tutti ecco il mio problema:
tutte le volte che scrivo un programma (in Turbo Pascal 7) che abbia nel codice end con il punto e virgola il compilatore mi dice: error 94 = "." expected come mai?????? qualcuno mi sa aiutare??? se volete posso scrivervi anche il codice del programmino!
grazie in anticipo!

LeleFT
08-01-2009, 14:10
E' chiaro che devi postare il codice per avere maggiori informazioni.

Ad ogni modo, in Pascal, il programma termina con End. (con il punto!).

End; si usa alla fine delle procedure e delle funzioni.


Ciao. :ciauz:

oregon
08-01-2009, 14:10
http://it.wikipedia.org/wiki/Pascal_(linguaggio)

Ricky_13
08-01-2009, 14:20
ok giusto..!
il codice è questo:



PROGRAM potenza;
USES crt;
VAR a, b, c, i : INTEGER;
begin
writeln(' Inserisci un numero ');
readln(a);
writeln(' Inserisci esponente ');
readln(b);
FOR i := 1 TO b DO
c:=a*a; {qui ho bisogno di un altro aiuto: come faccio a elevare a potenza? quale è il tasto?}
end; { eccco qui il problema! }
writeln(' il risultato è' ,c);
readln;
end.


chiedo scusa ma non ho capito come settare il codice affinche nella mia risposta venga la finestrella bianca con il codice dentro!

LeleFT
08-01-2009, 14:25
Originariamente inviato da Ricky_13
chiedo scusa ma non ho capito come settare il codice affinche nella mia risposta venga la finestrella bianca con il codice dentro!
Basta postarlo all'interno dei tag
e

(puoi anche cliccare sul pulsante # che trovi fra i tasti IMG e PHP, quando componi il messaggio)


Ho modificato io il tuo post così da aggiungere i tag...


Ciao. :ciauz:

Ricky_13
08-01-2009, 14:29
ok grazie mille ho capito perfettamente!



begin
writeln(' GRAZIE MILLE!!! ');
readln;
end

LeleFT
08-01-2009, 14:29
Ad ogni modo l'errore ti viene sollevato perchè dopo l'elevamento a potenza hai un'istruzione end; di troppo: non hai aperto il blocco con un begin (all'interno del FOR), quindi non puoi chiudere con l'end;.

O apri un begin dopo l'istruzione FOR oppure togli l'istruzione end; (lo puoi fare perchè hai una sola istruzione all'interno del ciclo FOR, se ne avessi più d'una dovresti aprire un blocco con begin).

Codice:


FOR i := 1 TO b DO
c:=a*a; {qui ho bisogno di un altro aiuto: come faccio a elevare a potenza? quale è il tasto?}
end; { <-- togli questa istruzione }


oppure



FOR i := 1 TO b DO
begin { <-- aggiungi questa istruzione }
c:=a*a; {qui ho bisogno di un altro aiuto: come faccio a elevare a potenza? quale è il tasto?}
end;


Ciao. :ciauz:

Ricky_13
08-01-2009, 14:32
AH.. grazie mille stasera quando torno provo e ti faccio sapere!

Ricky_13
08-01-2009, 21:05
ciao.. sono tornato
ora il programma parte ma non fa ciò che desideravo ovvero non ripete l'istruzione

c:=a*a;
cioè parte, calcola, ma poi tutto ciò che posso fare non è nient'altro che premere invio e così facendo si chiude la finestra..
quindi ho ancora due domande: come faccio a fargli ripetere l'istruzione che gli ho detto?
e come faccio a fargli elevare a potenza un numero.. ovvero (detto meglio) quale è il tasto per elevare a potenza? (io ho provato con a^b ma me lo da errore...error 121 := invalid qualifier)

DragonOfLight
08-01-2009, 21:29
Puoi elevare a poternza utilizzando tranquillamente il FOR. :D



FOR i := 1 TO b DO
begin
c:=a*a;
end;

Questo codice qualsiasi sia il valore di b restituirà sempre e comunque il risultato di A*A.

Per ottenere l'elevamento a potenza devi utilizzare il codice in questo modo:
[code]
c:=1;
FOR i := 1 TO b DO
begin
c:=c*a;
end;
[code]

Esemplificando
dato a=2 e dato b=3

i=1 --> c=c*A (prima dell'istruzione c vale 1, dopo vale 1*2 quindi 2)
i=2 --> c=c*A (prima dell'istruzione c vale 1*2, dopo vale 2*2 quindi 4)
i=3 --> c=c*A (prima dell'istruzione c vale c vale 4 , dopo vale 4*2 quindi 8)

Loading