Prosty program w Pascal'u - Konsola wyłącza się

0

Z góry przepraszam, jeśli był owy temat; przeszukałem wszystkie fora o tym, próbowałem wszystkich możliwych operacji, lecz nic nie pomogło więc zwracam się z tą prośbą do Was - społeczności tego forum ;)

Tak przy okazji... Witam Was! Jestem nowiutki na tym forum, jak i zaczynam przygodę z programowaniem. Umiem html, css, lecz biorę się za programowanie. Obecnie uczę się pascala, po to aby wpoić sobie dobre nawyki i zrozumieć algorytmy; potem delphi, c++ java, c# itepe, itede ;). Mam 14 lat ; D

Wracając do tematu: Mój problem polega na tym, iż po skompilowaniu programu (program wyszukuje największą liczbę z trzech podanych liczb), uruchamiam go, wpisuje trzy liczby, "ENTER", pojawia się wynik, aczkolwiek owego rozwiązania nie widać, po prostu znika i ludzkie oko nie jest w stanie tego ujrzeć ; ] (Chodzi mi głównie, aby aplikacja, po podaniu wyniku czekała aby użytkownik nacisnął, dajmy to "ENTER")

Próbowałem z readln;, readkey; readpassed; (dokładnie nie pamiętam...) i nie działa, po prostu program nie chce się skompilować. Niżej podam program.

A tak a propoS... Czy polecacie mi kompilator "Geany" ? Jeśli nie, to serdecznie proszę o podanie mi nazwy polecanego przez was oprogramowanie oczywiście pod MS Windows (7). Używałem Free Pascal IDE, lecz błąd był taki sam, jedynie co to po wciśnięciu "ALT+F5" można było odczytać ostatnie okno konsoli...

program Najw;
uses CRT;
var 
 a,b,c: integer;

BEGIN
clrscr;
writeln('Podaj trzy liczby');
read(a,b,c);
writeln('Najwieksza liczba to');


 if a > b then
  if a > c then
   writeln(a)
 else
  writeln(c)
 else
  if b > c then
   writeln(b)
  else
  writeln(c)
END.          

 

Jeśli macie jakieś uwagi co do kodu, przydatne dla młodego programisty, bardzo prosze a łaskawości swojej miłosiernej, o dobre rady ;))

Dziękuję i pozdrawiam

  • Kostisx
1

Najprościej napisaćReadln; w miejscu gdzie ma poczekać na wciśnięcie ENTERa.

Możesz też tak:
repeat until keypressed
I wtedy program będzie oczekiwać na wciśnięcie jakiegokolwiek klawisza.

0
WiecznyWem napisał(a)

Najprościej napisaćReadln; w miejscu gdzie ma poczekać na wciśnięcie ENTERa.

Możesz też tak:
repeat until keypressed
I wtedy program będzie oczekiwać na wciśnięcie jakiegokolwiek klawisza.

Tak... kiedy próbuję "repeat until keypressed;" napisać tuż przed "Endem." to wywala błąd kompilacji, jeśli napiszę to samo po "writeln('Najwieksza liczba to');" wtedy kompiluje się, lecz: wpiszę trzy liczby, "ENTER", pokazuje się "Największa liczba to", potem znów "ENTER", pokazuje się wynik, ale zaraz znika okno... :/
Może jeszcze jakieś inne propozycje ? ; (

0

A nie zapomniałeś czasem średnika po writeln(c)?
http://ideone.com/RYLDV

0
WiecznyWem napisał(a)

A nie zapomniałeś czasem średnika po writeln(c)?
http://ideone.com/RYLDV

Dziękuję bardzo! :)
Znów konsola się wyłączała(po dodaniu średnika i readln; przed ENDem), lecz napisałem jeszcze jeden readln; i wszystko ładnie działa ;)
Dziękuje.

0

To jeszcze spróbuj napisać ten program tak, żeby na końcu wystarczył jeden Readln.
Jeżeli nie wiesz, jak to zrobić, to poczytaj tu: http://pl.wikibooks.org/wiki/Object_Pascal/Instrukcje_wej%C5%9Bcia_i_wyj%C5%9Bcia.

Ostatnie zdanie tego artykułu powinno wiele wyjaśnić.

0

repeat until keypressed

złyyy pomysł, bo zajmie 100% procesora (no, 100% jednego rdzenia w dzisiejszych cpu) tylko na czekanie na klawisz.

0

Dziękuję wszystkim bardzo za pomoc ;)
Kod ładnie skompilowany ;)
Lecę uczyć się dalej Pascala ^^

1 użytkowników online, w tym zalogowanych: 0, gości: 1