IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Метод Горнера
NTL
сообщение 13.12.2006 17:22
Сообщение #1


Фанат Delphi
**

Группа: Пользователи
Сообщений: 72
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Дано х -действительное. Составить программу для вычисления многочлена по схеме Горнера:
y1 = x^10 + 2*x^9 + 3*x^8+...+ 10*x + 11
y2 = 11*x^10 + 10*x^9 + 9*x^8+...+ 2*x + 1

Код
uses crt;
var  y2,y1,x,s:real;
       i,j:integer;
begin
clrscr;
writeln('x = ');read(x);
y1:=11;y2:=1;s:=1;
for i:=10 downto 1 do
begin
  for j:=1 to i do s:=s*x;

  y1:=y1+(10-j+1)*s
  y2:=y+(j+1)*s
end;

writeln('y1 = ',y:2:10);
writeln('y2 = ',y1:2:10);
readkey
end.


Ответ получается неразумный

Помогите плиз...
^ - есть степень


--------------------
ICQ (384-043-857)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 13.12.2006 17:49
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


что сразу бросилось в глаза:
begin
for j:=1 to i do s:=s*x;{<--действия в цикле...}

y1:=y1+(10-j+1)*s; {<--а вот это будет выполняться ПОСЛЕ цикла}
y2:=y+(j+1)*s;
end;


Сообщение отредактировано: мисс_граффити - 13.12.2006 19:04


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
NTL
сообщение 13.12.2006 18:04
Сообщение #3


Фанат Delphi
**

Группа: Пользователи
Сообщений: 72
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Цитата(мисс_граффити @ 13.12.2006 17:49) *

что сразу бросилось в глаза:
begin
for j:=1 to i do s:=s*x;

y1:=y1+(10-j+1)*s; {<--действия в цикле...}
y2:=y+(j+1)*s; {<--а вот это будет выполняться ПОСЛЕ цикла}
end;


После цикла??? blink.gif После цикла по i, ты хочешь сказать?Хмм no1.gif Ты уверена?


--------------------
ICQ (384-043-857)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 13.12.2006 19:03
Сообщение #4


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


по j, разумеется, при чем здесь i?
или это так и задумано?...
тогда зачем используешь в формулах j?

кстати, в том виде, что ты выложил, оно не компилируется.

Сообщение отредактировано: мисс_граффити - 13.12.2006 19:09


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 13.12.2006 19:16
Сообщение #5


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


вот так вроде работает...
проверила первую сумму на х=1 и х=2
uses crt;
var y2,y1,x,s:real;
i,j:integer;
begin
clrscr;
writeln('x = ');read(x);
y1:=11;y2:=1;s:=1;
for j:=1 to 10 do
begin
s:=s*x;
y1:=y1+(11-j)*s;
y2:=y2+(j+1)*s;
end;

writeln('y1 = ',y1:2:10);
writeln('y2 = ',y2:2:10);
readkey
end.

только это не схема Горнера, а прямое вычисление.

Сообщение отредактировано: мисс_граффити - 13.12.2006 20:39


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
NTL
сообщение 13.12.2006 22:01
Сообщение #6


Фанат Delphi
**

Группа: Пользователи
Сообщений: 72
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Спасибо, все работает... cool.gif Кстати, почему у меня плюсы нельзя ставить? yes2.gif


--------------------
ICQ (384-043-857)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 13.12.2006 22:13
Сообщение #7


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


сообщений мало... 100 наберешь - тогда можно будет smile.gif

...но, повторюсь, это не схема Горнера.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
NTL
сообщение 13.12.2006 23:57
Сообщение #8


Фанат Delphi
**

Группа: Пользователи
Сообщений: 72
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


лишь бы для первых 20 чисел проходило. blum.gif


--------------------
ICQ (384-043-857)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
NTL
сообщение 17.12.2006 16:52
Сообщение #9


Фанат Delphi
**

Группа: Пользователи
Сообщений: 72
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Вот так будет правильнее
Код
uses crt;
var n:integer;
   a:array [0..25] of real;
   x,summa:real;
   i,e:integer;
   fr:integer;
begin
  clrscr;
  writeln('Input N');
  readln(n);
  writeln('Enter coefficient');
  for i:=n downto 0  do
     readln(a[i]);
  writeln('Input X');
  readln(x);
  summa:=a[n];
for e:=1 to n do summa:=summa*x+a[n-e];
  writeln(summa:3:5);
  readln;
end.


--------------------
ICQ (384-043-857)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 18.12.2006 16:23
Сообщение #10


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


да, это уже по схеме Горнера


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 14:04
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"