Ankündigung

Einklappen
Keine Ankündigung bisher.

C++ Hilfe needed

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #31
    [quote=TeQ]
    [quote=Manking]
    und jetzt am besten noch mit einer for schleife für i

    Kommentar


      #32
      genau. und am ende kannst dir dann mit einer schleife die von 0 bis werte.length()-2 geht alle eigentlichen werte holen und an der stelle werte.length()-1 steht das n

      Kommentar


        #33
        Zitat von TeQ
        genau. und am ende kannst dir dann mit einer schleife die von 0 bis werte.length()-2 geht alle eigentlichen werte holen und an der stelle werte.length()-1 steht das n
        ich habs jetzt einfach so gemacht indem cih noch zusätzlich in die schleife das n=atoi(line.c_str()) dazugehängt habe dass dann halt immer überschreiben wird. aber am ende sollte genau der richtige wert drinnen bleiben! ist zwar sicher nicht die beste lösung, aber es funktioniert

        Kommentar


          #34
          immer erst das programm zum laufen bringen und dann schauen wo man noch was besser machen kann ;)

          Kommentar


            #35
            jetzt doch noch mal eine frage aufgetaucht bzgl funktionen:
            ich hab schön mein hauptprogramm etc geschrieben und will jetzt eine unterfunktion bauen. hab am anfang schön die funktion deklariert mit

            double calcarit(int i,double werte[500], int n);

            werte[i] und n hab ich ja eingelesen aus anderem file.
            dann hab ich die unterfunktion gebastelt:

            double calcarit(int i,double werte[500], int n) {
            double sum=0;
            double arit;
            for(i=1; i

            Kommentar


              #36
              bezieh mich jetzt ma nur auf #35
              wieso hast du i=1? array fängt bei 0 an

              e: und sag immer was die konsole ausgibt, hilft meistens für andere
              e2: und yo, das unter mir stimmt auch, müsstest 2 funktionen draus machen mit je einem return

              Kommentar


                #37
                Zweimal return hintereinander funktioniert nicht. Zum zweiten return kann er nie kommen.

                Du solltest Dich vielleicht mal ein bisschen mit debugging/loggin beschäftigen. Zum Beispiel einfach die Werte nach einer bestimmten Anzahl Schleifendurchläufe ausgeben lassen.

                if(i%x == 0) ...

                Der Grad deiner Selbständigkeit ist auch sehr begrenzt. Deswegen meine Frage: Was ist das für ein(e) /Kurs/Studiengang/Uni?

                Kommentar


                  #38
                  eine funktion kann nur einen wert zurück geben, deshalb ist dein return sum nutzlos

                  Kommentar


                    #39
                    Zitat von AlphaTroll
                    Zweimal return hintereinander funktioniert nicht. Zum zweiten return kann er nie kommen.

                    Du solltest Dich vielleicht mal ein bisschen mit debugging/loggin beschäftigen. Zum Beispiel einfach die Werte nach einer bestimmten Anzahl Schleifendurchläufe ausgeben lassen.

                    if(i%x == 0) ...

                    Der Grad deiner Selbständigkeit ist auch sehr begrenzt. Deswegen meine Frage: Was ist das für ein(e) /Kurs/Studiengang/Uni?
                    mathe phyisk lehramt, ich hab halt nur 1 semster (1 1/2 stunden die woche) c++ programmieren deshalb auch recht sinnlos mich extra viel damit zu beschäftige

                    e: ja ok dass eine funktion nur 1 wert zurückgeben kann mag sein, hab das return arit jetzt mal weggelöscht kommt als sum trotzdem nur müll zurück

                    Kommentar


                      #40
                      Zitat von raptrr
                      bezieh mich jetzt ma nur auf #35
                      wieso hast du i=1? array fängt bei 0 an

                      e: und sag immer was die konsole ausgibt, hilft meistens für andere
                      e2: und yo, das unter mir stimmt auch, müsstest 2 funktionen draus machen mit je einem return
                      nein weil in meinem fall gehts um messwerte und ich hab die halt so nummeriert dass die bei 1 anfangen(0. messwert wäre ja ziemlich sinnlos)


                      e: das problem ist irgendwo bei der übergabe des werte arrays an die unterfunktion weil wenn ich es 1zu 1 so ins haupprogramm schreibe mit der for schleife klappts halt

                      Kommentar


                        #41
                        Alles klar. Dann kann man das verstehen.

                        1. Aus deiner Funktionsdefinition den ersten Parameter rausnehmen (int i)
                        Du musst einen Interrationsvariable nicht übergeben. Die kannst du dir auch innerhalb deiner Funktion definieren.
                        2. Mal Zwischenergebnisse ausgeben lassen. Innerhalb der Funktion (siehe mein letzter Post)
                        3. Zeig mal bitte wie du deine Funktion aus der Main aufrufst.

                        Kommentar


                          #42
                          Zitat von AlphaTroll
                          Alles klar. Dann kann man das verstehen.

                          1. Aus deiner Funktionsdefinition den ersten Parameter rausnehmen (int i)
                          Du musst einen Interrationsvariable nicht übergeben. Die kannst du dir auch innerhalb deiner Funktion definieren.
                          2. Mal Zwischenergebnisse ausgeben lassen. Innerhalb der Funktion (siehe mein letzter Post)
                          3. Zeig mal bitte wie du deine Funktion aus der Main aufrufst.
                          1: hab ich inzwischen schon gemacht, stört aber so weit auch eigentlich nicht.
                          2. relativ sinnlos da ich jetzt als einfaches beispiel mal die werte 3,4, 5 ins array geschrieben hab. da bringen zwischenergebnisse auch net viel meiner meinung nach^^
                          3. hier mal das ganze programm:
                          [spoiler]# include
                          # include
                          # include

                          using namespace std;

                          double calcarit(double werte[], int n);

                          int main () {
                          double n;
                          int i=1;
                          double werte[500];
                          double produkt=1;
                          double arit;
                          double sum;
                          double harmo;
                          //Messwerte einlesen und ausgeben. Letze Zahl ist die Anzahl der Werte
                          string line;
                          ifstream Messwerte ("Messwerte.data");


                          //im Internet gefunden:
                          while(!Messwerte.eof()){
                          getline(Messwerte,line);
                          werte[i]=atof(line.c_str());

                          n=werte[i];
                          i++;}
                          for (int i=1; i

                          Kommentar


                            #43
                            Also wenn ich das jetzt nicht ganz verpeil rufst du "calarit" ja gar nicht auf?!

                            /edit: Das hättest Du z.b. gemerkt wenn du alles was du tust geloggt hättest

                            /edit2: Du meinst sicherlich dass bei "cout

                            Kommentar


                              #44
                              Zitat von AlphaTroll
                              Also wenn ich das jetzt nicht ganz verpeil rufst du "calarit" ja gar nicht auf?!

                              /edit: Das hättest Du z.b. gemerkt wenn du alles was du tust geloggt hättest
                              e: geloggt? :(
                              e2: omfg jo vergessen die funktion aufzurufen >.<
                              srsly bin so blöd^^
                              danke für die hilfe!

                              Kommentar


                                #45
                                In deinem Fall einfach ausgeben. z.B. "cout

                                Kommentar

                                Lädt...
                                X