AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Brauche Hilfe bei dem Heron Verfahren

Ein Thema von Tobias88 · begonnen am 11. Dez 2005 · letzter Beitrag vom 9. Okt 2006
Antwort Antwort
Tobias88

Registriert seit: 11. Dez 2005
1 Beiträge
 
#1

Brauche Hilfe bei dem Heron Verfahren

  Alt 11. Dez 2005, 18:13
Mein Name ist Tobias,ich bin neu im Delphi `Geschäft` und brauche Hilfe bei dem Heron Verfahren.Ich arbeite in meiner Schule jetzt mit Delphi und muss am Freitag ein Programm abgeben,aber ich kann Delphi nicht so wirklich.
Das Projekt:Wir sollen aus einem Rechteck zum Beispiel mit dem Flächeninhalt 8 ein Quadrat mit dem gleichen flächeninhalt erzeugen.Man soll den Flächeninhalt angeben und dann soll anhand dem heron verfahren rauskommen wie lang die Seite ist.Ich denke es ist sicher einfach aber ich kann es einfach nicht.
Kann mir jemand ein passendes Programm zukommen lassen oder irgendwie helfen.Habe aus der stunde noch ein paar sachen aufgeschrieben und hier als anhang beigefügt.Schaut nach falls noch was unklar ist oder fragt einfach nochmal nach.
Danke Tobias
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#2

Re: Brauche Hilfe bei dem Heron Verfahren

  Alt 11. Dez 2005, 18:25
soweit ich mich erinnern kann, berechnet der Heron-Algo die Quadratwurzel einer Zahl mithile von Annäherung (oder?)

wenn das stimmt kann man ihn ähnlich wie folgt implementieren

Delphi-Quellcode:
function GetSqrtHeron(x,y, Genauigkeit: Extended): Extended;
var D, Diff: Extended;
begin
  D:=1; //Um wieviel je schritt angenähert wird
  Diff:=Abs(X-Y); //Differenz der Werte
  while Diff>Genauigkeit do //Solange noch zu ungenau
    begin
    while D>Diff do //Größenordnung anpassen
      D:=D / 10;
    if x>y then //Wenn X größer
      begin
      X:=X-D; //X verkleinern
      Y:=Y+D; //Y vergrößern
      end
    else
      begin
      X:=X+D; //X vergrößern
      Y:=Y-D; //Y verkleinern
      end;
    Diff:=Abs(X-Y); //Differenz neu berechnen
    end;
  Result:=(X+Y) / 2; //Durchschnitt => Erhöhte Genauigkeit
end;
Keine Garantie für Fehlerfreiheit^^
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Brauche Hilfe bei dem Heron Verfahren

  Alt 12. Dez 2005, 10:37
Herzlich willkommen in der Delphi-PRAXiS, Tobias.

Bis Freitag ist ja noch reichlich Zeit. Ich vermute, dass das Näherungsverfahren nach Heron mit dem mir bekannten Babylonischen Wurzelziehen identisch ist. Mit den Vorgaben deines Lehrers steht die Signatur deiner Funktion schon fest:

function Wurzel(a: extended): extended; Die Lösungsidee hast du ja auch schon genannt bekommen. Du prüfst in einer Schleife - schließlich ist es ja ein Näherungsverfahren - für einen geeigneten Startwert r (z.B. 1 oder a/2) ob das Quadrat dieses Wertes nahe genug bei deinem Wert a liegt. Du brauchst also noch eine Konstante epsilon, mit der du das Abbruchkriterium der konvergierenden Folge in deiner Schleife formulieren kannst.

const epsilon: extended = 1 / 1000000; // 6 Nachkommastellen Solange der Abstand noch zu groß ist, ersetzt du den Ausgangswert r durch einen verbesserten Näherungswert, indem du das arithmetische Mittel aus r und a/r - das sind genau die Seitenlängen eines Rechtecks mit der Fläche a - bildest.

Und jetzt bist du dran.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Brauche Hilfe bei dem Heron Verfahren

  Alt 12. Dez 2005, 10:50
Zitat von Tobias88:
Kann mir jemand ein passendes Programm zukommen lassen oder irgendwie helfen.
Zukommenlassen? Ich hoffe mal nicht aber helfen gerne ... Poste doch erstmal was du schon hast das Verfahren an sich werdet ihr ja bestimmt schon in der Schule durchgenommen haben. Wie sehen nun deine ersten versuche aus die in Delphi umzusetzen?
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Benutzerbild von Alexander Roth
Alexander Roth

Registriert seit: 17. Mai 2004
Ort: Kenn
574 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Brauche Hilfe bei dem Heron Verfahren

  Alt 6. Okt 2006, 20:12
Hi,

hier das Forum hat eine super Code Library und da findest du genau das was du brauchst:
http://www.delphipraxis.net/internal...ighlight=heron

Doch ich rate dir dringend den Code nicht zu kopieren einzubauen und irgendwie auszuprobieren damit es in den meisten Fällen funktioniert.
Das ist auch nicht der Sinn einer Code-Library.
Deshalb: Schau dir genau die ansätze an, VERSTEHE sie und dann kannst du sie einbauen.
Alexander Roth
Ich bin umgestiegen auf: Lazarus und Ubuntu! Alles OpenSource!

Besuch doch mal: www.roth.us.ms
  Mit Zitat antworten Zitat
9. Okt 2006, 01:59
Dieses Thema wurde von "alcaeus" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Ist eine Delphi-spezifische Frage.
Antwort Antwort


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 18:36 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