Anfängerfrage zu C++

Dieses Thema im Forum "Mac OS X Entwickler, Programmierer" wurde erstellt von max.k, 22.10.2005.

  1. max.k

    max.k Thread Starter MacUser Mitglied

    Beiträge:
    172
    Zustimmungen:
    3
    MacUser seit:
    30.11.2003
    Hallo,
    wir haben in der schule begonnen mit c++.
    dort nutzen wir visuall studio c++, oder so.
    nun habe ich das progrämmchen aus der schule in xcode eingegeben und dann erst einmal fehler meldungen bekommen. die habe ich aber wegbekommen. nun meine frage: ich habe zwei pdf's angehängt, das eine ist so wie es in xcode fehler gibt (uebung3) das ander macht keine fehler(main).
    wieso muß ich es so abändern damit es läuft?

    ich habe auch festgestellt das xcode vielleicht etwas zu umfangreich ist für meine belange, gibt es da vielleicht was das dem programm der schule mehr ähnelt?

    ich habe auch schon das SubEthaEdit getestet aber das schein nur ein editor zu sein, wie kann ich da compileren?

    Das sind wieder einmal viele fragen, aber ich hoffe ja das ihr mir da weiter helfen könnt.
    danke
    gruß max
     

    Anhänge:

  2. hoppeSP

    hoppeSP MacUser Mitglied

    Beiträge:
    348
    Zustimmungen:
    3
    MacUser seit:
    27.05.2005
    Ich nutze nicht Visual Studio, aber wenn dein Programm vorher ohne "std" auskam, wird vermutlich oben im Programm folgendes gestanden haben:

    namespace std;

    Das kannst du auch in Xcode verwenden und dann wäre "std::" redundant.

    Ich finde Xcode eigentlich optimal und es ist auch wirklich einfach zu bedienen. Neues Projekt erstellen (C++ Tool) und auf gehts ;) Apfel+S gespeicher, Apfel+R Programm ausführen.
    Also Visual Studio (hatte mir das mal an der Universität angeschaut) finde ich zur Einarbeitung deutlich komplexer.

    Gruß,
    Dennis

    PS: Ein paar Leerzeichen würden deinem Code übersichtlicher gestalten. Zumindest für Java gibt es einen Style-Guide. Der ist ganz nett zu lesen - auch ohne große Kenntnisse ... http://java.sun.com/docs/codeconv/
     
    Zuletzt bearbeitet: 22.10.2005
  3. schaary

    schaary MacUser Mitglied

    Beiträge:
    227
    Zustimmungen:
    0
    MacUser seit:
    24.09.2004
    Dein Problem ist der ANSI-Standard für C++. Dieser führt sogenannte "Namensräume", auf englisch "namespace" ein. Dies hat den Sinn, dass man Namen für Variablen unf Funktionen sich nicht ständig neu ausdenken muss. Man öffnet einen Namensraum, benennt seine Variablen wie man will und muss sich keine Gedanke über die Namen machen. Zum Beispiel kannste jetzt einfach eine eigene Funktion cout definieren, ohne mit der Funktion aus dem Standard-Namensraum std::cout in Konflikt zu geraten. Damit Du aber weiterhin auch die Funktion für Ausgaben auf stdout verwenden kannst, musst Du seit ANSI-C++ den Namensraum vor dem Funktionsaufruf angeben: std::cout.

    Wenn DU weisst, dass Du im ganzen Programm nur auf einen Namensraum zugreifen wirst, kannst Du auch ganz weit oben 'namespace std;' in Dein Programm schreiben. Dann wird für jeden Funktionsaufruf angegenommen, dass die Funktion in dem Namensraum std definiert ist.

    Das war zwar ein bisschen lang, aber vielleicht macht es die Sache etwas klarer.

    Wenn Du XCODE überreden willst, Deine Programme aus der Schule zu verwenden, musst Du abstellen, dass der nach ANSI-C++ Standard übersetzt.

    Grüße
     
  4. Badener

    Badener Gast

    Ich würde das Programm anders schreiben - bin aber auch kein Experte.

    Konnte es nur im Terminal ausprobieren, komme gerade an XCode nicht ran (Installationsprobleme usw.)

    Allerdings sollten beim Compilieren zwischen XCode und Terminal eigentlich keine Unterschiede sein. Ergo laufen sie beide bei mir - habe aber nicht probiert, ob die Lösungen stimmen......

    //Quadratische Gleichung
    #include <iostream>
    #include <math.h>

    using namespace std;

    int main()
    {
    double a,b,c,x1,x2,x;
    cout <<"\n Mit diesem Programm koennen Sie quadratische Gleichungen loesen.";
    cout <<"\n a? ";
    cin >> a;
    cout <<"\n b? ";
    cin >> b;
    cout <<"\n c? ";
    cin >> c;
    if(a==0)
    {
    x=-b/c;
    cout<<"\n x="<<x;
    }
    else
    if (b*b-(4*a*c)>=0)
    {
    x1=(-b+sqrt(b*b-4*a*c))/(2*a);
    x2=(-b-sqrt(b*b-4*a*c))/(2*a);
    cout <<"\n x1="<<x1;
    cout <<"\n x2="<<x2;
    }
    else
    {
    cout <<"\n keine reelle Loesung !!!";
    }
    cout <<"\n\n Bis zum naechsten mal.";
    return 0;
    }

    Und das andere Programm würde ich so schreiben:

    //Quadratische Gleichung
    #include <iostream>
    #include <math.h>

    using namespace std;

    int main()
    {
    double a,b,c,x1,x2,x;
    cout <<"\n Mit diesem Programm koennen Sie quadratische Gleichungen loesen."<<endl;
    cout <<"a? "<<endl;
    cin >> a;
    cout <<"b? "<<endl;
    cin >> b;
    cout <<"c? "<<endl;
    cin >> c;
    if(a==0)
    {
    x=-b/c;
    cout<<"x="<<x;
    }
    else
    if (b*b-(4*a*c)>=0)
    {
    x1=(-b+sqrt(b*b-4*a*c))/(2*a);
    x2=(-b-sqrt(b*b-4*a*c))/(2*a);
    cout <<"x1="<<x1<<endl;
    cout <<"x2="<<x2<<endl;
    }
    else
    {
    cout <<"keine reelle Loesung !!!"<<endl;
    }
    cout <<"\n\n Bis zum naechsten mal."<<endl;
    return 0;
    }

    Edit: Sorry für die katastrophale Formatierung....
     
  5. Rakor

    Rakor MacUser Mitglied

    Beiträge:
    2.785
    Zustimmungen:
    3
    MacUser seit:
    05.11.2003
    Zu deiner anderen Frage: Wenn du kein XCode willst (ich mag es auch nicht so) dann empfehle ich als Editor VIM. Kompilieren kannst du das ganze dann mit dem gcc (auch direkt aus dem Vim herraus).
     
  6. Badener

    Badener Gast

    Ich widerspreche nur ungern - aber für einen Anfänger finde ich VIM zu heftig.

    Ich würde dir SubEthaEdit oder TextWrangler (beide umsonst) empfehlen - dort schreibst Du deine Programme und hast auch Syntax Highlighting (oder wie das heißt....)

    Compilieren kannst Du im Terminal.
    Bsp.: Du hast eine Datei test.cpp
    Dann tippst Du "g++ test.cpp"
    Er compiliert und erzeugt die Datei a.out, die Du mit "./a.out" dann starten kannst.


    Edit: Es sei denn, es würde sich jemand bereiterklären :D:D, mal eine HowTo für den VIM zu schreiben - wirklich nur die Basics (wenn ich danach google, finde ich immer viel zu komplexe Themen und Beispiele :mad:)
     
    Zuletzt von einem Moderator bearbeitet: 22.10.2005
  7. Incoming1983

    Incoming1983 MacUser Mitglied

    Beiträge:
    7.597
    Zustimmungen:
    1
    MacUser seit:
    23.07.2005
    Es gibt genügend Tutorials und Befehlsreferenzen im Web für vim.

    Außerdem ist es ein sehr mächtiges Tool ;-)
     
  8. dannycool

    dannycool MacUser Mitglied

    Beiträge:
    1.485
    Zustimmungen:
    34
    MacUser seit:
    02.02.2005
    Es gibt auch Tassen mit einer vi-Referenz. Ich hab so eine im Geschäft. Allerdings benutze ich vi nicht, die ist nur dafür da, dass sich die emacs-User ärgern. Ich ziehe ja nano vor. ;)

    Aber mal im Ernst, wer kein XCode mag, dem kann ich SubEthaEdit nur empfehlen. Das ist zwar keine ganze IDE, aber ein ziemlich guter Editor.
     
  9. Badener

    Badener Gast

    Ich will ja den VIM hier nicht schlechtreden - ich finde auch, daß es ein sehr gutes und mächtiges Werkzeug ist - wenn man damit umgehen kann.

    Und max.k sollte sich IMHO erstmal auf C++ konzentrieren, evtl. XCode, das Terminal und einem Editor wie SubEthaEdit, TextWrangler u.ä.

    Sollte es ihm Spaß machen und er wil oder muß dabei bleiben, dann kann er sich immer noch in den VIM einarbeiten.....
     
  10. Ulfrinn

    Ulfrinn MacUser Mitglied

    Beiträge:
    6.676
    Zustimmungen:
    586
    MacUser seit:
    30.01.2005
    Chique, chique, ich habe bisher immer auf diesen Wisch zurückgegriffen … :D
     
Die Seite wird geladen...

Diese Seite empfehlen