Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[PROBLEM] pascal


Rekomendowane odpowiedzi

Opublikowano

Hej. Chcę, gdy zakończy się procedura to odnosiło by się na początek pliku, w tym przypadku do menu :)

program obw_i_inne;
 uses crt;
 const pi=3.14;
var
 a,h,b,r,P,c:real;
 rownanie:integer;

procedure Quit;
 begin
   Writeln('Wyjście z programu! Naciśnij Enter, aby zakończyć!');
   Readln;
end;

procedure pole_trojkata;
begin
 clrscr;
 writeln('Podaj dlugosc podstawy trojkata: '); read(a);
 writeln('Podaj wysokosc trojkata: '); read(h);
 writeln('Pole wynosi: ',(a*h)/2:1:0);
 writeln;
 readln;
end;

procedure obw_trojkata;
begin
 clrscr;
 writeln('Podaj kolejno wymiary bokow trojkata aby policzyc obwod');
 read(a,b,c);
 write('Obwod trojkata wynosi: ',a+b+c:1:0);
 readln;
end;

procedure pole_kwadratu;
begin
 clrscr;
 writeln('Podaj bok kwadratu: '); read(a);
 write('Pole kwadratu wynosi: ',(a*a):1:0);
 readln;
end;

procedure obw_kwadratu;
begin
 clrscr;
 writeln('Podaj bok kwadratu: '); read(a);
 write('Obwod kwadratu wynosi: ',(a*4):1:0);
 readln;
end;

procedure pole_kola;
begin
 clrscr;
 write('Podaj promien kola: ');
 readln(r);
 P:=r*r*pi;
 writeln;
 writeln('Pole kola wynosi',P:10:3);
 readln;
end;

begin
 writeln('Witaj. Jezeli chcesz zaczac obliczanie wybierz jedna z mozliwosci');
 writeln('1  -  Pole trojkata.');
 writeln('2  -  Obwod trojkata.');
 writeln('3  -  Pole kwadratu.');
 writeln('4  -  Obwod kwadratu.');
 writeln('5  -  Pole kola.');
 writeln;
 writeln('Wpisz 0, aby wyjsc.');
 writeln;
 readln(rownanie);
 if rownanie =1 then
   begin
  pole_trojkata;
   end;
 if rownanie =2 then
   begin
  obw_trojkata;
   end;
 if rownanie =3 then
   begin
  pole_kwadratu;
   end;
 if rownanie =4 then
   begin
  obw_kwadratu;
   end;
 if rownanie =5 then
   begin
  pole_kola;
   end;
 if rownanie =0 then
   begin
  Quit;
   end;
 readln;
end.

Opublikowano

Chodzi Ci o petle np. 'while'. I nie ma to nic wspolnego ze 'skokami' do poczatku pliku.

Tu masz zarys jak to moze wygladac:

 

while (warunek_wykonuj_dopuki_prawda) do

begin

// twoje menu,

end;

 

Warunkiem moze byc cos takiego: rownanie != 0

W Twoim przypadku niepotrzebny bylby wtedy ten fragment kodu

 

if rownanie =0 then
begin
Quit;
end;

 

Btw zamiast takiej konstrukcji if`ow stosuj switch`a

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...