Ankündigung

Einklappen
Keine Ankündigung bisher.

User helfen User - Programmieren

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

    Im Moment weist du zahl = 20 zu, führst dann die Methode aus und gibst dann zahl (=20) aus.

    Was du machen müsstest ist zahl = 20 zuweisen, das durch das Ergebnis des Methodenaufrufs überschreiben und dann zahl ausgeben.

    Deine Methode liefert ja ein int zurück, das musst du noch "aufsammeln":

    zahl = red(zahl);

    Alternativ: System.out.println(red(zahl));

    Kommentar


      Ah alles klar, danke

      Kommentar


        Kann mir jemand via PM mit meiner Hausaufgabe helfen? hab die meiner Meinung nach richtig gelöst, das Testprogramm zeigt mir aber an das etwas falsch ist. Kanns hier jetzt nichtmehr posten, das wird mir sonst als Plagiat angerechnet. Ist keine schwere Aufgabe, zumindest für den Großteil hier dneke ich

        Kommentar


          Zitat von thextor
          @BUSFAHRER: Ich habe sowas bisher nur in PHP gemacht, andere Sprachen können das aber mit Sicherheit auch. Einfach die verschiedenen Excel-Sheets einlesen (PHPExcel) und später eine neue, große Excel Tabelle generieren. Falls du das Script nur lokal ausführst sollte die Auslastung im Arbeitsspeicher nicht kritisch sein, du brauchst die Daten also nicht als XML oder so zwischenspeichern.
          Mit welcher Programmiersprache kennst du dich denn am besten aus und sind die (Teil-)Sheets immer im gleichen Format (Spaltenanzahl und -Reihenfolge)?
          ich muss das in delphi machen, kenn mich damit aber auch am besten aus.
          die teillisten sehen alle komplett unterschiedlich aus. beispiel: 2 listen.
          liste1 enthält die artikelnummer (1) und den preis (100 euro). liste2 enthält artikelnummer (1) und das gewicht (50 kg).
          das ist nur ein vereinfachtes beispiel, die tabellen können auch aus 20 oder mehr spalten bestehen. zudem fängt die eigentliche tabelle auch nicht immer in zelle A1 an, manchmal sind oben ein paar zeilen frei.

          Kommentar


            Habe mal eine Frage:

            Geht um die Programmiersprache C++:

            ich habe 3 csv-Dateien, alle um die 3000 Zeilen. Ich möchte nun ein Programm schreiben, dass aus jeder dieser Dateien Informationen zusammenführt.
            Mein Problem ist nun, dass ich nicht weiß, 'wie' ich die Daten schlau einlese.

            Es geht mir nicht primär um den Code, sondern um die Idee dahinter.
            Mein erster Gedanke war, dass ich in Datei alle Zeilen einlese, bis sich eine bestimmte Zahl ändert, und mit diesem kleineren Datensatz dann den Rest auswerte.
            Das heißt aber, dass ich dann die anderen beiden Dateien einlesen müsste.

            Google hat mir gesagt, dass man nicht so hin und her wurschteln kann, d.h. ich muss alle Dateien erst einmal komplett einlesen.
            Ist das so richtig?

            Nun meine Frage: In welcher Form mache ich das sinnvoller Weise?
            Ich werde mir für die Zeilen jeweils ein Struct basteln, aber Speicher ich dann jedes struct einzeln in einem Vektor? D.h. 3 Vektoren á 3000 Einträgen?

            Das klingt für mich etwas ineffizient :/

            Kommentar


              Die Frage ist meiner Meinung nach, was du damit machen willst. Nur Zusammenführen? Oder Zeile für Zeile danach auswerten?

              Zitat von mehL
              Mein erster Gedanke war, dass ich in Datei alle Zeilen einlese, bis sich eine bestimmte Zahl ändert, und mit diesem kleineren Datensatz dann den Rest auswerte.
              Den Teil versteh ich nicht.

              Kommentar


                Zitat von DerKiLLa
                Die Frage ist meiner Meinung nach, was du damit machen willst. Nur Zusammenführen? Oder Zeile für Zeile danach auswerten?
                Zitat von mehL
                Mein erster Gedanke war, dass ich in Datei alle Zeilen einlese, bis sich eine bestimmte Zahl ändert, und mit diesem kleineren Datensatz dann den Rest auswerte.
                Den Teil versteh ich nicht.
                Ich muss Datei 1 einlesen, dort aus jeder Zeile drei Werte speichern und zu diesen drei Werten dann Informationen aus den anderen beiden Dateien raussuchen.

                Die wichtigen Infos aus Datei 1 sehen zB so aus:

                111 123 50
                111 124 30
                111 120 15
                112 105 10

                daher war meine Idee, erstmal alle Wertpaare mit "111" vorne einzulesen, abzuarbeiten und dann mit dem Rest weiter zu machen.
                Die Dateien sind zusammen genommen aber nicht einmal ein halbes Megabyte groß - also eine drauf scheißen und eine große Liste machen?

                Es genügt ja, wenn ich erst Datei 1 einlese und daraus einen Vektor mache und diesen Vektor dann beim Enlesen der zweiten Datei anpasse. Dann benötige ich nur einen 3000-Einträge-Vektor.

                Kommentar


                  Wie durchsucht man denn einen Vektor? Musst du dann jedes mal Eintrag für Eintrag den Vektor durchgehen oder kannst du da auch direkt suchen?

                  Denn ansonsten würde ich die Dateien öffnen und einfach darin suchen. Sollte zumindest schneller gehen als ständig eine Schleife zu nutzen.

                  Kommentar


                    Zitat von mehL
                    Zitat von DerKiLLa
                    Die Frage ist meiner Meinung nach, was du damit machen willst. Nur Zusammenführen? Oder Zeile für Zeile danach auswerten?
                    Zitat von mehL
                    Mein erster Gedanke war, dass ich in Datei alle Zeilen einlese, bis sich eine bestimmte Zahl ändert, und mit diesem kleineren Datensatz dann den Rest auswerte.
                    Den Teil versteh ich nicht.
                    Ich muss Datei 1 einlesen, dort aus jeder Zeile drei Werte speichern und zu diesen drei Werten dann Informationen aus den anderen beiden Dateien raussuchen.
                    Die wichtigen Infos aus Datei 1 sehen zB so aus:
                    111 123 50
                    111 124 30
                    111 120 15
                    112 105 10
                    daher war meine Idee, erstmal alle Wertpaare mit "111" vorne einzulesen, abzuarbeiten und dann mit dem Rest weiter zu machen.
                    Die Dateien sind zusammen genommen aber nicht einmal ein halbes Megabyte groß - also eine drauf scheißen und eine große Liste machen?
                    Es genügt ja, wenn ich erst Datei 1 einlese und daraus einen Vektor mache und diesen Vektor dann beim Enlesen der zweiten Datei anpasse. Dann benötige ich nur einen 3000-Einträge-Vektor.
                    Drauf scheißen und eine große Liste machen, wenn du jetzt nicht grad Code optimieren üben möchtest. 3000 Einträge sind nichts und es könnte sogar sein, dass du durch die ganzen File-Open/Close Aufrufe, die bei einer Splittung auftreten, langsamer unterwegs bist. Aber wie gesagt, ich glaub, das ist ziemlich egal hier.

                    Vektoren sind prinzipiell nicht durchsuchbar. Man müsste also drüber iterieren, was aber in diesem Beispiel nicht wirklich schlimm ist - oder die Einträge irgendwie eindeutig ihrem Index zuzuordnen.

                    Ansonsten: Kannst du nicht in C++ so eine Struktur wie die (Hash)Map in JAVA bauen? Damit kannst du halt pairs speichern und kannst dann auch direkt suchen.

                    Kommentar


                      Also die Dateien sind so halb sortiert, daher kann ich meine Suche schon eingrenzen.

                      Werde mich mal noch bisschen mit python beschäftigen, damit soll das wohl noch intuitiver gehen. Mal schauen wie ich das letztlich dann umsetze. Vielen dank :)

                      Kommentar


                        Frage:

                        Ich habe eine Struktur in einer header Datei.
                        Frage die Struktur in einer Funktion ab. < Funktioniert
                        Änder die Struktur innerhalb einer anderen Funktion. < Funktioniert
                        Beim verlassen der Funktion, ändert sich die Struktur wieder auf den Anfangswert zurück.

                        Warum ist das so? :D

                        z.b.

                        struct login {
                        string user = "hans";
                        int passwort = 1234;
                        }

                        void funktion1() {
                        login login;
                        if (...=login.user) {
                        if (...=login.passwort)
                        funktion2();
                        }
                        }

                        void funktion2() {
                        login login;
                        cin >> login.user
                        cin >> login.passwort
                        funktion1();
                        }

                        in Funktion 2 werden die daten in das struct geschrieben, beim rückwechsel in funktion eins, stehen wieder die alten daten drin :o

                        Kommentar


                          du legst dir in funktion1 ja eine neue struktur login an?! wird da vor den if abfragen noch was reingschrieben in funktion1?

                          außerdem stimmt die bedingung in den ifs nicht, = ist der zuweisungsoperator, == der vergleichsoperator

                          Kommentar


                            nein die struktur liegt in einem header "login.h" und wird in den funktionen nur bearbeitet.

                            Kommentar


                              das objekt legst du dir in den funktionen an und in funktion1 steht da bei den abfragen definitiv nichs drin was du eingelesen hast. außerdem: was soll das, funktion1 ruft funktion2 auf und umgekehrt? was willst du überhaupt machen, was rufst du in deiner main auf?

                              Kommentar


                                was du vor hast, ist wohl sowas:

                                struct login {
                                ...
                                } userLogin;

                                http://www2.informatik.uni-halle.de/lehre/c/c_struct.html

                                du erzeugst immer wieder 2 "instanzen" von login in deinen functions, deine alten daten gehen somit "out of scope"

                                Kommentar

                                Lädt...
                                X