Pascal számolás hiba?
Informatikából azt a feladatot kaptuk, hogy csináljunk egy programot pascalban ami kiszámolja egy háromszög területét eddig meg is van:
Program hszogk;
uses crt;
Var
a,b,c:integer;
begin
clrscr;
writeln('Add meg az egyik befogót: ');
read(a);
writeln('Add meg a másik befogót: ');
read(b);
writeln('Átfogó mérete: ',sqrt(a*a+b*b):2:2,'cm');
c:=sqrt(a*a+b*b);
writeln('Háromszög kerülete: ',c+a+b:2:2, 'cm');
readkey;
end.
Az átfogó méretét szépen ki is írja 2 tizedes jegyig (addig kell) de definiálni szeretném a c változót- c:=sqrt(a*a+b*b); és utána ki írni, hogy ('Háromszög kerülete',c+a+b:2:2, 'cm'); (ezt is két tizedes jegyik, de valamiért így nem fut a program)
integer helyett próbálkozz double-el :)
Ezt meg:
writeln('Átfogó mérete: ',sqrt(a*a+b*b):2:2,'cm');
c:=sqrt(a*a+b*b);
Könyörgöm, cseréld már le erre: :D
c:=sqrt(a*a+b*b);
writeln('Átfogó mérete: ',c:2:2,'cm');
#3: „Könyörgöm, cseréld, stb.”
No, igen... :)
@X483: „Pedig nekem ki írt sok 0-t mögé + betüket is”
Az, hogy az integer használhatatlan a feladatra, nem jelenti azt, hogy azt a program nem is próbálja meg végrehajtani valami automatikus típuskonverzióval. Mellesleg milyen fordítót használsz? Free Pascalban a programod le sem fordul, éppen a változótípus alkalmatlansága miatt.
„így jó, viszont még mindig nem tudom megoldani.”
Ezt meg nem értem. Helyes eredménnyel lefut a program (az eredeti béna megoldással is), akkor mit akarsz még megoldani rajta? Azt, mondjuk, nem értem, miért korlátozod az egész részt két számjegyre, de kellően kis hosszoknál normálisan működik.
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!