Informatikarbeit - Hab ich das richtig gemacht?

...komplette Frage anzeigen

5 Antworten

Zur 1) 

Schon die Art, wie du einen Algorithmus definierst, klingt komisch.

"Algorithmen können bestimme Anweisung in vorgegebener Reihenfolge ausführen"

So wie du das hier sagst, klingt das so, als würde ein Algorithmus die Sachen ausführen. Ein Algorithmus ist aber gerade diese Folge von Anweisungen.

Ein Programm kann bestimmte Anweisungen in vorgegebener Reihenfolge ausführen.

Anweisungen in vorgegebener Reihenfolge heißt Algorithmus.

Das wichtigste ist hier, dass die Schritte tatsächlich ausführbar und präzise sind. Und dass der Algorithmus terminiert. Sowas wie "Anweisungen wiederholen" und solche Geschichten folgt aus der Anforderung "Vorgegebene Reihenfolge".

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Lolligerhans
19.05.2017, 16:41

Schon die Art, wie du ein Programm definierst, klingt komisch.

Ein Programm kann bestimmte Anweisungen in vorgegebener Reihenfolge ausführen

So wie du das hier sagst, klingt das so, als würde ein Programm
die Sachen ausführen. Ein Programm ist aber gerade diese Folge von Anweisungen.

Ein Computer kann bestimmte Anweisungen in vorgegebener Reihenfolge ausführen.

___

... ;)
Ich finde, man hätte es durchgehen lassen können.

@Thundergiirl97
Ich vermute, Antwort B soll als falsch (also kein Algorithmus) angegeben werden, weil "etwas Süßes suchen" nicht genau genug ist: Womit soll man widerkommen (was zählt als Süß)? Was heißt suchen; es nur finden und dann liegen lassen? Wo zuerst suchen?
Für mich hätte A aber das gleiche Problem, weil zB nicht gesagt wird, wo man etwas kaufen soll. Dass man sich in der Stadt befindet ist ja nicht ausreichend (versuche es zB auf einem Zebrastreifen oder im Brunnen). Beispiele mit Zahlen finde ich darum besser

So genau nimmt es aber keiner (auch der/die LehrerInn nicht). ;)

1

Bei der 2. Frage würde ich sagen, dass A und B beides Algorithmen sind. Wikipedia sagt: 

Ein Algorithmus ist eine eindeutige Handlungsvorschrift zur Lösung eines Problems oder einer Klasse von Problemen. Algorithmen bestehen aus endlich vielen, wohldefinierten Einzelschritten

Ein Algorithmus muss also (entgegen deiner Antwort) nicht zwangsläufig eine Schleife enthalten. 

Dementsprechend (und auch ausgehend von der Wikipedia-Definition) würde ich auch sagen, dass die Eigenschaften eines Algorithmus die Tatsache ist, dass er in eine endliche Anzahl zerlegbarer Einzelschritte zerlegbar ist, einen Eingangswert aufnimmt, einen Rückgabewert zurückgibt und dass er zur Problemlösung dient. Was steht zu dem Thema denn in deinen Unterlagen?

Schleifen und Bedingungen (also die prozedurale Programmierung) ist nur eine von vielen Möglichkeiten, um einen Algorithmus programmtechnisch umzusetzen. Algorithmen kann man aber beispielsweise auch mit Rekursion, Objektorientierung, funktionaler Programmierung oder Stift & Papier umsetzen.

Antwort bewerten Vielen Dank für Deine Bewertung

Algorithmen sind Anweisungen, um ein Problem zu lösen bzw. eine Rechnung durchzufühfren. Sie beschreiben die Schritte zur Lösung.

Algorithemn können damit keine Anweisungen ausführen!

Sie beschreiben sie.

Teil 1 ist somit verkehrt!

Algorithmen haben erstmal nichts mit Schleifen an sich zu tun. Sie können Schleifen enthalten, müssen aber nicht!

Beide Geschichten beschreiben Arbeitsvorgänge bzw. die Anweisungen dafür. Beide sind damit Algorithmen!

Einfachstes Beispiel für einen Algirithmus in der Mathematik: Berechnung der Zahl der Tage, die man bereits lebt: Subtrahiere das Geburtsdatum vom heutigen Datum.

Oder (wesentlich komplizierter) der Oster-Algorithmus zur Berechnung des Datums von Ostern.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von HylianGamer
19.05.2017, 15:12

Naja, die zweite Geschichte ist kein Algorithmus, weil "etwas süßes" nicht präzise ist. Der Computer kann ja nicht entscheiden, was für eine Süßigkeit er holen soll. Er muss wissen, dass er jetzt Schokolade oder nen Donut holen muss, die Anweisung muss konkret sein. Anderes Beispiel: Rezept für Kuchen: 250g Mehl, 200ml Milch, etwas Zucker eingeben... Sind ja alles Anweisungen, aber trotzdem kein Algorithmus. Woher soll der Computer wissen, was "etwas" ist?

0

Algorithmen sind eindeutig formulierte Anweisungen, ein Problem zu lösen.

Eben deswegen ist A die richtige Antwort auf die zweite Frage.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von ceevee
19.05.2017, 14:21

var myPlace = goToCity();

myPlace.getSomethingSweet();

myPlace = goHome();

-----

Eine (von vielen) Möglichkeiten, um Aufgabe B programmtechnisch in Pseudocode zu lösen. Wo ist da irgendwas uneindeutig oder eine Schleife? Du - ebenso wie die Fragestellerin und der Antwort 969669 - machen den Fehler, dass sie in den kurzen Satz der Aufgabenstellung viel zu viel hineininterpretieren und da schon Code vor Augen haben.

0
Kommentar von HylianGamer
19.05.2017, 15:20

Zum Kochbeispiel: Naja, in Kochbüchern steht zwar nicht drinnen wie man ein Ei aufmacht, aber "ein Ei öffnen" kann man ja wieder in einen Algorithmus umdefinieren. Schlage ei gegen tisch, trenne die zwei Schalenhälften auf. "etwas süßes holen" kann zwar natürlich auch als getSomethingSweet() Methode drannstehen, aber diese Methode muss ein Algorithmus sein. Und wie willst du das implementieren? Aus einem Array von Süßigkeiten irgendwas rausholen kann der Computer net wissen, der braucht sowas wie "nehme das zweite Element im array". Aber dann würde die Aufgabe ja sowas sagen wie "Gehe in die stadt, gehe zum Süßigkeitenregal und nehme das was ganz oben ist". Der Computer braucht halt immer was konkretes, denn im Gegensatz zum Menschen hat er keine Intuition.

0

Antwort B ist falsch. Ein Algorithmus braucht genaue Anweisungen.

'Etwas Süßes' ist von einem Computer nicht einfach verarbeitbar.

Eine Banane, zwei Crossaints und eine Tomate ist genau definiert und kann so ausgeführt werden.

Deshalb ist Antwort A richtig. Dein Lösungsansatz kann genauso gut auf Lösung A angewandt werden... 

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?