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

Вычислить коэффициенты многочлена, являющегося суммой многочленов

28.04.2015, 21:17. Показов 4537. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста, хотя бы с условием, что-то вообще не понимаю
Составить процедуру, исходными данными которой являются 2 матрицы B1,B2,...,Bn; C1,C2,...,Cn. Результаты процедуры: Коэффициенты много члена, являющегося суммой многочленов B1X^n+B2X^(n-1)+...+BnX; C1X^m+C2X^(m-1)+...+CmX
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.04.2015, 21:17
Ответы с готовыми решениями:

По заданным коэффициентам многочлена P(x) 5 степени и многочлена Q(x) 6 степени определить коэффициенты многочлена P(Q(x))
По заданным коэффициентам многочлена P(x) 5 степени и многочлена Q(x) 6 степени определить коэффициенты многочлена P(Q(x)). Help(

Найти коэффициенты многочлена, являющегося суммой многочленов
Общее условие для всех вариантов: Составить процедуру, исходными данными которой является матрица А из n строк и n столбцов, либо два...

По заданным коэффициентам многочлена 15-й степени и многочлена 8-й степени определить коэффициенты произведения этих многочленов
нужно в бэйсике. пожалуйста

11
CAPITAL OF ROCK!
 Аватар для JokeR.BY
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
29.04.2015, 02:56
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

пусть у вас имеются:
массив B: 1, 3, 15, 2. тогда n = 4
и массив C: 3, 3, 3, 3, 3, 3. тогда m = 6;
первый многочлен - https://www.cyberforum.ru/cgi-bin/latex.cgi?{x}^{4} + 3{x}^{3}+15{x}^{2}+2x
второй многочлен - https://www.cyberforum.ru/cgi-bin/latex.cgi?3{x}^{6}+3{x}^{5}+3{x}^{4}+3{x}^{3}+3{x}^{2}+3x
сумма многочленов - https://www.cyberforum.ru/cgi-bin/latex.cgi?3{x}^{6}+3{x}^{5}+4{x}^{4}+6{x}^{3}+18{x}^{2}+5x
коэффициенты суммы - 3, 3, 4, 6, 18, 5.

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
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
type
    TArray = Array[Byte] Of ShortInt;
 
procedure Shifting(var a: TArray; const len, shift: Byte);
var
    i: Byte;
begin
    for i := len - 1 downto 0 do
        a[i + shift] := a[i];
    for i := 0 to shift - 1 do
        a[i] := 0;
end;
 
function Max(const x, y: Byte): Byte;
var
    Result: Byte;
begin
    if (x > y)
    then
        Result := x
    else
        Result := y;
    Max := Result;
end;
 
procedure DoSmth(b, c: TArray; const n, m: Byte; var d: TArray; var l: Byte);
var
    i: Byte;
begin
    l := Max(n, m);
    if (n > m)
    then
        Shifting(c, m, n - m)
    else
        Shifting(b, n, m - n);
    for i := 0 to l - 1 do
    begin
        d[i] := b[i] + c[i];
        Write(' ', d[i]);
    end;
end;
 
var
    b, c, d: TArray;
    i, n, m, l: Byte;
begin
    Write('n='); ReadLn(n);
    for i := 0 to n - 1 do
    begin
        Write('B', i + 1, '=');
        ReadLn(b[i]);
    end;
    Write('m='); ReadLn(m);
    for i := 0 to m - 1 do
    begin
        Write('C', i + 1, '=');
        ReadLn(c[i]);
    end;
    DoSmth(b, c, n, m, d, l);
end.
немного мудрёно, но это на скору руку было набросано...

Не по теме:

дико не хватает тернарных операций...

0
0 / 0 / 0
Регистрация: 24.03.2015
Сообщений: 8
29.04.2015, 12:03  [ТС]
Спасибо огромное! Теперь хоть условие понятно) буду разбираться

Добавлено через 1 минуту
А можно ли как-нибудь в одной процедуре всё это сделать?
0
CAPITAL OF ROCK!
 Аватар для JokeR.BY
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
29.04.2015, 13:39
rUsure, можно.
0
0 / 0 / 0
Регистрация: 24.03.2015
Сообщений: 8
29.04.2015, 14:05  [ТС]
Буду благодарен, если подскажите как) На ум приходит только в процедуре найти только сумму массива и всё. Дальше как понимаю в основной программе по процедуре найти суммы двух исходных массивов и сложить их. Но как вывести коэффициенты не понимаю
0
CAPITAL OF ROCK!
 Аватар для JokeR.BY
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
29.04.2015, 15:03
можно в такой способ сделать.
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
29
30
31
32
33
34
35
36
procedure DoSmth(b, c: TArray; const n, m: Byte; var d: TArray; var l: Byte);
var
    i: Byte;
    function Max(): Byte;
    var
        Result: Byte;
    begin
        if (n > m)
        then
            Result := n
        else
            Result := m;
        Max := Result;
    end;
    procedure Shifting(var a: TArray; const len, shift: Byte);
    var
        i: Byte;
    begin
        for i := len - 1 downto 0 do
            a[i + shift] := a[i];
        for i := 0 to shift - 1 do
            a[i] := 0;
    end;
begin
    l := Max();
    if (n > m)
    then
        Shifting(c, m, n - m)
    else
        Shifting(b, n, m - n);
    for i := 0 to l - 1 do
    begin
        d[i] := b[i] + c[i];
        Write(' ', d[i]);
    end;
end;
а можно и в такой.
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
29
30
31
32
procedure DoSmth(b, c: TArray; const n, m: Byte; var d: TArray; var l: Byte);
var
    i, shift: Byte;
begin
    shift := Abs(n - m);
    if (shift = 0)
    then
        l := n
    else
        if (n > m)
        then
        begin
            l := n;
            for i := m downto 0 do
                c[i + shift] := c[i];
            for i := 0 to shift - 1 do
                c[i] := 0;
        end
        else
        begin
            l := m;
            for i := n downto 0 do
                b[i + shift] := b[i];
            for i := 0 to shift - 1 do
                b[i] := 0;
        end;
    for i := 0 to l - 1 do
    begin
        d[i] := b[i] + c[i];
        Write(' ', d[i]);
    end;
end;
0
0 / 0 / 0
Регистрация: 24.03.2015
Сообщений: 8
29.04.2015, 15:20  [ТС]
Благодарю. Второй код более понятен, кроме пары моментов. Подскажите, что такое shift?
0
CAPITAL OF ROCK!
 Аватар для JokeR.BY
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
29.04.2015, 15:47
rUsure, сдвиг вправо.

Не по теме:

пытался сначала словами объяснить, но на примере лучше будет.


есть всё те же два многочлена
https://www.cyberforum.ru/cgi-bin/latex.cgi?{x}^{4} + 3{x}^{3}+15{x}^{2}+2x
https://www.cyberforum.ru/cgi-bin/latex.cgi?3{x}^{6}+3{x}^{5}+4{x}^{4}+3{x}^{3}+3{x}^{2}+3x
тогда массив B: [1 3 15 2 0 0 ... 0]
массив C: [3 3 4 3 3 3 0 0 ... 0]
складывать просто первый с первым неправильно. но можно сдвинуть все элементы массива B на два вправо, чтобы коэффициенты массивов B и C, стоящие, например, при https://www.cyberforum.ru/cgi-bin/latex.cgi?{x}^{4} (1 и 4), были с одинаковыми индексами.
Кликните здесь для просмотра всего текста
ведь многочлен B можно записать как https://www.cyberforum.ru/cgi-bin/latex.cgi?0{x}^{6}+0{x}^{5}+{x}^{4} + 3{x}^{3}+15{x}^{2}+2x

тогда:
массив B: [0 0 1 3 15 2 0 0 ... 0]
массив C: [3 3 4 3 3 3 0 0 ... 0]
фактически мы добавили нулевые коэффициенты многочлена B вплоть до старшего (6).
и теперь можно напрямую складывать по индексу: d[1] := b[1] + c[1].

надеюсь, доступно.
0
0 / 0 / 0
Регистрация: 24.03.2015
Сообщений: 8
29.04.2015, 16:11  [ТС]
Да, спасибо большое, с этим разобрался. Но ведь получается, что мы задаём просто массив с элементами готовыми(коэффициенты), а как компьютер сам выделит коэффициенты из выражения B1X^n и т.д?
0
CAPITAL OF ROCK!
 Аватар для JokeR.BY
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
29.04.2015, 16:28
rUsure, ну, об этом речь не шла изначально) по заданию то у вас процедура, суммирующая коэффициенты уже из готовых массивов)
парсинг строки вида x^4 + 3x^3... это уже другая тема для разговора)
0
0 / 0 / 0
Регистрация: 24.03.2015
Сообщений: 8
29.04.2015, 17:21  [ТС]
Это сложно сделать?) Я имею ввиду из многочлена 3x^2+2x вывести коэффициенты.

Добавлено через 22 минуты
Я просто думал сделать как: в основной программе ввести функцию( FUNCTION SUM(Var A; N: integer; Y: real):real; . TYPE PRED=array[1..10920] of real;
Var k: integer; s:real; Begin s:=0; FOR k:=1 TO N DO
s:=s+ PRED(P)[k]*exp(ln(x)*((N+1)-k); SUM:=s End Всё это с рельефом(на телефоне не удобно). После чего в основной программе прописать SMN:=SUM(B,4,Y)+SUM(C,6,Y). (Цифры 4 и 6-это n и m соответственно). И потом ввести процедуру, в которой будет уже готовый многочлен и надо только вывести коэффициенты( если конечно компьютер сложит всё в операторе SUM).
0
CAPITAL OF ROCK!
 Аватар для JokeR.BY
1281 / 708 / 982
Регистрация: 03.03.2010
Сообщений: 2,286
29.04.2015, 17:25
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
29
30
31
32
var
    s, si, koefs, steps: String;
    mass: Array[Byte] Of ShortInt; //массив коэффициентов
    n, step: Byte; //длина массива (по сути старшая степень x) и "текущая" степень
    koef: ShortInt; //текущий коэф
    err: Integer;
begin
    ReadLn(s);
    s := s + '+'; n := 0;
    while (Length(s) > 0) do
    begin
        si := Copy(s, 1, Pos('+', s) - 1); //вырезаем до плюса
        Delete(s, 1, Pos('+', s)); //удаляем с плюсом
        koefs := Copy(si, 1, Pos('x', si) - 1);
        if (koefs = '')
        then
            koefs := '1';
        val(koefs, koef, err); //тут можно ещё проверку на корректность ввода и бла-бла
        
        steps := Copy(si, Pos('x', si) + 1, Length(si) - Pos('x', si));
        if (steps = '')
        then
            steps := '1'
        else
            Delete(steps, 1, 1);
        val(steps, step, err);
        if (n = 0)
        then
            n := step;
        mass[n - step] := koef;
    end;
end.
вот парсер строки, вычленяющий из "x^4+3x^3+15x^2+2x" коэффициенты.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.04.2015, 17:25
Помогаю со студенческими работами здесь

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

Сложить два многочлена заданной степени, если коэффициенты многочленов хранятся в объекте HashMap
Сложить два многочлена заданной степени, если коэффициенты многочленов хранятся в объекте HashMap. Коэффициенты могут быть как целыми,...

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

Вычислить коэффициенты многочлена - первообразной
коэффициент многочлена заданы по убыванию степеней p(x)={a}_{n}{x}^{n}+{a}_{n-1}{x}^{n-1}+...+{a}_{1}x+{a}_{0} Вычислить коэффициенты...

Вычислить и вывести коэффициенты многочлена
Ввести n и числа a, a,...,a Вычислить и вывести коэффициенты многочлена p(x) = (x-a)*(x-a)*...*(x-a) ( написать функцию для умножения...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
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