Pola figur w TP

Witam napisałem program w TP obliczający pola figur prostokąta, trójkąta, koła, zastosowanie instrukcji case. Ale jak uruchomię go i wybieram by obliczył Pp oblicza i nie da się cofnąć tylko trzeba od nowa włączyć i podać co obliczyć. Da rady jakoś by już na otwartym można było wszystko obliczać, i czy może coś dodać coś do tego.

Chodzi o to jak zrobić by po obliczeniu jakiegoś pola mozna było inne obliczyć bez włanczania od nowa programu.

program xxx;

uses crt;

var a,b,h,P,r:real;

figura:integer;

begin

clrscr;

writeln('oblicz pole figur');

writeln;

writeln('nacisnij 1 pole prostokata');

writeln;

writeln('nacisnij 2 pole trojkata');

writeln;

writeln('nacisnij 3 pole kola');

writeln;

writeln('podaj typ figury');

readln (figura);

case figura of

1: begin

writeln('pole prostokata');

writeln;

writeln('podaj bok a');

read (a);

writeln;

writeln('podaj bok b');

read (b);

P:=a*b;

writeln('Pp=',P);

writeln;

end;

2: begin

writeln('podaj pole trojkata');

writeln;

writeln('podaj bok a ');

read(a);

writeln;

writeln('podaj wysokosc h');

read(h);

writeln;

P:=(a*h)/2;

writeln('Pt=',P);

end;

3: begin

writeln('podaj pole kola');

writeln;

writeln('podaj bok a');

read(a);

writeln;

writeln('podaj r');

read(r);

P:=3.14*r*r;

writeln;

writeln('Pk=',P:7:2);

end;

else writeln('blad danych');

end;

repeat until keypressed;

end.

Daj wszystko w pętle

oraz zapisz liczby w cudzysłowu przy instrukcji case

program xxx;

uses crt;

var a,b,h,P,r:real;

figura:char; {tutaj zmien}

begin

Repeat {tutaj zmien}

clrscr;

writeln('oblicz pole figur');

writeln;

writeln('nacisnij 1 pole prostokata');

writeln;

writeln('nacisnij 2 pole trojkata');

writeln;

writeln('nacisnij 3 pole kola');

writeln;

writeln('nacisnij Esc aby zakonczyc'); {tutaj zmien}

writeln;

writeln('podaj typ figury');

readln (figura);

case figura of

'1': begin

writeln('pole prostokata');

writeln;

writeln('podaj bok a');

read (a);

writeln;

writeln('podaj bok b');

read (b);

P:=a*b;

writeln('Pp=',P);

writeln;

end;

'2': begin

writeln('podaj pole trojkata');

writeln;

writeln('podaj bok a ');

read(a);

writeln;

writeln('podaj wysokosc h');

read(h);

writeln;

P:=(a*h)/2;

writeln('Pt=',P);

end;

'3': begin

writeln('podaj pole kola');

writeln;

writeln('podaj bok a');

read(a);

writeln;

writeln('podaj r');

read(r);

P:=3.14*r*r;

writeln;

writeln('Pk=',P:7:2);

end;

else writeln('blad danych');

end;

repeat until keypressed;

Until figura = #27 {tutaj zmien}

end.

Dzieki bardzo pomogłeś tylko jak daje Esc nie reaguje i nie wyłancza się i powiedz co to oznacza; Until figura = #27 i dlaczego akurat te #27

#27 to kod ASCII klawisza “Escape”.

Każdy znak ma przyporządkowany kod ASCII. http://we.pb.bialystok.pl/~w.wojtkowski/kody_ascii.htm

Np. Esc na #27 a Enter #13, ale też można zapisać

znak := 'a'

. Typ char przechowuje jeden znak.