Quadratische Gleichungs- löser

Präsentation und Organisation von eigenen Projekten
Antworten
Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Quadratische Gleichungs- löser

Beitrag von fat-lobyte » Mi Dez 31, 2008 8:49 pm

Hallo!

Heute möchte ich euch ein Stück meiner persönlichen Programmiergeschichte vorstellen:
Das Programm nennt sich "QUADR", und kann benutzt werden um Quadratische Gleichungen zu Lösen. Es kann lineare Gleichungen, "normale" quadratische Gleichungen und auch reel unlösbare Gleichungen Lösen (in dem Fall ist die Lösung Komplex).

Es hat viele Schwächen und zeugt von schlechtem Programmierstil, viele Dinge sind Ineffektiv gelöst.

Wieso ich es dennoch Poste: Dieses kleine Programmlein ist mein erstes Programm das etwas "Nützliches" tut, und eines der ersten Programme das ich überhaupt geschrieben habe. Es ist mithilfe Andreas Hammers C- Tutorials entstanden (obwohl es viel Kritik gehagelt hat, ein Großes Dankeschön an dieser stelle, denn tutorials.at war mein Einstieg ins Programmieren), und zwar vor 3 Jahren. (dabei hab ich Übrigens "Favourite Worst Nightmare" von den Arctic Monkeys gehört :-) ). Wie ihr seht ist die Erinnerung an die "Guten Alten Zeiten (tm)" der Grund wieso ich das Programm noch nicht gelöscht habe.

Der Code ist Fast original, ein paar kleine Dinge musste ich ändern, damit es auf einem durchschnittlichen C- Compiler kompilieren sollte:
  • "conio.h" und getch() Entfernt (shame on me! :oops: )
  • Alle Sonderzeichen Entfernt
  • Am Ende der Ausgabe ein "\n" angefügt, damit der Prompt nicht in der Selben Zeile wie die letzte ausgabe landet.
Also dann, here we go:

Code: Alles auswählen

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

int main()
{

double a, b, c;
double x1, x2, imag, reel;

printf ("\n\n\n________________________________________________________________________________\n\n\n");

printf ("Geben sie die Parameter einer quadratischen Gleichung in der form ax^2+bx+c=0 ein.\n");

printf ("a = ");
scanf ("%lf", &a);

printf ("\nb = ");
scanf ("%lf", &b);

printf ("\nc = ");
scanf ("%lf", &c);

if (a != 0)
{
	if ((b*b) - (4*a*c) > 0)

	{

	x1 = (-b + sqrt ((b*b) - (4*a*c))  )/(2*a);
	x2 = (-b - sqrt ((b*b) - (4*a*c))  )/(2*a);

	printf ("\nx1 = %f", x1);
	printf ("\nx2 = %f", x2);
	printf ("\n");

	}

	else

	{

	imag = (sqrt (-b*b+4*a*c)) / 2*a;

	reel  = -b / 2*a;

	printf ("Diese glg ist reel nicht Loesbar. Die Komplexe Loesung lautet: ");
	printf ("\nx1 = %g + %g * i", reel, imag);
	printf ("\nx2 = %g - %g * i", reel, imag);
	printf ("\n");

	}

}
else

{

	x1 = -(c/b);
	printf ("Das war zwar nicht quadratisch, aber egal...\nx = %f\n", x1);
}


return 0;

}
Um das Programm unter Linux mit "gcc" zu kompilieren, müsst ihr noch die Mathematikbibliothek "libm" hinzulinken, das geht mit einem Compilerswitch. Die Kommandozeile sähe so aus:

Code: Alles auswählen

gcc -lm -o quadr quadr.c
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Quadratische Gleichungs- löser

Beitrag von cloidnerux » Do Jan 01, 2009 2:05 am

klingt gut, je nach dem wie die ergebnise sind, kann mans ja gebrauchen.
"conio.h" und getch() Entfernt (shame on me! :oops: )
Naja, ist zwar scheiße, aber eine einfache lösung..(jeder fängt mal klein an).
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten