PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LOOP-Programm, kurze Hilfe, ist wichtig!


Godlike
2006-12-12, 21:20:55
Hallo!

Muss morgen 2 Loop-Programme in theoret. Informatik abgeben.
Leider hab ich grad keinen Plan, vlt. könnte mir wer helfen.

1.) n mod m (modulo)
2. n! (Fakultät)

Wär ein Wahnsinn, wenns wer auf die Schnelle lösen könnte

Gnafoo
2006-12-12, 22:40:43
Da Hausaufgaben lösen im 3DC nicht erlaubt ist, kann ich dir höchstens Tipps geben:

1. Die Wikipedia-Seite ist recht informativ (zumindest für mich, ich kannte LOOP nicht) http://de.wikipedia.org/wiki/LOOP-Programm.
2. Probier zunächst die Multiplikation als Schleife zu realisieren. Da du nicht direkt multiplizieren kannst, musst du mehrmals addieren.
3. Dann ist die Fakultät nicht mehr so schwierig. Eine Schleife mit n durchläufen, bei der jedesmal eine entsprechende Multiplikation (siehe 2) durchgeführt wird und entsprechende Variablen in- oder dekrementiert werden.
4. Zum Modulo fällt mir gerade nichts brauchbares ein.

Coda
2006-12-12, 22:44:30
Modulo is so lange abziehen bis eben der Rest übrig bleibt nehm ich an

Entil'Sar
2006-12-12, 22:45:18
Zum Modulo:
So oft m von n subtrahieren, bis n < m. Das ganze als LOOP Programm formulieren, darfst du jetzt selbst. :tongue:

edit: Shit, zu langsam...

Gnafoo
2006-12-12, 22:49:15
Wenn ich Wikipedia recht verstehe gibt es keine Möglichkeit n<m zu prüfen. Von daher fällt mir gerade kein brauchbarer Ansatz ein.

MadMax@
2006-12-13, 01:19:42
Sicher gibt es eine möglichkeit:

n<m

--> if(!(n-m) and (m-n))

Gnafoo
2006-12-13, 15:50:28
Wie gesagt laut Wikipedia. Dort gibt es in der BNF kein "if".
Mag ja sein, dass das je nach Vorlesung anders gehandhabt wird. kA.

Gast
2006-12-13, 16:19:18
n!=n*(n-1)!
so sollte man das loesen koennen.

Trap
2006-12-13, 16:27:19
Natürlich gibt es if, und zwar loop bedingung do thenteil end. Man sollte dabei im thenteil nur neuen Variablen was zuweisen, dann macht es keinen Unterschied wie oft es ausgeführt wird.

Außerdem gibt es keine negativen Zahlen, für alle x gilt 0-x=0.

Godlike
2006-12-13, 17:37:09
Habs mittlerweile selber geschrieben, aber die Logik ist scho einmalig. Najo, kurz ist das Modulo nicht geworden, funktioniert aber.

Danke nochmal an alle.

MadMax@
2006-12-13, 22:59:21
jup genau if kan man durch einen LOOP simulieren.
Was ein Loop program beweißbar nicht kan ist eben eine while-schleife.
Wichtig ist das man das LOOP in einem LOOP-Programm nicht mit einer C++ For schleife verwechselt.