Niezalogowany (Zaloguj się)
WItaj Gościu! Możesz się teraz zalogować lub poprosić o członkowstwo na Forum Turbo Pascal Web Pag
    • CommentAuthorQd
    • CommentTime31 Oct 2009
     
    Witam! Napisałem program a'la kalkulator i potrzebuje pomocy, gdyż mam jeden problem. Od razu mówię, że to mój pierwszy program i pierwszy mój kontakt z TP. Kod: PROGRAM kalkulator; USES CRT; VAR numer,x:integer; a,b,suma,iloczyn,roznica,iloraz:real; wyb:char; LABEL Menu,Koniec; {----------Procedury----------} PROCEDURE Napisy; Begin ClrScr; write('Podaj a: '); read(a); write('Podaj b: '); GotoXY(10,2); readln(b); End; PROCEDURE KoniecP; Begin Delay(2000); Writeln(' '); Writeln('------------------------'); Writeln('Chcesz kontynuowac dzialanie programu [T/N]?'); read(wyb); End; {----------Koniec Procedur----------} begin Menu: ClrScr; {- funkcja czysci ekran} textcolor(lightgreen); FOR x:=1 TO 80 DO write('-'); {- p©tla} GotoXY(30,1); {- ustawia kursor w 20. wierszu i pierwszej kolumnie} textcolor(yellow); writeln('Witam w programie!'); writeln(' '); writeln('Program ma nam poslozyc jako kalkulator, majac do wodyboru kilka opcji.'); {poniľej wyb˘r opcji kalkulatora} writeln('Wybierz interesujaca Cie opcje:'); writeln(' [1] Dodawanie dwoch liczb.'); writeln(' [2] Odejmowanie dwoch liczb.'); writeln(' [3] Mnozenie dwoch liczb.'); writeln(' [4] Dzielenie dwoch liczb.'); writeln(' [5] Wyjscie z programu.'); writeln(' '); FOR x:=1 TO 35 DO write('-'); writeln(' '); Write('Opcja: '); { Pobieranie liczby odpowiedzialnej za funkcje kalkulatora } readln(numer); IF numer>5 THEN writeln('Bledna opcja. program zakonczy prace z winy uzytkownika :(') ELSE writeln('Wybrales opcje nr ',numer,'.'); Delay(2000); {- Porcedura Delay wstrzymuje program na okreslona wartosc, gdzie 1000=1sekunda} {---------- Procedura CASE ----------} CASE numer OF 1 : Begin Napisy; suma:=a+b; Writeln('Wynik:'); GotoXY(10,3); IF a<0 THEN write('(',a:0:0,')') ELSE Write(a:0:0); Write('+'); IF b<0 THEN write('(',b:0:0,')') ELSE Write(b:0:0); Write('=',suma:0:2); KoniecP; IF (wyb='T') OR (wyb='t') THEN goto Menu; IF (wyb='N') OR (wyb='n') THEN goto Koniec; End; 2: Begin Napisy; roznica:=a-b; Writeln('Wynik:'); GotoXY(20,3); IF a<0 THEN write('(',a:0:0,')') ELSE Write(a:0:0); Write('-'); IF b<0 THEN write('(',b:0:0,')') ELSE Write(b:0:0); Write('=',roznica:0:2); KoniecP; IF (wyb='T') OR (wyb='t') THEN goto Menu; IF (wyb='N') OR (wyb='n') THEN goto Koniec; End; 3: Begin Napisy; iloczyn:=a*b; Writeln('Wynik:'); GotoXY(20,3); IF a<0 THEN write('(',a:0:0,')') ELSE Write(a:0:0); Write('*'); IF b<0 THEN write('(',b:0:0,')') ELSE Write(b:0:0); Write('=',iloczyn:0:2); KoniecP; IF (wyb='T') OR (wyb='t') THEN goto Menu; IF (wyb='N') OR (wyb='n') THEN goto Koniec; End; 4: Begin Napisy; iloraz:=a/b; Writeln('Wynik:'); GotoXY(20,3); IF a<0 THEN write('(',a:0:0,')') ELSE Write(a:0:0); Write('/'); IF b<0 THEN write('(',b:0:0,')') ELSE Write(b:0:0); Write('=',iloraz:0:2); KoniecP; IF (wyb='T') OR (wyb='t') THEN goto Menu; IF (wyb='N') OR (wyb='n') THEN goto Koniec; End; 5: goto Koniec; End; {---------- Koniec CASE ----------} Koniec: ClrScr; textcolor(lightred); FOR x:=1 TO 40 DO write('ŰÜ'); FOR x:=1 TO 23 DO writeln('Ű'); GotoXY(6,10); textcolor(white); Write('Autor:'); GotoXY(15,10); textcolor(green); Write('Qd'); GotoXY(15,11); Write('Praca na zaliczenie.'); GotoXY(6,13); textcolor(white); Write('Wersja:'); GotoXY(15,13); Write('0,4b'); GotoXY(15,20); Write('Nacisnij ENTER, by zakonczyc...'); GotoXY(1,24); textcolor(lightred); FOR x:=1 To 40 DO write('ŰÜ'); textcolor(white); readln; end. Problem jest taki, że wybierając opcję 1-4 i odliczenie danego działania program prosi o wybranie opcji kontnuacji lub wyjścia z programu i wybierając T - Tak jako chęć kontynuacji przechodzi do Menu wyboru, ale wpisując N - Nie nie przechodzi do okna zakończenia. nie mam pomysłu jak to zmodyfikować by działało jak należy. Prosiłbym o pomoc. Pozdrawiam, Qd