Megoldanátok nekem ezt a feladatot?
Mi a megoldás?
Kérjünk be két számot(szam1, szam2) azaz a derékszögű négyszög két oldalát és állapítsuk meg hogy Négyzet vagy Téglalap, aztán ha Téglalap akkor annak számítjuk ki a Terültét, Kerületét ha pedig Négyzet akkor annak. :) Remélem tudtok segíteni. Pascalban. A Dev-Pascal-t használjuk a suliban. :D
program negyszog;
uses crt;
var
szam1,szam2,ter,ker:byte;
BEGIN
clrscr;
writeln('Kerem a negyszog ket oldalat');
readln(szam1,szam2);
ker:=2*(szam1+szam2);
ter:=szam1*szam2;
if szam1=szam2 then begin
writeln('A negyzet kerulete:',ker, ' cm');
writeln('A negyzet terulete: ',ter,' cm2');
end
else writeln('A teglalap kerulete: ',ker,' cm');
writeln('A teglalap terulete: ',ter,' cm2');
readkey;
END.
program negyszog;
uses crt;
var
szam1,szam2,ter,ker:byte;
BEGIN
clrscr;
writeln('Kerem a negyszog ket oldalat');
readln(szam1,szam2);
ker:=2*(szam1+szam2);
ter:=szam1*szam2;
if szam1=szam2 then begin
ker:=4*szam1;
ter:=sqrt(szam1) // úgyemlékszem hogy az sqrt emel négyzetre, ha nem akkor szam1*szam1, esetleg szam1^2//
writeln('A negyzet kerulete:',ker, ' cm');
writeln('A negyzet terulete: ',ter,' cm2');
end
else
BEGIN //ez kimaradt az előzőből//
ker:=2*(szam1+szam2);
ter:=szam1*szam2;
writeln('A teglalap kerulete: ',ker,' cm');
writeln('A teglalap terulete: ',ter,' cm2');
END; //ezis//
readkey;
END.
De bizony kétszer kiszámolj. nézd csak meg a readln sor utáni 2 sort:
ker:=2*(szam1+szam2);
ter:=szam1*szam2;
Ez kiszámolja, mint téglalap területét. Ezt a 2 sort ki kellene venni. Igazad van, gyorsabb lesz, viszont nagyobb lesz a lefordított program. Hogy mi a jobb, attól függ, mire optimalizálunk:) Ilyen kódnál igazából mindegy. Egyébként nem vagyok benne bitos, hogy a 4-gyel való szorzást a(/mindegyik) pascal fordító shifteléssé alakítja, az a biztos, ha shl 2-t használ az ember.
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!