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! )
- Alle Sonderzeichen Entfernt
- Am Ende der Ausgabe ein "\n" angefügt, damit der Prompt nicht in der Selben Zeile wie die letzte ausgabe landet.
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;
}
Code: Alles auswählen
gcc -lm -o quadr quadr.c