Forum: Mikrocontroller und Digitale Elektronik Verschachtelte Schleife


von Pauli (Gast)


Lesenswert?

Hallo
muss noch mal verschachtetel Schleifen Fragen.
Aufgabe dabei ist es einen Punkt über ein Display zu steuern, wenn x und 
y gleich ist. Dadurch ergibt sich ein Weg von 45 Grad von z.B. oben 
links nach unten rechts ubd wieder von vorn:
1
for (x=16; x<211; x++)
2
    {
3
      for (y=18; y<191; y++)
4
      {
5
    Punkt (x , y);  
6
    }
7
}
Die Zahlen dienen zur Eingrenzung der Grösse
Kann man es so machen:
1
for (x=16; x<211; x++) && (y=18; y<191; y++)
2
  {
3
  Punkt (x , y);  
4
  }
Mit oder Klammern?
LG Pauli

von (prx) A. K. (prx)


Lesenswert?

Pauli schrieb:
> Kann man es so machen:
> for (x=16; x<211; x++) && (y=18; y<191; y++)

Nein.

von Pauli (Gast)


Lesenswert?

Vorschlag?

von g457 (Gast)


Lesenswert?

> Vorschlag?

Neue Sprache oder eine Erweiterung zu einer bestehenden Sprache 
definieren und implementieren, sodann so hernehmen. Oder einfach eine 
existierende welche benutzen und nicht so wie oben hinschreiben.

von Nop (Gast)


Lesenswert?

Pauli schrieb:

> Aufgabe dabei ist es einen Punkt über ein Display zu steuern, wenn x und
> y gleich ist.
1
for (x = 18; x < 191; x++) Punkt(x, x);

von Pauli (Gast)


Lesenswert?

Sieht aus wie der Teil oben von mir. Es soll aber noch eine Erweiterung 
bzw Auswahl geben. Wenn ich x+1 und y+2 angebe erfolgt es mit einem 
anderen Winkel

von Heinz V. (heinz_v)


Lesenswert?


von (prx) A. K. (prx)


Lesenswert?

@Pauli: Salamis machen sich im Essen besser als im Forum.

von donvido (Gast)


Lesenswert?

Wenn du einen anderen Winkel willst, dann so:
1
for (x = 18; x < 191; x++) Punkt(x, x*m+n);

von Pauli (Gast)


Lesenswert?

donvido schrieb:
> Wenn du einen anderen Winkel willst, dann so:
> for (x = 18; x < 191; x++) Punkt(x, x*m+n);

Das sieht schon gut aus. Bleibt allerdings noch das Problem.
Wenn ich x und y gleichzeitig verändern möchte. Dabei sollte y z.B. 
anders gezählt werden. Möchte auch x und y auf Gröse kontrollieren.
Ein Beispiel ist dabei ein Spiel. Wenn der "Ball" eine Wand oder den 
Schläger berührt soll er abgelengt werden.
LG Pauli

von nicht"Gast" (Gast)


Lesenswert?

Pauli schrieb:
> Das sieht schon gut aus. Bleibt allerdings noch das Problem.
> Wenn ich x und y gleichzeitig verändern möchte. Dabei sollte y z.B.
> anders gezählt werden. Möchte auch x und y auf Gröse kontrollieren.
> Ein Beispiel ist dabei ein Spiel. Wenn der "Ball" eine Wand oder den
> Schläger berührt soll er abgelengt werden.
> LG Pauli

Und schon sieht die Sache ganz anders aus.

Da ist es sinnvoller ein einer Dauerschleife einfach dir Koordinaten zu 
ändern und separat die Grenzen abzufangen
1
 // pseudocode
2
3
for ever
4
{
5
   Punkt(x,y);
6
   x+=1;
7
   y+=2;
8
9
   if x Grenze erreicht dann was auch immer
10
   if y Grenze erreicht was anderes
11
}

von Dirk B. (dirkb2)


Lesenswert?

1
 // pseudocode
2
3
for ever
4
{
5
   Punkt(x,y);
6
   x+=dx;
7
   y+=sy;
8
9
   if x Grenze erreicht, dann dx = -dx
10
   if y Grenze erreicht, dann dy = -dy
11
}

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Pauli schrieb:
> Dadurch ergibt sich ein Weg von 45 Grad von z.B. oben links nach unten
> rechts ubd wieder von vorn:
Nicht mit diesem Code. Der gibt ein Rechteck...

Pauli schrieb:
> Wenn der "Ball" eine Wand oder den Schläger berührt soll er abgelengt
> werden.
Abgelängt? Oder abgelenkt?

Du musst bei dieser Aufgabe übrigens auch noch den Durchmesser des Balls 
beachten.

Pauli schrieb:
> Vorschlag?
Einfach mal ein wenig drüber nachdenken...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.