Prosze was o pomoc mialam do napisania program ktory policzy pola i obwody następujących figór trojkat prostokat kolo rownoleglobok
Wypisze wam moje problemy zwiazane z tym programem
NAPIASALAM GO ALE JAK Z KOMPILUJE W TURBO PASCALU
1.TO JAK WYBIORE OPCJE NUMER 2 PODAJE BOK A I B PROSTOKATA A NIE POKAZUJE MI ILE WYNOSI POLE A ILE OBOD
2. TAK SAMO POJAWIA MI SIE W OPCJI 3
3. JAK DAM OPCJE 4 TO WOGÓLE MI NIEDZIAŁA NIE POJAWIA SIE PYTANIE PODAJ BOK ITP..
4. JAK WEJDE NP W OPCJE JEDEN POJAWI MI SIE OBWOD I POLE TO NIE wiem w ktorym miejscu DO KODU DODAC ZEBY PISALO POWROT DO MENU ESC I POKLIKNIECIU ESC ZEBY POWRACAŁO DO MENU
o to kod programu
program pola_i_obwody;
uses crt;
var a,b,c,h,r:integer;
ch:char;
wybor:byte;
PROCEDURE Normalne;
BEGIN
textcolor(black);
textbackground(magenta);
END;
PROCEDURE tlo;
Var i:integer;
BEGIN
textcolor(lightgray);
FOR i:=1 TO 2000 Do write(#1545135);
Normalne
END;
procedure okno(x1,y1,x2,y2:byte;napis:string);
var i:integer;
begin
tlo;
window(x1,y1,x2,y2); clrscr;
write(#46596879);
for i:=1 to x2-x1-2 do write(#46596879);
write(#46596879); writeln;
write(' ',napis,'');
for i:=2 to y2-y1 do begin
gotoxy(1,i);
write(#46596879);
gotoxy(x2-x1,i);
write(#46596879); end;
writeln;write(#46596879); for i:=1 to x2-x1-2 do
write(#46596879);
write(#46596879);
end;
procedure Trojkat;
begin
clrscr;
writeln('podaj a: ');
readln(a);
writeln('podaj b: ');
readln(b);
writeln('podaj c: ');
readln(c);
writeln('podaj h: ');
readln(h);
writeln('pole trojkata wynosi ',(a*h)/2:2:2);
writeln('obwod trojkata wynosi ',a+b+c);
readln;
end;
procedure prostokat;
begin
clrscr;
writeln('podaj bok a: ');
readln(a);
writeln('podaj bok b: ');
readln(b);
writeln('Pole prostokata wynosi: ',(a*b));
writeln('obwod prostokata wynosi: ',2*a+2*b);
end;
procedure rownoleglobok;
begin
clrscr;
writeln('podaj a: ');
readln(a);
writeln('podaj b: ');
readln(b);
writeln('podaj h: ');
readln(h);
writeln('pole r˘wnolegoboku wynosi: ',a*h);
writeln('obw˘d r˘wnolegoboku wynosi: ',2*a+2*b);
end;
procedure kolo;
begin
clrscr;
writeln('podaj promien koa: ');
readln(r);
writeln('pole ko wynosi: ',(3.14*r)*(3.14*r));
writeln('obw˘d koa wynosi: ',2*3.14*r);
readln;
repeat
ch:=readkey;
until ch=chr(27);
end;
function menu:integer;
var ch:char;
begin
window(1,1,80,25);
clrscr;
tlo;
okno(19,5,57,19,' GLOWNE MENU PROGRAMU');
gotoxy(2,4);
writeln(' Wybierz operacje');
gotoxy(2,6);
writeln(' 1:trojkat');
gotoxy(2,8);
writeln(' 2:prostokat');
gotoxy(2,10);
writeln(' 3:rownoleglobok');
gotoxy(2,12);
writeln(' 4:kolo');
gotoxy(2,14);
writeln(' 0:koniec pracy');
repeat ch:=readkey;
until ch in ['0'..'3'];
menu:=ord(ch)-ord('0');
window(6,6,89,35);
clrscr;
end;
begin
normalne;
repeat case menu of
1:trojkat;
2:prostokat;
3:rownoleglobok;
4:kolo;
0:halt(0);
end;
until false;
writeln('powr˘t do menu ESC');
end.
uses crt;
var a,b,c,h,r:integer;
ch:char;
wybor:byte;
PROCEDURE Normalne;
BEGIN
textcolor(black);
textbackground(magenta);
END;
PROCEDURE tlo;
Var i:integer;
BEGIN
textcolor(lightgray);
FOR i:=1 TO 2000 Do write(#1545135);
Normalne
END;
procedure okno(x1,y1,x2,y2:byte;napis:string);
var i:integer;
begin
tlo;
window(x1,y1,x2,y2); clrscr;
write(#46596879);
for i:=1 to x2-x1-2 do write(#46596879);
write(#46596879); writeln;
write(' ',napis,'');
for i:=2 to y2-y1 do begin
gotoxy(1,i);
write(#46596879);
gotoxy(x2-x1,i);
write(#46596879); end;
writeln;write(#46596879); for i:=1 to x2-x1-2 do
write(#46596879);
write(#46596879);
end;
procedure Trojkat;
begin
clrscr;
writeln('podaj a: ');
readln(a);
writeln('podaj b: ');
readln(b);
writeln('podaj c: ');
readln(c);
writeln('podaj h: ');
readln(h);
writeln('pole trojkata wynosi ',(a*h)/2:2:2);
writeln('obwod trojkata wynosi ',a+b+c);
writeln('');
writeln('wcisnij esc by powrocic do menu');
read;
repeat
ch:=readkey;
until ch=chr(27);
end;
procedure prostokat;
begin
clrscr;
writeln('podaj bok a: ');
readln(a);
writeln('podaj bok b: ');
readln(b);
writeln('Pole prostokata wynosi: ',(a*b));
writeln('obwod prostokata wynosi: ',2*a+2*b);
writeln('');
writeln('wcisnij esc by powrocic do menu');
read;
repeat
ch:=readkey;
until ch=chr(27);
end;
procedure rownoleglobok;
begin
clrscr;
writeln('podaj a: ');
readln(a);
writeln('podaj b: ');
readln(b);
writeln('podaj h: ');
readln(h);
writeln('pole r˘wnolegoboku wynosi: ',a*h);
writeln('obw˘d r˘wnolegoboku wynosi: ',2*a+2*b);
writeln('');
writeln('wcisnij esc by powrocic do menu');
read;
repeat
ch:=readkey;
until ch=chr(27);
end;
procedure kolo;
begin
clrscr;
writeln('podaj promien koa: ');
readln(r);
writeln('pole ko wynosi: ',(3.14*r)*(3.14*r):0:4);
writeln('obw˘d koa wynosi: ',2*3.14*r:0:2);
writeln('');
writeln('wcisnij esc by powrocic do menu');
read;
repeat
ch:=readkey;
until ch=chr(27);
end;
function menu:integer;
var ch:char;
begin
window(1,1,80,25);
clrscr;
tlo;
okno(19,5,57,19,' GLOWNE MENU PROGRAMU');
gotoxy(2,4);
writeln(' Wybierz operacje');
gotoxy(2,6);
writeln(' 1:trojkat');
gotoxy(2,8);
writeln(' 2:prostokat');
gotoxy(2,10);
writeln(' 3:rownoleglobok');
gotoxy(2,12);
writeln(' 4:kolo');
gotoxy(2,14);
writeln(' 0:koniec pracy');
repeat ch:=readkey;
until ch in ['0'..'4'];
menu:=ord(ch)-ord('0');
window(6,6,89,35);
clrscr;
end;
begin
normalne;
repeat case menu of
1:trojkat;
2:prostokat;
3:rownoleglobok;
4:kolo;
0:halt(0);
end;
until false;
writeln('powr˘t do menu ESC');
end.
mam nadzieję że o coś takiego chodziło
PS. W kole zastosowalem zaokraglenie w polu do 4 miejsc po przecinku w obwodzie do 2. Bo jak zauwazylem stosowalas liczby naturalne w tym programie;D Oraz nastepnym razem prosze rozdziel troche bardziej procedury bo sie ze soba zlewaja;D
W razie czego pisz na pm to pokaze w ktorych miejscach sa bledy:P Ewentualnie pisz rowniez jesli nie zrozumialem do konca o co Tobie chodzi;)