Autor Beitrag
Freak22
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 16.02.07 17:56 
Hallo,

ich muss "leider" ein doofes projekt machen bei uns im informatikunterricht und zwar alle mathematischen funktionen in einem programm darstellen, die im matheunterricht behandelt wurden. sprich ganz schön viele^^

wir müssen das mit canvas line to und move to und jeden parameter frei wählen können.

ganzrationale, gebrochenrationale, lineare, quadratische, sinus, cosinus, tangens und arctangens konnte ich von alleine darstellen, aber leider bin ich nun mit meinem latein am ende, weshalb ich das forum hier aufgesucht habe in der hoffnung ihr könnt mir helfen, weil das projekt wichtig ist ;)

mir fehlen also noch folgende funktionen:

- arcsinus
- arccos
- potenzfunktion
- wurzelfunktion
- exponentialfunktion
- logarithmusfunktion

wir müssen das wie besagt mit canvas line to move to oder irgendwie einfach darstellen, also keine weiteren addons oder wie das heißt.

hier ein beispiel für meine quadratische:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TForm1.Button4Click(Sender: TObject);
begin
a:=strtoint(edit8.Text);
b:=strtoint(edit9.Text);
c:=strtoint(edit10.Text);
for i:=-550 to 550 do
begin
x1:=457+i;
y1:=(round(272-((a/50*i*i)+(b/1*i)+c*50))); //Korrekturwert 50 wegen der Einheit im Koordinatensystem
x2:=457+i+1;
y2:=(round(272-((a/50*(i+1)*(i+1))+(b/1*(i+1))+c*50))); //Korrekturwert 50 wegen der Einheit im Koordinatensystem
Canvas.Pen.Style:=psSolid;
canvas.pen.width:=2;
canvas.pen.color:=clred;
canvas.MoveTo(x1,y1);
canvas.LineTo(x2,y2)end;
end;


ich muss also y1 und y2 immer berechnen für jedes i. bei mir scheiterts imo drann, dass ich nicht weiß wie bei den oben aufgeführten funktionen das i eintrage. egal wie ich es mache, delphi spuckt fehlermeldungen aus oder stürzt ab. sitze schon seit 2 wochen an den 6 fehlenden funktionen und weiß nicht mehr weiter.

ich hoffe ihr könnt mir weiterhelfen und bissel mit möglichen beispielen/lösungen oder was auch immer unterstützen, hauptsache ich kapier das irgendwie.


mfg
freak22
Leuchtturm
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1087

Win Vista, Knoppix, Ubuntu
Delphi 7 Pe, Turbo Delphi, C#(VS 2005 Express), (X)HTML + CSS, bald Assembler
BeitragVerfasst: Fr 16.02.07 18:04 
Um es erst mal "klarzustellen" das was du hier als Codebeispiel hast ist eine procedure und keine function :wink:
Edit: Sorry ich hatte hier etwas falsch verstanden

_________________
Ich bin dafür verantwortlich was ich sage - nicht dafür was du verstehst.


Zuletzt bearbeitet von Leuchtturm am Fr 16.02.07 18:20, insgesamt 1-mal bearbeitet
Freak22 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 16.02.07 18:13 
hm ja, steht ja auch in der ersten zeile...

ok, dann eine prozedur, die die funktion zeichnet und genau das will ich^^
Jetstream
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 222



BeitragVerfasst: Fr 16.02.07 18:29 
Hast du die unit "math" eingebunden? Die hat recht viele schöne Funktionen.
Alternativ kannste dir die Taylorreihen entwickeln ;)

_________________
Die folgenden Klangbeispiele sind Ergänzungen zum methodischen Aufbau der Textbeilage und dürfen nicht losgelöst von dieser behandelt werden.
Calculon
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 676

Win XP Professional
Delphi 7 PE, Delphi 3 PRO
BeitragVerfasst: Fr 16.02.07 18:32 
Oder wenn du fremden Code benutzen darfst, schau dir doch mal delfiphan's parser an. Da ist auch ein kleines Beispiel dabei.
freedy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 403
Erhaltene Danke: 1

Winows 7
Delphi XE
BeitragVerfasst: Fr 16.02.07 18:47 
user profile iconJetstream hat folgendes geschrieben:
Alternativ kannste dir die Taylorreihen entwickeln ;)



Yeah, cool... aber ich glaube, die werden in der Oberstufe noch nicht behandelt. ;)


Ich würde vorschlagen, du überlegst nochmal, wie du evtl. deine Werte skalieren kannst. Sowas gab es heute schonmal. Suche in der Delphi-PRAXiS DELPHIPROBLEM MIT GRAFIK
Damit sollte dann auch die Sache mit dem I deutlicher werden. Damit können dann auch bestimmte Bereiche der Funktion dargestellt werden und die Sache wird etwas flexibler.

Alle Funktionen, die du brauchst, sind in der Unit Math enthalten, wie Jetstream schon geschrieben hat. Bei den trigonometrischen Funktionen musst du nur darauf achten, dass die Wert in Rad und nicht Grad angegeben werden.

Hilft das?

Gruß
Freak22 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 16.02.07 22:36 
Muss ehrlich sagen, dass ich Delphi nur in der Schule benutze und eigentlich nur das kann, was dort behandelt wird, also die Grundkenntnisse. Da fängt schon das Problem an, wie ich eine Mathe unit einbinde etc. und wie das alles von statten geht.
Wir haben in der Schule nur mal ne Sinus und quadratische Funktion gezeichnet, davon hab ich bisher alle zu zeichnenen Funktionen abgwandelt. Bis auf die 6 im ersten Post genannten Funktionen, konnte ich diese so ohne große Probleme zeichnen lassen. Jetzt weiß ich aber nicht mehr weiter, wie die Funktionen nach dem Schema einbaue und das i so verwende, das er alle Werte in dem vorgegebenen Bereich zeichnet und so am Ende eine Funktion entsteht.

Wenn ihr wollt, kann ich mal das Programm + Quelltext anhängen und ihr könnt selber mal schauen. Bin eben kein Pro und dachte es gib nen Grundschema wie man arcsinus, Logarithmusfunktion, Wurzelfunktion etc. zeichnen kann. Ansonsten muss ich dem Lehrer sagen, dass ich es nicht einbauen konnte.



Mfg
Freak
freedy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 403
Erhaltene Danke: 1

Winows 7
Delphi XE
BeitragVerfasst: Fr 16.02.07 23:32 
Eigentlich ist programmieren ja nicht schwer. Man muss dem PC eben nur sagen, was er machen soll... und das eben haargenau und kleinlich.
Im Grunde steckt auch immer Mathematik dahinter. Ist eben mit Grundvoraussetzung.

Schon mal etwas von PAPs gehört (Programmablaufplan)? Ich helfe dir gerne, kaue dir den Stoff aber nicht vor. ;-)

Gruß
Freak22 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Sa 17.02.07 14:30 
Mir ist schon klar wie das mit dem Programmieren ist, denn ich progge selber, aber das in php und weniger delphi ;)

Also hab mal ne Weile gegoogelt und auch ne Math Unit eingebunden, dadurch konnte ich jetzt 5 von den 6 Funktionen zeichnen. Also sie sehen jetzt so aus, wie es sein soll, muss nur mal gucken irgendwann, wie genau das Ganze ist.

Jetzt fehlt mir nur noch die Exponentialfunktion.

y := Exp( n ); heißt ja, zur Basis e.

Wie mach ich das zu einer beliebigen Basis a? (muss anmerken, das wir diese nocht nicht wirklich in der Schule hatten, glaub ich ;) )
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Sa 17.02.07 18:39 
in der Delphi-IDE Power + F1

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!