Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Bräuchte Hilfe bei einem Polynomenprojekt
Haiopai - Sa 06.09.08 17:28
Titel: Bräuchte Hilfe bei einem Polynomenprojekt
Hallo erstmal,
Ich stehe vor einem Problem: In unserem Informatik-Kurs arbeiten wir immoment an einem Programm das mit Polynomen umgehen soll. Dazu gab uns unser Lehrer eine Schablone, die wir vervollständigen sollten. Nun hänge ich jedoch schon seit Tagen an einer ganz bestimmten funktion, die anhand des x-wertes, der über den Parameter übergeben wird das Polynom "ausrechnen" soll. Ich habe leider keine Idee wie diese Funktion sussehen sollte. Könnte mir da vielleicht jemand von euch helfen? Besten Dank im Vorraus
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81:
| unit UPolynome;
interface uses SysUtils,Dialogs; const maxgrad=10;
type TPolynom=class private grad:integer; a:array[0..maxgrad] of real; public constructor create; overload; constructor create(n:integer);overload; procedure setKoeffizient(index:integer;wert:real); procedure setGrad(n:integer); function get_funkwert(x:real):real; function getKoeffizient(index:Integer):real; function getgrad:integer; function toString:string; function diff:TPolynom; end;
implementation
constructor TPolynom.create; var i:Integer; begin grad:=0; a[i]:=0; end;
constructor TPolynom.create(n:integer); var i:Integer; begin if n<=maxgrad then grad:=n else grad:=0; a[i]:=0; end;
procedure TPolynom.setGrad(n:integer); begin if n <= maxgrad then grad:=n else grad:=0; end;
function TPolynom.getKoeffizient(index:Integer):real; begin if index > grad then result:=0 else result:=a[index]; end;
function TPolynom.getgrad:integer; begin result:=grad; end; procedure TPolynom.setKoeffizient(index:integer;wert:real); begin if index <= grad then a[index]:=wert else writeln ('Fehler: Angegebene Koeffizienten groesser als maxgrad!'); end;
function TPolynom.get_funkwert(x:real):real; var s,p:real; i,j:integer; BEGIN result:= END; |
Jann1k - Sa 06.09.08 20:04
Hi du,
geh das array a einfach von vorne bis hinten durch und addiere die Werte der einzelnen Teile des Polynoms.
Also:
a[0]*x^0 + a[1]*x^2 +a[2]*x^3 etc.
(steht an Stelle a[0] der koeffizient vom x mit dem höchsten Exponentzen musst du das ganze natürlich umdrehen.)
Haiopai - Mo 08.09.08 13:02
Titel: Problem gelöst
Also erstmal danke für eure Hilfe.
@Jann1k: deine Idee war auch die, die wir im Unterricht dann hatten
@nagel: Auch ein guter Hinweis, aber etwas zu komplex
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!