Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Результат решения запомнить в виде массива, Запомнить корни уравнения в виде массива 
:(
    Опции темы
Georgia
Дата 19.5.2008, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 13.5.2008

Репутация: нет
Всего: нет



Текст программы прилагаю. Но её необходимо доработать. я застопорилась. подтолкните. пожалуйста.
Условие задачи в следующем:"Составить программу, в которой 
1. определить все корни уравнения (которое записано в задаче у меня)" на отрезке от -10 до 10. 
2. вычислить определенный интеграл от х (i) до x(i+1). поинтегральная функция - это уравнение из пункта 1, x(i) x(i+1) - это два соседних корня заданного уравнения, i=1,2,3,..,n-1. n- число корней.
Указания: 1. при определении корней использовать метод сканирования с последующим уточнением решения методом хорд
2. определенные интегралы вычислять методом правых прямоугольников.
3. методы интегрирования и уточнения корней оформить в виде процедур или функций языка Пакаль.
4.Пределы интегрирования вводить не вручную, а запомнить результаты решения в виде массива и использовать для вычисления интеграла.
Вот.
Эта программа находит три корня уравнения= 1,3,7. Как их запомнить в виде массива? и как потом из этих трёх выбрать два для задания пределов интегрирования.
Найденные корни надо брать только из метода хорд. А как их ввести в процедуру Prav_pryam для ввода пределов интегрирования? Что-то не так. Если убрать процедуру нахождения интеграла, то всё идет как надо вроде. а в ней я нав. напортачила. если можно побыстрее.пож-ста.
Препод сказал, что нужно запомнить в массиве не сами корни, а их количество. Ну помоготе, прошу. В общем, все верно. но вот с этими массивами и затем вводами пределов из массива проблема.

Код

uses crt;
      const xh=-10;xk=10;n=100;e=0.001;
      var i:integer; x,z,w,h:real;

      Function f(x: real): real;
      Begin
      f:=x*x*x-11*x*x+31*x-21;
      end;

      procedure metod_scanirov(x:real);
      var h:real;
      begin clrscr;
      writeln ('vvedite X=');
      readln (z);
      writeln ('vvedite pogreshnost H=');
      readln (w);
      if f(z+w)>f(z) then w:=-w;
      repeat z:=z+w; until f(z+w)>f(z);
      writeln ('1j koren po metodu scanirovaniya=',(z-w):2:1);
      writeln ('2j koren po metodu scanirovaniya=',(z+w):2:1); readln;
      end;

      procedure metod_hord(a,b:real);
      var t:integer;  c1,c: real; m:array [1..3] of real;
      begin
      c:=a;
      repeat c1:=c;
      c:=a-(f(a)*(b-a))/(f(b)-f(a));
      if (f(a)*f(c)<=0) then
      b:=c else a:=c;
      until abs (c1-c)<e;
      writeln ('koren uravnenia po metodu hord = ',c:2:1);
      m[t]:=c; writeln ('m=',m[t]:2:0);
      writeln ('funkciya ot kornya=',c:2:1,' ravna F(',c:1:0,')= ',f(c):2:1);
      readln; end;

      procedure prav_pryam;
      var i,t,n:integer; d,k,h,xb,s:real;   m:array [1..3] of real;
      begin
      for t:=1 to 3 do read (m[t]);
      d:=m[t];      k:=m[t+1];
       h:=(d-k)/n; s:=0; xb:=d;
      s:=0;
      for i:=1 to n do begin x:=xb+i*h; s:=s+f(x)*h; end;
      writeln ('integral ot',d:2:0,'  do',k:2:0,'  funkcii F (x) raven ',s:5:3);
      readln; end;

      begin
      metod_scanirov(x);
      x:=xh;     h:=(xk-xh)/n;
      for i:=1 to n do begin
      if f(x)*f(x+h)<=0 then metod_hord (x,x+h);  x:=x+h;
      prav_pryam; end; end.


Это сообщение отредактировал(а) Georgia - 23.5.2008, 13:12
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0559 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.