returnera det största av 3 värden i Ada
Hej, jag skriver ett underprogram som ska ta in 3 flyttal och returnera det största av dessa 3 tal.
Fullständig uppräkning är tillåtet och därför använder jag if-satsen.
Det verkar inte spela någon roll vad jag gör men jag får endast tillbaka C värdet vad jag än gör.
edit: antar att jag bara hade kunnat skriva else och sen X:= A också va?
Om du verkligen får tillbaka C även när B är större så ligger felet i Float'Max
Ta bort Float'Floor, med kan du aldrig få tillbaka något av A,B,C annat än om de är heltal (i floatform)
Jag skulle skriva
X := A;
if B > X then X := B;
if C > X then X := C;
return X;
med reservation för syntaxfel - jag är inte ADA-prgoramerare
editfrågan: ja
matsC skrev:Om du verkligen får tillbaka C även när B är större så ligger felet i Float'Max
Ta bort Float'Floor, med kan du aldrig få tillbaka något av A,B,C annat än om de är heltal (i floatform)
Jag skulle skriva
X := A;
if B > X then X := B;
if C > X then X := C;
return X;
med reservation för syntaxfel - jag är inte ADA-prgoramerare
editfrågan: ja
Ok det var tydligen inte så att jag får tillbaka C värdet, utan jag vet inte riktigt vad jag får tillbaka. Ibland får jag minsta värdet och ibland största men aldrig medianen.
Testade att skriva som du sa men det var i princip samma sak i själva programmet.
Om du ger talen 1, 2, 3, vad får du då?
Vad får du för 2,1,3?
Vad får du för 2,3,1?
och de resterande tre möjligheterna.
Laguna skrev:Om du ger talen 1, 2, 3, vad får du då?
Vad får du för 2,1,3?
Vad får du för 2,3,1?
och de resterande tre möjligheterna.
problemet verkar vara B. För på de första 2 fick jag 3 och på sista fick jag 1. När B är största värdet returneras det inte
Laguna skrev:Om du ger talen 1, 2, 3, vad får du då?
Vad får du för 2,1,3?
Vad får du för 2,3,1?
och de resterande tre möjligheterna.
ok jag har ingen aning om vad som hände men nu funkar programmet...