Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
--- Theoretische Informatik (http://www.informatikerboard.de/board/board.php?boardid=5)
---- Berechenbarkeits- und Komplexitätstheorie (http://www.informatikerboard.de/board/board.php?boardid=15)
----- Darstellung von LOOP Programmen (http://www.informatikerboard.de/board/thread.php?threadid=1739)
Geschrieben von yuro123 am 10.12.2013 um 17:16:
Darstellung von LOOP Programmen
Hallo erstmal,
Folgende Aufgabe wird gestellt:
LOOP Programme sollen dargestellt werden. Folgende L-Makros sind gegeben:
| Zitat: |
Bsp 1:
a)if xi > 0 then A end
Lösung:
y := 0;
loop xi do y := 1 end;
loop y do A end
|
| Zitat: |
Bsp 2:
b)xi := xj •- xk
Lösung:
xi := xj ;
loop xk do xi := xi •- 1 end
•- (punkt steht über dem Strich.. modifiziert)
|
Die Frage ist wie finde ich den Lösungsweg?
Geschrieben von Karlito am 13.12.2013 um 10:57:
Hallo,
ich kann die Frage nur so beantworten: Die Beispiele verstehen und versuchen ähnliche Strategien für andere Aufgaben anzuwenden. Es braucht ein wenig Training und vlt auch Erfahrung, aber irgendwann sieht man den Weg.
VG,
Karlito
Geschrieben von yuro123 am 13.12.2013 um 19:16:
Ok also gibt es keine genaue Vorgehensweise? Wie man das z.B. erklären könnte.
Also mir ist klar das erst gefragt wird
wenn xi größer 0 ist soll A ausgeführt werden.
für y wird für 0 definiert.
die loop schleife geht xi durch und führt y aus.
warum wird am ende nochmal eine loop schleife für das y genutzt?
Edit:
Oder ist das so gemeint:
Die Loop Schleife geht das xi größer y solange durch bis die IF Abfrage nicht mehr gültig ist. Ist das der Fall wird then A ausgeführt also in dem Fall die zweite Loop Schleife loop y do A end?
(also zum ersten Bsp)
Geschrieben von as_string am 13.12.2013 um 20:31:
Hallo,
Dein "edit" verstehe ich leider nicht wirklich...
Beim ersten Beispiel ist das so gemeint:
y wird auf 0 gesetzt. Allerdings wird darauf so häufig y eine 1 zugewiesen, wie xi angibt. Wenn also xi 5 ist, dann wird fünf mal y gleich 1 gesetzt. Dann ist es natürlich auch gleich eins. Wenn xi 3 ist, dann wird dreimal 1 y zugewiesen, also ist y wieder 1. Wenn xi 0 ist, was ist dann y nach der ersten LOOP Anweisung?
Die zweite führt dann A so oft aus, wie y jetzt als Zahlenwert hat. Wenn also xi 5 war, ist y ja inzwischen 1 und A wird einmal ausgeführt. Genau so, wenn xi 3 ist.
Wie oft wird A ausgeführt, wenn xi zu Beginn 0 war?
Vergleiche das mit dem vorher angegeben (nicht-LOOP) Pseudocode!
Gruß
Marco
Geschrieben von yuro123 am 14.12.2013 um 09:34:
Hej Marco,
dein Beitrag war sehr hilfreich. Dankeeee dir
werde die anderen Aufgaben nochmal durchgehen. Aber jetzt ist es mir schon einleuchtender
Kannst du mir auch bei meinem anderen Thema "Konfigurationswechsel" vll helfen?
Forensoftware: Burning Board, entwickelt von WoltLab GmbH