Video

Algorithmen und Programmstruktur

Algorithmen und Programmstrukturen sind essenziell für das Programmieren in C. In diesem Beitrag erklären wir dir die ersten Grundlagen dazu!

Inhaltsübersicht

Algorithmen in der Informatik

Als erstes solltest du wissen, was es mit Algorithmen auf sich hat. Diese gibt es zwar schon viel länger als Programmiersprachen und PCs, dennoch sind sie zur Lösung informatischer Probleme unerlässlich.

Eigentlich ist ein Algorithmus nichts weiter als eine exakte Formulierung eines Problems. Dazu gibt man einen allgemeinen Lösungsweg an, der mechanischen Abläufen folgt. Dabei muss er allerdings immer noch für alle Einzelfälle und Instanzen gelten. Diese sind in C Stellen im Speicher, die Werte enthalten können.

Algorithmus, Euklidischer Algorithmus, Modulo, C Programm, C programmieren
direkt ins Video springen
Allgemeiner Lösungsansatz für Algorithmen

Euklidischer Algorithmus C – Beispiel

Das klingt jetzt etwas kompliziert, ist es aber eigentlich gar nicht. Nehmen wir als Beispiel den euklidischen Algorithmus, der auch in der in den Mathevorlesungen des Informatikstudiums behandelt wird. Du setzt dabei zwei Zahlen ein und wenn du ihn korrekt durchführst, erhältst du am Ende den größten gemeinsamen Teiler der beiden Zahlen. Dazu arbeitet der Algorithmus immer wieder eine einfache Rechenoperation durch, bis er bei entweder 0 oder 1 ankommt. Um das zu veranschaulichen, gehen wir den Ablauf einmal durch:

Algorithmus, Euklidischer Algorithmus, Modulo, C Programm, C programmieren
direkt ins Video springen
Durchführung des euklidischen Algorithmus

Stell dir vor, du möchtest den größten gemeinsamen Teiler von 64 und 40 berechnen. Dazu musst du nun laut dem euklidischen Algorithmus, die größere durch die kleinere Zahl teilen und wie in der Grundschule den Rest notieren. Das nennt man auch „modulo nehmen“.

Algorithmus, Euklidischer Algorithmus, Modulo, C Programm, C programmieren
direkt ins Video springen
Berechnung des größten gemeinsamen Teilers zweier Zahlen

Nun nehmen wir die kleinere, zweite Zahl und nehmen sie modulo den Rest. Das machen wir solange, bis wir bei einem Rest von null ankommen – falls es einen gemeinsamen Teiler gibt – und bei einem Rest von eins, wenn nicht. Hier geht die Rechnung auf und wir erhalten als größten gemeinsamen Teiler 8.

Algorithmus, Euklidischer Algorithmus, Modulo, C Programm, C programmieren
direkt ins Video springen
Bei der Berechnung des größten gemeinsamen Teilers von 64 und 40 geht der Algorithmus auf

Möchte man das jetzt als Algorithmus darstellen, muss man auf Variablen zurückgreifen. Wir nennen also unsere erste Zahl x und die zweite y. Den Rest nennen wir r. Wir führen nun, solange x größer null ist, immer wieder die Schritte x mod y = r , y wird zu x‘ und‚ r wird zu y‘ aus.

Algorithmus, Euklidischer Algorithmus, Modulo, C Programm, C programmieren
direkt ins Video springen
Zugriff auf die Variablen um den Algorithmus darzustellen

Fertig ist unser Algorithmus, auch wenn er noch nicht die richtige Form hat. Aber das kommt erst später und wird damit an dieser Stelle noch nicht benötigt.

C-Programm Grundstruktur

Wichtig ist für dich jetzt noch die Struktur eines C-Programmes zu verstehen. Grundlegend ist ein C-Programm nichts anderes als die Einbettung von Zeilen in Funktionen. Diese sind wiederum abhängig von den Werten, die sie als Eingabe erhalten. In der Fachsprache werden solche Werte auch Parameter oder Argumente genannt.

Algorithmus, Euklidischer Algorithmus, Modulo, C Programm, C programmieren
direkt ins Video springen
Veranschaulichung der C-Programmstruktur

Die Funktionen mit ihren eingebetteten Programmzeilen liefern uns dann Resultate, die wir ausgeben oder weiterverarbeiten können und sind damit für ein Programm unerlässlich.

Du musst für alle Eingabe- und Ausgabewerte immer einen sogenannten Typen angeben. Dieser steht bei den Eingabeparametern direkt vor der Variable, bei den Ausgabeparametern vor dem Funktionsnamen. Damit ist ein C-Programm also nichts weiter, als eine wirre Sammlung von Funktionsdefinitionen. Das macht die Reihenfolge dieser Funktionsdefinitionen unwichtig. Was du allerdings beachten musst, ist, dass immer eine main-Funktion vorhanden sein muss. Diese ist nämlich dafür zuständig, alle anderen Funktionen entweder direkt oder indirekt über andere Funktionen aufzurufen. Ist sie nicht vorhanden, kann dein Programm nicht starten und es passiert nichts.

Algorithmus, Euklidischer Algorithmus, Modulo, C Programm, C programmieren
direkt ins Video springen
Was bei der Programmausgabe beachtet werden muss

Willst du bestimmte Funktionen in C nutzen, so musst du erst sogenannte Bibliotheken einbinden. Dies kannst du über den #include-Befehl machen. Bibliotheken, die auf diese Weise eingebunden wurden, können von allen Funktionen deiner Datei genutzt werden.

C-Programm – Beispiel

Schauen wir uns dazu mal ein Beispiel an. Hier haben wir ein sehr einfaches C-Programm vorliegen. Du kannst zwar bestimmt schon erahnen, was es tut, das ist jedoch jetzt erst einmal nicht wichtig.

Algorithmus, Euklidischer Algorithmus, Modulo, C Programm, C programmieren
direkt ins Video springen
Beispiel für ein C-Programm

Wie du sehen kannst, erfolgen Importe immer am Anfang des Programms. Danach kannst du deine Funktionsdefinitionen in beliebiger Reihenfolge einfügen. Wir empfehlen dir aber, alle anderen Funktionen vor ihrem Aufruf in der main zu definieren.

In unserem Beispiel siehst du deswegen zuerst die Definition unserer Test-Funktion, die die Summe zweier Werte zurückgibt.

Direkt darunter liegt die Definition unserer Main-Funktion, in der wir die mittels Bibliothek eingebundene Funktion printf benutzen, um das Ergebnis des Funktionsaufrufes auszugeben. Danach beenden wir die Main-Funktion, indem wir null zurückgeben.

Algorithmus, Euklidischer Algorithmus, Modulo, C Programm, C programmieren
direkt ins Video springen
Die Definition der Test-Funktion wird gefolgt von der Definition der Main-Funktion

Jetzt weißt du, wie man mit Algorithmen rechnet und hast einen ersten Eindruck von der Struktur eines Programms erhalten.

Hallo, leider nutzt du einen AdBlocker.

Auf Studyflix bieten wir dir kostenlos hochwertige Bildung an. Dies können wir nur durch die Unterstützung unserer Werbepartner tun.

Schalte bitte deinen Adblocker für Studyflix aus oder füge uns zu deinen Ausnahmen hinzu. Das tut dir nicht weh und hilft uns weiter.

Danke!
Dein Studyflix-Team

Wenn du nicht weißt, wie du deinen Adblocker deaktivierst oder Studyflix zu den Ausnahmen hinzufügst, findest du hier eine kurze Anleitung. Bitte .