Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 14.10.2009
Сообщений: 37

Напишите функцию, которая рассчитывает значение полинома степени N.

29.01.2010, 12:35. Показов 3215. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Напишите функцию, которая рассчитывает значение полинома степени N. Коэффициенты полинома заданы массивом вещественных чисел. Использовать схему Горнера.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
program n18;
uses crt;
type mas=array [1..10] of real;
var a:mas; i,n:integer; x:real;
 
function f(m:mas;s:integer; z:real):real;
var t:real; j:integer;
begin
t:=m[s+1];
for j:=s+1 downto 2 do
t:=m[j-1]+z*t;
f:=t;
end;
 
BEGIN
clrscr;
write('n='); readln (n);
for i:=1 to n+1 do
    begin
    write('a',i-1,'=');readln(a[i]);
    end;
write('x='); readln(x);
write('Значение полинома ',n,' степени равно ',f(a,n,x):0:3);
readln;
END.
Вот как то так, не уверен что тут реализована эта схема Горнера. считал вручную и по ней, результаты не сошлись. Помогите ее привести в нормальный вид и если не трудно прокоментить строчки а то я не бум бум(
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.01.2010, 12:35
Ответы с готовыми решениями:

Напишите программу, которая вводит натуральное число N и выводит на экран чётные положительные степени числа 2
Напишите программу, которая вводит натуральное число N и выводит на экран чётные положительные степени числа 2, не большие, чем 2 N , в...

Напишите функцию, которая возвращает наименьшее из значений
Напишите функцию, которая возвращает наименьшее из значений |x-y|, |y-z|, |z-x|.

Напишите функцию, которая находит цифровой корень числа
Доброго времени суток, столкнулся с проблемой при написании программы ддля задачи: Напишите функцию, которая находит цифровой корень числа....

10
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
29.01.2010, 14:45
Вот я немного по своему написал, считает правильно.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
uses crt;
type mas=array[0..10] of real;
function Gorner(a:mas;x:real;n:byte):real;
var f,s:real;
    i:byte;
begin
f:=1;
s:=a[n];
for i:=1 to n do
 begin
  f:=f*x;
  s:=s+a[n-i]*f;
 end;
Gorner:=s;
end;
var i,n:byte;
    f,s,x:real;
    a:mas;
begin
clrscr;
write('Введите n=');readln(n);
write('Введите x=');readln(x);
writeln('Введите ',n+1,' коэфф. многочлена степени ',n);
for i:=0 to n do
readln(a[i]);
write('S=',Gorner(a,x,n):0:5);
readln
end.
1
1 / 1 / 0
Регистрация: 14.10.2009
Сообщений: 37
29.01.2010, 14:56  [ТС]
Или я чего то не понимаю или ВЦ!. Ввожу n=2, x=5, и коефиценты 1,2,3.
Считается это: 1+5*(2+5*(3+5))=211. Программа же выдает 38.

В той что я выложил если мне не изменяет память выдает 86.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
29.01.2010, 14:58
Wefast, Полином читается сначала, например 1*x^2+2*x+3=38.
0
1 / 1 / 0
Регистрация: 14.10.2009
Сообщений: 37
29.01.2010, 15:28  [ТС]
Ну эт если считать по обычному. Ну как ты записал. а по схеме Горнера считается то 1+5*(2+5*(3+5))=211.
Вот ссылка на вики:Ссылка

Добавлено через 20 минут
Ошибся подсчет по Горнеру будет: 1+5*(2+5*(3))=86

Добавлено через 57 секунд
Теперь по идее прога ту что я выложил работает нормально. Но почему полсчет по Горнеру и обычном подсчете отличается....
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
29.01.2010, 15:30
Цитата Сообщение от Wefast Посмотреть сообщение
подсчет по Горнеру будет: 1+5*(2+5*(3))=86
Это глупость, разберитесь.
0
1 / 1 / 0
Регистрация: 14.10.2009
Сообщений: 37
29.01.2010, 15:30  [ТС]
Все разобрался, при обычном подсчете будет не 1*x^2+2*x+3=38. а 3*x^2+2*x+1=86.

Добавлено через 20 секунд
Теперь бы кто нить откоментил прогу ту что моя
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
29.01.2010, 15:31
Wefast, Вы арифметику немного подучите, иначе до пенсии будете разбираться.
0
1 / 1 / 0
Регистрация: 14.10.2009
Сообщений: 37
29.01.2010, 15:36  [ТС]
особенно там где про функцию

Добавлено через 1 минуту
Цитата Сообщение от Puporev Посмотреть сообщение
Wefast, Вы арифметику немного подучите, иначе до пенсии будете разбираться.
Никакой отсебятины, вот тут дана формула и по ней подсчитал:Ссылка

Добавлено через 2 минуты
Цитата Сообщение от Puporev Посмотреть сообщение
Wefast, Вы арифметику немного подучите, иначе до пенсии будете разбираться.
Все перепроверил после Ваших слов, точно будет 86. При обычном подсчете А0 будет справа а А3 будет слева а не наоборот, в вашей программе именно наоборот считается.)
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
29.01.2010, 17:05
Вы так и не догнали суть.
Pascal
1
2
3
4
5
6
7
8
9
10
for i:=0 to n do//вводим коэффициенты по порядку как обычно пишем у вас 1,2,3
readln(a[i]);
......................................
f:=1;//x^0
s:=a[n];//начальная сумма=свободному члену=3
for i:=1 to n do
 begin
  f:=f*x;//увеличиваем степень х= x^1; x^2
  s:=s+a[n-i]*f;//добавляем к сумме х в данной степени * на коэффициенты с конца(n-i) +2x;+1x^2
 end;
Добавлено через 15 минут
Получится 1*x^2+2*x+3
0
1 / 1 / 0
Регистрация: 14.10.2009
Сообщений: 37
30.01.2010, 08:49  [ТС]
Ну то как считает Ваша программа понятно и она выдеет в данном случае 38. Но при подсчете полинома элементы записываются слева направо, т.е будет не 1,2,3 а 3,2,1. Т.е мы вписываем эти коэфиценты в одном порядке а считаются они в другом. И если считать как Вы написали то по Горнеру ничего не получится

Конечно, хотя это как воспринимать вводимые коэфиценты. И в каком порядке их подставлять в формулу по подсчету.

В любом случае большое спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.01.2010, 08:49
Помогаю со студенческими работами здесь

Напишите рекурсивную функцию, которая вычисляет длину строки
пожалуйста помогите написать программку к двум задаче в паскале Напишите рекурсивную функцию, которая вычисляет длину строки

F = 10! Напишите программу, которая рассчитывает числовой коэффициент. Примите решение пока, повторите . с циклами
F = 10! Напишите программу, которая рассчитывает числовой коэффициент. Примите решение пока, повторите ... с циклами

Описать рекурсивную функцию pow, которая рассчитывает величину по формуле
Описать рекурсивную функцию pow (x, n) от натурального х (х не равно 0) и целого n, которая рассчитывает величину х^n по формуле: ...

Составить программу, которая рассчитывает среднее арифметическое значение элементов массива и производит замену всех
Дана прямоугольная матрица размерности M x N, состоящая из целых чисел, которые автоматически генерируются случайным образом. Вариант...

Напишите функцию Substring, которая принимает строку s и возвращает подстроку
Напишите функцию Substring(string s, Integer stratind, Integer length):String, которая принимает строку s и возращает ее подстроку, начиная...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru