Entwickler-Ecke

Algorithmen, Optimierung und Assembler - variablen vergleichen


Abu36 - Fr 17.03.06 17:10
Titel: variablen vergleichen
hi, hab ein kleines problem. und zwar hab ich 27 variablen (ging nicht mit wenigeren). die variablen lesen immer bestimmte sachen im programm ein (zahlen). bei richtiger eingabe der zahlen müssen dann alle variablen den selben integerwert haben. jedoch, falls was falsch eingegeben wurde, sind natürlich einige variablen mit anderen werten.

nun sollen also alle variablen mit einander verglichen werden. alse variable eins müsste mit 26 anderen variablen verglichen werden. das bei jeder, dann hätte man 26 mal 27, das ist zu viel. wie kann ich denn das in eine schleife machen oder mit if-entscheidungen.

wenn wirklich alle variablen den selben wert haben, soll es noch in einem edit-fenster ausgegeben werden. also da soll dann 'richtig' drin stehen, oder halt falsch, wenn sie nicht übereinstimmen.

ich hoffe ihr könnt mir weiterhelfen. danke


Moderiert von user profile iconChristian S.: Topic aus VCL (Visual Component Library) verschoben am Fr 17.03.2006 um 16:20


Christian S. - Fr 17.03.06 17:20

Wenn ich das richtig sehe, musst Du nur jede Variable mit der ersten vergleichen. Wenn alle gleich sind, müssen auch alle gleich der Ersten sein.

Kannst Du die Variablen in ein Array verpacken?


Abu36 - Fr 17.03.06 18:48

du hast recht christian, aber wie soll ich das schreiben, z.b. mit 'if' usw. :?: :?: :?:


Christian S. - Fr 17.03.06 19:13

Naja, wenn Du die Variablen in einem Array hättest, kämst Du mit einer if-Abfrage in einer Schleife aus. Wenn Du wirklich so viele einzelne Variablen hast, sehe ich im Moment keine wirklich elegante Lösung :gruebel:


Abu36 - Fr 17.03.06 19:32

wie könnte ich dies denn ins array schreiben?


Christian S. - Fr 17.03.06 19:38

Wie man mit Arrays arbeitet, kannst Du Dir z.B. hier [http://www.christian-stelzmann.de/artikel/crashkurs.htm#arrays] angucken. Die Delphi-Hilfe sollte auch helfen.


GTA-Place - Fr 17.03.06 19:39


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
var
  MyArray: Array[1..27of Integer;

[...]

begin
  MyArray[1] := 100;
  MyArray[2] := 345;

[...]

  for X := 1 to 27 do
    if not (MyArray[X] = MyArray[1]) then
      ShowMessage('Net alle gleich!');
end;


Christian S. - Fr 17.03.06 19:41

Deklaration mit Doppelpunkt, Zuweisung mit ":=" und der Vergleich sollte ein "<>" sein ;-)


Abu36 - Fr 17.03.06 20:40

danke, jetzt funktionierts einwandfrei.

eine fragen noch:
was bedeutet es, wenn eine variable nicht initialisiert ist?


GTA-Place - Fr 17.03.06 21:29

(Neue Frage, neuer Thread. Danke.)


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var
  X, Y: Integer;
begin
  X := 1 + X;  // X nicht initialisiert -> X = nichts;

  Y := 10;
  Y := 1 + Y;  // Y initialisiert -> Y = 10;
end;


Marc. - Fr 17.03.06 21:37

das stimmt aber so nicht!
X wäre in deinem beispiel nicht "nichts", sondern hätte den wert 4358324 ;)