[C] Pieps

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Kleines C Tutorial:
    Wir schreiben unser erstes Programm

    Da ich zurzeit selber C in der Schule lerne, wollt ich mal mein kleines Wissen weitergeben.

    Wie gesagt: Lerne es zurzeit, also nicht wundern, wenn einige Fehler dabei sind oder es schlecht gelöst ist oder sonstige Sachen :D

    Dann fangen wir mal an.

    In meinen kleinen Tutorial möchte ich euch zeigen, wie man beispielsweiße in der Schule, in einen Computerraum, die Lehrer etwas nerven kann :D

    Dazu hab ich ein kleines Programm geschrieben, was "überraschenderweiße" Pieps heißt. (Sehr einfallsreich, ich weiß :D)

    Jetzt fangen wir mal mit unseren ersten zwei Zeilen an.
    Bei jedem C Programm muss man die nötigen Bibliotheken (Librarys) in das Programm "einladen" (includen). Das macht man mit folgenden Zeilen:

    Quellcode

    1. #include <stdio.h>
    2. #include <stdlib.h>


    In der stdlib.h sind einige Standardwerte festgelegt. Wie beispielsweiße die Variable "EXIT_SUCCESS". Diese Datei muss nicht unbedingt eingeladen werden, aber dann muss man statt "EXIT_SUCCESS" die Zahl "0" schreiben. Würde ich aber empfehlen!
    In der stdio.h sind die wichtigsten Befehle enthalten. Wie beispielsweiße printf() und die anderen Befehle! Diese Header-Datei wird benötigt!

    Nun haben wir unseren Header-Teil fertig.
    Nun geht es an das Hauptprogramm.

    Den Haupteinsprungspunkt eines Programm nennt man "main".
    Und diesen Teil schreibt man in C wie folgt:

    Quellcode

    1. int main(void)
    2. {
    3. /* DER CODE */
    4. return EXIT_SUCCESS;
    5. }


    Nicht besonders überraschend.
    Wenn man den obrigen Code nur so reinkopiert, ohne irgendwelche anderen Befehle, wird das lustigerweiße von Anti-Virusprogrammen erkannt :D
    Ist ziemlich witzig. Aber natürlich ist es kein Virus!

    Nun haben wir den richtigen Aufbau schon erledigt.
    Jetzt müssen wir das Programm selbst schreiben.

    Als erstes müssen wir zwei Variablen deklarieren, die für die for()-Schleife benötigt werden.
    In der Variable i wird die Anzahl gespeichert, wie oft der Signalton schon ertönte und in anzahl wird gespeichert, wie oft es insgesamt der Ton ausgegeben werden soll.

    Nun deklarieren wir die Variablen erstmal.
    Dazu benötigen wir folgende Zeilen:

    Quellcode

    1. int i = 0;
    2. int anzahl = 0;


    Nun geben wir mal einen Befehl ein, dass der Benutzer weiß, was er zu tun hat, sonst würde ja nur der Coursor blinken.

    Quellcode

    1. printf("\n\tBitte gib ein, wie oft der PC piepsen soll: ");

    Was die komischen "Escape-Sequenzen" bedeuten ("\n", "\t", etc) erklär ich euch weiter unten!
    Welchen text dieser Befehl ausgibt, sollte selbsterklärend sein.

    Nun müssen wir die Eingabe des Benutzers erstmal auslesen.
    Das geht wie folgt:

    Quellcode

    1. scanf("%d",&anzahl);

    Hierbei wird das eingegebene in die Variable anzahl gespeichert!
    Das "&" wird benötigt und ist kein Schreibfehler!

    Nun gibt es zwei weitere Zeilen ausgabe:

    Quellcode

    1. printf("\n\tAkt. Pieps\t\tPieps uebrig\n");
    2. printf("\t----------\t\t------------\n");

    Sollte ebenfalls selbsterklärend sein.
    Was die Zeichen "\t", usw bedeuten - wie oben bereits erwähnt - werde ich euch weiter unten erklären.

    Nun geht es weiter mit der for()-Schleife:

    Quellcode

    1. for(i=0; i<=anzahl; i=i+1)
    2. {
    3. printf("\t%d\t\t\t%d\n\a", i, (anzahl - i));
    4. }

    Bei diesem Code wird die printf()-Zeile solange wiederholt, bis die Variable i gleich, oder kleiner als anzahl ist!

    Wegen einer besseren Übersicht, geben wir nun diese Zeile aus:

    Quellcode

    1. printf("\n");


    Aber nun gibt es ein weiteres Problem:
    Wenn man diesen Code nun compiliert (exe erstellt) und das Programm startet und die nötigen Eingaben eingibt und auf Enter drückt, verschwindet das Fenster sofort wieder, da alle Befehle fertig ausgeführt wurden!

    Dazu gibt es einen kleinen "Trick":

    Quellcode

    1. system("pause");

    Dieser Befehl "pause" verursacht - wie der Name schon sagt - eine Pause.
    Um die Pause zu beenden muss der Benutzer dann einmal auf die Entertaste drücken und erst danach, wird das Programm beendet!

    Natürlich müsst ihr die Struktur (Hauptteil wie oben beschrieben) beibehalten, sonst funktioniert es nicht!
    Der sollte wie folgt aussehen:

    Quellcode

    1. int main(void)
    2. {
    3. /* HIER UNSER CODE, DEN WIR GERADE ERARBEITET HABEN */
    4. return EXIT_SUCCESS;
    5. }


    Nun zum Allgemeinwissen über C:
    Ich habe im Code manchmal komische "Escape-Sequenzen" verwendet.
    Die Sequenz "\n" macht eine neue Zeile in unserer Eingabeaufforderung.
    Und die Sequenz "\t" erzeugt einen Tabluator, die uns eine schöne Tabelle erzeugt.
    Wenn ihr euch den Code genau angsehen habt, werdet ihr auch erkennen, dass in unseren printf() Befehl in der for()-Schleife eine Sequenz vorhanden ist. Nähmlich "\a":

    Quellcode

    1. printf("\t%d\t\t\t%d\n\a", i, (anzahl - i));

    Diese Sequenz erzeugt den berühmten Piepston am PC :)

    Für die, die wirklich zu Faul sind, den Code mühsam abzukopieren, hab ich hier den ganzen Code zusammengefasst:

    Quellcode

    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. int main(void)
    4. {
    5. int i = 0;
    6. int anzahl = 0;
    7. printf("\n\tBitte gib ein, wie oft der PC piepsen soll: ");
    8. scanf("%d",&anzahl);
    9. printf("\n\tAkt. Pieps\t\tPieps uebrig\n");
    10. printf("\t----------\t\t------------\n");
    11. for(i=0; i<=anzahl; i=i+1)
    12. {
    13. printf("\t%d\t\t\t%d\n\a", i, (anzahl - i));
    14. }
    15. printf("\n");
    16. system("pause");
    17. return EXIT_SUCCESS;
    18. }
    Alles anzeigen


    Ich habe euch auch ein ZIP Archiv mit dem Code und mit der fertigen EXE-Datei bereitgestellt:
    download.patschi95.de/pieps

    Viel Spaß damit!

    Ich hoffe, dass euch dieses Tutorial von mir gefällt und euch etwas beim einsteigen in C hilft!

    Wenn ihr Fragen dazu habt, postet diese bitte gleich hier im Thread!


    C Editor:
    Ich würde Boce::Blocks als Editor empfehlen.
    Er ist etwas einfach gehalten, braucht wenig Arbeitsspeicher als Visual Studio.
    Zudem ist das Programm kostenlos und OpenSource.
    Der einzigste Nachteil ist, dass das Programm nur Englisch ist. Sollte aber kein großes Problem sein, dass du kapieren, wie man das Programm steuert :)
    Die Homepage: codeblocks.org

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Patschi ()

  • So als klein Hilfe für Anfänger geht das.
    Aber in den Wiki sollte schon die eine oder anderen Änderung in den Beitrag einfliessen.

    Ach so, warum?
    printf() ist kein Befehl sondern eine Standard-C-Funktion

    System(Pause) -> gehört nicht zum Sprachumfang von C sondern ist eine betriebssystemabhängige Notlösung, die noch nicht einmal benötigt wird, wenn das Programm auf Konsole ausgeführt wird.

    Im Quelltext könnte für die Copy&Paste-Jünger auch noch der Name die Header aufgeführt werden.

    Die Formatierung sollte übersichtlicher werden.

    Ihr mögt das pingelig nennen, aber an den Inhalt einer Wiki stelle ich gehobene Ansprüche.

    MfG bcc-fan