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

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

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

> Задача на многочлены, Помогите решить
Demon_6661
сообщение 24.12.2006 0:01
Сообщение #1


Новичок
*

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

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


Кто-нибудь помогите пожалуйста решить задачу: пользователь задает два многочлена от нескольких переменных. Переменные обозначаются латинскими буквами (их число не более 26). Найти сумму и произведение этих многочленов! Заранее спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
Ответов(1 - 19)
Demon_6661
сообщение 24.12.2006 11:03
Сообщение #2


Новичок
*

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

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


Помогите плиз!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 24.12.2006 11:22
Сообщение #3


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Если многочлен линейный то вот так можно ввести данные многочлена (значения параметров и коэффициентов при них) и вычислить его значение:

uses crt;

type

TCoeff = Single;

PTCoeffs = ^TCoeffs;

TCoeffs = array [1..1] of TCoeff;

function P(const params, coeffs: PTCoeffs; const degree: Integer): Single;
var
i: Integer;
res: Single;
begin

res := 0;

for i := 0 to pred(degree) do
res := res + params^[i] * coeffs^[i];

P := res;
end;

procedure GetPolinom(var params, coeffs: PTCoeffs; const degree: Integer);
var
i: Integer;
begin

GetMem(params, degree * sizeof(TCoeff));
GetMem(coeffs, degree * sizeof(TCoeff));

for i := 0 to pred(degree) do begin
write('params[', i, '] = '); readln(params^[i]); // значения параметров
write('coeffs[', i, '] = '); readln(coeffs^[i]); // значения коеффициентов при параметрах
end;

end;

procedure Free(var params, coeffs: PTCoeffs; const degree: Integer);
begin
FreeMem(params, degree * sizeof(TCoeff));
FreeMem(coeffs, degree * sizeof(TCoeff));
end;

var
coeffs, params: PTCoeffs;

begin

(*

Для функции p(x, y, z) = x + 2y + 3z при (x = 2, y = 3, z = 5) :

params[0] = 2
params[1] = 3
params[2] = 5

coeffs[0] = 1
coeffs[1] = 2
coeffs[2] = 3

P(x, y, z) = 1 * 2 + 2 * 3 + 3 * 5 = 23

*)

GetPolinom(params, coeffs, 3);
writeln('P = ', P(params, coeffs, 3):2:2);
Free(params, coeffs, 3);

readln;
end.




--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Demon_6661
сообщение 24.12.2006 12:22
Сообщение #4


Новичок
*

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

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


Многочлен не обязательно должен быть линейным, а пользователь задает только коэфициенты!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 24.12.2006 12:27
Сообщение #5


Гость






Тогда приведи примеры (хотя бы 5-6) возможных многочленов... Ибо телепаты - в Google
 К началу страницы 
+ Ответить 
klem4
сообщение 24.12.2006 12:27
Сообщение #6


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


C одними коэффициентами далеко не уедешь, тогда уж и степени надо задавать ...



--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Demon_6661
сообщение 24.12.2006 13:37
Сообщение #7


Новичок
*

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

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


Пользователь вводит два многочлена
2*(x^2)+2*(y^2)
2*(x^2)-2*(y^2)
Паскаль должен нам выдать
1.Произведение 4*(x^4)-4*(y^4)
2.Сумма 4*(x^2)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Demon_6661
сообщение 24.12.2006 14:04
Сообщение #8


Новичок
*

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

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


Не не так. Пользователь задает массив коэффициентов и степеней каждого многочлена. Например ползователь вводит :
1. 2 3 4
2. 2 4 3
Это значит что он ввел многочлен
2*x^2+4*y^4+4*z^3
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Demon_6661
сообщение 24.12.2006 14:41
Сообщение #9


Новичок
*

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

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


Помогите пожалуйста кто-нибудь с задачей!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 24.12.2006 14:47
Сообщение #10


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

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

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


а как узнать, к каким переменным это относится?
то есть различить 2x^2 и 2y^2?
или порядок фиксированный, и пользователь должен вводить информацию (пусть нули) по ВСЕМ переменным?
а если у него y^2+2y - как быть?


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


Новичок
*

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

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


Каждая переменная может встречаться только 1 раз. Переменные - это английский алфавит (поэтому и ограничение 26). Переменные употребляются в алфавитном порядке. Т. е если пользователь вводит
2 3 4
1 2 3
Это значит что многочлен имеет вид 2*a+3*(b^2)+4*(c^3)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Demon_6661
сообщение 24.12.2006 16:08
Сообщение #12


Новичок
*

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

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


Помогите плиз, сдавать завтра!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 24.12.2006 16:11
Сообщение #13


Гость






Цитата(Demon_6661 @ 24.12.2006 14:21)
Каждая переменная может встречаться только 1 раз.

А я введу
1) X^1 + Y^2
2) Z^3 + A^2

Как должен выглядеть результат перемножения? И где его хранить, собственно, если после твоих утверждений о том, что я привел выше, как цитату, я сделал вот так:
const
max_degree = 26;
type
tpoly = record
coeff: integer;
power: integer;
end;
tpolynom = array[1 .. max_degree] of tpoly;

Теперь результат перемножения я не могу хранить в такой структуре...
 К началу страницы 
+ Ответить 
Demon_6661
сообщение 24.12.2006 16:18
Сообщение #14


Новичок
*

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

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


Да нет я имею ввиду 1 раз в каждом многочлене
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 24.12.2006 16:22
Сообщение #15


Гость






Указателями пользоваться можно? Или только массивы?
 К началу страницы 
+ Ответить 
Demon_6661
сообщение 24.12.2006 16:32
Сообщение #16


Новичок
*

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

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


тока массивы и записи
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Demon_6661
сообщение 24.12.2006 17:00
Сообщение #17


Новичок
*

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

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


help me please
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Demon_6661
сообщение 24.12.2006 18:17
Сообщение #18


Новичок
*

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

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


помогите очень нужно
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Demon_6661
сообщение 24.12.2006 19:03
Сообщение #19


Новичок
*

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

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


Вопрос жизни и смерти, вопрос зачет или нет! Выручите пожалуйста
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 24.12.2006 19:22
Сообщение #20


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

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

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


хватит флудить!
сам виноват, что до последнего момента дотянул.

ты говоришь, что каждая переменная в одном многочлене встречается только один раз.
допустим:
1) y^2+2*x
2) x^2+2*y
В сумме и x, и y будут встречаться в разных степенях...

хотя..... если можно пользоваться записями... уже что-то.
максимальная степень ограничена?


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

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

 



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