Verfügbare Informationen zu "Frage zum C - Programm - Nullstellenberechnung"
Qualität des Beitrags: Beteiligte Poster: Kimi - Xin - dani93 Forum: Tutorials.at Forenbeschreibung: Programmierforum aus dem Unterforum: C / C++ Antworten: 3 Forum gestartet am: Mittwoch 19.04.2006 Sprache: deutsch Link zum Originaltopic: Frage zum C - Programm - Nullstellenberechnung Letzte Antwort: vor 14 Jahren, 11 Monaten, 24 Tagen, 21 Stunden, 25 Minuten
Alle Beiträge und Antworten zu "Frage zum C - Programm - Nullstellenberechnung"
Re: Frage zum C - Programm - Nullstellenberechnung
Kimi - 03.04.2008, 23:15Frage zum C - Programm - Nullstellenberechnung
Hi ich habe folgendes C- Programm nur habe ich da eine Frage auf die schnelle:
Hier das C- Programm:
Code: #include <stdio.h> /* quadrat.c */
#include <math.h>
void main(){
float a, b, c; /*Koeff. der quadr. Gleichung.*/
float x1, x2; /*Loesungsvariablen*/
float help, diskr; /*x1=-p/2+sqrt((-p/2)^2-q)*/
/*x2=-p/2-sqrt((-p/2)^2-q)*/
printf("Loesung der quadrat. Gleichung\n");
printf("a= ");
scanf("%f", &a);
printf("b= ");
scanf("%f", &b);
printf("c= ");
scanf("%f", &c);
if(a){ /* a <> 0 */
help=-0.5f*b/a;
diskr=help*help-c/a;
if (!diskr) printf("x = %f",help);
else
if(diskr>0.0){
x1=help+(float)sqrt(diskr);
x2=help-(float)sqrt(diskr);
printf("x1 = %f x2 = %f", x1, x2);
}
else {
printf("x1 = %f + %fi\n",help,sqrt(-diskr));
printf("x2 = %f - %fi\n",help,sqrt(-diskr));
}
}
else
if(b) printf("X= %f", -c/b);
else if(c) printf("Keine Loesung");
else printf("Unendlich viele Loesungen");
printf("\n");
getchar();getchar();
}
/*
Loesung der quadrat. Gleichung (Beispiel)
a= 4
b= 7
c= 8
x1 = -0.875000 + 1.111024i
x2 = -0.875000 - 1.111024i
*/
Und hier meine frage dazu:
Kann ich ín diesem C-Programm den Typ float gegen den Typ double ersetzen.
Danke
Re: Frage zum C - Programm - Nullstellenberechnung
Xin - 04.04.2008, 14:03Re: Frage zum C - Programm - Nullstellenberechnung
Kimi hat folgendes geschrieben: Hi ich habe folgendes C- Programm nur habe ich da eine Frage auf die schnelle:
Und hier meine frage dazu:
Kann ich ín diesem C-Programm den Typ float gegen den Typ double ersetzen.
(Nahezu) Vollkommen unabhängig vom Programm: double ist genauer als float, wenn Du genauere Ergebnisse möchtest, nimmst Du double anstelle von float. Das ist als ob Du short gegen long austauschst. Bei den Fließkommazahlen kannst Du nun größere Zahlen speichern oder eben mehr Nachkommastellen.
Hier hast Du nun also einfach genauere Ergebnisse in den Variablen.
Edit: Ist das 'i' hinter der zweiten Zahl beabsichtigt?
Imaginäre Zahlen sind vermutlich nicht gefragt ^^
Zur Berechnung der PQ Formel fällt mir hier die Numerik ein und der Begriff "Numerisch stabil"...
Re: Frage zum C - Programm - Nullstellenberechnung
dani93 - 04.04.2008, 14:13
So zuerst mal den Code aufräumen:
Code: #include <stdio.h>
#include <math.h>
void main ()
{
float a, b, c, x1, x2, help, diskr;
printf("Loesung der quadrat. Gleichung\n");
printf("a= ");
scanf("%f", &a);
printf("b= ");
scanf("%f", &b);
printf("c= ");
scanf("%f", &c);
if (a)
{
help=-0.5f*b/a;
diskr=help*help-c/a;
if (!diskr)
printf("x = %f",help);
else if (diskr>0.0)
{
x1=help+(float)sqrt(diskr);
x2=help-(float)sqrt(diskr);
printf("x1 = %f x2 = %f", x1, x2);
}
else
{
printf("x1 = %f + %fi\n",help,sqrt(-diskr));
printf("x2 = %f - %fi\n",help,sqrt(-diskr));
}
}
else if(b)
printf("X= %f", -c/b);
else if(c)
printf("Keine Loesung");
else
printf("Unendlich viele Loesungen");
printf("\n");
getchar();
getchar();
}
Sieht doch gleich viel besser aus.
Double ist ähnlich wie float, nur dass es viel genauer (mit mehr Nachkommastellen) rechnet.
Ich rate dir aber, dass Ergebnis nicht auf 20 Kommastellen auszugeben, da das in den meisten Fällen nicht nötig ist.
Also für drei Kommastellen:
Code: printf ("%L.3f", variable);
Double ist doch Lf oder?
Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken
Weitere Beiträge aus dem Forum Tutorials.at
wer hat noch tools für das alte (turbo-) basic? - gepostet von hapec am Dienstag 28.08.2007
Knifflige fehler im kleinem programm - gepostet von aimheld am Samstag 23.09.2006
--- IDE --- (unbedingt lesen) - gepostet von X am Sonntag 10.09.2006
Probleme mit Dev-C++ - gepostet von Mobin am Donnerstag 30.11.2006
Zippen - HowTo ? - gepostet von Dirty Oerty am Mittwoch 05.03.2008
Der Trash-Thread - Alles sinlose Hier rein ;-) - gepostet von ggspp am Sonntag 16.07.2006
Pfade für Units - gepostet von detewe89 am Freitag 23.02.2007
Datei einlesen - gepostet von Blümchen am Mittwoch 07.02.2007
Männlich- Weiblich zeichen - gepostet von DrPhil_Guth am Sonntag 23.04.2006
Ähnliche Beiträge wie "Frage zum C - Programm - Nullstellenberechnung"
Mitglieder-Foto-Box - cäsar (Mittwoch 22.03.2006)
Mitglieder - Orakel (Montag 27.08.2007)
Kb's von ZvL Mitglieder gengen Euch - feschit (Dienstag 03.10.2006)
Vorstellung der Mitglieder - Lars90 (Donnerstag 17.01.2008)
klassenfremde mitglieder - Berii (Sonntag 16.07.2006)
mitglieder... - Henry (Donnerstag 14.12.2006)
Mitglieder - Fortune (Freitag 17.06.2005)
Die Mitglieder - irrerjohn (Samstag 13.05.2006)
Hinweis fuer Mitglieder - dickschiff (Mittwoch 11.10.2006)
WICHTIG: wir brauchen neue mitglieder !!! - EL Barto (Freitag 23.09.2005)
