Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Mehrere Integer-Werte, welcher ist am größten?
Pyr0cracker - Fr 20.06.03 20:28
Titel: Mehrere Integer-Werte, welcher ist am größten?
Hallo,
gibts eine einfache Idee dies zu bewerkstelligen?
Danke schonmal,
Tweafis - Fr 20.06.03 20:34
falls deine Zahlen alle größer als null sind dann:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| function greatest(nrs: array of integer): integer; var x:integer; begin result := 0; for x:= Low(nrs) to High(nrs) do if nrs[x] > result then result := nrs[x]; end; |
falls doch, dann probier mal result := 0 durch result := Lo(Integer) oder Low(Integer) zu erstetzen ????
Carola82 - Sa 21.06.03 13:43
Titel: Integerwerte sortieren?
Hätte auch ein (vielleicht ein wenig kompliziertes) Prog, aber es läuft :)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65:
| program Sortexcep; {$APPTYPE CONSOLE} uses sysutils; var v_schublade: array[1..10] of integer; v_sort: array[1..10] of integer; i,v,k:integer; c:char; procedure p_fail; begin writeln('Es ist eine Exception aufgetreten '+ 'das Prog wird beendet!'); readln; halt; end; Begin writeln('Die ist ein Prog, das 10 Zahlen sortiert.'); for i:=1 to 10 do begin Writeln('Geben sie bitte die ',i,'. Zahl ein'); try Readln(v_schublade[i]); except on EINOUTERROR do p_fail; end; end; begin writeln('Wollen sie die Zahlen a)ufsteigend oder ab)steigend sortiert haben?'); readln(c); case c of 'a','A': begin writeln('Zahlen aufsteigend sortiert:'); for k:=1 to 10 do begin v:=1; for i:=1 to 10 do begin if v_schublade[k]>v_schublade[i] then v:=v+1 end; v_sort[v]:=v_schublade[k]; end; end; 'b','B': begin writeln('Zahlen absteigend sortiert:'); for k:=1 to 10 do begin v:=1; for i:=1 to 10 do begin if v_schublade[k]<v_schublade[i] then v:=v+1 end; v_sort[v]:=v_schublade[k]; end; end; end; for v:=1 to 10 do begin writeln(v_sort[v]); end; writeln('Druecken sie "Enter" um das Prog zu beenden'); readln; end; end. |
[/delphi]
Wolff68 - So 22.06.03 18:15
@Tweafis:
Um das ganze auch für negative Zahlen zu machen, brauchst Du nur die erste Zuweisung von Result zu ändern:
Erste, (schlechte) Möglichkeit:
Setze den Startwert auf den niedrigsten erlaubten Integer
result := -2147483648Was aber in ein paar Jahren zu Problemen führen kann, falls Integer auf 64-Bit geändert wird.
Zweite, (gute) Möglichkeit:
Fang nicht mit 0 an, sondern mit der ersten Zahl aus dem Array !
Delphi-Quelltext
1:
| result := nrs[Low(nrs)]; |
Danach kannst die For-Schleife natürlich ab
Low(nrs)+1 laufen lassen.
Tweafis - So 22.06.03 18:18
Hmm, stimmt, hab ich nicht dran gedacht.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!