Van két egyszerű programom. Papiron megvalositottam h naggyábol hogy kell, de nem jöttem rá teljesen. Feltételezem hogy a két programot egyszerre is lirhatnám. Hogyan lehetséges ez? (progik lent)
program teglalap;
var a,b:integer;
begin
writeln('Kerem a tegalap oldalait: ');
write('a= ');
readln(a);
write('b= ');
readln(b);
writeln('A teglalap kerulete, k= ',2*a+2*b);
writeln('A teglalap terulete: t= ',a*b);
readln;
end.
program negyzet;
var a,k,t:integer;
begin
writeln('Kerem a negyzet oldalanak hosszat: ');
readln(a);
k:=4*a;
t:=a*a;
writeln('A negyzet kerulete: ',k);
writeln('A negyzet terulete: ',t);
readln;
end.
Például:
program egybe;
uses sysutils, strutils;
var parancs:char;
procedure teglalap;
var a, b:integer;
begin
writeln('Kerem a tegalap oldalait: ');
write('a= ');
readln(a);
write('b= ');
readln(b);
writeln('A teglalap kerulete, k= ',2*a+2*b);
writeln('A teglalap terulete: t= ',a*b);
readln;
end;
procedure negyzet;
var a, k, t:integer;
begin
writeln('Kerem a negyzet oldalanak hosszat: ');
readln(a);
k:=4*a;
t:=a*a;
writeln('A negyzet kerulete: ',k);
writeln('A negyzet terulete: ',t);
readln;
end;
begin
writeln('Parancs: ');
readln(parancs);
case parancs of
'T':teglalap;
'N':negyzet;
end;
end.
-------------------
Ha a parancs "T", akkor a téglalapot hívja meg, ha "N", akkor a négyzetet.
A négyzet maga is téglalap, tehát az egész szétválasztás fölösleges. Szerintem valójában egy problémád van: A téglalap két adatot kér, a négyzet meg csak egyet.
A beolvasást amúgy is érdemesebb stringgel intézni, azt meg elemezheted, hogy hány szót kaptál. Ha kettőt, akkor az egyiknek a val() értéke megy A-ba, a másik B-be. Ha csak egyet, akkor csak A-ba, és B:=A. Innentől lehet tökegyforma a számolás, a végén meg IF A=B alapján dönthetsz, hogy a kiíratásnál négyzet vagy téglalap értékeiről beszélsz.
Ez valóban egy prograram :)
program negyzet;
uses Crt;
var a, b : real;
valaszt : char;
beker : string;
hiba : integer;
begin
WriteLn('Negyzet vagy teglalap ( N / T )');
repeat
valaszt := ReadKey;
until valaszt in [ 'n', 'N', 't', 'T' ];
hiba := 1;
while hiba <> 0 do
begin
Write('Kérem az "a" oldalt: ');
ReadLn(beker);
Val(beker, a, hiba);
end;
if UpCase(valaszt)= 'T' then
hiba := 1;
begin
while hiba <> 0 do
begin
Write('Kérem az "b" oldalt: ');
ReadLn(beker);
Val(beker, b, hiba);
end;
end;
if UpCase(valaszt) = 'N' then
begin
WriteLn('A negyzet terulete: ', a * a :10:3);
WriteLn('A negyzet kerülete: ', a * 4 :10:3);
end
else
begin
WriteLn('A teglalap terulete: ', a * b :10:3);
WriteLn('A teglalapl kerülete: ', (a + b) * 2 :10:3);
end;
end.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!