HERBERS Excel-Forum - das Archiv

Thema: Lösung mit Makro | Herbers Excel-Forum

Lösung mit Makro
alifa

Hallo,
100 Lämpchen sind auf einer Leiste, in einer Reihe angeordnet. Jedes Lämpchen hat seinen Schalter.
1. Jemand betätigt alle Schalter(Knopfdruck), der Reihe nach, angefangen von links. Alle 100 leuchten.
2. Jeder zweite Knopf wird betätigt. Jetzt leuchten 2,4,6....98,100 nicht mehr.
3. Jeder dritte Knopf wird betätigt und der Zustand der betreffenden Lämpchen verändert.
Und so weiter 100 Mal. Also anschließend wird jeder 4., dann jeder 5., 6., ....100. Knopf gedrückt. Welche Lämpchen leuchten am Ende dieser Prozedur?
Wie kann man dieses Problem mit einem Makro erfassen? Die Lösung glaube ich zu kennen. Mir geht es, wie gehabt, um das Makro. Kann mir jemand helfen, der vielleicht auch etwas Spaß daran hat?
Gruß, Erhard

AW: Lösung mit Makro
Daniel

Hi
das wäre die BruteForce-Lösung:
Sub LampenProblem()
Dim Lampen(1 To 100) As Boolean
Dim i As Long, x As Long
For i = 1 To 100
For x = i To 100 Step i
Lampen(x) = Not Lampen(x)
Next
Next
Range("A1:A100").Value2 = WorksheetFunction.Transpose(Lampen)
End Sub

mit dem Ergebnis: alle Quadrat-Lämpchen leuchten (1, 4, 9, 16, 25, 36 ...)
Gruß, Daniel
AW: Lösung mit Makro
alifa

Hallo Daniel,
danke für Deine Lösung. Jetzt hätte ich noch die Bitte, mir zu erklären, wie das Programm diese Lösung findet. Einzelne Schritte. Und wie sähe es aus, wenn die MsgBox die 10 Werte ausgibt.
Gruß, E.
Da gibt's gar nichts zu erklären,...
Luc:-?

...Erhard,
das Pgm „findet“ die Lösung nicht, sondern macht genau das, was du eingangs beschrieben hast → es schaltet die Lampen xmal um! Geh einfach mal die Zyklen durch, dann merkst du das auch (im inneren Zyklus wird der jeweilige Wert der Laufvariablen des äußeren als Start und Schrittweite [Step] verwendet). Deshalb schrieb Daniel ja auch Brute Force! Also keine Mathematik — nur Automation... ;-)
Gruß Luc :-?