Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.07.2011, 19:40
avelina avelina вне форума
Прохожий
 
Регистрация: 18.07.2011
Сообщения: 3
Репутация: 10
По умолчанию решение уравнений методом фибоначчи

необходимо создать программу вычислений корня уравнения методом фибоначчи.
Траблы:
1) организация интерфейса, кнопок, ввод данных,вывода результата ..
Паскаль знаю, а с delphi не разобралась пока...
2) не обращается к функции

Код:
unit Unit1;
  interface

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


type
  TForm1 = class(TForm)
  private
  function fib (n:integer):real;
  Function func (x:real):real;

    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
   const max_fib=1476;
var
   a, b, x, x1, x2, c, y1, y2, func : real;
   n:integer;
   {fib: real;}
   fibValues : Array [0..max_fib] of real;

implementation


{$R *.dfm}

{ TForm1 }


Function TForm1.fib(n:integer):real;
   begin
   if (n=1) or (n=0)then
   result:=1
   else
   result := fib(n-1) + fib(n-2);
   fibValues [n]:= result;
   end;
Function TForm1.func(x:real):real;
   begin
   func:=7*x*x-20*x+25;
   end;

begin
writeln ('a= ');
readln (a);
writeln ('b= ');
readln (b);
writeln ('n= ');
readln (n);

while n>= 0 do
begin
x1:= a +(b-a)* fibValues [(n-2)]/ fibValues [n];
x2:= a +(b-a)* fibValues [(n-1)]/ fibValues [n];
c:=(x1+x2)/2;
y1:= func(a);
y2:= func(c);
n:=n-1;
if y1*y2<0 then
a:=x1
else
b:=x2;
end;
writeln(otvet= ', c:4:5)
end.

Последний раз редактировалось lmikle, 18.07.2011 в 23:58.
Ответить с цитированием
  #2  
Старый 18.07.2011, 22:55
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Для начала ответьте на несколько вопросов.
1. fibValues : Array [0..max_fib] of real; и fibValues [(n-2)] как это согласовать? Может происходить выход за пределы диапазона.
2. Как известно в Дельфи все глобальные переменные инициализируются 0, как это будет работать? fibValues [(n-2)]/ fibValues [n]; идёт деление на 0.
3. Для чего функция fib, она нигде не используется.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #3  
Старый 18.07.2011, 23:25
avelina avelina вне форума
Прохожий
 
Регистрация: 18.07.2011
Сообщения: 3
Репутация: 10
По умолчанию

1. fibValues : Array [0..max_fib] of real; и fibValues [(n-2)] как это согласовать? Может происходить выход за пределы диапазона.

все значения чисел фибоначчи будут заноситься в массив, и использоваться непосредственно оттуда, поскольку для расчета сперва нужны последние члены, и только потом первые. Таким образом, мы введем n и при расчете fibValues [(n-2)], fibValues [(n-1)], ibValues [n] необходимых для первого цикла сразу получим всю последовательность необходимых значений.

2. Как известно в Дельфи все глобальные переменные инициализируются 0, как это будет работать? fibValues [(n-2)]/ fibValues [n]; идёт деление на 0.

if (n=1) or (n=0)then
result:=1
fibValues [n]:= result;

0-й и 1-й член последовательности равны 1.

3. Для чего функция fib, она нигде не используется.

функция необходима для заполнения элементов массива.


Проблемы у меня с вводом-выводом данных (надо создать edit блоки и наверно что-то еще,но я не могу разобраться как правильно на них ссылаться), и еще на функцию func ругается при компиляции

Последний раз редактировалось avelina, 18.07.2011 в 23:27.
Ответить с цитированием
  #4  
Старый 18.07.2011, 23:36
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Я вроде чётко поставил вопросы, хочу узнать чёткий ответ:
Цитата:
функция необходима для заполнения элементов массива.
Для чего функция fib, она нигде не используется. Для начала укажите где она вызывается и где и как инициализируется массив. Я могу скинуть код на Дельфи, но без указанных причин работать он не будет
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #5  
Старый 18.07.2011, 23:40
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

А в принципе... вот вам ваш код и мучайте его как хотите.
Вложения
Тип файла: rar fibo.rar (1.5 Кбайт, 26 просмотров)
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #6  
Старый 19.07.2011, 12:53
avelina avelina вне форума
Прохожий
 
Регистрация: 18.07.2011
Сообщения: 3
Репутация: 10
По умолчанию

можно в принципе и без фннкции.
большое спасибо, продолжу мучать)))
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:01.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter