Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 31.05.2014, 14:37   #1 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Registriert seit: 10.10.2006
Beiträge: 263
Standard Zahl nach Größe sortieren

Guten Tag,

Ich suche nach einer möglichkeit aus 6 Variablen die 3 Grösten zu finden (Inhalt) nur finde ich keinen Anfang Dafür.
Code:
zahl1 = 15;
zahl2 = 1;
zahl3 = 35;
zahl4 = 0;
zahl5 = 12;
zahl6 = 18;
Nun wollte ich die 3 Grösten rausfiltern die sollte doch über max zu realisieren sein?!

Ergebnis wären dann
zahl3,zahl6,zahl1

Vieleicht könnt ihr mir bei denn Anfang helfen.

Gruß
Nokman
Nokman ist offline   Mit Zitat antworten
Alt 31.05.2014, 15:36   #2 (permalink)
500 Beiträge1000 Beiträge
 
Registriert seit: 05.01.2008
Alter: 26
Beiträge: 1.703
Standard

Code:
max
Ist der richtige Befehl dafür, allerdings musst du dir eine Schleife bauen, die durch alle deine Variablen durchläuft und die miteinander vergleicht. Das ganze müsstest du dir glaub ich bauen. Schau dir mal diesen Artikel an. Da wird die Theorie hinter einem Sortieralgorythmus erklärt.


So müsste deine Schleife funktionieren, nur, dass du nicht sortierst sondern einfach die größte Zahl am Ende weiter benutzt.
JoeJoe87577 ist offline   Mit Zitat antworten
Alt 31.05.2014, 18:06   #3 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von Saint
 
Registriert seit: 04.01.2008
Alter: 44
Beiträge: 306
Standard

Mister Miyagi rät:

1. Auftragen


PHP-Code:
/*
     Array = [2,6,3,7,8,4,1,5];
     _g = [Array,"-_f"] call sortArray.sqf
     Array wird zu [8,7,6,5,4,3,2,1]
    
*/
private ["_a","_b","_c","_j","_k","_d","_e","_f","_g"];
_a _this select 0;
_b _this select 1;
if (
count _a == count _a && _b == _bthen {
_g true;

_count count _a;
_c = [];
_c resize _count;
_j 0;
while 
"_j < _count" do 
{
    
_f _a select _j;
    
_c set [_j,call _b];
    
_j _j 1;
};
_j 0;
while 
"_j < _count -1" do 
{
    
_k _j 1;
    while 
"_k < _count" do
    {
        if (
_c select _j _c select _kthen
        
{
            
_e _c select _j;
            
_c set [_j,(_c select _k)];
            
_c set [_k,_e];
            
            
_d _a select _j;
            
_a set [_j,(_a select _k)];
            
_a set [_k,_d];
        };
        
_k _k 1;
    };
    
_j _j 1;
};
} else
{
    
_g false;
};
_g
2. Polieren

Die Werte aus dem neuen Array kannste mit _this select 0, _this select 1, _this select 2 fischen.

Die Funktion sortArray.sqf ist (glaube ich) von Spinor
__________________
"Um nirgends eine gähnende Leere zu lassen, wollen wir uns vorstellen, daß aller Orten und zu jeder Zeit etwas Wahrnehmbares vorhanden ist. Um nicht Materie oder Elektrizität zu sagen, will ich für dieses Etwas das Wort Substanz brauchen."

Hermann Minkowski
Saint ist offline   Mit Zitat antworten
Alt 01.06.2014, 06:37   #4 (permalink)
500 Beiträge1000 Beiträge
 
Registriert seit: 05.01.2008
Alter: 26
Beiträge: 1.703
Standard

Ist, wenn ich mich nicht verguggt habt, genau der Algorithmus den ich vorgeschlagen hatte
JoeJoe87577 ist offline   Mit Zitat antworten
Alt 01.06.2014, 07:18   #5 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von Saint
 
Registriert seit: 04.01.2008
Alter: 44
Beiträge: 306
Standard

vom Pseudocode zum ArmA Code

Alternativ hätte man auch die Funktionsbibliothek durchstöbern können und wäre vermutlich auf BIS_fnc_sortBy gestoßen.
__________________
"Um nirgends eine gähnende Leere zu lassen, wollen wir uns vorstellen, daß aller Orten und zu jeder Zeit etwas Wahrnehmbares vorhanden ist. Um nicht Materie oder Elektrizität zu sagen, will ich für dieses Etwas das Wort Substanz brauchen."

Hermann Minkowski
Saint ist offline   Mit Zitat antworten
Alt 01.06.2014, 07:38   #6 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Zitat von Nokman Beitrag anzeigen

...
Ergebnis wären dann
zahl3,zahl6,zahl1
...

Das Ergebnis kann nicht sein, dass dir die Variablen angezeigt werden, sondern die drei höchsten Werte. Dazu musst du die Werte zum Sortieren in ein Array einbringen.

werte = [zahl1, zahl2, zahl3, zahl4, zahl5, zahl6];

Das Ergebnis wäre nach dem Sortieren in werte: [35,18, 15, 12, 1, 0]
Vienna ist offline   Mit Zitat antworten
Alt 01.06.2014, 19:21   #7 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Beispiel für eine Sortierfunktion:

Code:
//Funktion Array-Sortieren  
ArraySortieren = 
 {
  private ["_a","_j","_i","_t"];
  _a = _this; 
  for "_j" from count _a -1 to 0 step -1 do
   {  
    for "_i" from 0 to _j do
     { 
      if (_a select _i > _a select (_i+1)) then
       { 
        _t = _a select _i; 
        _a set [_i, _a select (_i+1)]; 
        _a set [_i+1,_t] 
       } 
     } 
   };
  _a
 };
 
//Aufrufbeispiel
MeinArray = [5,24,50,20,5,48,14,0,19,33,10,42,3,9,22];
MeinArray = MeinArray call ArraySortieren;
hintC str MeinArray;
Vienna ist offline   Mit Zitat antworten
Alt 01.06.2014, 19:23   #8 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Buliwyf
 
Registriert seit: 11.03.2005
Ort: HH
Alter: 46
Beiträge: 1.929
Standard

Stumpf ist Trumpf... mehr fällt mir grad nicht ein...
__________________
Buliwyf ist offline   Mit Zitat antworten
Alt 02.06.2014, 18:16   #9 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Registriert seit: 10.10.2006
Beiträge: 263
Standard

Vielen Dank
Auf grund eines Anderen Problems bin ich noch nicht zum testen gekommen aber vom Lesen ist es aufjedenfall gut und werde es auch sobald es geht testen Danke.
Nokman ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Objekt Größe Ausgabe und kollision abfrage Nokman Editing & Scripting 2 14.04.2014 11:49
Inhalt von Munkisten sortieren ?! DaFido Editing & Scripting 0 03.06.2013 01:16
Bild im Ladescreen (Größe? & wie?) Marscl Editing & Scripting 8 08.03.2013 12:59


Kontakt - HX3.de - Archiv - Nach oben

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias



SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116