Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Erstellen einer Tabelle mit Sinus- und Cosinus Werten (https://www.delphipraxis.net/156498-erstellen-einer-tabelle-mit-sinus-und-cosinus-werten.html)

hamptoncourt 4. Dez 2010 10:48

Erstellen einer Tabelle mit Sinus- und Cosinus Werten
 
Hallo Leute,

ich habe mal wieder eine Frage ... wir haben eine neue Projektaufgabe bekommen, in der es um die Programmierung einer mathematischen Berechnung von Sinus und Cosinus Werten geht.

Dabei soll zu Programmstart eine Tabelle geschrieben und in dem Programmordner abgelegt werden. In dieser Tabelle sollen alle Cos und Sin Werte von 0° bis 90° in 1/10° Schritten aufgeführt sein.
Auf dem Formular sollen dann nur ein Editfeld, ein Button und zwei Labels liegen. In dem Editfeld wird eine Gradzahl eingegeben. Bei Klick auf dem Button, soll laut Aufgabenstellung folgendes geschehen:

1. das Maskeditfeld den Winkel in Grad übernehmen
2. der Winkel wird in Rad umgewandelt
3. der Quadrant aus den Grenzwinkeln soll bestimmt werden
4. für den Quadranten soll der Index und das Vorzeichen (integer) für sin und cos in einer case Anweisung festgelegt werden
5. per Zugriff auf das Array soll der Funktionswert ermittelt werden
6. die Werte sollen in einem Labelfeld ausgegeben werden.

So, und da komme ich etwas ins straucheln :-/
Zunächst, gibt es einen Befehl, der den Winkel in Rad umwandelt? Oder muss das mit Hilfe einer Formel gelöst werden. Ist ja nicht so schwierig, aber wenn ich mir das Tippen der Formel mit einem einfachen Befehl ersparen kann, ist das ja schonmal was ...
Zu dem Index und den Vorzeichen stand hier auch noch etwas, dass dazu Tabellen geschrieben werden sollen, um das ganze nicht zu Zeitaufwändig zu machen :shock:
Aber wie schreibe ich denn, dass sich gleich bei Programm start diese Tabelle erstellt? Und wie, dass das Programm darauf zugreift und die Werte abgreift??? Ich bin da irgendwie ein wenig überfordert :-( Kann mir da jemand helfen???

Gruß
Hamptoncourt

Wolfgang Mix 4. Dez 2010 15:07

AW: Erstellen einer Tabelle mit Sinus- und Cosinus Werten
 
http://www.delphibasics.co.uk/RTL.asp?Name=DegToRad
http://www.delphibasics.co.uk/RTL.asp?Name=RadToDeg
oder selber machen:
alpha(Grad)/alpha(Bogen) = 360/2 PI = 180/PI

hamptoncourt 5. Dez 2010 11:53

AW: Erstellen einer Tabelle mit Sinus- und Cosinus Werten
 
Hey, danke erstmal für den Tipp ....

Aber wie geht denn das jetzt eigentlich mit der Tabelle??? Bin da echt ein wenig verzweifelt ... Unser Prof erklärt mal wieder nix und will, dass wir das alles aus dem Kopf können. Kann mir da jemand nen Tipp geben oder nen Lösungsvorschlag??? Dass er ne Tabelle erstellt, die Zeilen und Spalten füllt, und dass er dann später wieder darauf zugreift um den Wert abzulesen ...

sx2008 5. Dez 2010 12:03

AW: Erstellen einer Tabelle mit Sinus- und Cosinus Werten
 
0 bis 90 Grad in 0,1 Grad Schritten - das sind dann wohl 901 Einzelwerte, oder?
Delphi-Quellcode:
type
  TSinCosTabelle = array[0..900] of double;
var
  SinusTabelle : TSinCosTabelle;
  CosinusTabelle : TSinCosTabelle;

for i := 0 to 900 do
begin
  SinusTabelle[i]  := Sin( ???);
  CosinusTabelle[i] := Cos( ??? );
end;

hamptoncourt 5. Dez 2010 13:11

AW: Erstellen einer Tabelle mit Sinus- und Cosinus Werten
 
hey cool, danke ... allerdings hab ich noch ein Problem mit bem Speichern des Array ... Muss ich da nicht einfach SaveArray setzen??? Ich hab das so versucht, wie es bei "Delphi Treff" stand. Aber der sagt mir, das Identifier not foun "SaveArray" .... hä??? Im FAQ stand da aber nix, das ich das vorher festlegen muss. Oder ist das ein Unterschied zwischen Delphi und Lazarus??? In der Uni muss ich mit Delphi programmieren, zuhause mach ich das aber mit Lazarus ...

Wolfgang Mix 5. Dez 2010 13:16

AW: Erstellen einer Tabelle mit Sinus- und Cosinus Werten
 
Müsste wohl heissen (ungeprüft):
Delphi-Quellcode:
for i := 0 to 900 do
begin
  SinusTabelle[i] := DegToRad(Sin( 0.1*i));
  CosinusTabelle[i] := DegToRad(Cos( 0.1*i ));
end;

hamptoncourt 5. Dez 2010 13:26

AW: Erstellen einer Tabelle mit Sinus- und Cosinus Werten
 
Ja, soweit hab ich das mit der Berechnung auch ... aber er soll es ja als externe Datei speichern ... z.B. als test.dat .... Wenn ich aber SafeArray benutze, sagt er mir, dass er die nicht kennt. Muss ich dann erst als Variable "SafeArray : TSafeArray" Festlegen??? Aber als was leg ich dann den Typ TSafeArray fest??? Oder mache ich das grad total falsch ... ??? Ich bin verwirrt *lol*


type
TSinCosTabelle = array[0..900] of double;
TArrayData = array of string[20];
var
ArrayData: TArrayData;
SinusTabelle : TSinCosTabelle;
CosinusTabelle : TSinCosTabelle;
i : Integer;

for i := 0 to 900 do
begin
SinusTabelle[i] := DegToRad(Sin( 0.1 * i));
CosinusTabelle[i] := DegToRad(Cos( 0.1 * i ));
end;

SaveArray(ExtractFilePath(Application.ExeName) + 'test.dat', ArrayData);
end;

DeddyH 5. Dez 2010 13:42

AW: Erstellen einer Tabelle mit Sinus- und Cosinus Werten
 
Du könntest das Array z.B. in einer typisierten Datei speichern (file of Datentyp). BTW: Crossposts bitte künftig verlinken.

hamptoncourt 5. Dez 2010 15:12

AW: Erstellen einer Tabelle mit Sinus- und Cosinus Werten
 
typisierte Datei??? Verstehe grad nicht, wie das funktioniert??? Kann mir vielleicht jemand nen Quellcode dazu schicken, wie das bei mir aussehen müsste???

DeddyH 5. Dez 2010 15:14

AW: Erstellen einer Tabelle mit Sinus- und Cosinus Werten
 
Tutorial zu typisierten Dateien


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:32 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz