Karel Flashcards

1
Q

Kontrollstrukturen

A
  1. Sequenz
  2. Aufruf zusammengesetzter Befehle
  3. Zählschleife
  4. Fallunterscheidung
  5. Bedingte Schleife
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Sequenz

A

° Befehle werden einfach nach einander entsprechend ihrer geschriebenen Reihenfolge geschrieben

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Zusammengesetzter Befehl

A

° ausgeschachtelten Methode

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Zählschleife

A
repeat (9)
{
     moveForward();   
}
turnAround();

° kann bei variierender Feldgröße problematisch werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Fallunterscheidung (einfach)

A
if ( onBeeper())
{
     pickBeeper();
}
moveForward();
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Fallunterscheidung mit Alternative

A
wakeUp();
if (sunIsShining())
{
     goForWalk();
}
else
{
     stayHome();
}
goToBed();
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Fallunterscheidung - Negation !

A
if (itsRaining())
{
}
else
{
     goForWalk();
}

ist dasselbe wie wenn man if negiert und else weglässt

if (!itsRaining())
{
goForWalk();
}

° else ist nicht immer durch ! ersatzbar:

void pickOrDrop()
{
     if (onBeeper())
     {
         pickBeeper();
     }
     if (!onBeeper())
     {
         dropBeeper();
     }
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Konjunktion &&

A
° onBeeper() && beeperAhead()
  -> Beide Bedingungen müssen gelten
° Bindet außerdem stärker als Disjunktion:
if (onBeeper() || frontIsClear() && beeperAhead())
{
     hooray();
}
moveOnWithLife();
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Disjunktion || (inklusives oder)

A

° onBeeper() || beeperAhead()

-> Mindestens eine der beiden Bedingungen muss gelten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Verschachteltes if

A
if (onBeeper() && beeperAhead())
{
     hooray();
}
moveOnWithLife();

ist dasselber wie ein verschachteltes if

if (onBeeper())
{
     if (beeperAhead())
     {
         hooray();
     }
}
moveOnWithLife();
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Bedingte Schleife

A
voird moveToWall()
{
     while (frontIsClear())
     {
                moveForward();
     }
}

° solange Bedingung erfüllt -> Ausführung von Block
° Bedingung bereits am Anfang falsch -> keine Ausführung des Blocks
° Schleifenbedingung vor jedem Durchlauf geprüft
° Anzahl der Ausführungen unbestimmt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly