Vanilla 1.1.5a jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.
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
Od 1 do 1 z 1