Baktereinzähler - brauche dringend hilfe



  • poroblem schrieb:

    Beim g++ Aufruf hats doch geklappt!

    Aber da hat sich die Konsole nicht geöffent. Also das fenster wo gefragt wird, wielange es dauert und wo die ergebnisse ausgegeben werden!!! Oder sollte es das auch garnicht machen?

    tipp jetzt

    ./main.exe
    

    im selben verzeichnis.
    und nenn deine exen gefälligst nicht mehr "*.exe"!



  • werner@linux:~> cd /home/werner
    werner@linux:~> g++ main.cpp -o main.exe

    Nachdem ich das eingegeben habe, entsteht in dem verzeichnis home/werner eine datei namens main.exe ... ich schätze, dass das richtig ist. Nur wenn ich die anklicke kommt ein "öffnen mit..." fenster. Das ist doch aber normal, dass Linux keine exen dateien öffnen kann ... deßhalb hat das doch garnichts gebracht!!! ??!! !?!?



  • poroblem schrieb:

    werner@linux:~> cd /home/werner
    werner@linux:~> g++ main.cpp -o main.exe

    Nachdem ich das eingegeben habe, entsteht in dem verzeichnis home/werner eine datei namens main.exe ... ich schätze, dass das richtig ist. Nur wenn ich die anklicke kommt ein "öffnen mit..." fenster. Das ist doch aber normal, dass Linux keine exen dateien öffnen kann ... deßhalb hat das doch garnichts gebracht!!! ??!! !?!?

    Nenn die datei mal nicht main.exe sondern nur main und dann geh in der konsole in das verzeichnis und tipp ./main ein wie exe-kutor gesagt.

    mfg.



  • poroblem schrieb:

    werner@linux:~> cd /home/werner
    werner@linux:~> g++ main.cpp -o main.exe

    Nachdem ich das eingegeben habe, entsteht in dem verzeichnis home/werner eine datei namens main.exe ... ich schätze, dass das richtig ist. Nur wenn ich die anklicke kommt ein "öffnen mit..." fenster. Das ist doch aber normal, dass Linux keine exen dateien öffnen kann ... deßhalb hat das doch garnichts gebracht!!! ??!! !?!?

    du gibst einfach ein:

    werner@linux:~> cd /home/werner
    werner@linux:~> g++ main.cpp -o main.exe
    werner@linux:~> ./main.exe

    und dann kommts schon.

    ps: bitte lesen.

    pps: die exe wirst du unter windows nicht benutzen können.



  • Was soll sich den eigntlih öffene?
    Ich habe das eingegeben:

    werner@linux:~> cd /home/werner
    werner@linux:~> g++ maino.cpp -o main.exe
    werner@linux:~> ./maino.exe
    hkuwerner@linux:~>

    Bis auf das vor meinem Namen ein hku auftauchte ist nicht passiert.



  • poroblem schrieb:

    Was soll sich den eigntlih öffene?
    Ich habe das eingegeben:

    werner@linux:~> cd /home/werner
    werner@linux:~> g++ maino.cpp -o main.exe
    werner@linux:~> ./maino.exe
    hkuwerner@linux:~>

    Bis auf das vor meinem Namen ein hku auftauchte ist nicht passiert.

    nich ./maino.exe sondern ./main.exe

    mfg.



  • Nene, ist schon richtig. ich hatte da nämlich eine wichtige datei die schon main.cpp hieß, und die wollte ich natürlich nicht überschreiben, da habe ich einfach den neueren namen geändert.

    werner@linux:~> cd /home/werner
    werner@linux:~> g++ maino.cpp -o maino.exe
    werner@linux:~> ./maino.exe
    hkuwerner@linux:~>



  • Oder soll ich das lieber in Linux/Unix forum posten? Hier sind es ja schon mittlerweile 5 seiten 🙂



  • Ich habe es nochmal mit gcc anstadt g++ probiert. das kam raus:

    werner@linux:~> gcc maino.cpp -o maino.exe
    maino.cpp:13:2: warning: no newline at end of file
    /tmp/ccNvALVG.o(.text+0x24): In function `main':
    maino.cpp: undefined reference to `std::cin'
    /tmp/ccNvALVG.o(.text+0x29):maino.cpp: undefined reference to `std::basic_istream<char, std::char_traits<char> >::operator>>(int&)'
    /tmp/ccNvALVG.o(.text+0x60):maino.cpp: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
    /tmp/ccNvALVG.o(.text+0xb7):maino.cpp: undefined reference to `std::cout'
    /tmp/ccNvALVG.o(.text+0xbc):maino.cpp: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
    /tmp/ccNvALVG.o(.text+0xc5):maino.cpp: undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(int)'
    /tmp/ccNvALVG.o(.text+0xce):maino.cpp: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
    /tmp/ccNvALVG.o(.text+0xd7):maino.cpp: undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::_Setprecision)'
    /tmp/ccNvALVG.o(.text+0xe0):maino.cpp: undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(std::ios_base& (*)(std::ios_base&))'
    /tmp/ccNvALVG.o(.text+0xe9):maino.cpp: undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(long double)'
    /tmp/ccNvALVG.o(.text+0xf2):maino.cpp: undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))'
    /tmp/ccNvALVG.o(.text+0x128): In function `__static_initialization_and_destruction_0(int, int)':
    maino.cpp: undefined reference to `std::ios_base::Init::Init[in-charge]()'
    /tmp/ccNvALVG.o(.text+0x157): In function `__tcf_0':
    maino.cpp: undefined reference to `std::ios_base::Init::~Init [in-charge]()'
    /tmp/ccNvALVG.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
    collect2: ld returned 1 exit status
    werner@linux:~> ./maino.exe
    bash: ./maino.exe: Datei oder Verzeichnis nicht gefunden
    werner@linux:~>
    


  • poroblem schrieb:

    Nene, ist schon richtig. ich hatte da nämlich eine wichtige datei die schon main.cpp hieß, und die wollte ich natürlich nicht überschreiben, da habe ich einfach den neueren namen geändert.

    werner@linux:~> cd /home/werner
    werner@linux:~> g++ maino.cpp -o maino.exe
    werner@linux:~> ./maino.exe
    hkuwerner@linux:~>

    ja das passt schon. und "g++" war richtig. "gcc" ist _nicht_ das, was du willst. und "hku" ist die ausgabe deines programms. was genau hast du nochmal kompiliert? (inhalt von maino.cpp) ???



  • ja, maino.cpp hieß die datei und hier ist der code:

    #include <iostream>
    #include <iomanip>
    
    int main ()
    {
        int x;
        std::cin >> x;
        long double res = 1;
        for (int i = 1 /* statt 0 */; i <= x; ++i)
            std::cout << "2^" << i << " = " << std::setprecision (0) << std::fixed
                      << (res *= 2) << std::endl;
        return 0;
    }
    


  • Es berechnet nur die population von bakterien.
    Wenn es keiner von euch weiß, setzte ich es ins unix linux forum. Dort habe ich ja eine höchere chance auf eine antwort, da dort alle mit linux arbeiten



  • Wenn es keiner von euch weiß, setzte ich es ins unix linux forum. Dort habe ich ja eine höchere chance auf eine antwort, da dort alle mit linux arbeiten

    Just do it - tue es einfach.





  • Da bekomme ich ja weniger antworten als hier 🙂



  • das programm geht. kompiliers unter windows, wenn linux probleme macht.



  • Danke an euch alle, die mir geholfen haben. Es klappt jetzt unter Linux. Schuld war meine (oder eure??) dummheit.

    Ich habe mir jetzt ein c++ buch geben lassen. Es soll zwar nicht so gut sein, aber dafür war es kostenlos. "Jetzt lerne ich ... Spieleprogrammierung mit DirektX und VisualC++" vom MUT verlag. Ok, spiele will ich nicht programmieren, DirektX will ich auch nicht können, sondern OpenGL (aber auch nur für softwareprogrammierung dn_ppsmilie11.gif). Aber die grundlagen sind gut erklärt und ich habe was zu lesen.

    Da ich nicht weiß wie groß der Sprachumfang von C++ ist, habe ich hier mal eine Liste von den sachen die ich 90%=< kann.

    - Ein und Ausgabe von Daten (cout - printf; cin - scanf)
    - Variablen und Konstanten
    - Alle arten von Operatoren, Schleifen und Fallunterschieden.
    - Text-,Binärdateien.
    - Funktionen (kann ich so halb ... immer wenn ich ein code sehe, weiß ich wie es funktioniert, aber ich kann keine selber schreiben)
    - Zeiger (muss mich damit wohl auch noch eine Weile beschäftigen)

    Was gehört den noch so zum sprachumfang von C++ ??

    Ich habe noch 2 Bücher gefunden, die mir sehr gut gefallen.
    http://www.c-plusplus.net/cms/modules.php?op=modload&name=mbBooks&file=index&func=isbn&isbn=3826629841
    http://www.c-plusplus.net/cms/modules.php?op=modload&name=mbBooks&file=index&func=isbn&isbn=3446224270

    Was haltet ihr von dennen (das erste buch, find ich, am interessantesteren ... blä :D).



  • .filmor schrieb:

    Was zum...?!

    So sieht die Ausgabe für meinen Code aus:

    [...]
    2^56 = 144115188075855870
    2^57 = 288230376151711740
    2^58 = 576460752303423490
    2^59 = 1152921504606847000
    2^60 = 2305843009213694000
    2^61 = 4611686018427387900
    2^62 = 9223372036854775800
    2^63 = 18446744073709552000
    

    Und diese Zahlen sind sowas von dezimal!

    ... und offensichtlich falsch. Jedenfalls diese letzten paar.



  • Dürfte ich den Sinn dieses Beitrags hinterfragen? Das ist bereits geklärt, die Schleife hatte versehentlich bei 0 angefangen, weshalb alles um eins verschoben ist, im korrigierten Code ist das nicht mehr der Fall. Die 0-en am Ende kommen von der Ungenauigkeit von long double. Noch was auszusetzen?



  • Tatsache war aber, dass in Windoof die 2^57 = ***** falsch war, den sie hörte mit 0 auf, obwohl eine zahl darüber sie mit 6 aufhörte (und 2 mal 6 sind nicht 0). Das liegt auch daran, weil double nur 17 zeichen fassen kann (habe ich in meinem Spieleprogrammier-buch gelesen). Warum das unter linux nicht passiert ist mir ein rätsel.

    Was haltet ihr von den büchern?


Anmelden zum Antworten