This is a read-only archive of the old Scratch 1.x Forums.
Try searching the current Scratch discussion forums.
  • Index
  •  » Deutsch
  •  » Hilfe bei der Erklärung eines Programms!!!!!!!

#1 2013-02-11 06:19:04

albo2701
New Scratcher
Registered: 2013-02-11
Posts: 3

Hilfe bei der Erklärung eines Programms!!!!!!!

Hallo ihr da draußen!,

ich habe vor langer Zeit Hilfe bei einem Projekt gebraucht und auch, zum Glück, bekommen. Allerdings verstehe ich einen Part nicht, muss es meinem Lehrer aber erklären! Kann mir bitte einer von euch helfen???

Offline

 

#2 2013-02-11 06:22:17

albo2701
New Scratcher
Registered: 2013-02-11
Posts: 3

Re: Hilfe bei der Erklärung eines Programms!!!!!!!

http://scratch.mit.edu/projects/albo2701/3096193
Hier ist das Programm!!!
Ich verstehe das Programm ab "warte 1 Sek." nicht mehr

Offline

 

#3 2013-02-11 06:26:10

albo2701
New Scratcher
Registered: 2013-02-11
Posts: 3

Re: Hilfe bei der Erklärung eines Programms!!!!!!!

Ihr müsst das Programm downloaden, damit es funktioniert

Offline

 

#4 2013-02-11 07:49:48

Lirex
New Scratcher
Registered: 2012-10-31
Posts: 27

Re: Hilfe bei der Erklärung eines Programms!!!!!!!

Die Blöcke nach dem "warte 1 Sek." bilden den Part welcher die Zahlen sortiert.
Die äußere "falls 0 < länge von Start"-Klammer überprüft erst einmal, ob in der Liste "Start" überhaupt etwas enthalten ist, damit man das sortieren kann. Die darauffolgende Klammer wiederholt das nachfolgende Prozedere so lange, bis die Liste Start komplett sortiert wurde.
Zuerst einmal werden die beiden Hilfsvariablen auf 1 gesetzt, sozusagen ein Reset durchgeführt.
Nun wird die Liste von oben nach unten durchgegangen. Ist ein Element in der Liste höher als das bisher höchste (Hilfe1 Element (das, was gerade geprüft wird) von Start > Hilfe2 Element (das bisher höchste) von Start), wird Hilfe2 sofort aktualisiert und auf die Stelle in der Liste gesetzt, in der dieses Element zu finden ist (das zur Zeit durch Hilfe1 markierte). Sollte das markierte Element niedriger sein als das bisher höchste (Hilfe2), wird es einfach ignoriert.
Danach wird Hilfe1 (also das zu prüfende Element der Liste) um 1 erhöht, womit man die nächste Stelle der Liste Start unter die Lupe nimmt. Das ganze wird so lange wiederholt, bis alle Stellen der Liste abgeklappert wurden (deshalb "wiederhole länge von Start mal")und somit das höchste Element feststeht. Dieses wird dann an die Liste Ziel angehängt, und, damit nicht ständig das gleiche Element übertragen wird, aus der Liste Start entfernt ([füge Hilfe2 Element von Start zu Ziel hinzu] und [entferne Hilfe2 aus Start]).
Die Variablen Hilfe1 und Hilfe2 werden wieder auf 1 gesetzt (damit die "Start" wieder von vorne durchgegangen und eine neue höchste Zahl gesucht werden kann) und das Ganze geht von vorne los, so lange, bis alles sortiert und aus der Liste Start entfernt wurde (länge von Start = 0).
Ich hoffe ich konnte helfen.
_Lirex

Offline

 

#5 2013-02-11 12:15:57

Buddy60
Scratcher
Registered: 2010-01-27
Posts: 100+

Re: Hilfe bei der Erklärung eines Programms!!!!!!!

Wobei das angegebene Programm aber folgenden logischen Fehler enthält:
Es wird "Hilfe 1" auf 1 gesetzt ,...und....
es wird "Hilfe 2" auf 1 gesetzt .......
in der nun folgenden Schleife (Länge von START mal) wird "Hilfe 1" um eins erhöht.
----------
Nehmen wir an, Liste START wäre  3 Einträge lang, dann würde "Hilfe 1" gesamt 3 mal um 1 erhöht werden und am Ende auf 4 stehen.
Liste START hat aber gar keine 4 Elemente. Welches 4te Element von START wird vom Programm nun verglichen ?
Ein kurz aufblinkender roter Rahmen um die Liste START deutet diesen Fehler an, ignoriert ihn aber glücklicherweise für den weiteren Ablauf.

Ein weiterer logischer Fehler für meinen Geschmack ist die Zufallszahl von 1 bis 40 zu wählen, für die Variable ZAHL, denn die daraus resultierende Liste START könnte nun wahrhaftig zufällig ein Element lang sein, was ziemlich unsinnig wäre.

Last edited by Buddy60 (2013-02-11 12:25:33)

Offline

 
  • Index
  •  » Deutsch
  •  » Hilfe bei der Erklärung eines Programms!!!!!!!

Board footer