Probleme beim Programmieren lernen

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Hallou

Probleme beim Programmieren lernen

Beitrag von Hallou » Mi Jan 09, 2013 12:41 pm

Hallo,
Ich habe mich entschieden, mir wenigstens ein paar Grundlagen fürs Programmieren bei zu bringen und wollte deswegen mit der Sprache C anfangen. Dummerweiße scheitere ich schon beim ersten Projekt "Hello World". Ich komme bis zu der Stelle, ab der ich kompilieren muss, dort kommt eine Fehlermeldung, oder es passiert gleich garnichts mehr. :|
Ich habe inzwischen verschiedene Tutoriale und Compiler ausprobiert, leider ohne Erfolg.
Einmal habe ich die Anleitung von dieser Seite benutzt (hoffe, verlinken ist ok): http://www.c-programmieren.com/C-Lernen.html
und dazu den Dev-C++ verwendet und das zweite Mal eine Anleitung von http://www.proggen.org/doku.php?id=c:co ... codeblocks mit Code Blocks.
Obwohl beim Zweiten das Programm eigentlich schon vorgeschrieben ist, funktioniert es trotzdem nicht. Ich habe auch schon versucht, die Programme im Kompatibilitätsmodus zu starten, ohne Erfolg.
Ich benutze Windows 8 und Windows 8 Pro, beides in der 64 Bit-Version.
Hier habe ich mal die Meldung von Code Blocks:
-------------- Build: Debug in Hello_World (compiler: GNU GCC Compiler)---------------

mingw32-g++.exe -o bin\Debug\Hello_World.exe obj\Debug\main.o
mingw32-g++.exe: Internal error: Aborted (program collect2)
Please submit a full bug report.
See <URL:http://www.mingw.org/bugs.shtml> for instructions.
Process terminated with status 1 (0 minutes, 1 seconds)
0 errors, 0 warnings (0 minutes, 1 seconds)


Woran könnte es liegen? Wenn es am Windows liegen sollte: Welcher läuft unter der 8 Version?

Vielen Dank schonmal im Vorraus

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Probleme beim Programmieren lernen

Beitrag von cloidnerux » Mi Jan 09, 2013 12:52 pm

Hi und Willkommen im Forum.
Woran könnte es liegen?
Dein Compiler ist zu alt, bzw MinGW sagt dir ja:

Code: Alles auswählen

Aborted (program collect2)
Das ein Programm "collect2" abgebrochen hat. Das wird höchstwahrscheinlich daran liegen, dass deine MinGW installation zu alt ist. Versuch doch einfach mal MinGW(http://www.mingw.org/) in der neusten Version herunter zu laden und zu installieren.
Dev-C++ wird geraten nicht mehr zu verwenden, da es zu zeiten Programmiert wurde, als ISDN noch als schnell galt.
Es gibt zwar hier eine Version, die anscheinend noch gewartet wird, mit anscheinend sehr neunem GCC:
http://sourceforge.net/projects/orwelld ... =directory,
aber man muss das tot Pferd nicht noch bis zum Stall reiten.
Hast du Code::Blocks nach unserer Anleitung MIT MinGW installiert?
Wenn ja, hast du hoffentlich den Pfad zu den MinGW bins in deine Umgebungsvariable Eingetragen(http://www.proggen.org/doku.php?id=c:co ... dows:mingw).
Dann könntest du auch versuchen, deine Datei über die Konsole zu Compilieren.

MfG cloidnerux
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Probleme beim Programmieren lernen

Beitrag von Xin » Mi Jan 09, 2013 1:05 pm

Moin Hallou, willkommen bei proggen.org!
Hallou hat geschrieben:Ich habe mich entschieden, mir wenigstens ein paar Grundlagen fürs Programmieren bei zu bringen und wollte deswegen mit der Sprache C anfangen. Dummerweiße scheitere ich schon beim ersten Projekt "Hello World".
Zu Deiner Beruhigung: ich habe 3 Tage gebraucht, bevor ich das erste Hello World in C kompiliert bekommen haben. Das ist der Hintergrund, weswegen ich großen Wert auf die Beschreibungen lege, wie man den Compiler erstmals nutzen konnte. ;-)
Hallou hat geschrieben: Ich komme bis zu der Stelle, ab der ich kompilieren muss, dort kommt eine Fehlermeldung, oder es passiert gleich garnichts mehr. :|
Ich habe inzwischen verschiedene Tutoriale und Compiler ausprobiert, leider ohne Erfolg.
Einmal habe ich die Anleitung von dieser Seite benutzt (hoffe, verlinken ist ok): http://www.c-programmieren.com/C-Lernen.html
und dazu den Dev-C++ verwendet und das zweite Mal eine Anleitung von http://www.proggen.org/doku.php?id=c:co ... codeblocks mit Code Blocks.
Obwohl beim Zweiten das Programm eigentlich schon vorgeschrieben ist, funktioniert es trotzdem nicht. Ich habe auch schon versucht, die Programme im Kompatibilitätsmodus zu starten, ohne Erfolg.
Ich benutze Windows 8 und Windows 8 Pro, beides in der 64 Bit-Version.
Okay, da gibt's zwei Möglichkeiten: Es könnte an Windows 8 liegen, das habe ich noch nicht ausprobiert, werde ich im Verlauf der Woche aber nun tun, sofern es sich nicht herausstellt, dass es an DevC liegt - was ich eher vermute.

Bitte deinstalliere DevC. DevC wird seit sehr langer Zeit nicht mehr weiterentwickelt und war immer fehlerhaft.
Schau dann bitte im Programmeverzeichnis nach, wo Codeblocks liegt, ob es ein MinGw-Verzeichnis gibt und dort in bin der Compiler liegt (bei mir: C:\Program Files (x86)\CodeBlocks\MinGW\bin).
Falls nicht, installiere bitte Codeblocks mit dem MinGW neu. Spätestens dann sollte es funktionieren.
Ansonsten muss Codeblocks nochmal nach den Compilern suchen. Offenbar hat Codeblocks die Uralt-Compiler, die DevC installiert hat gefunden und die fliegen Dir bei Windows 8 wohl um die Ohren.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Hallou
Beiträge: 25
Registriert: Mi Jan 09, 2013 3:20 pm

Re: Probleme beim Programmieren lernen

Beitrag von Hallou » Mi Jan 09, 2013 3:33 pm

Hab mich jetzt mal registiert.
Ich habe, wie empfohlen den Dev-C deinstalliert und Blocks, dieses mal mit MinGW (Ordner ist auch vorhanden).
Tatsächlich startet das Programm endlich!
Dann kann ich ja jetzt endlich mal loslegen und mich in die Programmiersprache einarbeiten.
Danke für die schnelle Hilfe!

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Probleme beim Programmieren lernen

Beitrag von cloidnerux » Mi Jan 09, 2013 3:46 pm

Dann kann ich ja jetzt endlich mal loslegen und mich in die Programmiersprache einarbeiten.
Danke für die schnelle Hilfe!
Gut zu wissen. Und zum helfen ist das Forum schließlich da.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Probleme beim Programmieren lernen

Beitrag von Xin » Mi Jan 09, 2013 4:14 pm

Hallou hat geschrieben:Ich habe, wie empfohlen den Dev-C deinstalliert und Blocks, dieses mal mit MinGW (Ordner ist auch vorhanden).
Tatsächlich startet das Programm endlich!
Dann kann ich die Windows 8 Installation noch etwas schleifen lassen. ;-)
Hallou hat geschrieben:Dann kann ich ja jetzt endlich mal loslegen und mich in die Programmiersprache einarbeiten.
Solltest Du weitere Hilfe benötigen und das Tutorial von c-programmieren.com weiterhin verwenden, so schreib das bitte dazu.
Ansonsten gehe ich davon aus, dass sich Fragen auf unser Tutorial beziehen.

Fragen und Kritik sind ausdrücklich willkommen, da wir bei unserem Tutorial auf Deine Fragen reagieren können und es entsprechend verbessern bzw. korrigieren können, wenn Dinge schwer verständlich oder gar falsch sind.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Hallou
Beiträge: 25
Registriert: Mi Jan 09, 2013 3:20 pm

Re: Probleme beim Programmieren lernen

Beitrag von Hallou » Do Jan 10, 2013 1:27 pm

Ich werde jetzt erstmal das proggen.org Tutorial ausprobieren.
Mein bisheriger Eindruck ist, dass es wirklich sehr ausführlich und professionell erklärt wird! Zudem habe ich bei Problemen immernoch das Forum als Hilfe.

Zu dieser Anleitung habe ich aber auch gleich wieder eine Frage:
Bei Kapitel "Das Programm Hello Proggen.org" steht am Ende, dass man ruhig mehrere printf() vor und nach return einfügen kann. Vor return funktioniert es noch, da konnte ich auch schon mit ein paar Funktionen spielen (z.B statt neue Zeile einfach \n am Ende, dann wechselt es automatisch).
Wenn ich aber etwas nach return einbaue, passiert einfach nichts. Soll das so sein?

Allgemeine Frage: Gabs/Gibt es eigentlich auch die Programmiersprachen A und B? :mrgreen: Und wieso findet man diese nirgents mehr?
Dann kann ich die Windows 8 Installation noch etwas schleifen lassen. ;-)
Windows 8 ist schon eine gute Idee von Microsoft. Dank der Live-Kacheln hat man alles auf einem Blick und der Geschwindigkeitszuwachs gegenüber Vista ist extrem, aber auch gegenüber dem 7er spürt man nochmal etwas. Die Integrierte Cloud ist zwar praktisch, trotzdem ist die Online-Version etwas umfangreicher. Zudem ist es ratsam, die Dateien vor dem Upload mit einem eigenen Programm zu verschlüsseln.
Leider ist es noch nicht komplett ausgereift. Manchmal hängen die Apps ein bisschen und wenn er gerade Updates im Hintergrund installiert, hab ich aufeinmal Anzeigefehler, die erst nach Neustart wieder weg sind.
Was anderes erwartet man aber von MS inzwischen garnicht mehr :D

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Probleme beim Programmieren lernen

Beitrag von cloidnerux » Do Jan 10, 2013 1:49 pm

Bei Kapitel "Das Programm Hello Proggen.org" steht am Ende, dass man ruhig mehrere printf() vor und nach return einfügen kann. Vor return funktioniert es noch, da konnte ich auch schon mit ein paar Funktionen spielen (z.B statt neue Zeile einfach \n am Ende, dann wechselt es automatisch).
Wenn ich aber etwas nach return einbaue, passiert einfach nichts. Soll das so sein?
Man muss immer zwei Dinge unterscheiden: Was von der Programmiersprache aus möglich ist, wie also deine Konstrukte aussehen können und was von der Funktionalität her möglich ist.
C erlaubt, dass du nach dem "return" noch Befehle ausführen kannst, weil es Syntaktisch möglich ist. Aber return(Eng: zurückkehren) ist ein Befehl, der an dieser stelle das Programm beendet. Daher wird nach dem return nichts mehr ausgeführt. Daher ist es funktional nicht möglich, nach dem return noch printfs zu schreiben.


Und zu A und B, ja es gibt sie und sie werden nicht mehr genutzt, weil sie einfach unpraktisch waren. Wenn du mal hier schaust:
http://de.wikipedia.org/wiki/Liste_von_ ... ersprachen
wirst du merken das es sehr viele Programmiersprachen gibt, von denen aber viele eher tot sind oder nur eine Nische besetzten, da sie halt einfach nicht allgemein nutzbar sind.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Probleme beim Programmieren lernen

Beitrag von Xin » Do Jan 10, 2013 1:53 pm

Hallou hat geschrieben:Zu dieser Anleitung habe ich aber auch gleich wieder eine Frage:
Bei Kapitel "Das Programm Hello Proggen.org" steht am Ende, dass man ruhig mehrere printf() vor und nach return einfügen kann. Vor return funktioniert es noch, da konnte ich auch schon mit ein paar Funktionen spielen (z.B statt neue Zeile einfach \n am Ende, dann wechselt es automatisch).
Wenn ich aber etwas nach return einbaue, passiert einfach nichts. Soll das so sein?
Ja, so soll das sein, da return zum Betriebsystem zurückkehrt. Damit wird main verlassen und das Programm ist somit gewissermaßen beendet, ohne dass die nachfolgenden printf()s jemals erreicht werden.
Hallou hat geschrieben:Allgemeine Frage: Gabs/Gibt es eigentlich auch die Programmiersprachen A und B? :mrgreen: Und wieso findet man diese nirgents mehr?
B ist noch enger verwandt mit BCPL. B stammt von Ken Thomsen und Dennis Ritchie, drei Jahre später entwickelte Dennis Ritchie B weiter und nannte es C. B wurde also schon abgelöst, bevor es irgendwen interessiert hat.
Zu A wünsche ich mir auf proggen.org bald ein Tutorial. A ist kurz für Assembler, also die menschenlesbare(re) Form von Maschinensprache-Befehlen.
Hallou hat geschrieben:
Dann kann ich die Windows 8 Installation noch etwas schleifen lassen. ;-)
Windows 8 ist schon eine gute Idee von Microsoft. Dank der Live-Kacheln hat man alles auf einem Blick und der Geschwindigkeitszuwachs gegenüber Vista ist extrem, aber auch gegenüber dem 7er spürt man nochmal etwas. Die Integrierte Cloud ist zwar praktisch, trotzdem ist die Online-Version etwas umfangreicher. Zudem ist es ratsam, die Dateien vor dem Upload mit einem eigenen Programm zu verschlüsseln.
Ich bin kein Fan irgendwelcher Clouds.
Ich will auch arbeiten können, wenn das Internet gerade nicht verfügbar ist, ich will dass meine Daten nicht durch einen unglücklichen Zufall, wie er regelmäßig bei Facebook und Co. passiert, für die ganz Welt offen liegen. Und meine persönlichen Briefe und Fotos müssen auch nicht auf Servern liegen, die ich nicht kontrolliere.
Hallou hat geschrieben:Leider ist es noch nicht komplett ausgereift. Manchmal hängen die Apps ein bisschen und wenn er gerade Updates im Hintergrund installiert, hab ich aufeinmal Anzeigefehler, die erst nach Neustart wieder weg sind.
Was anderes erwartet man aber von MS inzwischen garnicht mehr :D
Das sehe ich anders. Windows 7 war das erste brauchbare OS von Microsoft. Ich erwarte von Microsoft, dass der Weg, der von XP zu Windows 7 geführt hat, gradlinig weitergegangen wird. Ich erwarte also eine Verbesserung von Windows 7. Ich verstehe den Kompromiss, denn man zugunsten von Tablets und den jetzt erscheinenden Touch-Laptops macht, aber ich gehöre zu den Leuten, die ein OS installieren, weil sie damit arbeiten wollen. Und da bin ich nicht sonderlich kompromissbereit.

cloidnerux hat geschrieben:Und zu A und B, ja es gibt sie und sie werden nicht mehr genutzt, weil sie einfach unpraktisch waren. Wenn du mal hier schaust:
http://de.wikipedia.org/wiki/Liste_von_ ... ersprachen
wirst du merken das es sehr viele Programmiersprachen gibt, von denen aber viele eher tot sind oder nur eine Nische besetzten, da sie halt einfach nicht allgemein nutzbar sind.
Das dort aufgeführte "A" ist nicht das A von ABC ;-)
Das dort aufgeführte "A+" kam erst 1988, also Jahre nach C++.


PS: Ich habe hierzu mal einen Satz in dem Kapitel ergänzt, dass das Programm bei return wirklich endet. Somit hat hast Du, Hallou, bereits dazu beigetragen, das Tutorial zu verbessern :-)
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten