C-Programm Informatik 1
-
Dieser Beitrag wurde gelöscht!
-
@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 rausDie 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 Codeif(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.
-
Dieser Beitrag wurde gelöscht!
-
@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
-
Dieser Beitrag wurde gelöscht!
-
@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 (etwamy_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