Wdhlg Alg Prog I
Inhaltsverzeichnis |
Arbeit mit den Eingabefeldern im PWiki
PWiki steht für ProgrammingWiki - also für ein Wiki, in dem programmiert werden kann. Dies erfolgt in Boxen (Eingabefeldern).
Um uns etwas mit der Schreibweise im PWiki vertraut zu machen, wenden wir einfache Grundrechenoperatoren auf ganze und reelle Zahlen an. Es folgt ein interaktives Feld zum Experimentieren.
Im oberen Feld bitte den angegebenen Term (3*5-5*3) beliebig verändern. Mit einem Klick auf speichern & ausführen wird diese vom Pascal-Interpreter verarbeitet. Im zweiten Kästchen erscheint das Berechnungsergebnis.
Probiere und interpretiere mögliche Fehlermeldungen!
Offensichtlich funktioniert die Ausgabe bei reellen Zahlen nicht.
inttostr bedeutet Konvertierung (Umwandlung) von ganzen Zahlen in eine Zeichenkette.
floattostr wird für die Konvertierung von reellen Zahlen in eine Zeichenkette verwendet.
Zu beachten ist, dass reelle Zahlen mit Punkt (also 12.5 nicht 12,5) notiert werden.
Hinweis:
Wenn Du den Quelltext änderst, siehst Du dies an dem roten Kreuz an dem Eingabefeld.
Durch einen Klick darauf lässt sich der ursprüngliche Quelltext wieder herstellen.
Algorithmen
Der Algorithmusbegriff ist ein zentaler Begriff in der Informatik. Ein Algorithmus bildet die Grundlage für die Implementierung (Umsetzung) einer Problemlösung mit Hilfe einer Programmiersprache.
Stelle für folgende Beispiele Vermutungen an, ob diese Handlungen Algorithmen darstellen.:
- "Koffer packen"
- "Flughafen - einchecken"
- "Castingshow"
- "Fußballregeln".
Der Algorithmusbegriff
Die Bezeichnung Algorithmus geht auf den Namen Muhammad ibn Musa, Abu Dscha'far al-Chwarizmi (* um 780; † um 850), einem persischen Mathematiker, Astronomen und Geographen, zurück.
Diesem Universalgelehrten verdanken wir nicht nur die Einführung der Null aus dem indischen in das arabische Zahlensystem, sondern auch das Wort "Algebra", das der lateinischen Übersetzung seines Buches Kitāb al-muchtasar fi hisab al-dschabr wa-l-muqabala ("Rechnen durch Ergänzung und Ausgleich") entnommen ist.
Es existiert eine Vielzahl von Versuchen einer Definition für den Begriff Algorithmus.
zum Beispiel:
- Als ”Algorithmus [..] bezeichnet [man] heute in der Arithmetik einen Rechenvorgang (bzw.
die ihn beschreibenden Regeln) der nach einem bestimmten sich wiederholenden Schema abläuft" (Meyers Enzyklopädie, 1971)
- ”Ein Algorithmus [..] ist eine vollständige, präzise und in einer Notation oder
Sprache mit exakter Definition abgefasste, endliche Beschreibung eines schritt- weisen Problemlösungsverfahrens zur Ermittlung gesuchter Datenobjekte (ihrer Werte) aus gegebenen Werten von Datenobjekten, in dem jeder Schritt aus einer Anzahl ausführbarer, eindeutiger Aktionen und einer Angabe über den nächsten Schritt besteht.”(Pomberger, Gustav; Dobler, Heinz: Algorithmen und Datenstrukturen - Eine systematische Einführung in die Programmierung. München : Pearson Education Deutschland GmbH, 2008)
- ”Ein Algorithmus ist eine detaillierte und explizite Vorschrift zur schrittweisen
Lösung eines Problems.”(Gumm, Heinz P.; Sommer, Manfred: Einführung in die Informatik. München : Oldenbourg Wissenschaftsverlag, 2006)
Wir begnügen uns mit einer anschaulichen (intuitiven) Erklärung:
Ein Algorithmus ist eine endliche Folge von eindeutigen und ausführbaren Anweisungen zur Lösung eines allgemeinen Problems.
Eigenschaften von Algorithmen
- Endlichkeit: (Finitheit)
- endliche Notation des Algorithmus, (statische Endlichkeit)
- Nutzung endlicher Ressourcen (z.B. begrenzter Arbeitsspeicher / begrenzte Rechenzeit) - dynamische Endlichkeit
- Terminiertheit
- endlich viele Abarbeitungsschritte - Endlichkeit im Ablauf (z.B. begrenzte Rekursionstiefe), der Algorithmus liefert also bei jeder Anwendung nach endlich vielen Verarbeitungsschritten ein Resultat
- Bei Nichterfüllung: Endlosschleife (Ausnahmen: OS; interaktive Programme)
- endlich viele Abarbeitungsschritte - Endlichkeit im Ablauf (z.B. begrenzte Rekursionstiefe), der Algorithmus liefert also bei jeder Anwendung nach endlich vielen Verarbeitungsschritten ein Resultat
- Deterministisch
- nach jedem Abarbeitungsschritt besteht höchstens eine Möglichkeit der Fortsetzung
- Eindeutigkeit: (Determiniertheit)
- gleiche Eingabegrößen und Anfangsbedingungen liefern stets das gleiche Ergebnis
- Ausführbarkeit:
- jede Anweisung ist (z.B. für einen Prozessor) verständlich und ausführbar
- Allgemeingültigkeit:
- Anwendbarkeit auf gleiche Probleme einer Problemklasse.