Funktionsprobe



  • SOZB schrieb:

    er braucht kein

    std::cout
    

    er hat ein: 🙄

    ...
    #include <iostream> 
    using namespace std;
    ...
    

    Ach wirklich...?

    otto56 schrieb:

    Die Zahl aus der Funktion wird nicht ausgegeben!

    int zahl=0; //Zelerzahl
    // zu untersuchende Zahl
    int y; // Probeteiler
    int b=0;
    
    int test(); //Deklaration der Funktion
    
    int test(int uz) // Funktion selber
    {
       uz=(zahl*zahl)-2;
        return uz;
    }
    
    int main(int argc, const char * argv[])
    {
        for (zahl=3;zahl<=15;zahl=zahl+2)
        {
        std::cout<<zahl<<". "<<zahl*zahl <<" QZ\n";
            
        }
        cout<<test(1)<<" uz \n"; // Aufruf der Funktion funktioniert nicht
        return 0;
    }
    


  • Danke Leute hab alles hingekriegt und die Berechnung auch glücklich vollendet, Das mit der Übergabe hab ich erst hingekriegt, nachdem ich Alls gelöscht habe und nochmal eingetippt habe. Plötzlich waren die Breakpoints weg!

    Noch eine abschließende Frage:

    #include <string.h>
    #include <iostream>
    using namespace std;
    #include <sstream>
    #include <string>
    #include <vector>
    #include <cstdio>
    #include <math.h>
    #include <stdbool.h>
    
    int test(); //Deklaration der Funktion
    bool primzahl();
    int nr=1;
    int pzz;
    int unpzz;
    
    int test(int b) // Funktion selber
    {
        return b*b-2;// Hier wird die zu untersuchen Zahl festgelegt
    }
    
    bool primzahl(int x)// Bool Primzahlprüfung
    {
        int z = 1;
        int y;
        do
        {
            z=z+2;
            y = x%z;
        } while ((z < pow(x, 0.5)) && (y != 0));
    
        return (y > 0);
    }
    
    int main(int argc, const char * argv[])
    {
    
        for(int i=3;i<=10001;i=i+2)
        {
    
            std::cout<<endl<<"Nr:"<<nr<<". "<<i<<" QZ: "<<i*i<<"  uZ";
            bool c = primzahl(test(i));
           // cout << "BOOL: " << c;
            cout <<": "<<test(i)<< " ist ";
            switch (c)
            {
                case false: cout << "uNPZ.\n "; unpzz++; break;
                case true: cout << "Prim. \n"; pzz++;
            }
    
            nr++;
    
        }
        cout<<pzz<<" PZ + "<<unpzz<<" uNPZ = "<<pzz+unpzz<<" Ergebnisse\n";
        return 0;
    }
    

    Wenn ich oben (Zeile 20) in der Funktion Test etwas mit /, also Bruch berechne, kriegt die zweite Funktion mit bool Schwierigkeiten.

    Ich hatte da mal hingeschrieben b*b-((b+1)/2)
    Daraufhin funktionierte die PrimZahl-Erkennung nicht mehr.

    Wie kommt das?



  • Du hast saemtliche hinweise bezueglich deines codes ignoriert.
    Dir wurde mehrfach erklaert wie prototypen zu deklarieren sind -> ist dir egal.
    Globale variablen sind schlecht -> deine reaktion: MEHR globale variablen; because f*ck it, why not 👍

    Da es dich ja offenkundig nicht interessiert was irgendjemand zu sagen hat, werde ich mir mal alle weiteren kommentare zu deinem code sparen.

    Noch was:

    otto56 schrieb:

    Ich wußte nicht, daß void auch ein Datentyp ist, ich dachte, es wäre nur so ein Wort!

    Entweder solltest du dein buch noch einmal gruendlich von vorne bis hinten lesen, bevor du weiteren code zusammenschusterst (mehr machst du nicht, verstehen tust du ihn definitiv nicht) oder das buch wegschmeissen und was vernuenftiges lesen, wenn void fuer dich ein "wort" ist...



  • Cardiac schrieb:

    Ach wirklich...?

    ja, wer lesen kann ist klar im vorteil 🙄

    otto56 schrieb:

    Hallo, der Probecout geht nicht, er sagt: use of undeclared identyfier (uz)

    #include <string.h>
    #include <iostream>
    using namespace std;
    #include <sstream>
    #include <string>
    #include <vector>
    #include <cstdio>
    #include <math.h>
    
    int zahl=0; //Zelerzahl
    // zu untersuchende Zahl
    int y; // Probeteiler
    
    void test(); //Deklaration
    
    int test(int b, int uz) // Funktion selber
    {
        uz=(zahl*zahl)-2;
        return uz;
    }
    
    int main(int argc, const char * argv[])
    {
        for (zahl=3;zahl<=14;zahl=zahl+2)
        {
        std::cout<<zahl<<". "<<zahl*zahl <<" QZ\n";
        }
        cout<<test(uz)<<"uz \n"; // Aufruf derr funktion funktioniert nicht
        return 0;
    }
    

    Was tun. uz ist doch deklariert! Wenn ich statt "uz" "b" einsetzte, dasselbe Statement von Ihm.

    direkt der erste post 😉 ...
    😃
    lg



  • @SOZB dann schau dir mal zeilen 27 und 29 genau an...

    SOZB schrieb:

    ja, wer lesen kann ist klar im vorteil 🙄



  • Cardiac schrieb:

    @SOZB dann schau dir mal zeilen 27 und 29 genau an...

    SOZB schrieb:

    ja, wer lesen kann ist klar im vorteil 🙄

    ja was soll das heißen ? 😃

    ich habe lediglich gesagt er braucht kein std:: und das braucht er nicht!
    zumindest wenn er wie im ersten gezeigten code using namespace std; benutzt!

    was hat das mit zeile 27 und 29 zu tun? 😕



  • Cardiac schrieb:

    @SOZB dann schau dir mal zeilen 27 und 29 genau an...

    SOZB schrieb:

    ja, wer lesen kann ist klar im vorteil 🙄

    ah, sry für doppel post.

    falls du damit meinst das, dass eine cout funktioniert und der andere nicht.
    dann schau du dir mal genu den gezeigten funktionsaufruf in zeile 29 an, dann weißt du hoffentlich auch warum diese zeile nicht funktioniert 😉 .

    lg



  • Ihr könnt aufhören zu zanken. Mein Code tut, was ich will, er funktioniert also.

    Ich habe Deine Tips beherzigt, auch wenn es nicht so scheint.

    @Cardiak, ich habe Die Tips beherzigt, und nicht ignoriert -- bei mir lag ein compiler Problem vor. Schmust erst alte Breakpoints löschen.

    Jetzt funktionieren die Funktionen, die Rückgabe auch, und auch meine bool-Rückgabe....

    Danke an Alle für die Geduld ...

    Übrigens trägt das "pädagogische Antworten" nicht zur Verkürzung des Lernprozesses bei...!



  • otto56 schrieb:

    ...
    Übrigens trägt das "pädagogische Antworten" nicht zur Verkürzung des Lernprozesses bei...!

    Doch, und zwar enorm. Im Moment frickelst (um nicht zu sagen pfuschst) du dir iwas zusammen und schiebst solange Codeschnipsel hin und her bis das Ergebnis das ist, was du haben möchtest. Da ist keine Struktur zu erkennen. Wenn du iwann mal größere Projekte machen möchtest wird dir genau diese Unstrukturiertheit das Genick brechen. Also nimm dir auch die "pädagogischen" Tipps zu Herzen.



  • DocShoe schrieb:

    otto56 schrieb:

    ...
    Übrigens trägt das "pädagogische Antworten" nicht zur Verkürzung des Lernprozesses bei...!

    Doch, und zwar enorm. Im Moment frickelst (um nicht zu sagen pfuschst) du dir iwas zusammen und schiebst solange Codeschnipsel hin und her bis das Ergebnis das ist, was du haben möchtest. Da ist keine Struktur zu erkennen. Wenn du iwann mal größere Projekte machen möchtest wird dir genau diese Unstrukturiertheit das Genick brechen. Also nimm dir auch die "pädagogischen" Tipps zu Herzen.

    ja sehe ich genauso ! 👍
    auch wenn es nicht zwingend notwenig ist aber übe bei kleinen projekten schon eine ordentliche struktur für evt. spätere größere projekte, dann kannst du es dann schon ordentlich und musst dich nicht umgewöhnen (was in meinen augen auch im nachhinein schwerer fallen dürfte) . 🙄

    lg



  • 1. Otto, du nervst!
    2. Otto, hör auf C++ zu lernen, bringt nichts.
    3. Otto, hör auf wegen jedem Furz hier ein neues Thema aufzumachen, wo wir wieder bei 1. wären: du nervst!


Anmelden zum Antworten