Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Mały problem z Pascalem
kajzur
post
Post #1





Grupa: Zarejestrowani
Postów: 385
Pomógł: 26
Dołączył: 22.03.2008
Skąd: TM

Ostrzeżenie: (0%)
-----


Witam, piszę, z nadzieją, że ktoś zna Pascala (IMG:style_emoticons/default/biggrin.gif)

Co tu jest źle? O.o

[PASCAL] pobierz, plaintext
  1. program kalkulator;
  2. uses crt;
  3. var wybor, wynik, liczba1, liczba2:integer;
  4.  
  5. begin
  6. writeln('Wybierz mozliwe dzialanie:');
  7. writeln('1 - Dodawanie.');
  8. writeln('2 - Odejmowanie. ');
  9. writeln('3 - Mnozenie. ');
  10. writeln('4 - Dzielenie. ');
  11.  
  12. readln(wybor);
  13. clrscr;
  14.  
  15. writeln('Wpisz 1 liczbe: ');
  16. readln(liczba1);
  17. writeln('Wpisz 2 liczbe: ');
  18. readln(liczba2);
  19.  
  20. if (integer(wybor) = 1) then
  21. wynik:= liczba1 + liczba2;
  22.  
  23. if (integer(wybor) = 2) then
  24. wynik:= liczba1 - liczba2;
  25.  
  26.  
  27. if (integer(wybor) = 3) then
  28. wynik:= liczba1 * liczba2;
  29.  
  30.  
  31. if (integer(wybor) = 4) then
  32. wynik:= liczba1 / liczba2;
  33.  
  34. repeat until keypressed;
  35. write(wynik);
  36.  
  37. end.
[PASCAL] pobierz, plaintext

Nie idzie go skompilować.. Krzyczy że błąd w linii gdzie jest if co do wartosci wybor = 4 O.o

kalkulator.pas(40,25) Error: Incompatible types: got "Extended" expected "SmallInt"
kalkulator.pas(53,6) Fatal: There were 1 errors compiling module, stopping
kalkulator.pas(0) Fatal: Compilation aborted
Powód edycji: [kwiateusz]: uzywaj poprawnego bbcode
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Fafu
post
Post #2





Grupa: Zarejestrowani
Postów: 243
Pomógł: 33
Dołączył: 30.01.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Hmm może o to chodzi że jak dzielisz to może być reszta a ty dałeś integer (liczba całkowita). Więc albo zaokrąglić albo zmienić typ zmiennej "wynik".
Nie mam pojęcia czy o to chodzi bo pascala słabo znam (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
Spawnm
post
Post #3





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




wywal integer i brak ci end; ów po ifach ale chyba nie są obowiązkowe, ale za to widzę że robisz if() then , zobacz bez tego nawiasu .
http://www.pascal.eu.org/lekcja2.htm#if_then
Go to the top of the page
+Quote Post
magnus
post
Post #4





Grupa: Zarejestrowani
Postów: 99
Pomógł: 15
Dołączył: 15.11.2007
Skąd: Nowogród Bobrz.

Ostrzeżenie: (0%)
-----


Skoro zmienna wybór jest zadeklarowana jako integer to nie ma sensu jej jeszcze raz na integer zamieniać, zresztą to chyba nie tak w pascalu się robi.
Zamiast if-ów zastosuj case ... of.
W pascalu nie trzeba nawiasu po if, ale szkodzić nie będzie. Natomiast jeśli masz dzielenie, to zmienna przechowująca wynik dzielenia musi być zmiennoprzecinkowa (czyli zm. "wynik" musi być typu double czy podobnego). Potem ew. można przy wyświetlaniu sformatować (write(wynik:5:2) - 2 miejsca po przecinku).
Go to the top of the page
+Quote Post
kajzur
post
Post #5





Grupa: Zarejestrowani
Postów: 385
Pomógł: 26
Dołączył: 22.03.2008
Skąd: TM

Ostrzeżenie: (0%)
-----


Dzięki, paca (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 00:21