Ein paar fragen zu c

hallo,

ich hab ein paar fragen zur programmierung allgemein.

-gibt es große unterschiede zwischen c, c+, und c++ ??
-was sind die unterschiede ??
-was ist die zur zeit am meisten gefragte und verwendete sprache ??
-ist es möglich sich c++ selbst mit büchern oder übers internet beizubringen ?? wenn ja, was sind gute bücher oder internetseiten zu diesen themen ??

danke für eure antworten…michael

hi

-gibt es große unterschiede zwischen c, c+, und c++ ??
-was sind die unterschiede ??

c++ ist im gegensatz zu c objektorientiert
c+ kenne ich nicht (gibt es das?)

-was ist die zur zeit am meisten gefragte und verwendete
sprache ??

Die meist-verwendete sprache ist visual basic

-ist es möglich sich c++ selbst mit büchern oder übers
internet beizubringen ?? wenn ja, was sind gute bücher oder
internetseiten zu diesen themen ??

Ja, über bücher. wobei es ist zu sagen dass c++ nicht gerade eine einfache sprache ist und für anfänger eher nicht geeignet.
bücher gibt es z.b. unter
http://www.microsoft.com/germany/mspress/default.asp
(nach c++ suchen)

liebe grüsse
giuseppe

hallo,

vielen dank für deine antwort. ein paar fragen haben sich wieder aufgetan :
-wo wird visual basic und wo c++ hauptsächlich verwendet ??
-kann ich mir visual basic auch selbst beibringen ??

ich habe bisher im zuge meines mathematikstudiums nur fortran gelernt, gibt es irgendwelche ähnlichkeiten ??

danke…michael

hallo

-wo wird visual basic und wo c++ hauptsächlich verwendet ??

Das ist schwer zu sagen.

Visual Basic eignet sich eher für Anwendungen mit Datenbank zugriffe. Da die Sprache eher einfach ist, ist die entwickungszeit für ein Programm relativ klein. Die Sprache eignet sich aber auch gut um Komponenten wie DLL’s zu schreiben.

C++ kann eigentlich alles was VB kann, ist aber einiges komplexer als VB. C++ ist schneller als VB. C++ eignet sich eher für Diense, Komponenten, NT-Integrationen und Maschinensteuerungen u.s.w.

Schlussendlich ist es dem Programmierer überlassen was er mit welcher Programmiersprache machen will.

-kann ich mir visual basic auch selbst beibringen ??

Ja eher als C++

ich habe bisher im zuge meines mathematikstudiums nur fortran
gelernt, gibt es irgendwelche ähnlichkeiten ??

kenne leider fortran nicht.

gruss, Giuseppe

Hallo Michael,

-gibt es große unterschiede zwischen c, c+, und c++ ??

jupp

C gehört zu den prozeduralen Sprachen, soll heißen, man zerlegt das Problem solange in kleinere Probleme, bis sich die Zerlegung selbst programmiert :wink: Soll 'n Scherz sein - Prozedural heißt ganz einfach, daß man auf verschiedenen Zerlegungsebenen sozusagen Aufrufbäume konstruiert, die immer feinere Äste bekommen, die Blätter sind meist sehr einfache Funktionen. Hauptmerkmal ist die Funktion (oder das Funktionalisieren) und das Ursprungsproblem wird zu einer Funktion von Funktionen…

C kann man daher durch ein Merkmal beschreiben: Jeder Ausdruck in C ist eine Funktion.
Der beste Einstieg in C ist das Buch von Kerningham/Ritchie - sozusagen die Bibel.

C+ ist ein sanfter Paradigmenwechsel von Prozedural nach Objektorientiert, aber leider nur in Ansätzen. Dies ist wohl der Grund, weswegen dieser Dialekt relativ schnell wieder gestorben ist. Leider habe ich mich damit nie eingehender beschäftigt, so daß ich zu wenig darüber aussagen kann

C++ ist C erweitert um (fast alle) Konzepte der Objektorientierung. Soll heißen, daß dem Entwickler, Designer und Anwender erstmalig in einer Sprache reden können - der Objetorientierung, in welcher die Datenstrukturen an sich die Hauptträger der Kommunikation sind… Hmm darüber kann man tonnenweise Papier erzeugen. C++ hat stärkere Typbindung, ermöglicht Konzepte wie Überladung, Heraldik, etc.
gute Bücher zum Einstieg:

in Objektorientierung (fast alles schwere Kost)

  • das von Österreich (Titel hab ich leider nicht mehr präsent, ich glaube es hieß so etwa wie Einführung in die objektorientierte Analyse oder so??)
  • die Hämmer von jeweils Jacobson, Booch und Rumbaugh (die OO-Päpste,die jetzt mittlerweile sogar bei Rational zusammen arbeiten)
  • Buschmann, design patterns

in C++ die Bibel von B.Stroustrup (C++, die Programmiersprache)
und jede Menge betriebssystemabhängiges Beiwerk
… Und dann gibts da noch C#, ein (meiner Ansicht nach) Javaabklatsch von Microsoft, allerdings nicht ohne Reiz

-was sind die unterschiede ??

hmm… C++ ist eine Erweiterung von C, soll heißen das du mit C++ wählen kannst zwischen prozeduralem Stil (also C), Mischstil mit OO und reiner Objektorientierung, C++ zwingt dich allerdings nicht, einen Weg zu wählen, sondern du kannst deinen eigenen Stil bilden (Im Gegensatz zu anderen Sprachen, z.B.smalltalk)

-was ist die zur zeit am meisten gefragte und verwendete
sprache ??

schwer zu sagen, aber C++ ist sicher vorne dabei. Hauptkonkurrent ist wohl Delphi (Pascal/Modula-Weiterentwicklung) und Visual Basic (beide jeweils auf microsoft-Seite) in Unix wohl immer noch C.

-ist es möglich sich c++ selbst mit büchern oder übers
internet beizubringen ?? wenn ja, was sind gute bücher oder
internetseiten zu diesen themen ??

… hmm es gibt tonnenweise Bücher, wenn du also Autodidakt bist, so empfehle ich dir die Dinger von oben, ansonsten lernst du am meisten (meiner Ansicht nach) von fremdem Code… einfach nur anschauen und zu verstehen versuchen. Gute Webseiten gibt’s auch haufenweise, z.B. den www.codeguru.com mit diversen Artikeln

Gruß Patrick Joas

Hallo Michael

vielen dank für deine antwort. ein paar fragen haben sich
wieder aufgetan :
-wo wird visual basic und wo c++ hauptsächlich verwendet ??
-kann ich mir visual basic auch selbst beibringen ??

ich habe bisher im zuge meines mathematikstudiums nur fortran
gelernt, gibt es irgendwelche ähnlichkeiten ??

Fortran ist ja auch eine prozedurale Sprache, insofern ist die Denkweise für alle diese Sprachen die gleiche, im Gegensatz zu diversen KI-Sprachen.

Das Hauptproblem beim erlernen einer Programmier-Sprache ist immer das logische Denken, also zu erkennen wie man ein Problem in Mathematisch formulierbare Form bringt und dabei auch unerwartete Zustände erkennt und behandelt (z.B. eine falsche Eingabe wie Text statt Zahl). Hier haben die meisten Leute ihre Probleme, denn man muss dem Computer eben jedes Detail beibringen! Wenn du mal eine (prozedurale) Programmier-Sprache beherscht ist es eigentlich nicht so schwer eine Andere zu erlernen. Die Grundlagen einer strukturierten Programmierung (Flussdiagram, Jackson, Nassi-Schneidermann etc.) sind ja erstmal unabhängig von einer bestimmten Programmier-Sprache.

Wenn du nur ab und zu Programme für Windows schreiben willst, ist sicher VisualBasic die erste Wahl. In VB hast du sehr schnell eine funktionierende Windows-Oberfläche mit allem drum und dran, alles ohne grossen Programmier-Aufwand. Auch ist die Macro-Sprache von MS-Office (VisualBasic for Application = VBA) identisch mit VB. Wenn’s rechenintensiv ist, wird VB dann aber schnell zur lahmen Ente.

Wenn du Programme für was anderes als Windows schreiben willst kommt dann nur C(++) in Frage. Windows-Programme sind hiermit aber etwas schwieriger zu schreiben, da man sich um viele der Windows-Details selber kümmern muss, gleichzeitig ist das dann aber auch eine Stärke, da der Profi mehr möglichkeiten hat in den Aublauf einzugreifen.

Wie schon erwähnt ist C++ eine Erweiterung von C. Auch wenn du C++ lernst ist und bleibt die Basis C erweitert mit den OO-Konstrukten.

MfG Peter(TOO)

PS: Meine Windows-Programme sind meist „gemischt“ Programmiert: Die Oberfläche, AktiveX und so in VB, die kritischen und rechenintensiven Teile in C.

Moin,

-gibt es große unterschiede zwischen c, c+, und c++ ??

Ja.

-was sind die unterschiede ??

C++ ist eine Erweiterung von C, vor allem um objektorientierte Techniken. Du kannst also C lernen und nach und nach Dinge von C++ übernehmen.

-was ist die zur zeit am meisten gefragte und verwendete
sprache ??

Ich habe vor ein paar Monaten gelesen, daß C++ von Java abgelöst worden ist, weiß aber nicht mehr, wo das war.
Das ist im Grunde auch nicht besonders wichtig, C ist eine gute Grundlage für sowohl C++ als auch Java als auch Chash.

-ist es möglich sich c++ selbst mit büchern oder übers
internet beizubringen ??

Nicht einfach, aber möglich. Ich hatte einen guten Lehrer und bin immer noch dankbar dafür.
Java dürfte einfacher sein.

wenn ja, was sind gute bücher oder internetseiten zu diesen
themen ??

Kernighan/Ritchie (3446154973/0131103709) wird immer wieder empfohlen.
Ansonsten finde ich Fragen von Anfängern entspannend, auch weil ich weiß, wie lange man über Kleinigkeiten brüten kann.

Thorsten

Moin,

-gibt es große unterschiede zwischen c, c+, und c++ ??

Prozedural heißt ganz einfach, daß man auf verschiedenen
Zerlegungsebenen sozusagen Aufrufbäume konstruiert, die immer
feinere Äste bekommen, die Blätter sind meist sehr einfache
Funktionen.

Klingt ja ganz einfach.

gute Bücher zum Einstieg:

  • die Hämmer von jeweils Jacobson, Booch und Rumbaugh (die
    OO-Päpste,die jetzt mittlerweile sogar bei Rational zusammen
    arbeiten)

Für Anfänger ungeeignet.

  • Buschmann, design patterns

Du meinst ‚Pattern-oriented Software Architecture‘? Klingt ja nicht schlecht, sollte man das noch lesen, wenn man ‚Design Patterns‘ von der Go4 kennt?

in C++ die Bibel von B.Stroustrup (C++, die
Programmiersprache)

Für Anfänger völlig ungeeignet.

ansonsten lernst du am meisten (meiner Ansicht nach) von
fremdem Code… einfach nur anschauen und zu verstehen
versuchen.

Bei dieser methode kann man viel Zeit verschwenden, um schlechten Code zu verstehen. Lieber selbst programmieren.

Thorsten

Moin,

Visual Basic eignet sich eher für Anwendungen mit Datenbank
zugriffe.

Wenn ich meinen Kunden VBA für Datenbankzugriffe empfehlen würde, würden sie beim Gehen nichtmal die Tür zu machen. Ich kenne das nur in Embedded C und mit C+±Wrappern.

Da die Sprache eher einfach ist, ist die entwickungszeit
für ein Programm relativ klein.

Dafür ist das Ende der Fahnenstange auch schnell erreicht. Schon während der Ausbildung habe ich mich über Beschränkungen von VBA geärgert, jetzt lerne ich jeden Tag mehr, was man mit C und seinen Kindern machen kann.

Thorsten

Moin,

ich hab ein paar fragen zur programmierung allgemein.

Nachdem ich mir die anderen Antworten angesehen habe, meine ich, daß Du noch ein paar Informationen geben solltest. Wieviel Erfahrung hast Du in Fortran? Andere Sprachen? Warum willst Du C (oder was immer) lernen? Welche Plattform? Wieviel Geld willst Du investieren?

Ich persönlich mag Java am liebsten, aber es gibt viele Dinge, die ich jeweils nur in C, Perl oder auch mit Skripten lösen würde.

Thorsten

Hallo

VB ist nicht gleich VBA.

Gruss, Giuseppe

Moin,

VB ist nicht gleich VBA.

Nö, Visual Basic ist die Entwicklungsumgebung, die VBA als Sprache nutzt. Ändert das irgendetwas?

Thorsten

Hi

VBA ist nur eine kleine Teilmenge von VB.

Ich bin einfach nicht deiner Meinung, dass mit VB keine Professionelle Projekte durchgezogen werden können, wie unsere Erfahrung zeigt.

Gruss, Giuseppe

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Moin,

VBA ist nur eine kleine Teilmenge von VB.

Ja klar, die Entwicklungsumgebung hat natürlich mehr Teile als die Sprache.

Ich bin einfach nicht deiner Meinung, dass mit VB keine
Professionelle Projekte durchgezogen werden können, wie unsere
Erfahrung zeigt.

Ich bin auch nicht dieser Meinung, warum behauptest Du das also?

Thorsten

Hi Again

Ich bin auch nicht dieser Meinung, warum behauptest Du das
also?

Weil Du das geschrieben hast:

Wenn ich meinen Kunden VBA für Datenbankzugriffe empfehlen würde, würden sie beim Gehen nichtmal die Tür zu machen. Ich kenne das nur in Embedded C und mit C+±Wrappern.

Dafür ist das Ende der Fahnenstange auch schnell erreicht. Schon während der Ausbildung habe ich mich über Beschränkungen von VBA geärgert, jetzt lerne ich jeden Tag mehr, was man mit C und seinen Kindern machen kann.

gruss, Giuseppe

Ein paar Fragen zu VBA
MOin,

Weil Du das geschrieben hast:

Das ist für Dich das Gleiche wie „Mit VBA können keine professionellen Produkte durchgezogen werden“? Für mich nicht.

Zur Erläuterung:

Wenn ich meinen Kunden VBA für Datenbankzugriffe empfehlen
würde, würden sie beim Gehen nichtmal die Tür zu machen. Ich
kenne das nur in Embedded C und mit C+±Wrappern.

Ja, das ist so, mal abgesehen davon, daß ich eher programmiere als mit Kunden zu reden. Es geht nämlich um Datenbanken nicht geringer Größe, die natürlich nicht auf Windows laufen. Wenn ich VBA vorschlagen würde, würde man mich höchstens fragen, was ich geraucht habe und ob ich noch in paar Gramm übrig habe.
Deine Aussage bezieht sich nur auf einen recht kleinen Ausschnitt der Systemlandschaft, darum ging es mir vor allem.

Dafür ist das Ende der Fahnenstange auch schnell erreicht.

Jepp. Ich hatte mal ein Problem, daß ganz einfach zu lösen gewesen wäre, wenn man von einer PictureBox hätte ableiten können. Du kannst die ganze OO-Programmierung also vergessen.

Mal abgesehen davon ist Visual Basic deutlich teurer als ein guter C/+±Compiler.

Thorsten

mOIn!

Also ich persönlich würde dir von C und Konsorten abraten.
Zugegeben, in dieser Sprache kann man wirklich alles programmieren, aber sie hat einfach einen zu hohen Frustfaktor.

Wie z.B., daß ich keine Int-Variable ohne einen Cast mit einer Long-Variable vergleichen kann oder die unflexible Stringverwaltung oder daß man keinen in einer Funktion erzeugten Zeiger zurückgeben kann oder oder oder…

Sprich:C und C++ sind trotz all ihrer Vorteile einfach unkomfortabel

Welche Sprache(n) du lernen solltest, hängt von der Zielrichtung ab.
Für Web-basierte Programme sind Perl und PHP (deren Syntax fast identisch ist) wohl die richtige Wahl,
für Windows-Projekte Delphi oder VB,
für plattformübergreifende Programme Java(++).
Zum Thema Java wäre noch zu sagen, daß man sich an das Standard-Java gewöhnen sollte. Die diversern plattformspezifischen Erweiterungen haben wohl keine lange Lebensdauer.

Wenn du grafische Programme für Linux machen willst, bleiben (ausser C [höllisch schwer]) noch Schnittstellen zw.
Perl und Tcl/Tk und natürlich Java.
Seit kurzem gibt es auch eine grafische Pascal-Entwicklungsumgebung für Linux. Ich weiß im Moment den Namen nicht mehr.

Du kannst mir mailen, wenn du weiter was wissen willst.

cu, holli

-kann ich mir visual basic auch selbst beibringen ??

Ja eher als C++

das ist aber eine sehr subjektive aussage - es ist doch direkt abhängig von geduld+gripps, den man verwendet.

ich persönlich finde es merkwürdig warum basic mit c++ verglichen wird … die zeiten von gwbasic oder qbasic sind doch längst vorbei oder nicht … es eignet sich bestenfalls zum zeigen vor einer schulklasse (um dort den werdenden programmiereren etwas zu zeigen, was sie nach der schule nie wieder sehen :smile:

fakt ist, dass c++ (wie java) platformunabhänig ist, weil es auf den compiler ankommt … hat vb(a) denn einen compiler ??
in java kann man objekt-orientiert programmieren (wie mit c++) oder man kann es bleiben lassen - es gibt ja nun inzwischen diverse vorlagen (templates) die das programmieren vergleichsweise wie das ausmalen eines bilderbuches wirken lassen (RAD …)

  1. fakt - wer OOP beherrscht (oder wenigstens versteht) der hat die prozedurale programmierung schon hinter sich und wird auf lange zeit keine probleme mehr beim programmieren haben.

soweit ich weiss wurde pascal zu einer zeit entwickelt als programmieren am rechner noch nicht möglich war (wegen der verfügbarkeit von arbeitsplatz-pc’s …) - es diente lediglich der vermittlung von programmier-denkweisen.

programmieren reduziert sich letztlich auf das lösen von problemen (das aufschreiben in einer prog-sprache ist codieren … nicht programmieren !)

cout

das ist aber eine sehr subjektive aussage - es ist doch direkt
abhängig von geduld+gripps, den man verwendet.

Ja, richtig. Das ist meine Meinung. Da vb viel weniger komplexer ist als c++ finde ich es deshalb einfacher zum lernen.

… die zeiten von gwbasic oder qbasic sind

doch längst vorbei oder nicht … es eignet sich bestenfalls
zum zeigen vor einer schulklasse

es geht hier auch nicht um qwbasic oder qbasic sondern um visual basic, dass übrigens die meistverbreitete Programmiersprache ist.

fakt ist, dass c++ (wie java) platformunabhänig ist, weil es
auf den compiler ankommt … hat vb(a) denn einen compiler ??

Ja stell dir vor, vb hat einen eigenen compiler.
Platformunabhängigkeit ist schön, aber oft gar nicht verlangt.

in java kann man objekt-orientiert programmieren (wie mit c++)
oder man kann es bleiben lassen - es gibt ja nun inzwischen
diverse vorlagen (templates) die das programmieren
vergleichsweise wie das ausmalen eines bilderbuches wirken
lassen (RAD …)

Visual Basic ist auch objekt orientiert. Der grosse Nachteil ist aber dass Obejkte nicht vererbt werden können. Dieses Manko wird aber mit Visual Baisc 7 eliminiert.

Ja stell dir vor, vb hat einen eigenen compiler.

ok ich hab mich noch nicht so tief damit befasst, ich werde es auch nicht tun … für mich ist M$…und speziell basic nur eine makrosprache, die den "viren"programmierern tür und tor öffnet

Visual Basic ist auch objekt orientiert. Der grosse Nachteil
ist aber dass Obejkte nicht vererbt werden können. Dieses
Manko wird aber mit Visual Baisc 7 eliminiert.

super - das klingt ja so als ob M$ „seine“ programmiersprache langsam den „richtigen“ anpasst … wenn man nach und nach alle vorteile einer anderen sprache übernimmt, kann man eine von beiden am schluss weglassen.

also kann man dem ursprünglichen autor dieses beitrages genauso gut raten sich mal ein c++ buch durchzulesen (von MuT z.b.) und danach am besten nochmal lesen und DANN erst entscheiden ob es erlernbar ist oder nicht.

am ende ist die definition der sprache doch uninteressant… die programmiermöglichkeiten zählen … ich sehe keinen grund von c++ abzuschweifen, wenn die M$ produkte jetzt erst mit diversen möglichkeiten ausgestattet werden. (nur um ein stückchen vom markt-kuchen zubekommen)

http://www.inprise.com/products/