C-Programm Informatik 1



  • @DirkB Leider nicht ganz verstanden
    hier ist das Eingabe Feld vielleicht hilft dir das mehr
    https://ibb.co/P4cg9K2



  • @Lordkurd sagte in C-Programm Informatik 1:

    @DirkB Leider nicht ganz verstanden
    hier ist das Eingabe Feld vielleicht hilft dir das mehr
    https://ibb.co/P4cg9K2

    Da sehe ich nur den halben Code.
    Zudem sind, da hier die Mark-Down-Formatierung benutzt wird, keine * Zeichen sichtbar, die direkt an Wörtern stehen.

    Das soll etwa so aussehen:

    int main (void) {
      int anzahl_einlese;
      int einlese_ziel;
      int iteration;
      int laufindex_o;
      int vorzeichen;
      int matrikelnummer;
      int maxanzahl;
      double x_hoch_o;
      double letzte_zahl;
      double ergebniss_letzte_zahl;
      double akte_x;
      double genauigkeit;
      double gleitkommazahl;
      double log_ergebniss;
      matrikelnummer = 654321;
      maxanzahl = matrikelnummer/10000;
      genauigkeit = 1.0 /matrikelnummer;
     
    

    In der Zeile unter deinem Beitrag steht "Antworten" "Zitieren" und ganz rechts sind drei Punkte.
    Da klickst du drauf und wählst bearbeiten aus.
    Dann marlierst du deinen Code mit der Maus und klickst auf das </> Symbol neben der Auswahlbox mit C++.
    Den Erfolg kannst du rechts im Vorschaufenster bewundern.
    Allerdings ist es besser, du kopierst deinen ganzen Code nochmal rein.



  • This post is deleted!


  • @Lordkurd sagte in C-Programm Informatik 1:

    Das ist mein Programm und ich soll bei der Eingabe erst 11 eingeben und dann diese Zahlen
    1
    0
    -1
    0.1
    7.389056
    etc.
    und bei die illeteration soll immer letzten 4 Zahlen der Martikelnummer rauskommen also in diesem Fall 4321 leider kommen bei mir andere Zahlen raus und bei 0 und -1 kommt der Fehler raus

    Die Berechneten Werte in deinem Konsolenfenster stimmen doch aber.

    Der Logarithmus von 1 ist 0,
    Für 0 und negative Werte gilt der nicht, der Fehler kommt vom folgendem Code

    if(gleitkommazahl<=0){
     printf("ln(%lf)=Fehler\n",gleitkommazahl);
    }
    

    Der Logarithmus von 0,1 ist -2,302585.
    Bei 65 (oder 64) iterationsstufen (die ersten beiden Ziffern der Matrikelnummer) ist das ok.



  • This post is deleted!


  • @Lordkurd sagte in C-Programm Informatik 1:

    aber die iteration sollte immer gleich sein deswegen wollte ich wissen wo mein fehler liegt

    Da hast du evtl etwas falsch verstanden.

    Du gibst doch die Genauigkeit vor. Wenn die erreicht ist, bricht die Schleife ab.

    Bei 1 ist es sehr einfach. Da ist der Logarithmus (egal zu welcher Basis) immer 0.

    Wollltest du für maxanzahl evtl den Modulo-Operator benutzen?
    Da würdest du an die letzten 4 Stellen der Matrikelnummer kommen.



  • @DirkB Ich denke schon das wir den Modulo -operator benutzen sollen weil es sollen ja immer die letzten 4 Zahlen der Martikelnummer rauskommen

    Zitat aus der aufgabe"
    die genaugiekti mit 1.0/654321 ≈ 1,5283 ⋅ 10!! festgelegt werden. Die vorgegebene
    Genauigkeit ist erreicht, wenn der Absolutbetrag des zuletzt hinzugefügten
    Summanden der Reihe kleiner als der Zahlenwert für die Genauigkeit ist.
    Die maximale Anzahl der Berechnungsschritte soll Ihrer Matrikelnummer Modulo
    10000 sein. Wenn Ihre Matrikelnummer 654321 wäre dürfte die Schleife nicht mehr
    als 4321 Berechnungsschritte durchführen."



  • @Lordkurd sagte in C-Programm Informatik 1:

    @DirkB Ich denke schon das wir den Modulo -operator benutzen sollen weil es sollen ja immer die letzten 4 Zahlen der Martikelnummer rauskommen

    Hast du aber nicht. Da steht / 10000 und nicht % 10000



  • This post is deleted!


  • @Lordkurd Es dürfen nicht mehr als 4321 Iterationen sein. Weniger geht.



  • @DirkB Also ist meine Aufgabe richtig ? 🐕



  • Ich weiß nicht, ob die Genauikeit passt, denn was bedeuten die !! (etwa -6)

    @Lordkurd sagte in C-Programm Informatik 1:

    die genaugiekti mit 1.0/654321 ≈ 1,5283 ⋅ 10!! festgelegt werden.

    Sonst stimmt ja das Ergebnis.



  • @DirkB Dirk eine letzte Bitte das Programm so wie es da steht kannst du mir eine Zusammenfassung schreiben weil ich müsste das auch morgen erklären und bin mir einigen stelllen unsicher
    Danke nochmal für deine bemühung hast mir weiter geholfen



  • @Lordkurd sagte in C-Programm Informatik 1:

    @DirkB Also ist meine Aufgabe richtig ? 🐕

    Die Variablennamen sind etwas wirr.
    Die Struktur geht etwas durch die Fehlerabfrage bei der Eingabe verloren.
    Die eigentliche Berechnung als Funktion (etwa my_ln()) wäre hübsch gewesen.

    Und natürlich auch Kommentrare. Die werden die in zwei Wochen auch helfen.



  • @Lordkurd sagte in C-Programm Informatik 1:

    Dirk eine letzte Bitte das Programm so wie es da steht kannst du mir eine Zusammenfassung schreiben weil ich müsste das auch morgen erklären und bin mir einigen stelllen unsicher

    Sorry, aber ich habe heute schon mehr Hausaufgaben gemacht als ich sollte.
    Füge noch Kommentare ein, dann weißt du was du machen wolltest.

    Was da berechnet wird steht unter https://de.wikipedia.org/wiki/Logarithmus#Als_Potenzreihe


Log in to reply