Kezdőoldal » Számítástechnika » Programozás » Hogyan kell ezt megoldani...

Hogyan kell ezt megoldani lazarusban?

Figyelt kérdés

Számítsuk ki két pozitív szám számtani és mértani közepét!

Nemrég kezdtem el tanulni a programozást (pascal) és van ez a feladat. Kész van, de amikor bekéri a 2 számot, oda bármit be lehet írni, negatívot v nem egész számot is.

És arra vagyok kíváncsi, hogy ezt, hogy kéne megoldani.

Ha valamelyik szám vagy mind2 negatív vagy nem egész akkor írja ki, hogy: hiba, adja meg újra a 2 számot, vagy ilyesmi.


itt az általam megírt program:

program feladat5;

uses crt;

var

psz1,psz2,szk,mk:real;

begin

clrscr;

write('Kerek ket pozitiv egesz szamot: '); readln(psz1,psz2);

szk:=(psz1+psz2)/2;

mk:=sqrt(psz1*psz2);

writeln('Szamtani kozepuk: ',szk:0:2);

writeln('Mertani kozepuk: ',mk:0:2);

repeat until keypressed;

end.



2013. szept. 21. 01:04
 1/2 tabaki ***** válasza:

Hm, ez nem éppen Lazarus, tiszta Free Pascalnak nézem inkább, attól függetlenül, hogy mivel szerkeszted.

Nem teljesen értem a problémádat, már azt, hogy mi a nehézség abban, hogy megvizsgáld, kisebb-e egy szám nullánál.

A felső sorban megfogalmazott feladatban ugyan nincs szó arról, hogy egész számokról volna szó, de ha ez a szíved vágya, azzal ellenőrizheted, hogy a bevitt szám azonos-e az egészre csonkolt értékével.

Mondjuk, mindkettőt beolvastad, utána, ha a helyes értékre vizsgálsz:


if (psz1>=0) and (psz2>=0) and (psz1=int(psz1)) and (psz2=int(psz2)) then

szamolas

else

hibauzenet;


Vagy, ha a hibára vizsgálsz:

if (psz1<0) or (psz2<0) or (psz1<>int(psz1)) or (psz2<>int(psz2)) then

hibauzenet

else

szamolas;


Valahogy így. Elnézést, de nem ellenőriztem, a mondanivalóm sejthető. A 'nem egyenlő' emlékeim szerint felírható psz1!=int(psz1) vagy not(psz1=int(psz1)) formában is, ez a lényegen nem változtat.

2013. szept. 21. 02:19
Hasznos számodra ez a válasz?
 2/2 tabaki ***** válasza:
Ja: Egyébként még korrektebb (bolondbiztosabb) megoldás volna, ha az értékeket stringekbe olvasnád be, és csak utólag alakítanád számértékké val() függvénnyel (némi egyéb elemzéssel körítve). A fenti megoldás csak a helytelen SZÁMértékeket kezeli, de a 'szotyolaárus' vagy 'kékbálna' inputtal nem tud mit kezdeni. Hirtelenjében nem tudnám megmondani, hogy ilyenkor kezeletlen hibára fut vagy 0 értékkel számol, de egyik sem kívánatos.
2013. szept. 21. 02:33
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!