Показать сообщение отдельно
  #1  
Старый 05.01.2013, 23:56
Аватар для Chiara_7z7
Chiara_7z7 Chiara_7z7 вне форума
Прохожий
 
Регистрация: 05.01.2013
Адрес: Germany
Сообщения: 9
Версия Delphi: 6
Репутация: 10
По умолчанию Квадратный корень по вавилонски

Здравствуйте!
Очень прошу, не кидайте в меня тапками за мои вопросы!
Я совершеннеший новичок в программировании и очень нуждаюсь в помощи!
Задача такова:
"Необходимо высчитать квадратный корень числа (задано число в SpinEdit) вавилонским способом:
1) Нужно, что бы число было больше ноля
2) Что бы число было больше единицы. Если число отрицательное, то необходимо сделать его положительным и запомнить его. Это число нужно разделить на 2 и получить результат, который в сл. шаге будет делителем. Полученное среднее значение будет делителем в сл. шаге. Делитель и среднее значение приводят к приблизительно одному результату, которе и является квадратным корнем. Программа будет прервана после 6 попыток и именно шестая будет наиболее близка к ответу. "

Уфф....если не совсем понятно, что значит по вавилонски, пожалуйста, посмотрите тут:
http://en.wikipedia.org/wiki/Methods...onian_metho d


Вот, мои мучения...позориться нам не привыкать :

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    SpinEdit1: TSpinEdit;
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;


var
  Form1: TForm1;
  Zahl1,Zahl2,Wurzel: Real;
  Quadratwurzel:Integer;


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

   Zahl1:=StrToFloat(SpinEdit1.Text);


     If Zahl1>1 then

     Wurzel:= Quadratwurzel(Zahl1);

     Label1.Caption:=FloatToStr(Wurzel);
     end;

If Zahl1<1 then

Zahl2:=Zahl1*(1/-1);
Wurzel:=Quadratwurzel(Zahl2);
Label1.Caption:=FloatToStr(Wurzel);


end;

function TForm1.Quadratwurzel:String;

Mittelwert1:= (Zahl1+1)/2;
Mittelwert2:=(Mittelwert1+Zahl1/Mittelwert1);
Mittelwert3:=(Mittelwert2+Zahl1/Mittelwert2);
Mittelwert4:=(Mittelwert3+Zahl1/Mittelwert3);
Mittelwert5:=(Mittelwert4+Zahl1/Mittelwert4);
Mittelwert6:=(Mittelwert5+Zahl1/Mittelwert5);
Ergebnis:=Mittelwert6;
Label1.Caption:=FloatToStr(Ergebnis);

end;

end.
Админ: Пользуемся тегами для оформления кода!

Буду очень признательна за помощь! Уж хочется решить задачку и начать спокойно спать по ночам!
Ответить с цитированием