Kezdőoldal » Számítástechnika » Programozás » Free Pascal. Függvénnyell...

Free Pascal. Függvénnyell szeretnék megoldani egy feladatot, aminek az értéke vagy byte, vagy real lesz, amit még előre nem tudok, mert az alprogramban az ifben dől el, hogy melyik tipusu lesz az eredmény?

Figyelt kérdés
Hogy kell deklarálni akkor a függvényt?

2014. ápr. 3. 20:10
 1/3 Tengor ***** válasza:
Fogadj real-t és a függvényen belül vizsgáld, hogy igazi real v. ilyen real, ami akár byte is lehetne!
2014. ápr. 3. 20:27
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:

"az alprogramban az ifben dől el"

Mármint a függvényedben, vagy még a hívás előtt?

Amikor a függvényt meghívod, akkor utána már nem lehet változtatni, egyféle értékkel tér vissza. Ha hívás előtt tudod, hogy milyen típus kell, akkor a függvény-túlterheléssel (overload) lehet játszani.


(Bár a paraméterlistában különbözniük kell a függvényeknek, nem elég, ha csak a visszatérési érték más, ha jól tudom.)

2014. ápr. 4. 11:29
Hasznos számodra ez a válasz?
 3/3 anonim ***** válasza:

Esetleg áthidaló megoldásként olyat tudsz csinálni, hogy a függvény cím szerint vesz át egy real és egy byte paramétert, és a vizsgálat után az egyikbe beírja az eredményt. A visszatérési érték lehet az, hogy melyikkbe rakta, tehát milyen típust ad vissza ilyen módon.

Pl:


Function ByteOrReal(var r : real; var b : byte) : Boolean;

begin

{ha byte kell:}

b := 1;

ByteOrReal := true;

{ha real kell:}

r := 1.0;

ByteOrReal := false;

end;


begin

var bt : byte, re : real;

if ByteOrReal(re,bt) then

{bt-ben van a byte érték}

else

{re-ben van a real érték}

end.


(Nem valódi kód, csak egy váz.)

2014. ápr. 4. 11:43
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!