Programmieren in C: Unterschied zwischen den Versionen

Aus Datenschutz
Zur Navigation springen Zur Suche springen
 
(39 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
== Programmieren in C auf dem eigenen Computer ==
 +
[[Datei:Raspi400.jpg|mini|rechts|Der Raspberry Pi 400 für knapp 100.- € zum Anschluss an den Fernseher (hier mit englischem Netzteil!)]]
 +
* Um ein Programm in einer Programmiersprache zu schreiben, braucht man ein passendes Übersetzungsprogramm für diese Sprache.
 +
* Solche Übersetzungsprogramme übersetzen eine Programmiersprache in die universelle Sprache aller Computer.
 +
* Solcher Übersetzungsprogramme heißen '''Compiler'''.
 +
* Man benötigt also für C einen C-Compiler und
 +
* einen Editor (Textverarbeitung für Programmierer) zum Erfassen des Programms.
 +
* Am besten alles zusammen: eine "Integrierte Entwicklungsumgebung (IDE)".
 +
* Zum Beispiel diese [https://github.com/Embarcadero/Dev-Cpp/releases hier] (Windows, MacOS).
 +
* Auf einem Raspberry Pi kann man einfach [https://de.wikipedia.org/wiki/Geany Geany] benutzen.
 +
* Oder Sie programmieren einfach hier und jetzt [https://www.onlinegdb.com/online_c_compiler online].
 +
 
== Grundsätzliches Wissen für angehende Programmierer/-innen ==
 
== Grundsätzliches Wissen für angehende Programmierer/-innen ==
 +
[[Datei:Geany.png|mini|links|Die Entwicklungsumgebung GEANY in Aktion auf dem Raspi 400.]]
 
* Jede Anwendung eines persönlichen Computers, jede Website, jede App ist ein '''Computerprogramm'''.
 
* Jede Anwendung eines persönlichen Computers, jede Website, jede App ist ein '''Computerprogramm'''.
 
* Computerprogramme sind Listen von '''Anweisungen''', die vom Computer der Reihe nach abgearbeitet werden.
 
* Computerprogramme sind Listen von '''Anweisungen''', die vom Computer der Reihe nach abgearbeitet werden.
* Anweisungen bestehen aus '''Schlüsselwörtern und Parametern''', die die Anweisungen genauer spezifizieren.
+
* Diese Listen werden in ein Textprogramm eingegeben, in Bits und Bytes übersetzt und dann ausgeführt.
* Ein einfaches Beispiel: Auf dem Bildschirm soll geschrieben werden (= Schlüsselwort) der Text "Hallo!" (=Parameter).  
+
* Anweisungen in Programmen bestehen aus '''Schlüsselwörtern und Parametern''', die die Anweisungen genauer spezifizieren.
* Das Schlüsselwort lautet '''printf''', der Parameter in Klammern '''"Hallo!"''':
+
* Ein Beispiel "aus dem richtigen Leben" wäre
<pre>printf ("Hallo!");</pre>
+
<pre>"Starte das Auto"</pre>
 +
* wobei "Starte" das Schlüsselwort und "das Auto" der Parameter ist.
 +
* Ein Schlüsselwort sagt dem Computer, '''was''' zu tun ist.
 +
* Ein Parameter erklärt, '''womit''' etwas zu tun ist.
 +
 
 +
== Funktionen ==
 +
* Ein Problem wird zur Lösung in viele kleine Probleme zerlegt.
 +
* Beispiel: "Kuchen backen" kann in "Mische Mehl, Eier...", "Heize den Backofen", "Knete den Teig" etc. aufgeteilt werden.
 +
* Programme können in kleine Abschnitte eingeteilt werden, die einzelne Unter-Aufgaben erfüllen ('''Funktionen''').
 +
* Diese Funktionen haben einen festgelegten '''Namen''', '''Parameter''' und können '''Werte''' an das Hauptprogramm zurück geben.
 +
* Den '''Typ des Rückgabewertes''' steht vor der Funktion (hier: int = integer = ganze Zahlen).
 +
* main ist die ''erste'' Funktion, die in jedem Programm aufgerufen wird. Hier startet also immer das Programm.
 +
* In C-Programmen muss es wenigstens ''eine'' Funktion mit dem Namen '''main''' geben.
 +
* Von main aus werden andere Funktionen des selben Programms '''aufgerufen''', sofern welche existieren.
 +
* Die Hauptfunktion, das ganze Programm, gibt nach der Abarbeitung des Programms einen Wert an den Computer zurück.
 +
* Ein einfaches Programm sieht also jetzt so aus ("//" leitet einen Kommentar ein):
 +
<pre>
 +
int main ()
 +
{
 +
  // Hier startet das Hauptprogramm
 +
  printf ("Zahlenraten - ich denke mir eine Zahl und Du errätst sie. \n");
 +
}
 +
</pre>
 +
 
 +
== Variable ==
 +
* Variable sind '''benannte Speicherstellen''', in denen Zwischenergebnisse gespeichert werden können.
 +
* Variable müssen dem C-Compiler '''erklärt''' werden, damit sie verwendet werden können: sie werden '''deklariert'''.
 +
* Da Programme linear (von oben nach unten) ablaufen, sind '''Variablen erst ab der Deklaration''' nutzbar.
 +
* Der Compiler muss wissen, was in den Variablen stehen soll: der '''Variablentyp'''.
 +
* Typen für Variable in C: Ganzzahlen (int), Fließkommazahlen (float), Zeichen (char)
 +
* Eine Deklaration sieht typischerweise so aus: <Typ><Leerzeichen><Name><Semikolon>
 +
* Beispiel: <pre>int nGedachteZahl;</pre>
 +
* Das "n" vor dem Namen "GedachteZahl" ist nicht notwendig. Es ist aber [https://de.wikipedia.org/wiki/Ungarische_Notation gute Sitte], den Typ (int, also numerisch) im Namen zu erwähnen.
 +
* Variable können auch einen Anfangswert (Initialisierung) enthalten, der einfach dahinter geschrieben wird.
 +
* Beispiel: <pre>int nGedachteZahl = 24;</pre>
 +
* Die Variable nGedachteZahl ist dem Compiler ab diesem Zeitpunkt als Ganzzahl-Speicherstelle bekannt und hat den Wert 24.
 +
* Eine nicht initialisierte Variable hat übrigens '''nicht''' den Wert Null sondern einen unbestimmten Wert (Vorsicht!).
 +
* In unserem Beispiel brauchen wir zwei Variable: in einer steht die gedachte Zufallszahl, in der anderen die Vermutung des Benutzers.
 +
* Nach der Erwähnung des Datentyps kann man weitere Variablen definieren.
 +
* Unser Programm sieht bis hierher also so aus:
 +
<pre>
 +
 
 +
int nGedachteZahl = 24; // muss erraten werden
 +
    nVermutung = 0;    // sicher ist sicher
 +
 
 +
int main ()
 +
{
 +
  // Hier startet das Hauptprogramm
 +
  printf ("Zahlenraten - ich denke mir eine Zahl und Du errätst sie. \n");
 +
}
 +
</pre>
  
 
== Ein- und Ausgabe ==
 
== Ein- und Ausgabe ==
* Programme werden geschrieben, um wiederkehrende Aufgaben vom Computer erledigen zu lassen (= Routinen).
+
* Ein Programm braucht grundsätzlich Anweisungen für die '''Eingabe''', die '''Verarbeitung''' und die '''Ausgabe''' von Daten.
* Ein Programm ist also eine allgemeine Lösung für spezielle Daten.
+
* Speziell in der Programmiersprache C gibt es '''keine''' Anweisungen zur Ein- und Ausgabe.
* Folglich braucht ein Programm Anweisungen für die '''Eingabe''', die '''Verarbeitung''' und die '''Ausgabe''' von Daten.
+
* C soll auf sehr vielen Computern nutzbar sein und jedes Computersystem hat andere Funktionen für Ein- und Ausgabe.
* Speziell in der Programmiersprache C gibt es mehrere Anweisungen zur Ein- und Ausgabe.
+
* Deshalb liegt jedem C-Compiler eine Bibliothek von Dateien bei, die Ein- und Ausgabe des jeweiligen Computersystems ermöglicht.
* Wir verwenden hier zur Eingabe das Schlüsselwort '''scanf''' und zur Ausgabe '''printf'''.
+
* Die Funktionen in diesen Dateien werden aber alle in der gleichen Art und Weise aufgerufen ("C-Standard-Bibliotheken").
 +
* Wir verwenden hier zur Eingabe das Schlüsselwort '''scanf''' und zur Ausgabe '''printf''' wegen ihrer Ähnlichkeit.
 +
* Im "echten Leben" tun Sie das bitte nicht: die Funktionen sind [https://dasdev.de/nachteile-von-scanf/ nicht krisensicher].
 +
 
 +
== Bedingungen ==
 +
* Bedingungen sind '''WENN-DANN-Anweisungen'''.
 +
* Der weitere Programmlauf hängt dann von '''Bedingungen''' ab.
 +
* In C ist das entsprechende Schlüsselwort '''if'''.
 +
 
 +
== Fallunterscheidungen ==
 +
* Bei Fallunterscheidungen wird jeder '''Bedingung ein Programmlauf''' zugeordnet.
 +
* In C sind die entsprechenden Schlüsselwörter '''switch''' und '''case'''.
 +
 
 +
== Schleifen mit Zähler ==
 +
* Bei Zählerschleifen werden Schlüsselwörter eine '''bestimmte Anzahl mal''' wiederholt.
 +
* Dabei läuft eine Variable mit, die bei jedem Durchlauf '''verändert''' wird.
 +
* In C ist das entsprechende Schlüsselwort '''for'''.
 +
 
 +
== Kopfgesteuerte Schleifen ==
 +
== Fußgesteuerte Schleifen ==
 +
== Dateien ==

Aktuelle Version vom 11. Juni 2022, 14:20 Uhr

Programmieren in C auf dem eigenen Computer

Der Raspberry Pi 400 für knapp 100.- € zum Anschluss an den Fernseher (hier mit englischem Netzteil!)
  • Um ein Programm in einer Programmiersprache zu schreiben, braucht man ein passendes Übersetzungsprogramm für diese Sprache.
  • Solche Übersetzungsprogramme übersetzen eine Programmiersprache in die universelle Sprache aller Computer.
  • Solcher Übersetzungsprogramme heißen Compiler.
  • Man benötigt also für C einen C-Compiler und
  • einen Editor (Textverarbeitung für Programmierer) zum Erfassen des Programms.
  • Am besten alles zusammen: eine "Integrierte Entwicklungsumgebung (IDE)".
  • Zum Beispiel diese hier (Windows, MacOS).
  • Auf einem Raspberry Pi kann man einfach Geany benutzen.
  • Oder Sie programmieren einfach hier und jetzt online.

Grundsätzliches Wissen für angehende Programmierer/-innen

Die Entwicklungsumgebung GEANY in Aktion auf dem Raspi 400.
  • Jede Anwendung eines persönlichen Computers, jede Website, jede App ist ein Computerprogramm.
  • Computerprogramme sind Listen von Anweisungen, die vom Computer der Reihe nach abgearbeitet werden.
  • Diese Listen werden in ein Textprogramm eingegeben, in Bits und Bytes übersetzt und dann ausgeführt.
  • Anweisungen in Programmen bestehen aus Schlüsselwörtern und Parametern, die die Anweisungen genauer spezifizieren.
  • Ein Beispiel "aus dem richtigen Leben" wäre
"Starte das Auto"
  • wobei "Starte" das Schlüsselwort und "das Auto" der Parameter ist.
  • Ein Schlüsselwort sagt dem Computer, was zu tun ist.
  • Ein Parameter erklärt, womit etwas zu tun ist.

Funktionen

  • Ein Problem wird zur Lösung in viele kleine Probleme zerlegt.
  • Beispiel: "Kuchen backen" kann in "Mische Mehl, Eier...", "Heize den Backofen", "Knete den Teig" etc. aufgeteilt werden.
  • Programme können in kleine Abschnitte eingeteilt werden, die einzelne Unter-Aufgaben erfüllen (Funktionen).
  • Diese Funktionen haben einen festgelegten Namen, Parameter und können Werte an das Hauptprogramm zurück geben.
  • Den Typ des Rückgabewertes steht vor der Funktion (hier: int = integer = ganze Zahlen).
  • main ist die erste Funktion, die in jedem Programm aufgerufen wird. Hier startet also immer das Programm.
  • In C-Programmen muss es wenigstens eine Funktion mit dem Namen main geben.
  • Von main aus werden andere Funktionen des selben Programms aufgerufen, sofern welche existieren.
  • Die Hauptfunktion, das ganze Programm, gibt nach der Abarbeitung des Programms einen Wert an den Computer zurück.
  • Ein einfaches Programm sieht also jetzt so aus ("//" leitet einen Kommentar ein):
int main ()
{
  // Hier startet das Hauptprogramm
  printf ("Zahlenraten - ich denke mir eine Zahl und Du errätst sie. \n");
}

Variable

  • Variable sind benannte Speicherstellen, in denen Zwischenergebnisse gespeichert werden können.
  • Variable müssen dem C-Compiler erklärt werden, damit sie verwendet werden können: sie werden deklariert.
  • Da Programme linear (von oben nach unten) ablaufen, sind Variablen erst ab der Deklaration nutzbar.
  • Der Compiler muss wissen, was in den Variablen stehen soll: der Variablentyp.
  • Typen für Variable in C: Ganzzahlen (int), Fließkommazahlen (float), Zeichen (char)
  • Eine Deklaration sieht typischerweise so aus: <Typ><Leerzeichen><Name><Semikolon>
  • Beispiel:
    int nGedachteZahl;
  • Das "n" vor dem Namen "GedachteZahl" ist nicht notwendig. Es ist aber gute Sitte, den Typ (int, also numerisch) im Namen zu erwähnen.
  • Variable können auch einen Anfangswert (Initialisierung) enthalten, der einfach dahinter geschrieben wird.
  • Beispiel:
    int nGedachteZahl = 24;
  • Die Variable nGedachteZahl ist dem Compiler ab diesem Zeitpunkt als Ganzzahl-Speicherstelle bekannt und hat den Wert 24.
  • Eine nicht initialisierte Variable hat übrigens nicht den Wert Null sondern einen unbestimmten Wert (Vorsicht!).
  • In unserem Beispiel brauchen wir zwei Variable: in einer steht die gedachte Zufallszahl, in der anderen die Vermutung des Benutzers.
  • Nach der Erwähnung des Datentyps kann man weitere Variablen definieren.
  • Unser Programm sieht bis hierher also so aus:

int nGedachteZahl = 24; // muss erraten werden
    nVermutung = 0;    // sicher ist sicher

int main ()
{
  // Hier startet das Hauptprogramm
  printf ("Zahlenraten - ich denke mir eine Zahl und Du errätst sie. \n");
}

Ein- und Ausgabe

  • Ein Programm braucht grundsätzlich Anweisungen für die Eingabe, die Verarbeitung und die Ausgabe von Daten.
  • Speziell in der Programmiersprache C gibt es keine Anweisungen zur Ein- und Ausgabe.
  • C soll auf sehr vielen Computern nutzbar sein und jedes Computersystem hat andere Funktionen für Ein- und Ausgabe.
  • Deshalb liegt jedem C-Compiler eine Bibliothek von Dateien bei, die Ein- und Ausgabe des jeweiligen Computersystems ermöglicht.
  • Die Funktionen in diesen Dateien werden aber alle in der gleichen Art und Weise aufgerufen ("C-Standard-Bibliotheken").
  • Wir verwenden hier zur Eingabe das Schlüsselwort scanf und zur Ausgabe printf wegen ihrer Ähnlichkeit.
  • Im "echten Leben" tun Sie das bitte nicht: die Funktionen sind nicht krisensicher.

Bedingungen

  • Bedingungen sind WENN-DANN-Anweisungen.
  • Der weitere Programmlauf hängt dann von Bedingungen ab.
  • In C ist das entsprechende Schlüsselwort if.

Fallunterscheidungen

  • Bei Fallunterscheidungen wird jeder Bedingung ein Programmlauf zugeordnet.
  • In C sind die entsprechenden Schlüsselwörter switch und case.

Schleifen mit Zähler

  • Bei Zählerschleifen werden Schlüsselwörter eine bestimmte Anzahl mal wiederholt.
  • Dabei läuft eine Variable mit, die bei jedem Durchlauf verändert wird.
  • In C ist das entsprechende Schlüsselwort for.

Kopfgesteuerte Schleifen

Fußgesteuerte Schleifen

Dateien