SwOrDoFmYdEsTiNy
25-11-2010, 19:24
salve a tutti, sto facendo un piccolo programmino in pascal (usando l'applicazione free pascal) che mi permetta di ottenere tutti i numeri della sequenza di fibonacci fino a N (dove N va dato in input); purtroppo però mi trovo con dei problemi su un if che non riesco a risolvere (è un paio d'ore che ci sbatto la testa).
come penso si possa capire sono completamente nuovo a questo linguaggio (usato per uso scolastico):
program sequenza_fibonacci;
uses crt;
Var a,b,c,n : longint;
scelta : byte;
Begin
repeat
clrscr;
Repeat
writeln('inserisci un numero maggiore di zero ');
read(n);
until n > 0;
if n >= 2
then
a :=1;
b :=1;
c := a + b;
writeln(a);
writeln(b);
repeat
writeln(c);
c := a+b;
b := a;
a := c;
until c >=n;
else writeln ('nella sequenza di fibonacci non è possibile usare valori minori di 2, si prega di inserire valori maggiori')
writeln('per terminare inserire il valore 0, per ricominciare inserire un valore qualsiasi ');
readln(scelta);
until scelta = 0;
end.
il compilatore mi da errore alla riga 28 dove cioè è presente l'else e precisamente mi dice: until expected but else found.
però l'until è presente subito prima dell'else e non riesco a capire perchè mi da questo problema!!!
P.s. ma per caso su pascal esistono dei simbolo che permettono di spiegare cosa fa una determinata riga di codice senza che la spiegazione venga presa in considreazione dal compilatore?
grazie mille a chiunque mi saprà aiutare :D
come penso si possa capire sono completamente nuovo a questo linguaggio (usato per uso scolastico):
program sequenza_fibonacci;
uses crt;
Var a,b,c,n : longint;
scelta : byte;
Begin
repeat
clrscr;
Repeat
writeln('inserisci un numero maggiore di zero ');
read(n);
until n > 0;
if n >= 2
then
a :=1;
b :=1;
c := a + b;
writeln(a);
writeln(b);
repeat
writeln(c);
c := a+b;
b := a;
a := c;
until c >=n;
else writeln ('nella sequenza di fibonacci non è possibile usare valori minori di 2, si prega di inserire valori maggiori')
writeln('per terminare inserire il valore 0, per ricominciare inserire un valore qualsiasi ');
readln(scelta);
until scelta = 0;
end.
il compilatore mi da errore alla riga 28 dove cioè è presente l'else e precisamente mi dice: until expected but else found.
però l'until è presente subito prima dell'else e non riesco a capire perchè mi da questo problema!!!
P.s. ma per caso su pascal esistono dei simbolo che permettono di spiegare cosa fa una determinata riga di codice senza che la spiegazione venga presa in considreazione dal compilatore?
grazie mille a chiunque mi saprà aiutare :D