Anfänger warum funktioniert das BSP nicht.



  • Hi Leute,
    wie ihr erkennen könnt, bin ich Anfänger und bräuchte daher eure Hilfe.
    Zum Problem, ich arbeitet seit kurzem mit dem Buch ..Programming: Principles and Practice Using C++.. und finde es auch sehr gut, nur habe ich bei den Vectoren ein Problem. in Zeile 23 setzt er mir einen Fehler. Mir ist nun unklar warum der Code nicht funktioniert, da 1 zu1 übernommen wurde. Auch hätte ich eine Frage zur Konsole.. habe mir vor kurzen Dev-C++ runtergeladen und auch benutz, bin gestern aber auf mvs umgestiegen, ist es die richtige Wahl?
    Der Link zeigt das ganze Fenster.

    https://i.imgur.com/1cbP96E.png

    #include "../std_lib_facilities.h"
    using namespace std;
    
    // compute mean and median temperatures
    int main()
    {
    vector<double> temps; // temperatures
    for (double temp; cin>>temp; ) // read into temp
    temps.push_back(temp); // put temp into vector
    // compute mean temperature:
    double sum = 0;
    for (int x : temps) sum += x;
    cout << "Average temperature: " << sum/temps.size() << '\n';
    // compute median temperature:
    sort(temps); // sort temperatures
    cout << "Median temperature: " << temps[temps.size()/2] << '\n';
    }
    

    mfg evev





  • dachschaden schrieb:

    RTFM!

    Ok da alle Punkte umgesetzt wurden die dort stehen, weiß ich nicht warum der Verweis auf die Seite.... eine Angabe wäre sinvoll, denn eine Kistallkugel habe ich auch nicht.
    Danke

    mfg



  • Kannst du nicht lesen?

    c.rackwitz schrieb:

    Wenn du dir einen Gefallen tun willst, dann lies diesen Thread bitte vollstaendig

    So, dann scrolle mal ein bisschen nach unten ...

    Unregistrierter schrieb:

    - [cpp]-Tags verwenden.

    Von wegen "alle Punkte umgesetzt".



  • dachschaden schrieb:

    Kannst du nicht lesen?

    c.rackwitz schrieb:

    Wenn du dir einen Gefallen tun willst, dann lies diesen Thread bitte vollstaendig

    So, dann scrolle mal ein bisschen nach unten ...

    Unregistrierter schrieb:

    - [cpp]-Tags verwenden.

    Von wegen "alle Punkte umgesetzt".

    Hoffe dir hilft es jetzt.



  • evev schrieb:

    Hoffe dir hilft es jetzt.

    Junge, jetzt denk doch mal für fünf Pfennig nach. Du sagst, in Zeile 18 und 20 gibt er einen Fehler, aber diese Zeilen gibt es in deinem Code gar nicht. Vielleicht(vermutlich), weil du nicht Copy+Paste gemacht hast und/oder die Codetags falsch gesetzt hast (*hinthint*).

    Zum Programmieren lernen gehört auch dazu, dass man sich Gedanken darüber macht, wie man intelligente Fragen stellt. Dazu gab es auch einen Link in dem RTFM-Post, den du wahrscheinlich auch nicht gelesen hast. Du bist der Fragenstellende, und du musst es den Leuten einfach machen, dir zu helfen.

    Was ist include "../std_lib_facilities.h" ? Kenn ich nicht. Könnte Compilerspezifisch sein. Wahrscheinlich sogar. Dann gehört das nicht hierhin, oder die Datei gehört ebenfalls gepostet. Wenn der Fehler hier überhaupt liegt (was er nicht tut).

    Dann unterscheidet sich dein geposteter Code von dem Code in in der Bilddatei. Was soll das denn?

    1. Dein std::sort erwartet zwei Argumente, Anfang und Ende. Du gibst nur ein Argument. Hättest du ganz leicht rausfinden können durch c++ sort vector googlen.
    2. Hier würde ich mal raten und vermuten, dass der Bindestrich kein Minuszeichen ist. Ersetze ihn mal mit einem Minuszeichen.



  • dachschaden schrieb:

    evev schrieb:

    Hoffe dir hilft es jetzt.

    Junge, jetzt denk doch mal für fünf Pfennig nach. Du sagst, in Zeile 18 und 20 gibt er einen Fehler, aber diese Zeilen gibt es in deinem Code gar nicht. Vielleicht(vermutlich), weil du nicht Copy+Paste gemacht hast und/oder die Codetags falsch gesetzt hast (*hinthint*).

    Zum Programmieren lernen gehört auch dazu, dass man sich Gedanken darüber macht, wie man intelligente Fragen stellt. Dazu gab es auch einen Link in dem RTFM-Post, den du wahrscheinlich auch nicht gelesen hast. Du bist der Fragenstellende, und du musst es den Leuten einfach machen, dir zu helfen.

    Erstens, es ist mir gerade aufgefallen das es die falsche Stelle war. Zweitens man kann seine Argumentation auch freundlicher formulieren....

    Vielleicht gibt es noch jemand anderem der mir helfen kann. Wäre für mich um einiges einfacher.

    #include "../std_lib_facilities.h" ist aus dem Buch und soll als header benutz werden. http://www.stroustrup.com/Programming/ ca in der Mitte.

    Also das Bild war leider falsch neuer Link wurde eingefügt



  • evev schrieb:

    Zweitens man kann seine Argumentation auch freundlicher formulieren....

    Junge. Du machst dir überhaupt keine Mühe, deine Probleme selbst zu lösen. Du hast den RTFM!-Thread nicht gelesen - da stehen noch so allerhand anderer Sachen drin, die du hättest machen können. Dein Ersteindruck ist schlecht. Und mir ist es ehrlich gesagt vollkommen egal, ob du mich freundlich findest. Mein Ziel ist ein Metaziel, nämlich dass du durch meine negative Reaktion in der Zukunft, wenn du wieder Hilfe benötigst, erst deine Hausaufgaben machst, bevor du Fragen stellst. Und ob du die gemacht hast, das können wir erkennen. Das erkennen wir immer.

    EDIT: Und geh weg mit deinen Bilddateien. Kompletter Overkill, wenn du auch hier den Code vernünftig posten könntest.

    EDIT 2: Und noch das: lerne aus deinen Fehlern. Merke es dir für's nächste Mal.



  • dachschaden schrieb:

    evev schrieb:

    Zweitens man kann seine Argumentation auch freundlicher formulieren....

    Junge. Du machst dir überhaupt keine Mühe, deine Probleme selbst zu lösen. Du hast den RTFM!-Thread nicht gelesen - da stehen noch so allerhand anderer Sachen drin, die du hättest machen können. Dein Ersteindruck ist schlecht. Und mir ist es ehrlich gesagt vollkommen egal, ob du mich freundlich findest. Mein Ziel ist ein Metaziel, nämlich dass du durch meine negative Reaktion in der Zukunft, wenn du wieder Hilfe benötigst, erst deine Hausaufgaben machst, bevor du Fragen stellst. Und ob du die gemacht hast, das können wir erkennen. Das erkennen wir immer.

    OMG, wennn alle deine Beiträge so aussehen ! GZ. Mir ist total egal ob du freundlich bist oder nich, aber wie du anderen gegenüber tritst sagt viel über deine Persöhnlichkeit aus. Solltest du dir mal merken. Außerdem kann man sich nicht unzählige Sachen durchlesen um eine Antwort zu bekommen. Das macht keinen Sinn. Desweiteren sind solche Beiträge wie von dir nicht besodners hilfreich. 700 Beiträge das sollte schom mehr kommen...

    Die Bilddatei war als Link gedacht, da mir die Einbindung nicht klar war.
    Und das ich mich mit dem Problem nicht beschäftigt habe ist auch falsch.. umsonst frag ich nicht das sollte dir bewusst sein.



  • evev schrieb:

    Mir ist total egal ob du freundlich bist oder nich

    Offensichtlich nicht.

    evev schrieb:

    aber wie du anderen gegenüber tritst sagt viel über deine Persöhnlichkeit aus.

    Wieso? Weil ich dich nicht unter Welpenschutz stelle? Weil ich erwarte, dass du ein funktionierendes Gehirn hast, das mitdenken kann? Willst du mir sagen, dass du ein Dummkopf bist? Mein allererster Post wäre genug gewesen, wenn du den durchgelesen hättest. Naja, beinahe genug.

    Ich sag dir, was Sache ist. Ich bin nicht beleidigend. Aber ich lasse dich auch nicht alles durchgehen. Wenn dir das nicht gefällt, kannst du gerne gehen.

    evev schrieb:

    Außerdem kann man sich nicht unzählige Sachen durchlesen um eine Antwort zu bekommen. Das macht keinen Sinn.

    Oh doch, das macht Sinn. Du erwartest doch nicht allen Ernstes, dass die Leute deine Zeit, in der du deine Hausaufgaben nicht machst, wichtiger erachten, als ihre Zeit? Wenn ja, bist du ein Wissensschmarotzer. Du willst was lernen. Und gerade lernst du, dass du nicht wichtiger bist als andere hier, dass du für deinen Ersteindruck verantwortlich bist. Denn auch in Zukunft wirst du Probleme haben. Lässt sich nicht vermeiden. Willst du dann immer andere um Hilfe fragen? Wieviel Zeit und Ressourcen das kostet, davon scheinst du keinen Plan zu haben.

    EDIT:

    evev schrieb:

    Die Bilddatei war als Link gedacht, da mir die Einbindung nicht klar war.

    Deswegen der RTFM!-Link. Ehrlich, ich kann immer nur wieder darauf verweisen. Wenn du das befolgt hättest, wäre alles paletti gewesen. Stattdessen schmeißt du hier einen Egotripp. Langsam halte ich das für eine nicht zu rechtfertigende Verschwendung meiner Zeit.

    evev schrieb:

    Und das ich mich mit dem Problem nicht beschäftigt habe ist auch falsch.. umsonst frag ich nicht das sollte dir bewusst sein.

    Gut, dann zeig das aber auch künftig. Wieder der RTFM!-Thread. Wieder und wieder. Steht da alles.

    So, und jetzt haben wir immer noch das Bild und einen Haufen nicht korrekt eingebettenden Codes. Was machst du jetzt damit?



  • dachschaden schrieb:

    evev schrieb:

    Mir ist total egal ob du freundlich bist oder nich

    Offensichtlich nicht.

    evev schrieb:

    aber wie du anderen gegenüber tritst sagt viel über deine Persöhnlichkeit aus.

    Wieso? Weil ich dich nicht unter Welpenschutz stelle? Weil ich erwarte, dass du ein funktionierendes Gehirn hast, das mitdenken kann? Willst du mir sagen, dass du ein Dummkopf bist? Mein allererster Post wäre genug gewesen, wenn du den durchgelesen hättest. Naja, beinahe genug.

    Ich sag dir, was Sache ist. Ich bin nicht beleidigend. Aber ich lasse dich auch nicht alles durchgehen. Wenn dir das nicht gefällt, kannst du gerne gehen.

    evev schrieb:

    Außerdem kann man sich nicht unzählige Sachen durchlesen um eine Antwort zu bekommen. Das macht keinen Sinn.

    Oh doch, das macht Sinn. Du erwartest doch nicht allen Ernstes, dass die Leute deine Zeit, in der du deine Hausaufgaben nicht machst, wichtiger erachten, als ihre Zeit? Wenn ja, bist du ein Wissensschmarotzer. Du willst was lernen. Und gerade lernst du, dass du nicht wichtiger bist als andere hier, dass du für deinen Ersteindruck verantwortlich bist. Denn auch in Zukunft wirst du Probleme haben. Lässt sich nicht vermeiden. Willst du dann immer andere um Hilfe fragen? Wieviel Zeit und Ressourcen das kostet, davon scheinst du keinen Plan zu haben.

    1H = keine hilfreiche Antwort von dir.
    Mir ist schleierhaft wie man solch einen Mist schreiben kann.
    Danke für deine Hilfe...



  • Beim mir kompiliert das alles.

    Was ist jetzt das Problem?

    PS: im ersten Post kannst Du noch die Code Tags richtig setzen, so dass der gesamte Code drin ist.
    PPS: Für alle interessierten: der Header ist hier: std_lib_facilities.h



  • Wie gesagt das Problem besteht dahingegend, dass er sort als Fehler sieht.
    Link zum Foto.
    Er zeigt mir nur die Fehlermeldung und die Frage ist warum^^.

    Benutze seit gestern MVS 2015, da der Header bei Dev C++ garnicht funktioniert hat. Vielleicht kannst du mir noch sagen welchen Programm du nutzt.



  • evev schrieb:

    Wie gesagt das Problem besteht dahingegend, dass er sort als Problem sieht.

    Und Du hast den Header eingebunden, den ich oben verlinkt habe.?

    evev schrieb:

    Er zeigt mir nur die Fehlermeldung und die Frage ist warum^^.

    Du hast C++11, besser noch C++14 Unterstützung eingeschaltet?

    evev schrieb:

    Viellicht kannst du mir noch sagen welchen Programm du nutzt.

    gcc 4.9.3 unter Linux.


  • Mod

    dachschaden schrieb:

    Und geh weg mit deinen Bilddateien.

    Für gewöhnlich zutreffend, in diesem speziellen Fall evtl. hilfreich um herauszufinden, wo das Problem liegen könnte.
    Nachdem geklärt wurde, was std_lib_facilities.h ist, stellen wir fest:
    1. der Compiler findet die sort-Deklarationen im Namensraum std, obwohl keine Standardheader direkt inkludiert wurden. Die Standardheader sind also offenbar durch std_lib_facilities.h bekanntgemacht worden. Andererseits:
    2. der Compiler findet die zusätzlichen sort-Definitionen in std_lib_facilities.h (ziemlich am Ende) nicht.
    Wie kann das sein? Zwei mögliche Erklärungen fallen mir ein:
    1. std_lib_facilities.h wurde nicht vollständig übernommen, und es fehlen die entsprechenden Definitionen. Oder
    2. Anhand der Explorerliste is erkennbar, dass dieses Projekt das (für so simple Projekte völlig unangebrachte) Precompiled-header-Feature von Visual C++ verwendet. Andererseits fehlt dann ein #include "stdafx.h" - ich kann mich also irren. Jedenfalls ist fürs Lernen (und eigentlich generell) zweckmäßig, auf Derartiges zu verzichten, und grunsätzlich mit leeren (Checkbox beim Erstellen) Projekten zu beginnen.



  • Erstmal danke für eure Hilfe.

    Der Header wurde übernommen und meines Erachtens richtig eingebunden. Da er vorher dort immer einen Fehler gesetzt hatte. Auch musste man diesen downloaden und in der Projektmappe ablegen, somit soll auch hierbei kein Fehler enstanden sein.

    C++ 14 Einstellung suche ich vergebens, bin aber auf der Suche

    #include "stdafx.h" das Problem besteht leider weiterhin.


  • Mod

    evev schrieb:

    #include "stdafx.h" das Problem besteht leider weiterhin.

    Das ist kein deutscher Satz.
    Wenn ausgedrückt werden soll, dass du ein

    #include "stdafx.h"
    

    eingefügt hast: das habe ich nicht empfohlen.



  • Ja habe das so übernommen. War dann ein Missverständnis.
    Gibt es eine Möglichkeit ohne den Header, damit das Beispiel läuft? Das hält mich schon seit gestern auf^^.

    Vielleicht ist auch die Einbindung falsch. Um den Fehler auszuschließen, könntet ihr mir das nocheinmal schneller erklären? Soll man hierfür eine neue Datei anlegen und das alles Einfügen? Wie gesagt habe das geladen und in den Ordner gepackt, vielleicht liegt dort ein Problem.



  • Bist Du sicher, dass Deine std_lib_facilities.h die ist, die hier verlinkt ist?

    Insbesondere mit diesen Zeilen:

    template<typename C>
            // requires Container<C>()
    void sort(C& c)
    {
            std::sort(c.begin(), c.end());
    }
    


  • Ja habe das nochmal geändert und neu eingebunden. Denke der download war einfach nur falsch.
    Deine Zeile + die Zeile danach

    // requires Container<C>()
    void sort(C& c)
    {
    	std::sort(c.begin(), c.end());
    }
    
    template<typename C, typename Pred>
    // requires Container<C>() && Binary_Predicate<Value_type<C>>()
    void sort(C& c, Pred p)
    {
    	std::sort(c.begin(), c.end(), p);
    }
    
    }
    

    Vielleicht noch das resultierende Problem daraus:
    Also ich gebe nun die Komma zahlen ein beende die Eingabe mit diesem Zeichen | wie es im Buch steht. (Das Zeichen soll die Eingabe unterbinden und nur die doubles einlesen, man kann auch was anderes nehmen) Nur gibt er mir keine Cout ausgabe, sondern beendet das Programm.

    #include "std_lib_facilities.h"
    #include "stdafx.h"
    #include <cstdio>
    using namespace std;
    
    // compute mean and median temperatures
    // compute mean and median temperatures
    int main()
    {
    	cout << "gebe eine Zahl ein";
    	vector<double> temps; // temperatures
    	for (double temp; cin >> temp; ) // read into temp
    		temps.push_back(temp); // put temp into vector
    							   // compute mean temperature:
    	double sum = 0;
    	for (int x : temps) sum += x;
    	cout << "Average temperature: " << sum / temps.size() << '\n';
    	// compute median temperature:
    	sort(temps); // sort temperatures
    	cout << "Median temperature: " << temps[temps.size() / 2] << '\n';
    	return 0;
    	keep_window_open(); // <---gelesen und übernommen
    }
    

    Es geht darum Temperaturen einzulesen und auszugeben wie 2.3 4.5 6.2 4.1 usw.


Anmelden zum Antworten