Oppure

Loading
27/01/12 20:45
mirco95
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 :
Free Pascal Compiler version 1.0.6 [2002/04/23] for i386
Copyright (c) 1993-2002 by Florian Klaempfl
Target OS: Win32 for i386
Compiling c:\docume~1\mirco\desktop\untitl~1.pas
untitl~1.pas(25,3) Fatal: Syntax error, ; expected but identifier WRITELN found



ecco a voi il mio orrore:
(*
   Name:Calcolatore
   Author:Mirco_Rizzo
   Description:Calcolatrice
   Date:27/01/2012 19.37
*)

Program Calcolatore;

Uses
  Crt;

Var
  a,b,c,d:Integer;
  e:String;
Begin

  ClrScr;
  WriteLn('Benvenuto, inserire primo valore');
  ReadLn(a);
  WriteLn('inerisci secondo valore');
  ReadLn(b);
  C:=a+b;
  if c>=45 then ReadLn(e)
  WriteLn('La somma totale fra i due valori e di, ',c);
  d:=c+e
  write(e)
  else
  WriteLn('Essendo un valore maggiore di 45 il numero e stato moltiplicato per 6', d) ;
  Readkey;
End.


Lascio a voi aiutarmi ! Grazie in anticipo
aaa
27/01/12 20:57
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......
27/01/12 21:01
mirco95
Di qualè ReadLn parli? Ho provato a toglierlo sul ReadLn(b) e adesso da questo errore di compilazione:
Free Pascal Compiler version 1.0.6 [2002/04/23] for i386
Copyright (c) 1993-2002 by Florian Klaempfl
Target OS: Win32 for i386
Compiling c:\docume~1\mirco\desktop\untitl~1.pas
untitl~1.pas(23,3) Fatal: Syntax error, ; expected but identifier C found

aaa
27/01/12 21:12
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:
Program Calcolatore;
 
Uses
  Crt;
 
Var
  a,b,c,d:Integer;
  e:String;
Begin
 
  ClrScr;
  WriteLn('Benvenuto, inserire primo valore');
  ReadLn(a);
  WriteLn('inerisci secondo valore');
  ReadLn(b);
  c:=a+b;
  if c>=45 then
  ReadLn(e);
  WriteLn('La somma totale fra i due valori e di, ',c);
  d:=c+e
  write(e)
  else
  WriteLn('Essendo un valore maggiore di 45 il numero e stato moltiplicato per 6', d) ;
  Readkey;
end;
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:
27/01/12 21:14
Hai dimenticato il ; anche nelle righe 26 e 27.........
27/01/12 21:27
Poggi Marco
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...
aaa
27/01/12 22:12
mirco95
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?
aaa
27/01/12 22:25
Poggi Marco
Per valorizzare una variabile, si usa l' operatore di assegnamento < := >.
In questo modo:
a:=24;

Ovviamente a deve essere dichiarata da un tipo compatibile con i numeri.
Ultima modifica effettuata da Poggi Marco 27/01/12 22:26
aaa