czyli chodzi mi o to żeby po włączeniu programu było menu i były dwie opcję oblicz bok prostokąta i wyjście i po wybraniu 1 program oblicza bok a gdy skończy wraca do menu oto kod:
program bok_prostokata;{Nazwa Programu}
uses crt; {Aktywna Biblioteka}
var
a,b,p:integer;
koniec:boolean;
czar:char;
procedure liczenie;
begin
write('Podaj pierwszy bok ');
readln(a);
write('Podaj drugi bok ');
readln(b);
p:=a*b;
write('Pole prostokata wynosi ',p);
readln;
end;
BEGIN
koniec:=false;
czar:=' ';
repeat
clrscr; {czyszczenie ekranu}
TextColor(6); {Zolto zielony}
TextBackground(8);
writeln('Witaj w programie BOK_Prostokata.');
writeln('Wybierz jedną z opcji:');
writeln('1 - liczenie');
writeln('2 - wyjście');
czar:=readkey;
if czar='1' then liczenie else koniec:=true;
until koniec;
end.
program bok_prostokata;{Nazwa Programu}
uses crt; {Aktywna Biblioteka}
var a,b,p:integer;
w:char;
procedure licz;
begin
clrscr; {czyszczenie ekranu}
TextColor(6); {Zolto zielony}
TextBackground(8);
writeln('Witaj w programie BOK_Prostokata.');
Writeln('Aby zaczac wcisnij ENTER ');
readln;{Oczekoje na wcisniecie ENTERA}
write('Podaj pierwszy bok ');
readln(a);
write('Podaj drugi bok');
readln(b);
p:=a*b;
write('Pole prostokata wynosi ',p);
readkey;
end;
begin
repeat
clrscr;
writeln('Co zamierzasz uczynic ?');
writeln('1 licz pole');
writeln('2 wyjdz');
w:=readkey;
if (w<>'1') or (w<>'2') then
begin
writeln('miales nacisnac 1 albo 2');
readkey;
end
else if w='1' then licz;
until w='2';
end.
Nie ma to jak trochę pomyśleć przed rozpoczęciem roku xD Mało kiedyś robię coś za kogoś ;] Jak coś to pytaj xD
Po sformatowaniu kodu i wyrzuceniu niepotrzebnych rzeczy:
program BokProstokata; {Nazwa Programu}
uses Crt; {Aktywna Biblioteka}
var a, b, Wybor: Integer;
procedure Obliczenia;
begin
Write('Podaj pierwszy bok ');
Readln(a);
Write('Podaj drugi bok ');
Readln(b);
Writeln('Pole prostokata wynosi ', a*b);
Readln;
end;
begin
repeat
ClrScr; {czyszczenie ekranu}
TextColor(6); {Zolto zielony}
Writeln('Witaj w programie Bok Prostokata.');
Writeln;
Writeln('1 - obliczenia, 2 - koniec');
repeat
Write('Twoj wybor: ');
Readln(Wybor);
GotoXY(1, WhereY - 1);
ClrEol;
until Wybor in [1, 2];
if Wybor = 1 then Obliczenia else Exit;
until false;
end.
REPEAT
writeln ('OBLICZANIE PROSTOKĄTA........1');
writeln ('WYJŚCIE............................2');
readln(wybor);
if wybor=1 then obliczenia;
UNTIL wybor=2;
infoR_96 , masz rację. Twoja propozycja jest poprawniejsza i w sumie chyba bardziej zrozumiała. Odpada również wywołanie procedury Exit. W zasadzie to nie wiem teraz, dlaczego wymyśliłem taką konstrukcję pętli
repeat
...
if Wybor = 1 then Obliczenia else Exit;
until false;
choć przecież oczywiste jest zakończenie pętli po spełnieniu warunku Wybor = 2 , tak jak napisałeś. Na swoje usprawiedliwienie mogę powiedzieć, że pomimo tego mój kod działa i jest … nietypowy oraz oryginalny Mała uwaga do Twojego kodu: zmienna Wybor jest typu całkowitego, więc niewłaściwie użyłeś cudzysłowu, zwłaszcza podwójnego, który w ogóle nie występuje w Pascalu. Poprawiony kod wygląda tak
program BokProstokata; {Nazwa Programu}
uses Crt; {Aktywna Biblioteka}
var a, b, Wybor: Integer;
procedure Obliczenia;
begin
Write('Podaj pierwszy bok ');
Readln(a);
Write('Podaj drugi bok ');
Readln(b);
Writeln('Pole prostokata wynosi ', a*b);
Readln;
end;
begin
repeat
ClrScr; {czyszczenie ekranu}
TextColor(6); {Zolto zielony}
Writeln('Witaj w programie Bok Prostokata.');
Writeln;
Writeln('1 - obliczenia, 2 - koniec');
repeat
Write('Twoj wybor: ');
Readln(Wybor);
GotoXY(1, WhereY - 1);
ClrEol;
until Wybor in [1, 2];
if Wybor = 1 then Obliczenia;
until Wybor = 2;
end.