AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Berechnung am Dreieck (Schulaufgabe) Wurzelproblem
Thema durchsuchen
Ansicht
Themen-Optionen

Berechnung am Dreieck (Schulaufgabe) Wurzelproblem

Ein Thema von Isaac18 · begonnen am 24. Okt 2008 · letzter Beitrag vom 24. Okt 2008
Antwort Antwort
Seite 1 von 2  1 2      
Isaac18

Registriert seit: 24. Okt 2008
5 Beiträge
 
#1

Berechnung am Dreieck (Schulaufgabe) Wurzelproblem

  Alt 24. Okt 2008, 15:35
Hallo,
wie ihr seht bin ich neu hier...

Wir hab in der Schule angefangen unter Delphi 7 zu programmieren...
Also haben erst ein paar wenig Grundlagen um simple Programme zu erstellen.

Wir haben eine Aufgabe wo man ein Programm erstellen soll welches den Umfang und die Fläche eines Dreiecks berechnet, nachdem die Längen der Drei Seiten angegeben(eingegeben) wurden.

Dabei soll die Fläche mit der Formel: A="Wurzel aus" s*(s-a)*(s-b)*(s-c) ,wobei s=a+b+c/2 ist.

Das grobe hab ich schon erstellt....
Mein Problem besteht darin das, wenn man auf den berechnen Button klickt ohne Werte eingegeben zu habe oder wenn Werte eingegeben werden,die ein nicht existierendes Dreieck definieren, dass dann eine Fehlermeldung kommt die sagt "Ungültige Gleitkommaoperation"

Ich denk mal das liegt an der Wurzel, nur ich weiß nicht wie man die anders schreiben kann...

Hier mein Quellcode:
Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
VAR
  a , b , c , s , flaeche , umfang: real;

begin

  a:=StrToFloat(Edit1.Text);
  b:=StrToFloat(Edit2.Text);
  c:=StrToFloat(Edit3.Text);
  s:=(a + b + c)*0.5;
  flaeche:=sqrt(s*(s - a)*(s - b)*(s - c));
  umfang:=(a + b + c);
  Edit4.Text:=FloatToStr(flaeche);
  Edit5.Text:=FloatToStr(umfang);

   IF a+b<c THEN
   begin
     label7.Caption:='Dieses Dreieck existiert nicht!';
   end



end;

end.
das mit dem IF ist noch nicht fertiggestellt....
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.549 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Berechnung am Dreieck (Schulaufgabe) Wurzelproblem

  Alt 24. Okt 2008, 15:39
Hallo und Willkommen in der DP

statt StrToFloat kannst Du Dir mal StrToFloatDef oder TryStrToFloat ansehen. Mit diesen beiden Funktionen kannst Du fehlerhaften Werten begegnen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Berechnung am Dreieck (Schulaufgabe) Wurzelproblem

  Alt 24. Okt 2008, 15:50
Willkommen in der DP!

Die Fehlermeldung lässt darauf schließen, dass du mit negativen Werten in die Wurzel kommst, weshalb man das u.U. nicht sofort an den eingegebenen falschen Werten erkennen kann. Ich würde die Rechnung etwas auseinander ziehen, um noch eine weitere Bedingung einzubauen:

Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
VAR
  a , b , c , s , flaeche , umfang, tmp: real;
begin
  a:=StrToFloat(Edit1.Text);
  b:=StrToFloat(Edit2.Text);
  c:=StrToFloat(Edit3.Text);
  s:=(a + b + c)*0.5;
  tmp := s*(s - a)*(s - b)*(s - c);
  if tmp < 0 then
  begin
    ShowMessage('Ungültiges Dreieck oder Eingabe fehlerhaft!')
  end
  else
  begin
    flaeche:=sqrt(tmp);
    umfang:=(a + b + c);
    Edit4.Text:=FloatToStr(flaeche);
    Edit5.Text:=FloatToStr(umfang);

    IF a+b<c THEN
    begin
      label7.Caption:='Dieses Dreieck existiert nicht!';
    end;
  end;
end;

end.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.549 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Berechnung am Dreieck (Schulaufgabe) Wurzelproblem

  Alt 24. Okt 2008, 15:53
Zitat:
ShowMessage('Ungültiges Dreieck oder Eingabe fehlerhaft!')
Bei fehlerhafter Eingabe kommst Du da erst gar nicht hin
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Berechnung am Dreieck (Schulaufgabe) Wurzelproblem

  Alt 24. Okt 2008, 15:56
Man sollte beides tun, das kam evtl. nicht wirklich in meinem Beitrag rüber, ich gebs ja zu
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.889 Beiträge
 
Delphi 12 Athens
 
#6

Re: Berechnung am Dreieck (Schulaufgabe) Wurzelproblem

  Alt 24. Okt 2008, 16:03
Willkommen.
Es ist nicht schön wenn ein Schüler die Hausaufgabe schon erledigt hat und das Programm nur idiotensicher haben will?

Finde ich klasse, das auch noch zu erleben...
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Isaac18

Registriert seit: 24. Okt 2008
5 Beiträge
 
#7

Re: Berechnung am Dreieck (Schulaufgabe) Wurzelproblem

  Alt 24. Okt 2008, 16:09
Okay viele dank schon mal an euch alle für die super schnelle Antwort.

Jetzt läuft es schon besser....
Nur, wenn man "ENTER" drückt bzw. "Berechnen" ohne das Werte eingeben wurden dann kommt die Fehlermeldung noch...?

Kann man da noch was machen...bei andren Programmen ist dann einfach nichts passiert...?
  Mit Zitat antworten Zitat
Isaac18

Registriert seit: 24. Okt 2008
5 Beiträge
 
#8

Re: Berechnung am Dreieck (Schulaufgabe) Wurzelproblem

  Alt 24. Okt 2008, 16:12
Zitat von QuickAndDirty:
Willkommen.
Es ist nicht schön wenn ein Schüler die Hausaufgabe schon erledigt hat und das Programm nur idiotensicher haben will?

Finde ich klasse, das auch noch zu erleben...
Deine "Frage" check ich nicht...
  Mit Zitat antworten Zitat
fishbrain

Registriert seit: 17. Sep 2007
Ort: Regensburg
132 Beiträge
 
#9

Re: Berechnung am Dreieck (Schulaufgabe) Wurzelproblem

  Alt 24. Okt 2008, 16:16
Zitat von Isaac18:
Zitat von QuickAndDirty:
Willkommen.
Es ist nicht schön wenn ein Schüler die Hausaufgabe schon erledigt hat und das Programm nur idiotensicher haben will?

Finde ich klasse, das auch noch zu erleben...
Deine "Frage" check ich nicht...
Es war ne rhetorische frage.
Er freut sich, dass du dich so um Benutzer kümmerst .

Zu deiner Frage:
einfach
Delphi-Quellcode:
 If (Edit1.text = '') or (edit2.text = '') or (edit3.text = '') then exit
else [deinen normalen code]
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Berechnung am Dreieck (Schulaufgabe) Wurzelproblem

  Alt 24. Okt 2008, 16:17
Er hat nur "Es" und "ist" vertauscht . Es ist eine mehr als erfreuliche Abwechslung, mal einen Schul-Informatiker hier zu haben, der nicht in unlesbarem "Gerade-Eben-Noch-Deutsch" zu vermitteln versucht, dass er a) keine Lust, und b) keinen Plan hat, und gerne alles geliefert haben möchte. Das steckt dahinter
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:16 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