Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - [Pascal]Errore compilazione
Forum - Pascal - [Pascal]Errore compilazione

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
mirco95 (Normal User)
Newbie


Messaggi: 13
Iscritto: 27/01/2012

Segnala al moderatore
Postato alle 21:45
Venerdì, 27/01/2012
Ciao a tutti allora rispiego il mio problema :
io voglio creare un calcolatore in Pascal, che permettera in primo punto di sommare due numeri.Quindi (a+b che dara c) . Se questa ''c'' e superiore a 45, il numero creato dalla somma di (a+b) dovra essere moltiplicato per 6(c*6). Iniziando il lavoro ho trovato problemi proprio su questa moltiplicazione. Fin quando inserisco i due valori per fare la somma tutto va alla perfezzione, ma non appena voglio creare la stringa per la moltiplicazione mi da un errore di compilazione :
Codice sorgente - presumibilmente Pascal

  1. Free Pascal Compiler version 1.0.6 [2002/04/23] for i386
  2. Copyright (c) 1993-2002 by Florian Klaempfl
  3. Target OS: Win32 for i386
  4. Compiling c:\docume~1\mirco\desktop\untitl~1.pas
  5. untitl~1.pas(25,3) Fatal: Syntax error, ; expected but identifier WRITELN found


ecco a voi il mio orrore:
Codice sorgente - presumibilmente Delphi

  1. (*
  2.    Name:Calcolatore
  3.    Author:Mirco_Rizzo
  4.    Description:Calcolatrice
  5.    Date:27/01/2012 19.37
  6. *)
  7.  
  8. Program Calcolatore;
  9.  
  10. Uses
  11.   Crt;
  12.  
  13. Var
  14.   a,b,c,d:Integer;
  15.   e:String;
  16. Begin
  17.  
  18.   ClrScr;
  19.   WriteLn('Benvenuto, inserire primo valore');
  20.   ReadLn(a);
  21.   WriteLn('inerisci secondo valore');
  22.   ReadLn(b);
  23.   C:=a+b;
  24.   if c>=45 then ReadLn(e)
  25.   WriteLn('La somma totale fra i due valori e di, ',c);
  26.   d:=c+e
  27.   write(e)
  28.   else
  29.   WriteLn('Essendo un valore maggiore di 45 il numero e stato moltiplicato per 6', d) ;
  30.   Readkey;
  31. End.



Lascio a voi aiutarmi ! Grazie in anticipo

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 21:57
Venerdì, 27/01/2012
Congratulazioni! Hai commesso il più stupido degli arrori: omettere il ; dopo ReadLn! Inoltre il compilatore te lo aveva anche detto in modo chiaro! Rimango perplesso......

PM Quote
Avatar
mirco95 (Normal User)
Newbie


Messaggi: 13
Iscritto: 27/01/2012

Segnala al moderatore
Postato alle 22:01
Venerdì, 27/01/2012
Di qualè ReadLn parli? Ho provato a toglierlo sul ReadLn(b) e adesso da questo errore di compilazione:
Codice sorgente - presumibilmente Pascal

  1. Free Pascal Compiler version 1.0.6 [2002/04/23] for i386
  2. Copyright (c) 1993-2002 by Florian Klaempfl
  3. Target OS: Win32 for i386
  4. Compiling c:\docume~1\mirco\desktop\untitl~1.pas
  5. untitl~1.pas(23,3) Fatal: Syntax error, ; expected but identifier C found


PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 22:12
Venerdì, 27/01/2012
Ma uffa! te lo avevo detto nell' altro post, togli quel C (su C:a+b; e metti c:=a+b) poichè come sospettavo il compilatore non è case sensitive e quindi C e c sono due cose ben distinte, inoltre parlo del ReadLn dopo il then, ritocca così il tuo programma:
Codice sorgente - presumibilmente Delphi

  1. Program Calcolatore;
  2.  
  3. Uses
  4.   Crt;
  5.  
  6. Var
  7.   a,b,c,d:Integer;
  8.   e:String;
  9. Begin
  10.  
  11.   ClrScr;
  12.   WriteLn('Benvenuto, inserire primo valore');
  13.   ReadLn(a);
  14.   WriteLn('inerisci secondo valore');
  15.   ReadLn(b);
  16.   c:=a+b;
  17.   if c>=45 then
  18.   ReadLn(e);
  19.   WriteLn('La somma totale fra i due valori e di, ',c);
  20.   d:=c+e
  21.   write(e)
  22.   else
  23.   WriteLn('Essendo un valore maggiore di 45 il numero e stato moltiplicato per 6', d) ;
  24.   Readkey;
  25. end;
  26. End.



Avevi anche dimenticato un end; per favore prima di postare controlla approfonditamente ciò che hai scritto e tieni conto di queste cose:
- Se il compilatore avverte "Syntax Error, ; excepted" allora hai dimenticato un ; e molto probabilmente il compilatore ti avvertirà pure della riga
- I compilatori sono molto spesso case-sensitive, di conseguinza C è diverso da c
- Quando cominci un if ..... then ..... else ..... devi concludere la condizione con end; Ecco tutto :k:

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 22:14
Venerdì, 27/01/2012
Hai dimenticato il ; anche nelle righe 26 e 27.........

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 22:27
Venerdì, 27/01/2012
Testo quotato

Postato originariamente da TheDarkJuster:

Hai dimenticato il ; anche nelle righe 26 e 27.........



Nella riga 26 c' è l' end finale, quindi ci va il punto. Mentre nella 27...

PM Quote
Avatar
mirco95 (Normal User)
Newbie


Messaggi: 13
Iscritto: 27/01/2012

Segnala al moderatore
Postato alle 23:12
Venerdì, 27/01/2012
grazie a tutti. Un ultima cosa come posso dare un numero a una variabile? cioe se voglio che a abbiamo come valore 24 cosa devo scrivere?

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 23:25
Venerdì, 27/01/2012
Per valorizzare una variabile, si usa l' operatore di assegnamento  < := >.
In questo modo:
Codice sorgente - presumibilmente Plain Text

  1. a:=24;


Ovviamente a deve essere dichiarata da un tipo compatibile con i numeri.

Ultima modifica effettuata da Poggi Marco il 27/01/2012 alle 23:26
PM Quote
Avatar
mirco95 (Normal User)
Newbie


Messaggi: 13
Iscritto: 27/01/2012

Segnala al moderatore
Postato alle 23:31
Venerdì, 27/01/2012
  a:=2;
questo va su var o sotto begin?
Grazie mille. Ho soltanto iniziato 2 giorni fa a studiare questo splendido linguaggio

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo