Csinálni akarok papámnak egy programot ami kiszámolja hány négyzetmétert gyalult meg. Az lenne a lényeg hogy egy deszkának a felszínét kell kiszámolni de a legkisebb oldalt nem kell számolni. Ezt hogy tudom megcsinálni?
Pascalban írom. Jelenleg így néz ki a progi:
program gyalu;
var h,s,v,l,o:real;
begin
write('Hany meter hosszu a deszka? ');
readln(h);
write('Hany meter szeles a deszka? ');
readln(s);
write('Hany meter vastag a deszka? ');
readln(v);
write('A deszka ',2h*2s+2h*2v' m2');
end.
ilyen eddig a progi:
program gyalu;
var h,s,v:real;
begin
write('Hany meter hosszu a deszka? ');
readln(h);
write('Hany meter szeles a deszka? ');
readln(s);
write('Hany meter vastag a deszka? ');
readln(v);
write('A deszka ',2*h*s+2*h*v,' m2');
readln;
end.
iostream xD! továbbírtam :P:
program gyalu;
var hossz,szelesseg,vastagsag:real;
var deszkadb:integer;
begin
write('Hany meter hosszu a deszka? ');
readln(hossz);
write('Hany meter szeles a deszka? ');
readln(szelesseg);
write('Hany meter vastag a deszka? ');
readln(vastagsag);
write('Hany db deszkat gyalultatnak? ');
readln(deszkadb);
writeln('A deszka ',2*hossz*szelesseg*deszkadb+2*hossz*vastagsag*deszkadb:5:5,' m2');
write('A bevetel :',2*hossz*szelesseg*deszkadb*300+2*hossz*vastagsag*deszkadb*300:5:0,'Ft');
readln;
end.
Írtam egy másik programot is. Akit érdekel megnézheti az oldalamon: [link] (ez ugye nem számít reklámnak :O?)
Ha már ennyire tanulni szeretnél:
- ne számold ki kétszer a legyalult felületet, elég egyszer.
- használd a zárójelet
felulet:=2*deszkadb*hossz*(szelesseg+vastagsag)
writeln('A deszka ',felulet:5:5, ' m2');
write('A bevetel :',felulet*300:5:0,'Ft');
Ennél a programnál nem sokat jelent futási időben, de ne alakíts ki már az elején rossz szokásokat. Mindenképp olvashatóbbá teszi a kódot.
A négyzetméterárat pedig érdemes lenne konstansként megadni, ne a kód közepén kelljen változtatni, ha módosul.
Ha tanácsot akarsz kérni, ne az exe-ket tedd fel az oldaladra.
Miközben irkáltatok, én csináltam egy újabb változatot, és de jó, párhuzamos a megjegyzéseitekkel:
A fentieken kívül még szét is tagoltam, hogy a későbbiekben könnyebb legyen bolondbiztossá tenni (például a bevitelből lehetne functiont csinálni, amely nyomban ellenőrzi, hogy értelmes értékeket kapott-e).
A négyzetméterárat eléggé idegesítő lenne minden futtatáskor beírni, de ez kezdőként konzolon nehezen volna kikerülhető. Érdemes lenne valami felületet csinálni hozzá egy erre való gombbal, akár karakteres képernyőn, vagy egy értéket fenntartani a célra. A bevitelt talán amúgyis hasznos lenne stringekre átírni, akkor kezelhető, ha valaki tizedesvesszőt ír be, vagy odaírja, hogy 'centi'. Ekkor meg lehetne azt is csinálni, ha szám helyett valami kulcsszót írsz be, akkor megváltoztasd a négyzetméterárat. Azt meg nem ártana elmenteni, hogy legközelebb is az legyen érvényben...
"A négyzetméterárat eléggé idegesítő lenne minden futtatáskor beírni"
Hát most egy háromjegyű számot begépelni nem nagy fáradtság, hamár úgyis bekér 3 adatot ezen kívül. Plusz a te megoldásodban ugye több deszka adatait meg lehet adni ciklusban, és az árat pedig lehetne a program elején bekérni a ciklus előtt, így csak egyszer kell beírni. :)
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!