Hilfe bei einem Kleinen Programm



  • Hey :),

    also da ich noch eine totalle Anfänger brin,
    hätte ich da eine Frage:
    Welche Funktionen nutze ich bei meinem Programm?

    In meinem Programm soll lediglich, durch werte Eingabe ermittelt werden, welche Schraube das ist z.b.

    input: 10 cm
    Durchmesser 3cm
    ...Gramm

    output: Schraube X

    Ich selber dachte mir das ich das mithilfe von Rechnungen mache.
    Beispiel: Schraube Peter
    10 cm
    3 cm durchmesser
    6 gramm
    Ich rechne dan alle werte zsm... währen dan 19.

    Mein Programm würde dann nach den 3 Informationen Fragen... der Leser gibt sie meinem Programm... der Programm rechnet die summe daraus und sucht welche summe, welche Schraube auch hat. und dan währe der Output Schraube X

    Aber welche Funtkionen darf ich benützten?? 😞

    Ich habe an If gedacht,... aber darf ich so viele ifs dran setzten?

    (if(cin>> 33>>){ cout<< "Schraube X" endl; }

    usw.

    danke im vorraus



  • Dieser Weg wird kein leichter sein...



  • Einfach durch die Liste aller Schrauben gehen und nur die auswählen, wo alle drei Werte stimmen. Solange das Prog nicht kommerziell im Einsatz ist, geht das prime. Bei mehreren tausend Schraubentypen wirds langsam langsam.

    Hashen macht schneller.
    [quote="miamidya"]Ich rechne dan alle werte zsm... währen dan 19.[/genau]
    Das nennt sich hashen. Einfaches plus ist selten eine gute Hashfunktion. Vielleicht besser h=((laenge*13)+duchmesser*291)+gramm

    Und der Hash garantiert keine Eindeindeutigkeit, das heißt, Du musst trotzdem durch die Liste aller Schrauben gehen, die diesen Hash haben und nur die auswählen, wo alle drei Werte stimmen.

    Kann man keine gute Hash-Funktion finden, nimmt man vielleicht einen mehrdimensionalen Suchbaum. https://de.wikipedia.org/wiki/Bereichsbaum

    miamidya schrieb:

    (if(cin>> 33>>){ cout<< "Schraube X" endl; }

    Ganz so einfach geht es nicht. Lies erst die drei Werte in drei Variablen ein.

    Und dann erst fang mit der Asuwertung an und mach so viele ifs wie Du magst.

    int laenge;
    cin>laenge;
    int durchmesser;
    cin>>durchmnesser;
    int gramm;
    cin>>gramm;
    
    if (laenge==20 and durchmesser==8 and gramm==12)
       cout<<"Lodz Armeeschraube Typ B, Bestellnummer 08154711";
    else if (laenge==20 and durchmesser==8 and gramm==19)
       cout<<"Lodz Armeeschraube Typ C (vergoldet), Bestellnummer 08154712";
    else if (laenge==40 and durchmesser==5 and gramm==21)
       cout<<"Siemens Lufthaken,  Bestellnummer -1";
    else
       cout<<"Unbekannter Bolzen"
    


  • miamidya schrieb:

    Mein Programm würde dann nach den 3 Informationen Fragen... der Leser gibt sie meinem Programm... der Programm rechnet die summe daraus und sucht welche summe, welche Schraube auch hat.

    Das geht rein mathematisch nicht gut, weil Summen eventuell unterschiedliche Teiler haben. 18 lässt sich zum Beispiel teilen in 18, 9, 6, 3, 2 und 1. Wie soll der Computer jetzt wissen, welche Schraube er hat?

    Aber welche Funtkionen darf ich benützten?? 😞
    Ich habe an If gedacht,... aber darf ich so viele ifs dran setzten?

    Du darfst prinzipiell so viele Schleifen benutzen, wie du magst. Aber halte dein Programm einfach, dann behältst du auch selbst den besten Überblick. Du solltest hier mit einer Schleife auskommen. Volkard hat dir ein Beispiel gegeben.

    Wahrscheinlich bist du noch nicht so weit, aber: Funktionen sind in Programmiersprachen was besonderes. Schleifen sind Kontrollstrukturen, keine Funktionen. Sie können aber Funktionen beinhalten. Das lernste bestimmt noch 🙂 ist nur etwas verwirrend zu lesen.



  • Eine if-Bedingung ist keine Schleife.
    Zum hundertstenmal.



  • DANKEEEEEE!!! ihr wart eine tolle Hilfe :*** 👍 👍



  • Falsches Unterforum...

    Hier ist das C++/CLI Unterforum: Da geht es um C++/CLI, eine .NET Sprache (oder deren einziger Zweck, die Interoperabilität zu C++). Das korrekte Unterforum ist C++ (alle ISO-Standards).


Anmelden zum Antworten