Bombentrichter
Home
Mensa
Stundenpläne
StuRa
Home
Help
Search
Calendar
Login
Register
Bombentrichter
»
Archiv
»
Papierkorb
(Moderators:
Lasse Bierström
,
sandmann
,
foo
,
luftraudi
,
Neko
) »
Testaufgabe 2
« previous
next »
Print
Pages: [
1
]
Author
Topic: Testaufgabe 2 (Read 1668 times)
EisFach
Newbie
Posts: 9
Karma: +0/-0
Testaufgabe 2
«
on:
June 02, 2006, 11:00:25 am »
Moinzen, wollte mal fragen ob noch andere die Testaufgabe 2 haben und mir vielleicht etwas helfen könnten?
Wär cool...
Grüße
Logged
mjb-86
Newbie
Posts: 32
Karma: +0/-0
Testaufgabe 2
«
Reply #1 on:
June 02, 2006, 11:19:50 am »
Womit können wir denn dir weiterhelfen? :flower:
Logged
EisFach
Newbie
Posts: 9
Karma: +0/-0
Testaufgabe 2
«
Reply #2 on:
June 02, 2006, 12:27:07 pm »
ich bekomme es einfach nicht hin, das er die Wurfparabel in der paintbox zeichnet.
Weiß jemand von euch weiter?
var
Form1: TForm1;
g: double = 9.81;
x: double;
y: double;
p: double;
v: double;
t: double;
x1:double;
y1:double;
implementation
{$R *.dfm}
procedure TForm1.PaintBoxClick(Sender: TObject);
begin //nur das die PaintBox da is
end;
procedure TForm1.bt_berClick(Sender: TObject);
begin
try
p:=StrToFloat(ed_phi.Text); //auslesen der Daten
v:=StrToFloat(ed_v.Text);
except
ed_phi.Text:='Eingabefehler'; //wenn falsche eingabe dann...
exit;
end;
PaintBox.Canvas.MoveTo(0,400); //bewegt stift nach links unten
repeat //scheife
begin;
PaintBox.Refresh; //paintbox berechnung
x:=round(v*t*cos(p));
y:=round(v*t*sin(p)-(g/2)*t*t);
Paintbox.Canvas.Pen.Color:=clRed;
y1:=-round(y+400); //koordinaten richtig machen
Paintbox.canvas.LineTo(x,y1);
end;
until y<0;
end;
end.
Logged
numerik
Full Member
Posts: 184
Karma: +0/-0
Testaufgabe 2
«
Reply #3 on:
June 05, 2006, 04:46:21 pm »
hm,
1: frage, warum nimsmte überall double typ für deine variablen, also ich hab dieselbe aufgabe und erst angefangen mit delphi aber ich würde real datentyp bevorzugen, oder ist double in deisen falle einfach besser ?
2:heinweis musst du bei phi, welcher ja als winkel zwischn 0-90° eingegeben wird net noch die umrechnung in bogenmaß machen, also hier von grad in bogenmaß müsste der faktor gradmaß*pi/180=bogenmaß sein .
Logged
MB Daddy
Newbie
Posts: 10
Karma: +0/-0
Testaufgabe 2
«
Reply #4 on:
June 15, 2006, 05:10:58 pm »
Ja, eine Umrechnung sollte dabei sein. Dazu kann man am Anfang der Unit unter "Uses" (wo schon so viel steht, wie 'Form, Messages, SysUtils, Variants ...' einfach 'Math' dazuschreiben (mit Komma abtrennen) und benutzt dann einfach
'RadToDeg', also zum Beispiel:
alpha := DegToRad(StrToFloat(Edit1.Text))
Nun noch was für Perfektionisten: Habe eine halbe Ewigkeit (mit Tutorials und Delphie-Hilfe) darüber gegrübelt, wie man Fehler bei der Eingabe in die beiden Datenfenster am besten vermeiden kann. Nach einer Stunde !!! (:'blink:') bin ich dann endlich fertig gewesen!:
als erstes muss kurz kurz nach 'Implementation' mit 'var' die Variable 'Kommazaehler: integer;' definiert werden, also
implementation
var
Kommazaehler: integer;
Dann folgt die Funktion:
function TForm1.Eingabepruefung(Key: Char; s: string):Char;
var i: integer;
begin
if not (Key in [#8,#44, #46,#48 .. #57]) then //
besagt, welche Zeichen zulässig sind - siehe Hilfe
Key := #0
else
if Key = '.' then
Key := ',';
if Key = ',' then
begin
Kommazaehler := 0;
for i := 1 to length(s) do
begin
if s
= ',' then
Kommazaehler := Kommazaehler + 1;
end;
Kommazaehler := Kommazaehler + 1;
if Kommazaehler > 1 then
begin
key := #0;
end;
end;
result := Key;
end;
Es können somit nur Zahlen eingegeben werden und Punkt wird in Komma umgewandelt und bei mehr als 2 Kommas passiert nichts (da Key := #0).
Aufrufen tut ihr diese Funktion mit einem einfachem Ereignis. Dazu einfach das Editfeld im Bearbeitungsmodus eures Projektes einmal anklicken und im Objectinspektor unter Ereignisse doppelt auf 'OnKeyPress' drücken und folgendes reinschreiben:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); //
wird automatisch erstellt
s1 := Edit1.Text; // zum Bsp euer Alpha
Key := Eingabepruefung(Key, s1); //
lässt den Wert von Key anhand der Fkt. ermitteln
Viel Spasss damit!
Tom
Logged
\"Wissen ist die einzige Ressource, die sich vermehrt, wenn man sie teilt.\"
The Duke
Newbie
Posts: 3
Karma: +0/-0
Testaufgabe 2
«
Reply #5 on:
June 20, 2006, 07:25:59 pm »
Wie habt ihr denn bitte das mit den Records in Files gelöst?
Habt ihr Gleitregler verwendet oder nur Edit Felder? bis zu welcher Geschwindigkeit v0 beschränkt ihr euren Gleitregler?
Logged
numerik
Full Member
Posts: 184
Karma: +0/-0
Testaufgabe 2
«
Reply #6 on:
June 22, 2006, 02:12:44 pm »
v0 über edit, winkel über regler....
mit den records das wusst ich auch net, hat mir nen kumpel gemacht, die speicherfunktion...
Logged
The Duke
Newbie
Posts: 3
Karma: +0/-0
Testaufgabe 2
«
Reply #7 on:
June 22, 2006, 11:17:08 pm »
habt ihr für das record eine eigene UNIT gemacht, weil es doch glaube ich eine neue Klasse ist??? Habt ihr überhaupt mehr als eine Unit gemacht???
Logged
Fat Abbot
Newbie
Posts: 16
Karma: +0/-0
Testaufgabe 2
«
Reply #8 on:
July 06, 2006, 03:24:44 pm »
Ahoi,
muss in ner woche abgeben und hab nicht wirklich einen plan wie ich das mit der paintbox mache und schon gar net das mit den in die record files speichern.
wäre nett wenn jemand mal sein progi also zip oder rar hochladen könnte. :rolleyes:
Logged
Print
Pages: [
1
]
« previous
next »
Bombentrichter
»
Archiv
»
Papierkorb
(Moderators:
Lasse Bierström
,
sandmann
,
foo
,
luftraudi
,
Neko
) »
Testaufgabe 2