Frage von Mathenoobie, 36

Programmierung Polynome zweiten Grades in C - Sprache?

Hallo liebe Programmierer

Ich bräuchte dringend Hilfe beim C - Programme schreiben hat jemand ein gutes Buch oder eine gute Internet Seite die, die C - Sprache gut erklärt ? Oder vielleicht sogar hier im Thread ne gute erklärung?

Ich möchte ein Programm schreiben welches die Nullstellen für p(x) berechnet... ich kann im Momment maximal die (flloat) Werte für a,b,c einlesen. Das wars dann leider auch wie es weiter gehen soll ist mir leider unklar..

p(x) = ax^2 + bx + c // Die Funktion ^^

Antwort
von edbca, 36

Ok, nehmen wir an, du hast die 3 Werte gelesen:

a = ...;
b = ...;
c = ...;

Jetzt stellt sich die Frage: wie löst man ein Gleichungssystem dieser Art? Die Lösungsformel solltest du ja kennen, steht auch in jedem Tafelwerk, ansonsten mal googeln.

Ja und in diesem Fall geht das ganz ungefähr so:

float x1 = (Lösungsformel mit +);
float x2 = (Lösungsformel mit -);

Für die Lösungsformel benötigst du eventuell die Wurzel (Funktion sqrt aus z.B. Math.h: en.wikibooks.org/wiki/C_Programming/C_Reference/math.h/sqrt). Quadrate gehen auch mit Multiplikation (a*a statt a^2).

Die beiden Werte kannst du dann mit printf ausgeben (de.wiki books.org/wiki/C-Programmierung:_Einfache_Ein-_und_Ausgabe).

Beispielhaft könnte es bei dir also ungefähr so aussehen:

#include <stdio.h>
#include <math.h>

int main()
{
  //Variablen einlesen
  float a = ...;
  float b = ...;
  float c = ...;

  //Nullstellen mit Lösungsformel berechnen
  float x1 = (Lösungsformel mit +);
  float x2 = (Lösungsformel mit -);

  //Lösung ausgeben
  printf("Lösung x1: %f\n", x1);
  printf(...);
}

Wegen deiner Frage nach Büchern etc. kann ich dir Rheinwerk empfehlen (hier ein Buch für C: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/ ), auch wenn ich speziell dieses Buch zu C nicht gelesen habe.

Kommentar von f1atlux ,

Mathlib beim Linken nicht vergessen! (-lm)

Kommentar von ceevee ,

Genau das Buch, was du empfiehlst, ist extrem schlecht.

https://www.c-plusplus.net/forum/272350-full

Deine Erklärungen sind aber absolut richtig.

Antwort
von f1atlux, 25

Das hat bereits edbca gut erklärt. Von meiner Seite noch ein paar Anmerkungen:

Für quadratische Polynome kannst du die Mitternachtsformel 1:1 ins Programm übernehmen. Größere Polynome kannst du mit dem Hornerschema auswerten.

Keine passende Antwort gefunden?

Fragen Sie die Community