Quellcode kompilieren für Anfänger
-
Ich hab mir ein Buch gekauft, um C zu lernen, und das heißt auch, dass ich ein Anfänger bin und 0 Erfahrung in dem Bereich habe. Als Entwicklungsumgebung hab ich mir Dev-C++ heruntergeladen und folgenden Quellcode, wie es im Buch vorgeschrieben ist, eingegeben:
/* bsp10001.c */
#include <studio.h>
main(){
printf("\nDies ist ein erstes C-Programm. \n");
printf("\nWie sie sehen, kann ´printf´ ");
printf("nicht nur Texte drucken,\n");
printf("sondern auch rechnen.\n\n");
printf("13 * 7 = %i \n" , 13 * 7);
}Beim Kompilieren markiert es die erste Zeile mit printf rot und das wars.
Ich hoffe jemand kann mir helfen. Wie gesagt, ich hab absolut keine Erfahrung, deshalb hoff ich auf eine verständliche Antwort und Rücksicht für meine Unwissenheit.
Danke schonmal im Vorraus.
MfG
CouFa
-
Sollt' eher so aussehen:
#include <stdio.h> int main( void ) { printf("\nDies ist ein erstes C-Programm.\n"); printf("\nWie sie sehen, kann 'printf'"); printf("nicht nur Texte drucken,\n"); printf("sondern auch rechnen.\n\n"); printf("13 * 7 = %i \n" , 13 * 7); }
"Printf kann rechnen", *lol*
Mach ein Fenster auf, nimm das Buch, und wirf' es raus.
-
CouFa schrieb:
Ich hab mir ein Buch gekauft, um C zu lernen, und das heißt auch, dass ich ein Anfänger bin und 0 Erfahrung in dem Bereich habe. Als Entwicklungsumgebung hab ich mir Dev-C++ heruntergeladen und folgenden Quellcode, wie es im Buch vorgeschrieben ist, eingegeben:
Nimm lieber Code::Blocks. Dev-C++ ist ein bisschen angestaubt, soweit ich weiß.
/* bsp10001.c */
#include <studio.h>
main(){
printf("\nDies ist ein erstes C-Programm. \n");
printf("\nWie sie sehen, kann ´printf´ ");
printf("nicht nur Texte drucken,\n");
printf("sondern auch rechnen.\n\n");
printf("13 * 7 = %i \n" , 13 * 7);
}Also erstmal heißt es <stdio.h> (von "standard input/output"). Das ist hoffentlich nur falsch abgeschrieben.
Der Rest ist aber wahrscheinlich 1:1 aus dem Buch, was das Buch nicht gerade positiv dastehen lässt.
Fangen wir mal an:
- Die main-Funktion definiert man so:
int main(void) { ...
Das fehlende int war in ANSI-C von 1989 noch OK, ist aber damals schon fragwürdiger Stil. Seit 1999 ist das nicht mehr erlaubt. Korinthenkackerei? Ja vielleicht, aber das Buch bringt dir veralteten Stil bei.
- printf kann rechnen? Nope. Die 13*7 werden berechnet und das Ergebnis wird printf übergeben, die es dann brav ausgibt. (Dazu kommt, dass 13*7 wahrscheinlich schon bei der Übersetzung vom Compiler ausgerechnet wird.)
Hoffen wir mal, dass es nicht so weiter geht ...
Beim Kompilieren markiert es die erste Zeile mit printf rot und das wars.
Es sollte eigentlich die mit der "studio.h" anmeckern, weil es diesen Header nicht gibt. Und es sollte irgendwo ein Fenster geben, in dem die Fehlerausgabe des Compilers zu finden ist. Ohne die kannst du es gleich vergessen. Fehlermeldungen sind zwar nicht immer sofort verständlich, aber doch unverzichtbar.
-
um C zu lernen
Neeeeeiiin
C++ ist viel schoener, ehrlich
Dazu kommt, dass 13*7 wahrscheinlich schon bei der Übersetzung vom Compiler ausgerechnet wird
Wahrscheinlich? Alles andaere waere wohl Wahnsinn.
-
Das ist "C: Programmieren von Anfang an", wo das mit dem printf kann rechnen drin vorkommt. Ein bekanntes Stümperbuch von einem bekannten Stümperautor (Helmut Erlenkötter), dessen Bücher allesamt nicht zu empfehlen* sind.
*: Das ist nur höflich ausgedrückt. Sie zählen zu den Büchern, die einem beim Lesen dümmer machen.
-
Ok, ich bedanke mich für eure Hilfe.
Scheint wohl echt ein Fehlkauf zu sein, dieses Buch.
Ja, das <stdio.h> hab ich nur falsch abgeschrieben, aber das Andere ist direkt aus dem Buch.
Dann werd ich mich wohl mal nach dem C++ Primer oder anderen empfehlenswerten C++ Büchern umschauen, bevor ich fehlerhaftes Programmieren mit dem Erlenkötter-Buch erlerne. Will mich jetzt wohl doch erstmal um C++ kümmern, da es ja objektorientierter ist.MfG
CouFa
-
Ich hab's geschafft
Du wirst es nicht bereuen!
-
CouFa schrieb:
Scheint wohl echt ein Fehlkauf zu sein, dieses Buch.
Ach Quatsch, damit kannst du prima heizen im Winter.
-
SeppJ schrieb:
Das ist "C: Programmieren von Anfang an", wo das mit dem printf kann rechnen drin vorkommt. Ein bekanntes Stümperbuch von einem bekannten Stümperautor (Helmut Erlenkötter), dessen Bücher allesamt nicht zu empfehlen* sind.
*: Das ist nur höflich ausgedrückt. Sie zählen zu den Büchern, die einem beim Lesen dümmer machen.
Wie ironisch, dass dessen Bücher in deiner Signatur empfohlen werden...
-
IrgendeinName schrieb:
SeppJ schrieb:
Das ist "C: Programmieren von Anfang an", wo das mit dem printf kann rechnen drin vorkommt. Ein bekanntes Stümperbuch von einem bekannten Stümperautor (Helmut Erlenkötter), dessen Bücher allesamt nicht zu empfehlen* sind.
*: Das ist nur höflich ausgedrückt. Sie zählen zu den Büchern, die einem beim Lesen dümmer machen.
Wie ironisch, dass dessen Bücher in deiner Signatur empfohlen werden...
Wie ironisch, dass er keinen Einfluss darauf hat was andere Posten.
-
Sone schrieb:
IrgendeinName schrieb:
SeppJ schrieb:
Das ist "C: Programmieren von Anfang an", wo das mit dem printf kann rechnen drin vorkommt. Ein bekanntes Stümperbuch von einem bekannten Stümperautor (Helmut Erlenkötter), dessen Bücher allesamt nicht zu empfehlen* sind.
*: Das ist nur höflich ausgedrückt. Sie zählen zu den Büchern, die einem beim Lesen dümmer machen.
Wie ironisch, dass dessen Bücher in deiner Signatur empfohlen werden...
Wie ironisch, dass er keinen Einfluss darauf hat was andere Posten.
Mein compiler schmeist gerade "argument invalid".
-
Patrickssj6 schrieb:
Sone schrieb:
IrgendeinName schrieb:
SeppJ schrieb:
Das ist "C: Programmieren von Anfang an", wo das mit dem printf kann rechnen drin vorkommt. Ein bekanntes Stümperbuch von einem bekannten Stümperautor (Helmut Erlenkötter), dessen Bücher allesamt nicht zu empfehlen* sind.
*: Das ist nur höflich ausgedrückt. Sie zählen zu den Büchern, die einem beim Lesen dümmer machen.
Wie ironisch, dass dessen Bücher in deiner Signatur empfohlen werden...
Wie ironisch, dass er keinen Einfluss darauf hat was andere Posten.
Mein compiler schmeist gerade "argument invalid".
Schlechter Compiler. Hol dir einen GCC, der hat wenigstens Humor...
-
SeppJ schrieb:
Das ist "C: Programmieren von Anfang an", wo das mit dem printf kann rechnen drin vorkommt. Ein bekanntes Stümperbuch von einem bekannten Stümperautor (Helmut Erlenkötter), dessen Bücher allesamt nicht zu empfehlen* sind.
Sehe ich nicht so.
Bedenkt man wie verzweifelt einige Leute versuchen das Programmieren zu verstehen, so sind die Bücher von Erlenkötter für den Anfang erstklassig, denn er erklärt wirklich jede Codezeile einzeln und ausführlich, so dass es selbst solche Leute verstehen, die noch nie in ihrem Leben eine Programmiersprache angefaßt haben oder auch nur irgendetwas programmiert haben.
Personen, die schon etwas Erfahrung beim Programmieren (auch durch andere Programmiersprachen) gesammelt haben, können natürlich gleich zum Buch von Dennis M. Richtie greifen, aber für absolute Neulinge ist das Buch von Erlenkötter keine schlechte Wahl. Allerdings wird man dann um den Kauf eines weiteren Buches nicht herumkommen, denn das Buch "C: Programmieren von Anfang an" reicht gerademal zum Reinschnuppern in C, aber nicht um C vollumfänglich zu lernen.
Für letzteres ist dieses Buch besser geeignet:
http://www.amazon.de/Programming-Language-Prentice-Hall-Software/dp/0131103628/Also für blutige Anfänger ist das Buch von Erlenkötter ganz gut zu gebrauchen.
Man sieht's ja auch an den Rezensionen wo selbst angehende Informatiker zugeben, am Programmieren 1 Kurs zu scheitern und dann mit diesem Buch eine echte Nothilfe gefunden haben.
Und bei dem geringen Preis kann man auch nicht meckern.
12 € kann man doch locker verschmerzen.
-
Bin anderer Meinung schrieb:
Bedenkt man wie verzweifelt einige Leute versuchen das Programmieren zu verstehen, so sind die Bücher von Erlenkötter für den Anfang erstklassig, denn er erklärt wirklich jede Codezeile einzeln und ausführlich, so dass es selbst solche Leute verstehen, die noch nie in ihrem Leben eine Programmiersprache angefaßt haben oder auch nur irgendetwas programmiert haben.
Was bringt das, wenn sie's dann falsch lernen? Es ist ja nicht so, dass man unbedingt C lernen muss. Es gibt auch andere Sprachen, die deutlich leichter zu lernen sind und mit denen man vor allem deutlich weniger kaputt machen kann.
Personen, die schon etwas Erfahrung beim Programmieren (auch durch andere Programmiersprachen) gesammelt haben, können natürlich gleich zum Buch von Dennis M. Richtie greifen
Namedropping fail
Also für blutige Anfänger ist das Buch von Erlenkötter ganz gut zu gebrauchen.
Man sieht's ja auch an den Rezensionen wo selbst angehende Informatiker zugeben, am Programmieren 1 Kurs zu scheitern und dann mit diesem Buch eine echte Nothilfe gefunden haben."selbst angehende Informatiker" soll was bedeuten? Kann man auch als "zockende Kiddies, die was mit Computer studieren wollen und im 2. Semester abbrechen" interpretieren. Die Rezensionen sagen leider nichts aus, da sie nur die subjektive Sicht des Lesers wiedergeben. Der mag ja der Meinung sein, da ganz viel verstanden zu haben. Die erzeugten Programme sprechen dann vielleicht eine andere Sprache.
Und bei dem geringen Preis kann man auch nicht meckern.
12 € kann man doch locker verschmerzen.Um das Geld gehts doch gar nicht.
BTW ich kritisiere abstrakt deine Argumentation an sich. Das Buch selbst kenne ich nicht, nur das, was ich jetzt hier gesehen habe. Vielleicht ist es ja ganz toll ... ersetze im Zweifelsfall alle Vorkommen von Erlenkötter durch Jürgen Wolf, der hat ja auch ganz positive Rezensionen usw.
Noch was. Es scheint hier zwei unterschiedliche Ausgangspunkte zu geben. Ich und ich nehme an die meisten hier, die über solche Bücher schimpfen, nehmen die Perspektive von jemandem ein, der von sich aus das Programmieren lernen will. Der möglichst viel verstehen und gut sein will. Wenn wir hier Fragen sehen, die erkennen lassen, dass da einer auf die "schiefe Bahn" kommt, gehen natürlich die Alarmglocken los.
Andere haben ausschließlich eine externe Motivation. Den Programmieren I Kurs schaffen zum Beispiel. Und später nur noch minimal mit C zu tun haben. Vielleicht ist für die sowas wie dieses Buch ganz gut. Vielleicht auch nicht. Philosophische Frage.
-
Du meinst das Buch von Kerningham und Ritchie. Ein Klassiker aber didaktisch nicht gut, bzgl Standardgemäß und sauteuer.
Ich halte es für Anfänger untauglich.
Erlenkötter hat Fehler (printf rechnet)und schafft somit beim aufbauenden Lernen Freude durch nette Compilermeldungen und Verständnisschwierigkeiten.
Ich habe alle drei gelesen (Beweis ich kenne die Namen)
Besser:
[url]C - Einführung und professionelle Anwendung. IT-Studienausgabe (mitp Professional) von Ulla Kirch-Prinz und Peter Prinz[/url]
Didaktisch gut
Formal (Standard und Programmierweise) ok
Preislich gut
Mit Übungen
-
faltBlatz schrieb:
Kerningham
[...]
(Beweis ich kenne die Namen)
Hmmmm.
:p
-
Gut, das es auffällt.
Aber ham hat doch was!?
-
Bashar schrieb:
Vielleicht ist für die sowas wie dieses Buch ganz gut. Vielleicht auch nicht.
Ein Fachbuch mit elementaren Fehlern beim fachlichen Inhalt ist immer schlecht. Für jeden. Aus jedem Blickwinkel.
-
Bashar schrieb:
Was bringt das, wenn sie's dann falsch lernen?
Sie lernen es nicht falsch.
Das mit dem herumreiten auf "printf kann auch rechnen" ist Korinthenkackerei, wer sich ordentlich mit der Programmierung beschäftigt, der wird auch selber lernen wie das genau mit dem mathematischen Ausdruck innerhalb der printf Anweisung zu verstehen ist und da man Text von 320 Seiten eh nicht auswendig lernt, wird man im Laufe des Lernens sich eh nicht mehr daran erinnern. Alles was bleibt, ist dass man einen mathematischen Ausdruck innerhalb einer printf Anweisung und vielen weiteren einkapseln kann, das ist alles und sicherlich nichts schlechtes.
Es ist ja nicht so, dass man unbedingt C lernen muss. Es gibt auch andere Sprachen, die deutlich leichter zu lernen sind und mit denen man vor allem deutlich weniger kaputt machen kann.
Wer C deswegen lernen will, um damit z.B. einen bestimmten µC programmieren zu können, weil er selbst z.B. aus dem Elektronik- oder Modellbaubereich kommt, der wird mit Sicherheit sich nicht noch mit anderen Sprachen befassen wollen, sondern gleich mit C beginnen, insbesondere wenn's für den µC kein Basic gibt und Assembler sich noch weniger anbietet.
Also für blutige Anfänger ist das Buch von Erlenkötter ganz gut zu gebrauchen.
Man sieht's ja auch an den Rezensionen wo selbst angehende Informatiker zugeben, am Programmieren 1 Kurs zu scheitern und dann mit diesem Buch eine echte Nothilfe gefunden haben."selbst angehende Informatiker" soll was bedeuten? Kann man auch als "zockende Kiddies, die was mit Computer studieren wollen und im 2. Semester abbrechen" interpretieren.
Wie kommst du darauf, das ist pure Spekulation deinerseits?
Die Konzepte der Programmierung muss man nur einmal lernen, dann kann man es praktisch auf alle weiteren Sprachen anwenden, wer eine Sprache kann, der lernt auch die anderen, auch dann, wenn diese ein völlig anderes Programmierparadigma verfolgen.
Zumal ein Infostudium nicht nur aus Programmieren besteht.
Manche haben Startschwierigkeiten und kommen später damit gut zu recht und nicht jedes Programmierer Ass ist für ein Informatikstudium geeignet, viele dieser "guten Programmierer" scheitern auch einfach an Mathe, Automaten & Formale Sprachen, Dankenbanken oder Compilerbau.
Insofern ist deine Aussage, dass diese Leute die solche Einsteigerprogrammierbücher brauchen, später das Studium nicht schaffen würden, nichts sagend.[QUOTE]
Die Rezensionen sagen leider nichts aus, da sie nur die subjektive Sicht des Lesers wiedergeben. Der mag ja der Meinung sein, da ganz viel verstanden zu haben. Die erzeugten Programme sprechen dann vielleicht eine andere Sprache.
[/QUOTE)
Es gibt nicht einen Erstsemester und Programmieranfänger, der nach dem ersten Semester schon gute Programme oder gar guten Code schreiben kann.
Das braucht viel Zeit, viel Erfahrung und noch ein paar mehr Bücher die auf das Thema "guten Code schreiben" eingehen und nicht auf das Lernen einer Programmiersprache.
Was bringen dir z.B. Programmierer die eine Programmiersprache gut beherrschen, wenn diese nicht fähig sind, ein abstraktes Problem in, bei der OOP, z.B. ordentlich gewählten Klassennamen mit einem guten Gesamtkonzept zu packen oder schlichtweg in gute Software umzusetzen?Und bei dem geringen Preis kann man auch nicht meckern.
12 € kann man doch locker verschmerzen.Um das Geld gehts doch gar nicht.
Man kann nicht behaupten, daß das Geld rausgeschmissen wäre.
BTW ich kritisiere abstrakt deine Argumentation an sich. Das Buch selbst kenne ich nicht,
LOL, du redest also über ein Buch das du nie gelesen hast.
Ich kenne das Buch, ich habe es nämlich gelesen und für meinen Einstieg in C benutzt und das sogar obwohl ich vorher schon Programmiererfahrung mit Turbo Pascal, Assembler und Basic hatte und das Buch hat mir nicht geschadet.Ganz im Gegenteil, ich fand das Buch sehr gut und ich habe wesentlich schlechtere Einsteigerbücher oder solche, die sich als solche ausgeben gelesen.
Das Buch "Java als erste Programmiersprache" ist z.B. so ein Fehlgriff für den Einstieg in Java, akademisch mag es ordentlich sein und als Nachschlagewerk half es mir auch später, aber zum Einstieg kann man dieses Buch vergessen, weil es daran scheitern Zusammenhänge zu vermitteln, so dass der Leser auch im Stande ist später aus den einzelnen Sprachelementen etwas größeres zu weben. Daran scheitert dieses Buch nämlich.
Begünstigt wird das ganze leider auch dadurch, dass z.B. die Eingabe nicht kurz vorweggegriffen wird, sondern erst ganz spät kommt.
In der Praxis nervt das dann nämlich erheblich, wenn der Anfänger noch nicht mit dem Debugger arbeitet und verschiedene Eingaben an seinem Programmcode austesten will und dann für jede Wertänderung den Java Code neu compilieren soll.
In guten Programmiersprachen nimmt man die Benutzereingabe in vereinfachter Form vorweg, so dass man sie frühzeitig benutzen kann und später baut man sie dann in einem eigenen Kaptiel gründlich aus.
Dieses Java Buch scheitert daran.Einen echten nutzen zog ich jedenfalls aus diesem Java Buch erst dann, als ich Java schon gut kannte und dessen Konzept und das der OOP auch verstand.
Als Einsteigerbuch ist es allerdings nicht geeignet.nur das, was ich jetzt hier gesehen habe. Vielleicht ist es ja ganz toll ... ersetze im Zweifelsfall alle Vorkommen von Erlenkötter durch Jürgen Wolf, der hat ja auch ganz positive Rezensionen usw.
Ich habe keine Bücher von Jürgen Wolf gelesen, aber so viel weiß ich,
Erlenkötter ist nicht Jürgen Wolf und ich werde somit beide also gewisse nicht in die gleiche Schublade stecken.Noch was. Es scheint hier zwei unterschiedliche Ausgangspunkte zu geben. Ich und ich nehme an die meisten hier, die über solche Bücher schimpfen, nehmen die Perspektive von jemandem ein, der von sich aus das Programmieren lernen will.
Gerade dann ist das Erlenkötterbuch gut geeignet, eben weil man damit C lernen kann ohne einen Tutor, Dozenten, Prof oder Lehrer zur Hand haben muss um das Programmieren mit C zu verstehen.
Selbst die Zeigerarithmetik wird in dem Buch gut erklärt.
Vielleicht solltest du bei Gelegenheit erstmal in das Buch reinschauen, bevor du wegen der printf Haarspalterei, die am Anfang sicherlich deswegen so grob gewählt wurde, um den Lernenden zu ermutigen und aufzuheitern.
Denn manche Programmierbücher die zwar präzise, aber dadurch auch oft langatmig und trocken wirken, sind auch nicht besonders motivierend.Andere haben ausschließlich eine externe Motivation. Den Programmieren I Kurs schaffen zum Beispiel. Und später nur noch minimal mit C zu tun haben. Vielleicht ist für die sowas wie dieses Buch ganz gut. Vielleicht auch nicht. Philosophische Frage.
Wie ich bereits schrieb, dieses Buch ist für alle gut, die noch nie mit einer Programmiersprache gearbeitet haben.
-
faltBlatz schrieb:
Du meinst das Buch von Kerningham und Ritchie. Ein Klassiker aber didaktisch nicht gut, bzgl Standardgemäß und sauteuer.
Ich halte es für Anfänger untauglich.Deswegen habe ich ja oben geschrieben, dass das Buch von Dennis M. Ritchie für fortgeschrittene Programmierer die schon einmal Programmiert haben, geeignet ist.
Besser:
[url]C - Einführung und professionelle Anwendung. IT-Studienausgabe (mitp Professional) von Ulla Kirch-Prinz und Peter Prinz[/url]
Didaktisch gut
Formal (Standard und Programmierweise) ok
Preislich gut
Mit ÜbungenVon Ulla Kirch-Prinz und Peter Prinz habe ich das Buch für C++, wenn das C Buch genauso aufgebaut ist, ist es sicherlich nicht schlecht, allerdings ist es auch 2-3 mal so teuer wie das von Erlenkötter und mit seinen 864 Seiten dauert es sicherlich auch bedeutend länger, es auch durchzuarbeiten. Zumal es auch keine besondere Kunst ist, eine Sprache ausführlich zu erklären, wenn man hunderte von Seiten dafür benutzen kann.
Für einen Informatikstudenten sind diese 864 Seiten allerdings sicher ein Nachteil, denn als Infostudent hat man im ersten Semester mehr als genug zu tun, so daß man nur langsam im Buch vorankommt wenn man die anderen Fächer nicht schleifen lassen will.
Das Buch von Dennis M. Ritchie vermittelt die Sprache C auf 274 Seiten, damit ist man also wesentlich schneller am Ziel.
Für Studenten kann das ein wesentlicher Faktor sein.Das Buch von Erlenkötter ist dagegen für den ersten Kurs als Ergänzung meistens ausreichend und man hat es sehr schnell durchgelesen, denn es ist nur ein Taschenbuch.
D.h. obwohl die Seitenzahl größer ist, als das Buch von Ritchie, so enthält es dennoch weniger Text, es ist kürzer, man kommt also schneller ans Ziel.