Zeptuz är nöjd med hjälpen
Zeptuz 197
Postad: 29 nov 2022 10:48 Redigerad: 29 nov 2022 11:16

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?

farfarMats 1092
Postad: 29 nov 2022 11:18

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

Zeptuz 197
Postad: 29 nov 2022 11:46
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. 

Laguna Online 28544
Postad: 29 nov 2022 13:45

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.

Zeptuz 197
Postad: 29 nov 2022 13:48 Redigerad: 29 nov 2022 13:48
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

Zeptuz 197
Postad: 29 nov 2022 13:55
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...

Svara Avbryt
Close