C++ Programm



  • Hi! Brauche eure Hilfe! Haben in Programmieren folgende Hausaufgabe auf und ich kann sie nicht lösen! Ich hoffe ihr helft mir! Also hier die Aufgabenstellung:

    a) Erstellen Sie eine Funktion findeZahl(), die mehrere Übergabeparameter hat: Eine ganze Zahl,
    ein Feld ganzer Zahlen zwischen 1 und 100, die Länge des Feldes, sowie einen Zeiger, der auf
    ein Element des Feldes zeigt.
    Die Funktion soll die übergebene Zahl im Feld finden und einen Zeiger auf das Element zurückgeben,
    in dem sich die Zahl befindet. Die Suche soll bei dem Element beginnen, auf das der zusätzlich
    übergebene Zeiger zeigt.
    Die Funktion soll NULL zurückgeben, falls die Zahl nicht gefunden wird. Die Funktion soll sicherstellen,
    dass der Zeiger wirklich auf ein Element des Feldes verweist. Wenn dies nicht der
    Fall ist, soll die Suche am Anfang des Feldes beginnen. Enthält der übergebene Zeiger den Wert
    NULL, so soll die Suche auch am Anfang des Feldes beginnen.
    Die Funktion soll ausschließlich Zeiger (keine Ausdrücke der Art 'Feldanfang+Index' !) für den
    Zugriff auf das Feld verwenden. Entwerfen Sie den Algorithmus mittels eines Struktogramms.

    b) Stellen Sie ein Hauptprogramm zum Test der Funktion zur Verfügung. Es soll ein Feld mit Zahlen
    initialisieren und es soll alle möglichen erlaubten und fehlerhaften Funktionsaufrufe generieren,
    um zu Testen, dass sich die Funktion korrekt verhält.
    Das Hauptprogramm soll außerdem dem Anwender die Möglichkeit bieten, eine Suchzahl einzugeben.
    Aus dem zurückerhaltenen Zeiger soll im Hauptprogramm berechnet werden, um das wievielte
    Element im Feld es sich bei der gefundenen Position handelt. Das Hauptprogramm soll außerdem
    die Funktion mehrfach aufrufen, um so alle im Feld vorhandenen passenden Zahlen zu
    finden.

    P.S.: Das ganze soll in Borland C++ geschrieben werden!
    Schonma DANKE
    MfG Gölti



  • probier mal so ....

    findeZahl(int zahl,int *feld,int lange,int *zeiger)
    {
    
    }
    

    ...soo der anfang wäre gemacht 😉 .... hast du den schon was dazu geschrieben ?? oder wartest einfach mal ab ?? ....
    chris



  • Ja sowas ähnliches hab ich mir schon gedacht! Aber ich hab leider noch überhaupt nichts zu dem Programm... :(?! Keine Ahnung wie die Aufgabe gehen soll! Bitte um weitere Hilfe! DANKE



  • Mach es doch einfacher.
    Langsam aufbauen:

    schreibe eine funktion findeZahl, die mehrere übergabeparameter hat:
    eine ganze zahl und ein feld ganzer zahlen sowie die länge des feldes
    die funktion soll alle elemente ausgeben.

    wenn du das hast, dann kommt der nächste schritt:
    Die Funktion soll die übergebene Zahl im Feld finden und einen Zeiger auf das Element zurückgeben,

    damit ist der 2. teil erledigt

    danach wird der zusätzliche parameter hinzugefügt und die funktion um die funktionalität erweitert.

    nun fehlt noch, dass ein fehlerhafter zeiger erkannt wird.
    und fertig sind wir 🙂

    so kannst du auch komplexe programme lösen, weil du immer nur kleine schritte machst. jetzt kannst du konkrete fragen zur lösung der probleme stellen - aber erwarte nicht, dass wir den code für dich schreiben.



  • NachhilfeLehrer bekommen pro Stunde ca. 1200 Euro !



  • NachhilfeLehrer schrieb:

    NachhilfeLehrer bekommen pro Stunde ca. 1200 Euro !

    😕 😕 Und wer ist so doof denen so viel zu zahlen?



  • Hier ist deine Funktion das Hauptprogramm musst du dir allerdings dann doch selber schreiben:

    int * findeZahl (int Zahl, int *Feld, int Length, int *Point = 0)
    {
        int *iterator = 0;
        if((Point != 0) && (Point < Feld+Length))
        {
                  iterator = Point;
        }
        else
        {
            iterator = Feld;
        }
        for(;iterator < Feld+Length; ++iterator)
        {
                      if((*iterator) == Zahl)
                      {
                                     return(iterator);
                      }
        }
        return(0);
    }
    

    Felix



  • Solltest du die Aufgabe nicht schon letztes Jahr abgegeben? Hast wahrscheinlich wieder nur ein Vortestat bekommen.
    Ich würde mir an deiner Stelle schon langsam gedanken machen, wenn du ständig deine Hausarbeiten vom Forum gelöst haben willst. Wie lange willst du denn noch so studieren?


Anmelden zum Antworten