#include <pronix.de>

Home

 Programmieren
C-Programmieren
Perl
CGI

 Bücher
C von A bis Z
C M&T easy
Rezensionen

 Service
Links
Feedback
Mailingliste
Newsletter

 Sonstiges
FAQ
Impressum
 

C - M+T Easy . leicht, klar, sofort

Dieses Buch richtet sich an den absoluten Anfänger in Sachen Programmierung. Damit können Sie sich ein Fundament für tiefergründige Themen aufbauen. Wollen Sie nun tiefer in die Sprache C eintauchen, bspw. mit dem Buch "C von A bis Z" oder in andere Programmiersprachen wie bspw. C++ oder Java einsteigen, können Sie dies nach diesem Buch ohne Bedenken machen. Die Programmiersprache C eignet sich immer noch als Grundlage für weitere Programmiersprachen.

Kurzbeschreibung der einzelnen Kapitel


TITEL


C - M+T Easy . leicht, klar, sofort

(14,95 Euro)


C - M+T Easy . leicht, klar, sofort

Autor: Jürgen Wolf

Kurzbeschreibung:

Zu jedem Thema ein ausführbares Listing

über 100 Abbildungen wie Screenshots und logische Programmablaufpläne

Am Ende von jedem Kapitel Aufgabenstellungen mit Lösungen am Ende des Buchs

16 Kapitel - (336 Seiten)

Inhaltsbeschreibung:

  • Kapitel 1 : Schnelleinstieg
  • Kapitel 2 : Hier geht es darum, dem Leser zu erklären, was ein Programm ist und wie der Computer dieses Programm intern verwaltet.
  • Kapitel 3 : In diesem Kapitel wird dem Anfänger gezeigt, wie man mit einem Compiler, Programme erstellen kann. Dies wird anhand des kostenlos erhältlichen Bloodshed-Dev-C++ Compilers für MS-Windows (mit deutscher Oberfläche) und dem gcc-Compiler für Linux erklärt. Gerade in diesem Fall werden nämlich Anfänger häufig sich selbst überlassen.
  • Kapitel 4 : In diesem Kapitel wird Schritt für Schritt erklärt wie C-Programme in der Regel aufgebaut sind.
  • Kapitel 5 : Als nächstes geht es um die Datenverarbeitung mit Variablen. Alle Vorhandenen Datentypen und Rechenoperatoren werden recht detailliert erklärt. Es werden einfache Berechnungen mit diesen Datentypen durchgeführt. Ebenso die Laufzeitbibliothek <math.h>, welche nützliche mathematische Funktionen enthält, wird in der Praxis erklärt.
  • Kapitel 6 : Hier wird die formatierte Eingabe von der Tastatur und die formatierte Ausgabe auf dem Bildschirm behandelt.
  • Kapitel 7 : In diesem Kapitel lernt der Leser, wie man den Programmfluss mit sogenannten Kontrollstrukturen steuern kann. Dabei werden alle Konstrukte von Verzweigungen und Schleifen behandelt.
  • Kapitel 8 : Jetzt  lernt der Leser, was eine Funktion ist und wie diese definiert wird. Vor allem aber, wie man für ein bestimmtes Problem, das es zu Lösen gilt, eigene Funktionen bzw. Teilfunktionen schreiben kann.
  • Kapitel 9 : In diesem Kapitel werden die zusammengesetzten Datentypen, wie Arrays und Strings, behandelt. Dabei lernen Sie, eine geordnete Folge von Werten eines bestimmten Datentyps zu speichern und zu bearbeiten. Dazu  werden auch einige häufig verwendete Funktionen der Laufzeitbibliothek <string.h>, für die Bearbeitung von Strings (Zeichenketten), behandelt.
  • Kapitel 10: Darin geht es um die Zeiger (engl. Pointer). Dies ist ein recht gefürchtetes und häufig missverstandenes Thema der C-Programmierung. Das die Zeiger gar nicht so kompliziert sind, wie man denkt, beweist dieses Kapitel.
  • Kapitel 11: In Kapitel 9 wurden zusammengesetzte Datentypen vom selben Typ durchgenommen. Hier erfahren Sie, wie Sie mit Hilfe von Strukturen, zusammengesetzte Datentypen von unterschiedlichen Typen realisieren können.
  • Kapitel 12: Eine grundlegende Bedeutung in der C-Programmierung, hat die dynamische Speicherreservierung zur Laufzeit eines Programms. Wie dies funktioniert und was Sie dabei beachten müssen, erfahren Sie in diesem Kapitel.
  • Kapitel 13: Hier wird es ernst. Es geht um dynamische Datenstrukturen. Dabei werden Sie alles komplizierte in C auf einmal verwenden. Nämlich die Zeiger, Strukturen und die dynamische Speicherverwaltung. Als Beispiel werden Sie dabei ein umfangreiches Lagerverwaltungs-Programm schreiben. Aber keine Sorge, ich habe das Thema mit Hilfe von vielen Abbildungen und Schritt-für-Schritt Erklärungen so einfach wie möglich gehalten.
  • Kapitel 14: In diesem Kapitel geht es ganz um die Datei-Ein/Ausgabe. Also, wie Sie ein Programm auf einen Datenträger speichern und wieder laden können. Am Schluss des Kapitels wenden Sie diese Kenntnisse an dem Lagerverwaltungs-Programm von Kapitel 14 an.
  • Kapitel 15: Was so alles passiert, wenn ein Programm übersetzt und gelinkt wird, lernen Sie in diesem Kapitel. Vor allem, wie Sie dabei eingreifen können. Sie lernen, wie Sie Makros und Konstanten verwenden können. Ebenso wie ein Quellcode in eine andere Datei ausgelagert werden kann.
  • Kapitel 16: Im letzten Kapitel dieses Buches geht um den weiteren Verlauf Ihrer Programmierkarriere. Speziell darum, was Sie nach diesem Buch als nächstes lernen können. Schließlich haben Sie sich die Grundlage einer sehr guten Programmiersprache angeeignet.
  • Anhang A : Der ASCII-Zeichensatz
  • Anhang B : Glossar
  • Anhang C : Lösungen zu den Aufgaben der einzelnen Kapitel

Bestellen bei

Lehmanns Fachbuchhandel online
Amazon.de
Markt und Technik
 

FAQ - Häufig gestellt Fragen


Der Text in Seite 32 ist etwas kurz gehalten. Auf der angegebenen Internet-Seite gibt es mind. 4 Compiler mit etwa 20 komponenten: Was soll ich nun herunterladen und wie installieren?

Ich empfehle Ihnen diese Version des Compilers:
Dev-C++ 5.0 beta 7 (4.9.7.0) (10 MB) with Mingw/GCC 2.95.3
da es mit der neueren Version mit dem gcc 3.20 noch so seine Probleme gibt. Und hier auch gleich der direkte Link zum Download:
http://mapage.noos.fr/dev5/devcpp4970-gcc295.exe
Danach folgt der typische Vorgang des Download:

Zuerst erfolgt der Hinweis, nicht auf eine bereits bestehende Installation des Dev-C++ darüber zu installieren. Sofern eine alte Version vorhanden ist muss diese zuvor De-installiert werden. Nachdem der OK-Button gedrückt wurde erfolgt die GNU General Public License, welche Sie mit dem "I Agree"-Button zustimmen. Danach erscheint die Paketauswahl, welche Sie auf "Typical" stehen lassen könnne und mit "Next" weiterklicken. Jetzt wählen Sie nur noch den Pfad der Installation aus, welchen man auch in der Vorgabe belässt. Jetzt nur noch auf "Install" drücken und die Installation des Compilers ist soweit fertig. Beim starten oder danach, werden Sie noch noch der Sprache der Entwicklungs- umgebung gefragt, welche Sie höchstwahrscheinlich auf "German" einstellen werden.

Nun müsste die Installation fertig sein und Sie können loslegen.


Auf der Seite 76 beginnt ein Programm mit der Wegberechnung mit der Quadratwurzel (Funktion sqrt()). Warum kann ich es auf Linux nicht kompilieren?

Zu dem Problem mit der Bibliothek math.h unter Linux habe ich etwas im Kapitel "5.13 Mathematische Funktionen" in dem Kästchen "Hinweis" erwähnt:

Hinweis
 

Damit Linux-User die Laufzeitbibliothek math.h ebenfalls verwenden können, müssen Sie diese Bibliothek mit dem Compilerflag -lm hinzulinken:

gcc -o programm programm.c -lm


Updates zum Buch

Bei der nächsten Auflage werden die folgenden Fehler im Buch behoben sein:

  • zum Programm auf S.73:
    Ich vermute , Sie wollen die mittlere Leistung des Autors berechnen, in dem Sie die kine- tische Energie durch die Zeit dividieren. Dies ist eigentlich nur korrekt, wenn der Körper überer die gesamte Distanz kontinuierlich beschleunigt und erst im letzten Moment seine Endgeschwindigkeit erreicht. Die Endgeschwindigkeit, welche man zum Berechnen der ki- netischen Energie zugrunde legen musste, wäre aber dann der doppelte Wert Ihrer Durch- schnittsgeschwindigkeit.
    Selbst wenn Sie aber Ihren Ansatz weiter verfolgen, haben Sie trotzdem im Programm noch einen Fehler: Sie dividieren nämlich die kinetische Energie nicht durch die Zeit sondern durch die Geschwindigkeit.
  • S.120:
    Die Zeile int zahl; sollte blau sein.
  • Seite 123:
    Da scheint irgendwie das Programm von Seite 126 auf die Seite 123 gekommen sein (nur ohne else if()). Ursprünglich sollte sich hier folgendes Listing befinden:
    #include <stdio.h>
    int main ()
    {
    int zahl;
    
    printf("Bitte eine Zahl eingeben: ");
    scanf("%d",&zahl);
    
    if (zahl<=50)
      {
        if (zahl==50)
          {
             printf("Die eingegebene Zahl ist gleich 50\n");
          }
        else
          {
             printf("Die eingegebene Zahl ist kleiner als 50\n");
          }
      }
    else
      {
        printf("\n\t Die eingegebene Zahl ist größer als 50\n");
      }
    
    printf("Programmende\n");
    return 0;
    }
  • S.133:
    Auf der Seite 133 in der 2. Übersichtstabelle über Inkrement und Dekrement ist bei der "Bedeutungsspalte" etwas durcheinander gekommen.

    Richtige Reihenfolge:

    var++    Inkrement in Postfix-Schreibweise
    ++var    Inkrement in Präfix-Schreibweise
    var--    Dekrement in Postfix-Schreibweise
    --var    Dekrement in Präfix-Schreibweise
    Die mittleren Inkrement und Dekrement waren vertauscht worden. Die Ausgabe des Programms stimmt nicht mit dem Quelltext überein.
  • S.140:
    Die Ausgabe des Programms stimmt nicht mit dem Quelltext überein.
  • S.169:
    Abschnitt 5: Zweites "Kreisfläche" sollte "Kreisumfang" heißen.

    void ergebnis_ber(float erg, int welche)
    {
      if(welche == 1)
         printf("Kreisflaeche : %.2f\n",erg);
      else if(welche == 2)
         printf(Kreisdurchmesser : %.2f\n",erg);
      else if(welche == 3)
         printf("Kreisumfang : %.2f\n",erg);
      else
         printf("Fehler beim Aufruf der Funktion\n");
    }
    
  • S.172:
    Drittletzte Zeile und letzte Zeile. In den o. g. Zeilen ist aus dem vorher kursiv geschriebenen pi (sechte Zeile von unten) ein p geworden. Sollte natürlich pi heißen.
  • S.187:
    In der Include-Anweisung wurde hinter stdio.h die schließende Klammer vergessen (>).
  • S.194:
    Im oberen Quelltext wird die Stringvariable name mit 50 Zeichen (name [50]) deklariert im unteren mit 80 (name[80]). Die Deklaration mit 80 Zeichen ist korrekt.

    Außerdem wird der Name string verwendet. Da Anjuta Syntaxhighlightning beherrscht und es in C++ auch einen Typ string gibt, wird diese Variable in manchen Editoren im Quelltext hervorgehoben.
  • S.220:
    Rechtschreibfehler: Bei der Artikelbezeichnung stehen Sie aber schon vor dem Problem, dass es sich hier bereits um ein Array handeln (handelt).
  • S.226:
    Im Quelltext fehlt in der printf-Anweisung hinter Artikel der Zeilenumbruch.
  • S.229:
    Hinter einigen Zeilen steht am Ende einiger Zeilen eine 8. Hier sollte ein Pfeil stehen, der symbolisiert, dass die Programmzeile weitergeht. Dieser ist nicht in der richtigen Schriftart gedruckt worden.
  • S.229:
    bei case 2 folgende Zeile:
    if(nummer > count || nummer < 0) 
    richtig wäre aber
    if(nummer >= count || nummer < 0)  
  • S.234:
    Siehe Fehler von Seite 226 und Seite 229
  • S.242:
    Warum soll das Programm hier aus geführt werden?
  • S.271:
    Hier sollte auch die Änderung bei while(abfrage != 5) farbig hervorgehoben sein.
  • S.281:
    In der Zeile printf("Konnte Datei... fehlt das Komma und die Variable filename.
  • S.282:
    Die Variable name ist der Ausgabe des Vornamens zugeordnet, die Variable vname der Ausgabe des Nachnamens. Dies sollte natürlich umgekehrt sein.
  • S.285/286:
    Es ist nicht unbedingt ein Fehler, aber wenn ich es ein paar Seite voher selbst gepredigt habe, muss ich es wohl auch einhalten. Beim Quellcode sollte der Stream mit fclose() wieder geschlossen werden.








 

 

© 2000 - 2003 Jürgen Wolf