Kezdőoldal » Számítástechnika » Programozás » Lazarusban ez pontosan mit...

Lazarusban ez pontosan mit jelent?

Figyelt kérdés

unit1.pas(40,10) Warning: Function result does not seem to be set


[link]


Ez lenne a program.

Pontosan milyen értéket kellene visszaadnia a függvénynek? Persze tökéletesen fut a program, de zavar ez az egy üzenet.



2017. febr. 23. 20:15
1 2
 11/19 anonim ***** válasza:

Megnéztem a kódodat..


Hajaj.


A str-eket cseréld ki result-ra, a függvény visszatérési értékét meg integer helyett stringre. Valahogy így:


a,b,c : integer;

str : string;


function lehete(x, y, z : integer) : string;

begin

if (x + y >= z) and (x + z >= y) and (y + z >= x) then

result:=('Lehet háromszög')

else

result:=('Nem lehet háromszög');

end;


procedure TForm1.Button1Click(Sender: TObject);

begin

a:=strtoint(edit1.text);

b:=strtoint(edit2.text);

c:=strtoint(edit3.text);

edit4.text:= lehete(a,b,c);

end;

2017. febr. 24. 02:47
Hasznos számodra ez a válasz?
 12/19 tabaki ***** válasza:

@#11:


Hm, nem rossz... érdemes volt törnöd vele magadat...

Álmos lehettél már hajnali három felé.

XD

2017. febr. 24. 07:12
Hasznos számodra ez a válasz?
 13/19 anonim ***** válasza:
Egy olyan függvény, ami egy logikai vizsgálatot elvégezve igaz/hamis helyett valami random magyar szöveget ad vissza már tervezésében olyan szinten szembe megy mindenféle programozási elvvel, hogy az fájdalmas.
2017. febr. 24. 09:21
Hasznos számodra ez a válasz?
 14/19 anonim ***** válasza:

tabaki :


Nem láttam a tiédet, csak az első 2-3 választ olvastam el.

2017. febr. 24. 10:15
Hasznos számodra ez a válasz?
 15/19 SimkoL ***** válasza:

function TForm1.lehete(x, y, z : integer) : string;

begin

Result := 'Nem lehet háromszög';

if (x + y > z) and (x + z > y) and (y + z > x) then Result := 'Lehet háromszög';

end;


procedure TForm1.ertekeloButtonClick(Sender: TObject);

begin

eredmenyEdit.text := lehete(StrToInt(aEdit.Text), StrToInt(bEdit.Text), StrToInt(cEdit.Text));

end;


Nem jó a >= mert =-nél nincs háromszög. A függvénynél nem kell else ág, mert már a Result-nál be állítunk egy visszatéréséri értéket ami az else ágat 'képviseli' és amúgy is illik 'kezdőértéket' állítani.

2017. febr. 24. 14:46
Hasznos számodra ez a válasz?
 16/19 A kérdező kommentje:

SimkoL


Arra gondolsz hogy három megegyező hosszúságú oldalból nem lesz háromszög? És mi van az egyenlő oldalú háromszöggel avagy a szabályos háromszöggel?

2017. febr. 24. 15:28
 17/19 A kérdező kommentje:
Megnéztem a kódot és leesett miről van szó. Hirtelen arra gondoltam hogy három egyforma oldalról van szó. Köszönöm szépen hogy kijavítottál! :)
2017. febr. 24. 15:33
 18/19 SimkoL ***** válasza:
Ált. isk. geometria :)
2017. febr. 24. 15:54
Hasznos számodra ez a válasz?
 19/19 SimkoL ***** válasza:
Nem szerencsés hibakezelés nélkül 'átdobni' az adatokat. Valószínű Lazarus-ben is van NumericUpDown, vagy ha sima edit marad akkor a régi Val eljárás átváltani és akkor saját magad tudsz hibát kezelni ami elegánsabb mint a program által dobott hiba ablak.
2017. febr. 24. 16:00
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, 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!