Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Winkelumrechnung (https://www.delphipraxis.net/145183-winkelumrechnung.html)

Yinnik94 25. Dez 2009 15:42


Winkelumrechnung
 
Hallo Leute,

Falls das der falsche Bereich ist tut es mir leid und dann bitte verschieben!

Ich muss über die Ferien eine Hausarbeit machen und das Thema lautet Winkelumrechnung!

Die Aufgabe lautet so:

Die Größe eines Winkels ist in Grad, Minuten und Sekunden einzulesen (1 Grad= 60 Minuten, 1 Minute = 60 Sekunden).
Entwickeln Sie einen Alogrithmus und ein Programm, das das Bogenmaß des Winkels berechnet und ausgibt.

Unter Bogenmaß versteht man die Länge des Kreisbogens des Einheitskreises. Es gilt die Formel:

b= a*pi / 180°

Sie werden diesen Algorithmus häufig benötigen, weil die üblichen trigonometrischen Standardfunktionen bei den meisten Rechnern nur Winkel im Bogenmaß als Argument zulassen!



Ich bin nun soweit und weiß einfach nicht weiter:

Delphi-Quellcode:
unit UWinkelumrechnung;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TWinkelumrechnung = class(TForm)
    EdtWinkel: TEdit;
    EdtMinuten: TEdit;
    EdtSekunden: TEdit;
    LblGrad: TLabel;
    LblMinuten: TLabel;
    LblSekunden: TLabel;
    BtRechnen: TButton;
    BtEnde: TButton;
    LblBgleich: TLabel;
    LblErgebnis: TLabel;
    LblAusgabe: TLabel;
    procedure BtRechnenClick(Sender: TObject);
    procedure BtEndeClick(Sender: TObject);
  private
    { Private-Deklarationen}
  public
    { Public-Deklarationen}
  end;

var
  Winkelumrechnung: TWinkelumrechnung;
  Zahl1, Zahl2, Zahl3, Zahl4 : INTEGER;
  ausgabe, Ergebnis : REAL;

implementation

{$R *.DFM}

procedure TWinkelumrechnung.BtRechnenClick(Sender: TObject);
begin
Zahl1 := strtoint (EdtWinkel.text);
Zahl2 := strtoint (EdtMinuten.text);
Zahl3 := strtoint (EdtSekunden.text);
Zahl4 := strtoint (LblAusgabe.caption);
Zahl4 := Zahl1 + Zahl2/60 + Zahl3/3600;





end;

procedure TWinkelumrechnung.BtEndeClick(Sender: TObject);
begin
close
end;

end.
Ich hoffe ihr könnt mir helfen!
Danke im Vorraus
Yinnik94

Micha88 25. Dez 2009 16:09

Re: Winkelumrechnung
 
Ich denke das sollte helfen:

Post#2

http://forum.delphi-treff.de/showthread.php?t=15458

Yinnik94 25. Dez 2009 20:35

Re: Winkelumrechnung
 
Also soll ich Zahl1 und so weiter auch als Real deklarieren?

Danke schonmal für deine Hilfe!

Wolfgang Mix 25. Dez 2009 20:41

Re: Winkelumrechnung
 
ja, ganze Zahlen machen im Bogenmaß nicht viel Sinn

rollstuhlfahrer 25. Dez 2009 23:17

Re: Winkelumrechnung
 
HI,

mal auf die schnelle:
Datenbanken (aktuelle Rubrik): Schwachsinn
dann:
Delphi-Quellcode:
Zahl4 := strtoint (LblAusgabe.caption);
Zahl4 := Zahl1 + Zahl2/60 + Zahl3/3600;
Du scheinst dir nicht sehr schlüssig zu sein, was du genau jetzt willst.
Dann bekommst du dein Bogenmaß über deine Formel (PI ist als Konstante/etc. in der Unit Math definiert) oder auch über DegToRad (Unit Math, macht das gleiche).
Zu Sinus, Cosinus und Tangens: Diese können über die Windows-Funktionen SIN, COS und TAN ermittelt werden. Achtung TAN(90) hat kein Ergebnis!

Bernhard

PS: Soweit sieht's ja gut aus.

Wolfgang Mix 25. Dez 2009 23:29

Re: Winkelumrechnung
 
Nicht nur tan(90) macht Ärger, sondern auch andere Werte von alpha=0+n*90 Grad.
Schaut Euch 'mal die Graphen an:

http://www.delphipraxis.net/internal...ght=anf%E4nger

Gruß

Wolfgang

Yinnik94 26. Dez 2009 17:51

Re: Winkelumrechnung
 
Nun kommt Folgene Fehlermeldung:

'' ist kein gültiger Gleitkommawert

Bin nun soweit:
Delphi-Quellcode:
Zahl1 := strtofloat (EdtWinkel.text);
Zahl2 := strtofloat (EdtMinuten.text);
Zahl3 := strtofloat (EdtSekunden.text);
Ergebnis := strtofloat (LblErgebnis.caption);
ausgabe := Zahl1 + Zahl2/60 + Zahl3/3600;
Ergebnis := ausgabe*Pi/180 ;
LblErgebnis.caption := 'Ergebnis'
Brauche dringend Hilfe:)

Medium 26. Dez 2009 18:10

Re: Winkelumrechnung
 
Wenn in den Edits nichts eingetragen wurde, wird versucht eine leere Zeichenkette ('') in eine Zahl zu konvertieren. Das geht natürlich nicht.

Nur am Rande: Gewöhne dir das Leerzeichen zwischen Funktionsnamen und der öffnenden Klammer vor den Parametern ab ;). Das würde man als Stilbruch ansehen, und verschlechtert die allgemeine Leserlichkeit des Codes.

Wolfgang Mix 26. Dez 2009 18:28

Re: Winkelumrechnung
 
... außerdem mußt du Ergebnis erst ausrechnen lassen, bevor du es ausgeben läßt

Das Zauberwort heißt E V A

erst Eingabe.

dann Verarbeitung,

dann Ausgabe

Gruß

Wolfgang

Luckie 26. Dez 2009 18:38

Re: Winkelumrechnung
 
Und was hat das ganze jetzt mit Datenbanken zu tun? Also dass die Frage nicht in die Datenbanksparte gehört, sollte man eigentlich merken. :?


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:18 Uhr.
Seite 1 von 3  1 23      

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