Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.52/75: Рейтинг темы: голосов - 75, средняя оценка - 4.52
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 108

Схема Горнера

15.11.2010, 23:22. Показов 14213. Ответов 57
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
код схемы Горнера
C++
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*
 * 6
 * 3
 * 1 3 -2 1 -1 1
 *
 * Ответ: 439
 */
 
#include <stdlib.h>     /** EXIT_FAILURE **/
#include <iostream>
using namespace std;
 
int main( int argc, char *argv[] )
{
    register unsigned int i;
    unsigned int n;
    cout << "Введите количество элементов: ";
    cin >> n;
 
    if ( n < 1 )
    {
        cerr << "Требуется хотя бы два элемента." << endl;
        return EXIT_FAILURE;
    }
 
    double *a = new double [n];
    double *b = new double [n];
 
    cout << "Введите эпсилон: ";
    double eps; cin >> eps;
 
    cout << "Введите " << n << " исходн. элем.:" << endl;
    for ( i = 0; i < n; i++ ) cin >> a[i];
 
    cout << endl;
 
    /* Рисуем верхнюю рамку */
    for ( i = 0; i < n; i++ ) cout << "+-------"; cout << "+" << endl;
 
    /* Выводим исходные элементы */
    for ( i = 0; i < n; i++ ) cout << "| " << a[i] << "\t"; cout << "|" << endl;
 
    /* Снова рамка */
    for ( i = 0; i < n; i++ ) cout << "+-------"; cout << "+" << endl;
 
    /* По условию, первый элемент b равен первому элементу a */
    b[0] = a[0];
    cout << "| " << *b << "\t";
    for( i = 1; i < n; i++ )
    {
        b[i] = b[i - 1] * eps;
        /* В этом месте b[i] будет равно значению, записываемому во вторую строчку */
        b[i] += a[i];
        cout << "| " << b[i] << "\t";
    }
    cout << "+" << endl;
 
    /* И ещё одна завершающая рамка */
    for ( i = 0; i < n; i++ ) cout << "+-------"; cout << "+" << endl << endl;
    cout << "Ответ: " << b[n-1] << endl;
 
    delete []b;
    delete []a;
    return 0;
}
программа на С++, как можно под БорландС переделать.

общаяя задача: Исследование уравнения. Даны натуральное число n и целые числа f0, ... , fn. Исследовать существование целочисленных корней уравнения f0*x^n+f1*x^(n-1)+...+fn=0. Если fn=0, то имеется корень, равный 0; если же fn!=0, то целочисленный корень, если он существует, принадлежит конечному множеству положительных и отрицатльных делителей числа fn. Здесь следует определить подпрограмму, которая по двум заданным числам k и m (m>k>=0) позволяет определить значение наименьшего делителя числа m, превышающего k, а так же подпрограмму вычисления значения многочлена по схеме Горнера : y=(...((f0*x+f1)*x+f2)*x+...+f(n-1)*x+fn

Добавлено через 5 часов 33 минуты
препод будет меня жеско иметь)))
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.11.2010, 23:22
Ответы с готовыми решениями:

Схема Горнера
Дан многочлен P(x)=anxn + an−1xn−1+ … + a1x + a0 и число x. Вычислите значение этого многочлена, воспользовавшись схемой Горнера: ...

Схема Горнера
Дано вещественное целое число x, целое n, n&gt;0. Найти значение многочлена n-й степени P(x) в точке x по схеме Горнера:...

Схема Горнера(
Всем привет, друзья, очень нуждаюсь в вашей помощи.. Я чайник в C++. Очень нужно решить задачу, буду премного благодарен:

57
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 108
17.11.2010, 22:06  [ТС]
Студворк — интернет-сервис помощи студентам
можно вкратце объяснения хоть какое-нибудь
0
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 108
21.11.2010, 12:01  [ТС]
как балаболить , так все горазды, а как помочь, так никто
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
21.11.2010, 12:41
Ладно, тогда продолжим балаболить.
Честное слово, я уже устал задавать этот вопрос, но придётся снова это сделать: скажите наконец, что вам не ясно?
0
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 108
21.11.2010, 12:51  [ТС]
Ничего не понятно, читаю книги, методички, но не могу вникнуть и составить такие сложные программы.. только когда мне помогут, я начинаю понимать, иду к преподу , он начинает меня расспрашивать каждую букву/слово в программе, и через 10 минут. я понимаю, что программу можно было написать за 30 минут и все так просто
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
21.11.2010, 13:01
Так вы конкретно спрашивайте. Вот вы выложили код. И начали твердить, что не можете его переделать под Borland C++. Я вам 3 раза сказал, что ничего переделывать не надо, всё и так готово. На третий раз вы, вроде бы, поняли меня. Но нет, потом опять попросили выложить код на борланде. Человек решил постебаться и дал вам ваш же код, скопированный из первого поста. Вы наконец-таки продвинулись дальше - попросили "объяснения хоть какое-нибудь" (с). Т.е. сразу этого объяснения попросить было нельзя, надо было подождать, пока тема на растянется больше, чем на одну страницу.
ОК, теперь я спрашиваю вас - что именно вам не понятно. Но вы отвечаете, что вам ничего не понятно. И что мы, которые стараются всеми силами помочь вам, должны на это отвечать? Как вам помогать? Пока вы не конкретизируете вопрос (пусть будет длинный список, но список вопросов, а не заявления "мне ничего не понятно") - помочь вам мы будем не в состоянии, и отнюдь не из нашей вредности.
0
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 108
21.11.2010, 13:05  [ТС]
этот код, который я воложил, он на с++ работает, а на борланде кучу ошибок выдает)
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
21.11.2010, 13:06
Хоть что-то. Какие ошибки? Телепаты дружно смотались в Турцию, так что давайте текст ошибок.
0
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 108
21.11.2010, 13:07  [ТС]
http://codepad.org/M1gy8APd
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
21.11.2010, 13:08
Расширение файла какое? Если *.c - поменяйте на *.cpp
0
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 108
21.11.2010, 13:30  [ТС]
я проверяю только на этом сайте, ибо 7 стоит, и с++ не работает, поэтому поменять не могу
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
21.11.2010, 13:32
Ну вы молодец - выбрали компилятор Си, хотя программа написана на Си++, и спрашиваете, почему выдаётся куча ошибок... Выберите на сайте компилятор Си++.
0
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 108
21.11.2010, 13:32  [ТС]
http://codepad.org/LcH1gzch
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
21.11.2010, 13:36
Цитата Сообщение от OffSide Посмотреть сообщение
ибо 7 стоит
И что? У меня стоит 7, и прекрасно уживаются несколько компиляторов (сред, точнее)... В чём проблема?

Добавлено через 1 минуту
Сайт - это вам не консоль. У вас в программе есть места, где надо вводить данные, но на сайте вы ничего ввести не сможете. Просто временно закомментируйте все строчки с cin, и те данные, которые в них вводятся, инициализируйте явно.
0
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 108
21.11.2010, 14:15  [ТС]
http://codepad.org/BE0qwzf5 че токо не пробовал, никак

Добавлено через 11 минут
не подскажешь, что почитать на тему "написание программы с использованием подпрограммы", как эта задача
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
21.11.2010, 14:18
Балин, форум глюканул... Я отправил ссылку на исправленный вариант, но она не пришла...
http://codepad.org/fHR3KfU5
0
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 108
21.11.2010, 14:21  [ТС]
а что в моем исправленном варианте не так, вроде то же самое, только по-другому
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
21.11.2010, 14:25
Естественно не так. Мало того, что вы пытаетесь ввести с клавиатуры что-то в тройку (что само по себе абсурдно), так ещё в остальных местах у вас остался ввод с клавиатуры. Просмотрите внимательно свой и мой код и сравните.

Добавлено через 2 минуты
Цитата Сообщение от OffSide Посмотреть сообщение
вроде то же самое, только по-другому
Красиво)))
0
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 108
21.11.2010, 14:27  [ТС]
Цитата Сообщение от silent_1991 Посмотреть сообщение

Добавлено через 2 минуты

Красиво)))
дадада, у меня часто такое)))

/* Рисуем верхнюю рамку */ /* Снова рамка */ /* И ещё одна завершающая рамка */

что за рамки? и можно объяснение какое-нибудь к принципу работы
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
21.11.2010, 15:28
Ну рамки - формирование таблицы из плюсов, тире и вертикальных чёрточек, чтобы красиво было. Таблица, кстати, кривовато рисуется)))
А схема, на самом деле, элементарная)))
Она позволяет вычислять значения многочлена при заданном значении x = x0.
Пусть есть многочлен:

P_n(x) = a_n * x^n + a_(n - 1) * x^(n - 1) + ... + a_1 * x + a_0

(В нашей программе эти коэффициенты - a_n, a_(n - 1), ..., a_1, a_0 - элементы массива, степень многочлена тоже вводится)
Перепишем многочлен в более удобный для нас вид:

P_n(x) = a_0 + a_1 * x + a_2 * x^2 + ... + a_(n - 1) * x^(n - 1) + a_n * x^n

Теперь оставим a_0 за скобками, а из скобок (в которые возьмём всю оставшуюся часть многочлена) вынесем x:

P_n(x) = a_0 + x * (a_1 + a_2 * x + ... + a_(n - 1) * x^(n - 2) + a_n * x^(n - 1))

Как видно, в скобках остался многочлен меньшей на 1 степени, чем исходный, и в качестве свободного члена у него выступает a_1. Повторим с многочленом в скобках ту же операцию, т.е. оставим за скобками a_1, остальное возьмём в скобки (уже вторые для исходного многочлена) и вынесем за них x:

P_n(x) = a_0 + x * (a_1 + x * (a_2 + ... + a_(n - 1) * x^(n - 3) + a_n * x^(n - 2)))

Будем повторять эту процедуру, пока в самых внутренних скобках не получим многочлен первой степени, т.е. пока не добьёмся такого вида:

P_n(x) = a_0 + x * (a_1 + x * (a_2 + ... + x * (a_(n - 1) + a_n * x)...))

Теперь вопрос - начерта мы всё это делали)) Вот ответ: теперь мы легко можем вычислить значение исходного многочлена, не возводя ничего не в какие степени. Делается это просто. Сначала x0 подставляется в самый внутренний многочлен первой степени - в a_(n - 1) + a_n * x, и, соответственно, вычисляется значение этого многочлена. Пусть это будет b_(n - 1). Получим:

P_n(x) = a_0 + x * (a_1 + x * (a_2 + ... + x * (a_(n - 2) + x * b_(n - 1))...))

Т.е. мы уже на один шаг ближе к результату - скобок у нас стало на одну пару меньше. Повторяем предыдущий шаг с внутренним многочленом первой степени - с a_(n - 2) + x * b_(n - 1) - снова получаем результат - некоторое b_(n - 2). Подставив его в P_n(x), получим ещё более простой многочлен. Делаем так, пока не получим выражение вида a_0 + x * b_1, подставив в которое x0 и получим окончательный ответ - значение многочлена b_0 = P_n(x) в точке x0.

Не по теме:

Вообще говоря, вся прелесть схемы Горнера не в этом, а в простом вычислении результата деления двух многочленов, но сейчас не об этом)))

0
2 / 2 / 1
Регистрация: 03.10.2010
Сообщений: 108
22.11.2010, 18:24  [ТС]
общаяя задача: Исследование уравнения. Даны натуральное число n и целые числа f0, ... , fn. Исследовать существование целочисленных корней уравнения f0*x^n+f1*x^(n-1)+...+fn=0. Если fn=0, то имеется корень, равный 0; если же fn!=0, то целочисленный корень, если он существует, принадлежит конечному множеству положительных и отрицатльных делителей числа fn. Здесь следует определить подпрограмму, которая по двум заданным числам k и m (m>k>=0) позволяет определить значение наименьшего делителя числа m, превышающего k, а так же подпрограмму вычисления значения многочлена по схеме Горнера : y=(...((f0*x+f1)*x+f2)*x+...+f(n-1)*x+fn


а под общую задачу мою, что нужно подделать и схему горнера, просят как подпрограамму сделать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.11.2010, 18:24
Помогаю со студенческими работами здесь

Схема горнера
Эта схема основывается на следующем представлении многочлена: p(x) = (( ... ((an*x + an-1)x + an-2)x + ... + a2)x + a1)x + a0 ...

Рекурсия. Схема Горнера.
Вот собственно задача. Я вообще не понимаю как её решать=( Вычислить по формуле Горнера значение многочлена a0xn + + a1xn-1 +…+...

схема Горнера (помогите с курс. работой)
#include&lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; #define n 1 int main() { float x, b, a; int...

Алгоритм схемы Горнера
Задача такова: необходимо посчитать Сумму произведения ((-1)^k)*(((x/2)^2k)/((k!)^2)), где k изменяеться от 1 до бесконечности. Мною...

Полином по правилу Горнера
Здравствуйте ребят, помогите с задачкой, пожалуйста? Плохо знаю С++, желательно на начальном уровне написать код. &quot;Посчитать значение...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru