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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 29.11.2007, 10:52   #1
RECREATOR
Пользователь
 
Регистрация: 29.11.2007
Сообщений: 26
По умолчанию

unit Unit1;

interface

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

type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var:
x,y,i: real;
begin
y_min := 0; //sin(0)/(0+1)
for i := 0 to 100 do
begin
x := i / 10;
y := sin(x) / (x + 1);
if y < y_min then
begin
y_min := y;
x_min := x;
end;
end;

end.

Может кто знает в чем дело?

Последний раз редактировалось zetrix; 29.11.2007 в 12:04.
RECREATOR вне форума
Старый 29.11.2007, 11:02   #2
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

1. Зачем var:? Ведь надо просто var
2. Что за y_min и x_min? Откуда взялись?
3. Почему i: real;? Надо i: integer
4. Не хватает end;
5. Может так:

Код:
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  y_min, x_min: Real;

...

procedure TForm1.Button1Click(Sender: TObject);
var
  x,y: Real;
  i: Integer;
begin
  y_min := 0; //sin(0)/(0+1)
  for i := 0 to 100 do begin
    x := i / 10;
    y := sin(x) / (x + 1);
    if y < y_min then begin
      y_min := y;
      x_min := x;
    end;
  end;
end;
Я тоже чайник. Но за это 1-

Последний раз редактировалось Sibedir; 29.11.2007 в 11:44.
Sibedir вне форума
Старый 29.11.2007, 11:12   #3
RECREATOR
Пользователь
 
Регистрация: 29.11.2007
Сообщений: 26
По умолчанию

не компилится
RECREATOR вне форума
Старый 29.11.2007, 11:17   #4
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Не может быть. Я это прям из редактора в Delphi скопировал.
Добавь к
Код:
var
Form1: TForm1;
строку
Код:
y_min, x_min: Real;
А
Код:
procedure TForm1.Button1Click(Sender: TObject);
var:
x,y,i: real;
begin
y_min := 0; //sin(0)/(0+1)
for i := 0 to 100 do
begin
x := i / 10;
y := sin(x) / (x + 1);
if y < y_min then
begin
y_min := y; 
x_min := x; 
end;
end;
замени на
Код:
procedure TForm1.Button1Click(Sender: TObject);   
var   
  x,y: Real;   
  i: Integer;   
begin   
  y_min := 0; //sin(0)/(0+1)   
  for i := 0 to 100 do begin   
    x := i / 10;   
    y := sin(x) / (x + 1);   
    if y < y_min then begin   
      y_min := y;   
      x_min := x;   
    end;   
  end;   
end;
Sibedir вне форума
Старый 29.11.2007, 11:19   #5
RECREATOR
Пользователь
 
Регистрация: 29.11.2007
Сообщений: 26
По умолчанию

получилось))) Спасибо

Вообще задача такая: Найти наименьшее значение функции: y=sin(x)/(1+x)
и значение аргумента, при котором оно получено, если X изменяется от 0 до 10 с шагом 0,1. Для найденного x подсчитать сумму членов ряда: Z=1+x+x(в квадрате)/2!+...+x(в десятой степени)/10!+... Построить график y(x)


Вторую часть мне вот так объяснили : Ряд Z в общем виде записывается как сумма Ai, i от 0 до бесконечности, где Ai = (x^i)/(i!). Учитывая, что 0! = 1.
Первое, что надо сделать, это разделить Ai+1 на Ai, аналитически. То есть, разделить следующий член ряда на предыдущий. Получится разница. И далее просто взять начальное значение и в цикле умножить на эту разницу и сложть... Пока разница между суммой на предыдущем шаге и суммой на данном шаге не будет меньше половины e, где e - погрешность, маленькое положительное число (меньше 1).

Последний раз редактировалось zetrix; 29.11.2007 в 12:06.
RECREATOR вне форума
Старый 29.11.2007, 11:45   #6
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Все так. По сути e - это необходимая точность расчета.
Sibedir вне форума
Старый 29.11.2007, 12:42   #7
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Закрыто
название темы
содержание вопроса, точне полное отсутсвие вопроса.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как работает win rar? Altera Свободное общение 2 30.03.2008 08:05
не работает glColorTable n01z Компоненты Delphi 0 20.11.2007 18:31
Цикл не работает...? Иринкаа Помощь студентам 6 17.11.2007 00:27
Не работает try except!!! Radost БД в Delphi 17 03.06.2007 11:07