Rechner für das Lösen von quadratischen Gleichungen

Semper

Cadet 3rd Year
Registriert
März 2012
Beiträge
34
Hallo,

ich bin auf die Idee gekommen, als ich einen Taschenrechner gesehen habe, der die Nullstellen einer Quadratischen Gleichung berechnet, einen eigenen Taschenrechner zu programmieren.

Die Formel für das Lösen einer quad. Gleichung 0=x²+px+q

= (-p/2)² +- Wurzel aus (p/2)² - q



Dazu habe ich jedoch einige Fragen:


Welche Prorgammiersprache sollte man dafür verwenden ? Sollte man auch Videos von Youtube nutzen o. Ä.?

Ich nutze sowohl Ubuntu 11.10 als auch Windows 7 64bit, welches ist dafür zu empfehlen, bzw. welche Programme werden benötigt?

Habt ihr da Tipps für mich, so allgemeine Sachen?


Würde mich wirklich über antworten freuen.
LG Semper
 
Nehm doch lieber wolframalpha.com oder so... Das lässt dich auch nicht im Stich wenn du mal Parameter oder sowas drin hast :cool_alt:
Ansonsten geht sowas banales mit wirklich jeder Programmiersprache...
 
Damit es unter Windows und Linux funktioniert, nimm eine Skriptsprache oder eine zu Bytecode kompilierte Sprache. Also Python, Perl, PHP, Lua, etc für Skriptsprachen, oder Java als Bytecode Umgebung.

@Bacardi Joe: es geht nicht vordringlich darum ein ein solches Programm zu schreiben um die Gleichung zu lösen, sondern zu lernen wie man ein solches Programm schreibt. Und das ist IMMER eine gute Sache, egal was für eine Art von Programm.

PS: Programmieren lernen geht nicht via Youtube sondern durch Übung und Bücher. Z.B: http://ada.rg16.asn-wien.ac.at/~python/literatur.html
 
hast du internet? www.wolframalpha.com

edit: sry zu langsam und natürlich auch nur wenn der aufwand nich zu den von Mumpitzelchen genannten gründen erfolgt
 
Zuletzt bearbeitet:
Welche Programmiersprache du nimmst ist im Prinzip egal - ist fast eine Glaubensfrage... (Tu dir selbst den gefallen und verzichte dabei auf Delphi und Visual Basic)

Je nachdem wie du vor hast die Programmiersprache zu lernen kannst du dir Text-/Videotutorials reinziehn oder dir ein Stück Programmcode von jemandem holen und dir das Zeug durch ausprobieren beibringen (nicht sehr effizient, stamt (wie ich) aus der Zeit vor dem Internet)

Am besten suchst dir was zu den "beliebtesten" raus (z.B: c++, Java, PHP (interessant wenn du sowas webbasiert machen möchtest)) und schaust dir verschiedene Tutorials an. Die Sprache, bzw. das Tutorial, das dir am besten gefällt nimmst dann.

Such dir dazu am besten was Allgemeines und nicht speziell den Rechner, dann kannst dir erstmal die Grundsätze aneignen und danach selbst den Rechner entwickeln (da lernst mehr und es gibt ein Erfolgserlebnis wenn er tut ;) )
 
Programmieren kann man so etwas in jeder Programmiersprache, nur der Aufwand unterscheidet sich.
Ich muss aber sagen: Das ist, genau wie Differential- und Integralrechnung, eine Aufgabe, die irgendwie nach deklarativer Programmierung schreit. Mit Sprachen wie Prolog kann man hier wirklich massive Erfolge feiern, wenn man sich erst einmal in die deklarative Denkstruktur hereingearbeitet hat, die sich völlig von der imperativen Herangehensweise der Üblichen Verdächtigen (C, PHP, Java,....) unterscheidet.
 
Zumal man dann anschließend Prolog ja einbetten kann in gewohnte Dinge wie C :)
 
Für sowas ist Lisp schon fast erfunden worden.
 
Bei penibler Fixierung auf ObjektOrientierte Programmierung, bietet sich C++, C# oder Java gut an.

Die Auswahl der Sprache würde ich davon abhängig machen, wie sehr du in das Programmieren involviert sein möchtest.

Hast du ohnehin vor in die Programmierung einzusteigen, bieten sich die drei Kandidaten, die ich oben genannt habe, an, da sie sehr gängig und effektiv sind. Dementsprechend hoch ist die Menge an Anlaufstellen in Form von Foren und Tutorialseiten im Netz. (Qualität ist was anderes, aber das lässt sich auch leicht klären)


Gruß

psegma
 
Hab mal nen alten Java Code ausgegraben den ich vor Jahren mal geschrieben habe. Das ganze in ne Methode gepackt sollte funktionieren :)
Für welche Programmiersprache du dich letztendlich entscheidest ist bei einem so kleinen Projekt glaub ich eher unwesentlich :)
Als freeware Entwicklungsumgebung kann ich dir zB. Eclipse ans Herz legen.

Code:
			double a, b, c, x1, x2, diskrim; //declaration of the variables
			Out.println("Solving Equations: +- ax² +- bx +- c = 0");
			Out.print("Input value of 'a': "); //asking the user to type the values of a, b and c
			a = In.readInt(); //assigning the user input to the variable
			Out.print("Input value of 'b': "); // and so on
			b = In.readInt();
			Out.print("Input value of 'c': "); 
			c = In.readInt();
		
			diskrim = b*b - 4*a*c; //doing one part of the later calculation, in order to be able to check weather the result will be amongst the real numbers or not
		
			if(diskrim > 0) { // checking if "wurzel" is more or equal to 0, if not, it is not possible that the outcome of the later calculation can be within the real numbers
				
				Out.println("Das Ergebnis ist Element der Reellen Zahlen! Diskriminante > 0 --> 2 Lösungen:");
				
				x1 = ((-b) + Math.sqrt(diskrim))/(2*a); //doing the calculation
				x2 = ((-b) - Math.sqrt(diskrim))/(2*a);

				Out.println("x1 = "+ x1); //showing the calculation result
				Out.println("x2 = "+ x2);
			}
			
			if(diskrim == 0) {
				
				Out.println("Das Ergebnis ist Element der Reellen Zahlen! Diskriminante = 0 --> 1 Lösung:");
				
				x1 = ((-b) + Math.sqrt(diskrim))/(2*a); //doing the calculation
				
				Out.print("x = "+ x1); //showing the calculation result			
			}
			
			if(diskrim < 0) { 
				
				Out.print("Diskriminante < 0 --> Das Ergebnis ist Element der Komplexen Zahlen!"); // in case wurzel<0 the user is told that the result is not amongst the real numbers
			}
 
Zuletzt bearbeitet:
Prolog wäre perfekt für sowas, wenn man aber erstmal fragt ob man von youtube-Videos lernen sollte, nehme ich mal an, die Konzepte werden den TE ein bisschen verwirren am Anfang.
 
Zurück
Oben