Autor |
Beitrag |
realityking
Hält's aus hier
Beiträge: 12
Windows 2000, Windows XP, Debian 3.1, Mac OS X 10.4
Delphi 7 Personal
|
Verfasst: Di 29.05.07 19:18
Hi,
kann man den folgenden Code iregnwie kürzer/übersichtlicher darstellen?
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| ColorCorrect := 0; Placecorrect := 0; if ValuePin1 = 0 then inc(PlaceCorrect) else if ValuePin1 = 1 then inc(ColorCorrect); if ValuePin2 = 0 then inc(PlaceCorrect) else if ValuePin2 = 1 then inc(ColorCorrect); if ValuePin3 = 0 then inc(PlaceCorrect) else if ValuePin3 = 1 then inc(ColorCorrect); if ValuePin4 = 0 then inc(PlaceCorrect) else if ValuePin4 = 1 then inc(ColorCorrect); |
Danke für eure Hilfe 
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 29.05.07 19:23
Moin!
Wie wäre es mit:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| ColorCorrect := Integer(ValuePin1 = 0) +Integer(ValuePin2 = 0) +Integer(ValuePin3 = 0) +Integer(ValuePin4 = 0); Placecorrect := Integer(ValuePin1 = 1) +Integer(ValuePin2 = 1) +Integer(ValuePin3 = 1) +Integer(ValuePin4 = 1); |
Deutlich einfacher ginge es allerdings mit einem array...
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
realityking 
Hält's aus hier
Beiträge: 12
Windows 2000, Windows XP, Debian 3.1, Mac OS X 10.4
Delphi 7 Personal
|
Verfasst: Di 29.05.07 19:43
Schonmal danke für deine Hilfe
Was macht denn die Funktion Integer()?
Und wo du es andeutest, wie könnte man das denn mit einem array lösen?
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 29.05.07 20:05
Moin!
realityking hat folgendes geschrieben: | Was macht denn die Funktion Integer()? |
Das ist keine Funktion, sondern ein Typecast von Booleanauf Integer, der für TRUE 1und für FALSE 0ergibt.
realityking hat folgendes geschrieben: | Und wo du es andeutest, wie könnte man das denn mit einem array lösen? |
Indem man z.B. diesen Crashkurs liest.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
realityking 
Hält's aus hier
Beiträge: 12
Windows 2000, Windows XP, Debian 3.1, Mac OS X 10.4
Delphi 7 Personal
|
Verfasst: Di 29.05.07 20:14
Danke für deine Hilfe, werde mich damit mal beschäftigen. Rein intressehalber: Welche von den 3 Möglichkeiten ist denn die schnellste/speichersparendste?
|
|
Narses
      

Beiträge: 10183
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 29.05.07 20:20
Moin!
realityking hat folgendes geschrieben: | Danke für deine Hilfe, |
Bitte.
realityking hat folgendes geschrieben: | Rein intressehalber: Welche von den 3 Möglichkeiten ist denn die schnellste/speichersparendste? |
3 Möglichkeiten? Hab doch nur zwei genannt...
Ich interpretiere mal in deine Frage, dass du wissen möchtest, was die effizienteste Lösung wäre  Also, vermutlich lassen sich die zwei Zählervariablen direkt mit den passenden Werten füllen, ohne die 4 Hilfsvariablen (und auch ohne array), also gleich beim Bestimmen des Zustandes der Benutzereingabe.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Di 29.05.07 20:26
Wenn Du nur die Werte 0 und 1 hast, kannst Du auch die zweite Anweisung einfach als 4 - ColorsCorrect; ausdrücken ...
Aber wie gesagt: Kommt halt ganz immer drauf an, wie die Daten im Programm vorliegen und wie die Abläufe dort aussehen ...
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
realityking 
Hält's aus hier
Beiträge: 12
Windows 2000, Windows XP, Debian 3.1, Mac OS X 10.4
Delphi 7 Personal
|
Verfasst: Mo 04.06.07 01:09
Hi,
war mit Array eine Lösung wie folgt gemeint:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| for j := 1 to Pins do begin if ValuePin[j] = 0 then inc(PlaceCorrect) else if ValuePin[j] = 1 then inc(ColorCorrect); end; |
Oder noch was anderes?
|
|