• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Programmieren in C lernen

  • Ersteller Soul Monkey
  • Erstellt am

Soul Monkey

Gast
Hallo ich suche ein Buch bzw. Online Lektüre die einen leichten Einstieg in das Programmieren mit C bringt. Ich habe keinerlei Vorkenntnisse, möchte bis zum Ende des Sommers aber möglichst viel wissen. ;)

Bin bei Amazon auf das Buch C Programmieren von Anfang an von Helmut Erlenkötter gestossen, allerdings steht bei einem der Kommentare das die letzten Kapital nur unter Windows zu bearbeiten seien.

Da ich vorerst aber nur unter Mac OS X programmieren werde (ändert sich aber später) suche ich wenn möglich ein Buch das sich unter beiden System verwenden lässt.

Für sonstige Infos und Links zu der Thematik wäre ich dankbar, falls möglich in deutscher Sprache da ich mich in eine neue Sache gerne genau einlese und nicht weiß wie komplex die englischen Sachen geschrieben sind und ich dann nur die Hälfte gut verstehe was ja bei einem Einstieg nicht gerade sinnvoll ist weil man sich wenig selbst denken kann.

Danke. :)
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
Soul Monkey schrieb:
Für sonstige Infos und Links zu der Thematik wäre ich dankbar, falls möglich in deutscher Sprache
Hier zum Beispiel kannst Du C online lernen. Das Buch kannst Du ggf. auch kaufen.

MacApple
 

schlingel

Melrose
Registriert
06.06.04
Beiträge
2.479
Überlege Dir mal, ob Du das ganze nicht auf C++ ausweiten willst. Da kann ich dir C++ in 21 Tagen ans Herz Legen. Viele haben zwar für die xx in 21 Tagen Reihe nur spott über, aber C++ i21T kann ich persönlich SEHR empfehlen.
 

slayercon

Meraner
Registriert
17.01.05
Beiträge
231
ich habe meinen einstig in java auch mit "java 2 in 21 tagen" gemacht ... und zum anfangen war es klasse ...
 

Soul Monkey

Gast
Danke für eure Antworten.

schlingel schrieb:
Überlege Dir mal, ob Du das ganze nicht auf C++ ausweiten willst. Da kann ich dir C++ in 21 Tagen ans Herz Legen. Viele haben zwar für die xx in 21 Tagen Reihe nur spott über, aber C++ i21T kann ich persönlich SEHR empfehlen.
Wie sehr unterscheiden sich denn C und C++ ? Ich bräuchte erstmal nur C wenn man mit C++ aber auch C programmieren kann und C++ nicht viel schwerer zu lernen ist wäre es eine Möglichkeit.
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
C ist keine echte Teilmenge von C++, im Gegensatz zu C bzgl. Objective-C. Wenn man C oder C++ noch nie gesehen hat, halte ich es für schwierig, beides gleichzeitig vernünftig zu lernen. Dann würde ich mich vielleicht erstmal auf C konzentrieren. Was sind Deine Vorkenntnisse (ach so, keine)? Oder willst Du später - wenn es Richtung Windows gehen soll - dort C++ anwenden? Dann vielleicht lieber gleich C++ lernen (Buchtipp da: Stroustrup, The C++ Programming Language, Addison-Wesley)
 

Soul Monkey

Gast
Derzeit interessiert mich eigentlich nur C da ich dies für mein Elektrotechnik Studium welches ich im Oktober beginne brauche. Dort wird unter Windows und vielleicht Linux programmiert. C++ brauche ich nicht, wenn es auf C aufbauen würde und nicht viel schwerer wäre hätte ich es mir überlegt nicht gleich C++ zu machen.

Objective-C ist später sehr interessant, erstmal will ich aber C können.
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Weißt Du schon, ob die Programme unter Windows dann eine GUI haben sollen? Dann wird es letztendlich wohl auf C++ und QT hinauslaufen. Ansonsten ist der Unterschied zwischen C++ und C gar nicht so gravierend groß. Du kannst eigentlich unbesorgt erst mal mit C loslegen (um den Umgang mit Variablen und die Kontrollstrukturen kennen zu lernen). Ein C-Programm kann halt nicht notwendigerweise mit einem C++-Compiler kompiliert werden. Da sind immer ein paar Modifikationen notwendig.
Hier gibt's übrigens ein paar Wikibooks zu C, vielleicht helfen die Dir schon weiter.
 

Wikinator

Adams Parmäne
Registriert
21.08.04
Beiträge
1.297
ich würde dir erst zu einer "einfachen" Programmiersprache wie Java raten, dann zu C. Sonst kann dich C IMHO am Anfang etwas "erschlagen".
 

Egger1000

Osnabrücker Reinette
Registriert
26.12.03
Beiträge
994
Ich empfehle immer noch zuerst mit einer prozeduralen Programmiersprache, z.B. C anzufangen, um dann den nächsten Schritt zur Objektorientierung (c++ / Java tec.) zu gehen.
Denn man erkennt Zusammenhänge, Aufbau usw. leichter.
Somit fällt es einem auch leichter weitere Programmiersprachen zu erlernen.
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.059
Soul Monkey schrieb:
C++ brauche ich nicht, wenn es auf C aufbauen würde und nicht viel schwerer wäre hätte ich es mir überlegt nicht gleich C++ zu machen.
C++ ist zwar keine echte Obermenge von C, aber die Inkompatibilitäten sind gering. Man kann relativ leicht Programme schreiben, die sich sowohl als C wie auch als C++ Programm compilieren lassen und exakt gleich funktionieren.

Allerdings macht man so etwas in der Realität nicht. C Programierstil ist unter C++ aus gutem Grund nicht gern gesehen, da dies die Fähigkeiten von C++ nicht ausnutzt (was zu einer Reduktion der Fehlerwahrscheinlichkeit führt) und nur zum mehr Fehler führt, da man hier das Zusammenspiel von C Eigenheiten mit denen von C++ zusätzlich beachten muß.

Solange man nur C++ Standardlibrary oder Boost Konstrukte benutzt programmiert man mit C++ deutlich leichter und sicherer als mit C.
 

Soul Monkey

Gast
quarx schrieb:
Weißt Du schon, ob die Programme unter Windows dann eine GUI haben sollen?
Nein weiß ich leider noch nicht. Ich konnte aber heute in Erfahrung bringen das dieses Buch in den Vorlesungen verwendet wird und von den unterrichtenden Professoren veröffentlicht wurde. Über den Inhalt des Buches ist mir leider nichts bekannt.

Bzgl. Java und C erscheint es mir ein Programm der gleichen Funktion in C erstmal einfacher

in C
Code:
#include <stdio.h>

int main (void) {
   printf("Hallo Welt\n");
   return 0;
}

und in Java
Code:
public class HalloWelt {
      public static void main(String[] args) {
          System.out.println("Hallo Java Welt");
          System.exit(0);
      }
}

Kennt jemand das C in 21 Tagen Buch?
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Jaja. C-Programme können manchmal sehr kurz und übersichtlich sein:
Code:
#include <stdio.h>
long a=1e4,d,h; unsigned b,c=21014,e,f[21014],g,i;
main(){for(;b=c,c-=14; i=printf("%04d",e+d/a),e=d%a)
  while(--b) d=h*b+a*(i?f[b]:a/5), g=b*2-1, h=d/g, f[b]=d-h*g;}
Viel Spaß beim Compilieren + Ausführen. Es passiert nichts Schlimmes... :cool:
(Preisfrage: Was macht das Programm?)
 
Zuletzt bearbeitet:

Soul Monkey

Gast
Einen Fehler macht das Programm. :innocent:

Compilierungsversuch im Terminal mit "gcc wasmacheich.c -o Programm" dann sagt das Programm

wasmacheich.c: In function 'main':
wasmacheich.c:2: warning: incompatible implicit declaration of built-in function 'printf'
/usr/bin/ld: can't locate file for: -lcrt1.o
collect2: ld returned 1 exit status
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Füge als erste Zeile mal ein
Code:
#include <stdio.h>
dazu (hab's so auch oben geändert). Bei mir krieg ich dann weder Fehler noch Warnung (auch gcc im Terminal).
 

Soul Monkey

Gast
Hm braucht man dafür die Mac OS SDK's installiert? Habe Xcode bzw. die Developer Tools installiert aber keine SDK's. gcc3 und gcc4 sind aber installiert.

Kommt jetzt der Fehler
wasmacheich.c:1:19: error: stdio.h: No such file or directory
wasmacheich.c: In function 'main':
wasmacheich.c:4: warning: incompatible implicit declaration of built-in function 'printf'
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Konntest Du denn das Hallo-Welt-Programm von oben übersetzen? Das müsste dann auch schiefgehen.
Ich habe auch XCode installiert, aber das SDK braucht man nicht.
Hast Du regelmäßig die Cronjobs laufen lassen? Eventuell wird da etwas nicht gefunden. Zur Sicherheit lass mal bitte
Code:
sudo periodic daily
sudo periodic weekly
sudo periodic monthly
im Terminal abarbeiten. Geht's dann?
 

Soul Monkey

Gast
Seit Mac OS X.4.2 werden die Cronjobs ja selbstständig ausgeführt, habe es nun trotzdem manuell im Terminal gemacht. Funktioniert nun. Danke.

Stellt das Programm Pi samt einiger Kommastellen dar?
 

quarx

Brauner Matapfel
Registriert
17.04.05
Beiträge
8.444
Soul Monkey schrieb:
Stellt das Programm Pi samt einiger Kommastellen dar?
BINGO, der Kandidat erhält 100 Punkte! :-D

P.S.: Das ist der sogenannte "Tröpfelalgorithmus".
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
Soul Monkey schrieb:
Hm braucht man dafür die Mac OS SDK's installiert? Habe Xcode bzw. die Developer Tools installiert aber keine SDK's.
Ganz ohne SDKs geht's nicht. Das DevSDK ist das absolute Minimum, was installiert werden muss. Da ist nämlich, neben vielen anderen, die Header Datei stdio.h drin.

MacApple