Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Kreisausschnitt berechnen (https://www.delphipraxis.net/131295-kreisausschnitt-berechnen.html)

safak67 22. Mär 2009 16:10


Kreisausschnitt berechnen
 
Also ich soll in Delphi ein Programm schreiben wo ich die fehlende Werte vom Kreisausschnitt berechnen soll..
Ich schreibe mal die Aufgabe rein vllt ist es dann verständlicher...

Schreiben Sie ein Programm, welches aus zwei beliebigen Werten die anderen Werte ermittelt und anzeigt. Die Eingabe des Benutzers müssen auf Fehler überprüft werden und wenn nötig mit einer Meldung quittiert werden. Dabei soll es dem Benutzer überlassen bleiben, welche Werte er eingeben will und welche Werte er berechnet haben will.

Das Problem ist das ich mich in Delphi garnicht auskenne... Ich hofe ihr könnt ihr helfen.. Iwi hat es auch keine geschafft das zu programmieren.. (Also die die ich kenne) Ich habe auch schon etwas geamcht aber iwi sind da sehr viele Fehler..

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
  type
  TWert =
  record
    IstBelegt: Boolean;
    Wert: Extended;
  end;

var radius, bogen, sekante, flaeche, winkel: TWert;

begin
  winkel := StrToFloat(edit1.Text);
  radius := StrToFloat(edit2.Text);
  bogen := StrToFloat(edit3.Text);
  sekante := StrToFloat(edit4.Text);
  flaeche := StrToFloat(edit5.Text);

  if (RadiusSollVerwendetWerden.Checked) then
begin
  Radius.IstBelegt := True;
  Radius.Wert := StrToFloat(RadiusEdit1.Text);
end

  if (BogenSollVerwendetWerden.Checked) then
begin
  Bogen.IstBelegt := True;
  Bogen.Wert := StrToFloat(BogenEdit2.Text);
end

  if (SekanteSollVerwendetWerden.Checked) then
begin
  Sekante.IstBelegt := True;
  Sekante.Wert := StrToFloat(SekanteEdit3.Text);
end

  if (WinkelSollVerwendetWerden.Checked) then
begin
  Winkel.IstBelegt := True;
  Winkel.Wert := StrToFloat(WinkelEdit4.Text);
end

  if (FlaecheSollVerwendetWerden.Checked) then
begin
  Flaeche.IstBelegt := True;
  Flaeche.Wert := StrToFloat(FlaecheEdit5.Text);
end




  if (Radius.IstBelegt AND Winkel.IstBelegt) then
    begin
  // Berechne alles andere aus Radius und Winkel
    end
  else
begin
  if (Radius.IstBelegt AND flaeche.IstBelegt) then
    begin
    // Berechne aus Flächeninhalt und Radius alles weitere
    end
  else
begin
  if (Radius.IstBelegt AND bogen.IstBelegt) then
  begin
    // Berechne aus bogen und Radius alles weitere
  end
  else
end;


end;

end.
[edit=mkinzler]Code-Tag durch Delphi-Tag ausgetauscht Mfg, mkinzler[/edit]

BAMatze 22. Mär 2009 16:55

Re: Kreisausschnitt berechnen
 
Also ich hab mir das mal angesehen und verstehe so auf den ersten Blick nicht, was eine Sekante damit zu tun hat. Denke alle Werte, die du sonst dort hast, kannst du sehr leicht berechnen mit den Formeln aus dem Tafelwerk ( also radius, winkel, Fläche und Bogen) nur die Sekante macht irgendwie keinen Sinn. Wenn du nicht vor hast das ganze mittels eines Koordinatensystems zu parametrisieren und selbst dann gibt es noch eine unendlich große Zahl an möglichen Sekanten.

MfG
BAMatze

safak67 22. Mär 2009 17:18

Re: Kreisausschnitt berechnen
 
Bei der Skizze was ich habe ist da auch eine Sekante... Die Formeln sind ja kein Problem das hauptproblem ist das Programm.. Ich weiß nicht wie ich das schreiben soll

BAMatze 22. Mär 2009 17:32

Re: Kreisausschnitt berechnen
 
gib hier mal die Formeln an, die verwendet werden sollen.

Blackheart 22. Mär 2009 17:34

Re: Kreisausschnitt berechnen
 
Gib bitte beim nächsten mal den Crosspost an.

safak67 22. Mär 2009 18:12

Re: Kreisausschnitt berechnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also die Formeln sind:

S = 2r * sin(alpha/2)

B = r* pi *(alpha/180)

A = pi * r * (alpha/360)


S = Sekante
B = Bogen
A = Fläche
alpha = Winkel alpha
r = Radius

Man muss die Formeln lediglich nur umschreiben..

BAMatze 23. Mär 2009 06:26

Re: Kreisausschnitt berechnen
 
Also mindestens die Formel für die Fläche ist schonmal falsch.

MfG
BAMatze

BAMatze 23. Mär 2009 06:57

Re: Kreisausschnitt berechnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also habe mich mal hingesetzt und folgendes Programm erstellt. Es ist insoweit funktionstüchtig, dass du jegliche Kombination eingeben kannst, wo der 2 gegebene Wert immer der Radius ist (also es geht z.B. r und Alpha gegeben, r und A gegeben/ was nicht geht ist A und s gegeben, da immer r gegeben sein muss). Hab dir die Exe mal zur Verfügung gestellt, dann kannst du die Funktionalität und Richtigkeit testen.
Alles in allem ist es nicht wirklich schwer dieses Programm zu schreiben. Man muss natürlich erstmal sich hinsetzen und überlegen was habe ich und welcher Punkt muss erreicht werden, damit ich mit angabe der Formeln meine Ergebnisse bekomme.

Bei meinem Programm, welches du hier im Anhang findest, wäre es jetzt noch mehrfaches lästiges Copy und Paste mit ein wenig mathematischer Umstellung der Formeln. Also Zeitaufwand um fertig zu werden vieleicht eine Virtel Stunde.

MfG
BAMatze

Alitschken 10. Jul 2013 09:11

AW: Kreisausschnitt berechnen
 
kann jemand auch den Quelltext dazu posten?

habe die gleiche aufgabe
jedoch kann ich dieses

if (RadiusSollVerwendetWerden.Checked) then
begin
Radius.IstBelegt := True;
Radius.Wert := StrToFloat(RadiusEdit1.Text);
end

nicht nachvollziehen?? er makiert mir das "checked" und "istBelegt".....

Sir Rufo 10. Jul 2013 13:27

AW: Kreisausschnitt berechnen
 
Sowas in der Art?
Delphi-Quellcode:
var
  Sekante, Radius, Alpha : Extended;
begin

  // Daten von Form lesen

  Radius := StrToFloat( Radius_Edit.Text );
  Alpha := StrToFloat( Alpha_Edit.Text );

  // Berechnung

  Sekante := 2 * Radius * Sin( Alpha / 2 );

  // Ausgabe in Form

  Sekante_Edit.Text := FloatToStr( Sekante );

end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:13 Uhr.

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