Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2017, 11:47   #1
t10yj
Пользователь
 
Аватар для t10yj
 
Регистрация: 25.01.2017
Сообщений: 13
По умолчанию Решение матаматической задачи

Добрый день. Помогите подправить значения для математической задачи.


Код:
  procedure TForm1.FormCreate(Sender: TObject);  //Процедура создания формы
begin
  EditXn.Text := '0,1';  //Ввод чисел в текстовые поля
  EditXk.Text := '3';
  EditH.Text := ' ';
  RadioGroup1.ItemIndex := 0;  //Выбор s
  Memo1.Clear;
  Button1Click(Sender);
end;

procedure Tab1(f: func; xn, xk, h: extended);   //Процедура вывода результатов
var
  x, y : extended;
begin
  Form1.Memo1.Lines.Add('                 РЕЗУЛЬТАТЫ:');
  Form1.Memo1.Lines.Add('');

  x := xn;

  Repeat
    y := f(x);

    Form1.Memo1.Lines.Add('           x=' + FloatToStrF(x,fffixed, 8,2)+
                       '           y=' + FloatToStrF(y,fffixed, 8,2));
    x := x + h;
  Until (x  > xk);
end;

procedure TForm1.Button1Click(Sender: TObject); //Процедура нажатия кнопки
var
  xn, xk, h : extended;  //Описание типов переменных
begin
  xn := StrToFloat(EditXn.Text);  //Считывание переменных
  xk := StrToFloat(EditXk.Text);
  h:= (xk - xn) / 10;
  EditH.Text := FloatToStr(h);
  Memo1.Clear();

   case RadioGroup1.ItemIndex of
   0: Tab1(sx,xn,xk,h);
   1: Tab1(yx,xn,xk,h);
     end;
          end;
end.
Изображения
Тип файла: jpg Безымянный.jpg (3.9 Кб, 47 просмотров)
t10yj вне форума Ответить с цитированием
Старый 25.01.2017, 13:08   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
type
  func =function(x: extended; n: integer): extended;

y:=f(x,n);
Код:
function sx(x:extended; n: integer): extended;
var
   r: extended;
   k: integer;
begin
   result:=1;
   r:=x*x;
   for k:=1 to n do begin
      result:=result +r*(2*k+1);
      r:=(r/k)*x*x;
   end;   
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 25.01.2017, 17:42   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Код:
EditXn.Text := '0,1';  //Ввод чисел в текстовые поля
А если настойках ОС ( Язык и региональные параметры ) в качестве десятичного разделителя - не запятая, а точка ?
Будет ошибка. Потому что у вас далее просто:
Код:
xn := StrToFloat(EditXn.Text);
Лучше StrToFloatDef, но все равно будет ошибка.
type_Oleg вне форума Ответить с цитированием
Старый 25.01.2017, 20:18   #4
t10yj
Пользователь
 
Аватар для t10yj
 
Регистрация: 25.01.2017
Сообщений: 13
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
Код:
type
  func =function(x: extended; n: integer): extended;

y:=f(x,n);
Код:
function sx(x:extended; n: integer): extended;
var
   r: extended;
   k: integer;
begin
   result:=1;
   r:=x*x;
   for k:=1 to n do begin
      result:=result +r*(2*k+1);
      r:=(r/k)*x*x;
   end;   
end;
Спасибо Вам огромное!
t10yj вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение задачи на С++ Мики6277 Общие вопросы C/C++ 2 05.10.2014 12:25
Решение задачи prod Фриланс 0 16.11.2011 23:02
решение задачи Брайан О'Конор Помощь студентам 1 12.01.2011 12:42
решение задачи TuNeR Microsoft Office Excel 2 15.10.2007 09:31