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

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

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

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Суперпозиция многочленов
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 26

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


короче, задача такая. Даны два многочлена f(x) и g(x). Требуется найти их суперпозицию, то есть f(g(x)). Данные о каждом многочлене представлены в соотв.файлах в формате: коээфициент, степень. Если у кого есть какие мысли как это можно реализовать на паскале, просьба поделиться со мной, а то у меня лично никаких идей нет.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 282

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


что уж тут сложного-то?что именно-то непонятно?
считываешь из файла данные потом считаешь...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 282

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


это универская задача?
приведи её точную формулировку
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 26

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


В принципе формулировка уже была приведена. Даны два многочлена: f(x) И g(x). Их значения находятся в 2 внешних файлах. Каждый файл организован по принципу: каждая нова строчка содержит два числа: первое число - это коэффициент, а второе число - степень, при которой и стоит этот самый коэффициент. Требуется найти суперпозицию этих многочленов, то есть f(g(x)). А как ее найти я не очень то и понял. Подскажите хотя бы алгоритм, а лучше кодом =)))).
Например, если f(x)=х^2+4, а многочлен g(x)=x^3+2x+4. То на экран (или в файл по описанному выше принципу) должно быть выведено: f(x^3+2x+4)=(x^3+2x+4)^2 +4, ну в смысле не так как я щас написал, а уже подсчитано, то есть с раскрыванием скобок и приведением подобных.
2____Alex_____: если ты такой мастер, то почему не поможешь ????? или задача не такая легкая smile.gif????
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Бывалый
***

Группа: Пользователи
Сообщений: 282

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


мастер тут не причём, просто не вижу сложностей...
скажи, данные как я понимаю в файлах храняться в текстовом виде?
и тип коэффициентов полиномов какой?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 26

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


коэффициенты и степени типа integer. все хранится в файле, формат текстовый.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Бывалый
***

Группа: Пользователи
Сообщений: 282

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


если всё хранится в текстовом файле, это не значит что это "всё" лежит там в текстовом формате, ну да ладно
мысли-то никаки тебя не посетили дельные насчёт задачи?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 26

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


неа, хотя была мысль написать функцию умножения двух многочленов, но потом она отпала, тк я не понял как ее можно связать на паскале с моей задачей.
ЗЫ: кстати, помойму задачка сложная, раз никто не смог ее решить.............=)))))))), хотя жаль, мне ее скоро сдавать=))))))))))))))))))))))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Бывалый
***

Группа: Пользователи
Сообщений: 282

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


сегодня(или завтра) напишу
PS просьба другим её не делать, чтоб я зря не писал
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Бывалый
***

Группа: Пользователи
Сообщений: 282

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


program Polinoms;
{ обработки возможных ошибок в проге нет, пиши сам если нужно,
  как видно, прога написана таким образом, что её очень просто
  обобщить на любое число полиномов }
uses Crt;
const
 n = 2;
 MasFileNames: Array[1..n] of String = ('g.txt', 'f.txt');
var
 i: Byte;
 MasF: Array[1..n] of Text;
 S: String;
 V, ErrCode: Integer;
 R, x, Buf: Extended;
 { x > 0, если хочешь, чтобы работало и при x <= 0,
   то соответствующим образом измени код }
Begin

 ClrScr;
 Write('Введите x (x > 0): ');
 ReadLn®;
 for i := 1 to n do begin
  { подразумевается что данные в файлах хранятся в формате: строка степени,
    строка коэффициента для удобства обработки, а то бы пришлось "разбирать"
    строку на составляющие }
  Assign(MasF[i], MasFileNames[i]);
  Reset(MasF[i]);
  x := R;
  R := 0;
  while not Eof(MasF[i]) do begin
   ReadLn(MasF[i], S); { читаем степень }
   Val(S, V, ErrCode);
   Buf := Exp(V * Ln(x));
   ReadLn(MasF[i], S); { читаем коэффициент }
   Val(S, V, ErrCode);
   R := R + V * Buf;
  end;
  Close(MasF[i]);
 end;
 WriteLn('Суперпозиция равна ', R:0:5);
 repeat until KeyPressed

End.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 26

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


спасибо за код, сёдня попробую пропустить на паскале, вечерком отпишусь.
ЗЫ: smile.gif сенкс smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Пионер
**

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

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


А разве это было нужно?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Новичок
*

Группа: Пользователи
Сообщений: 26

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


2 zx1024: ты про что ???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Пионер
**

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

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


Считать значение суперпозиции при некотором x.
Судя по
#3 18.10.2003 в 17:15:12
нужно найти многочлен - результат транспозиции, а не его значение.
Есть ещё вариант, что я тормознул, но его мы рассматривать, пожалуй, не будем.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Бывалый
***

Группа: Пользователи
Сообщений: 282

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


скорее второй вариант
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Новичок
*

Группа: Пользователи
Сообщений: 26

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


да нет, ты не тормознул, надо найти как раз не значение суперпозиции, а саму суперпозицию. это между прочим у нас "обычной" лабораторной работой назывется. Вот так!!!
ЗЫ: кста, код программы работает, тока маленька не так как надо.....=))))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Бывалый
***

Группа: Пользователи
Сообщений: 282

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


Camel_Toe
дальше ты уж как-нить сам
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Пионер
**

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

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


Camel_Toe.
А, чем тебе не понравилась процедура умножения многочленов.
Через неё напишешь возведение в степень.
+ Сложение.
И всё готово.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Новичок
*

Группа: Пользователи
Сообщений: 26

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


2 zx1024: не все так просто, как кажется. вот ты сам попробуй написать такую прогу, которая считает суперпозицию многочленов, и поймешь что там очень много мелких ньюансов, кторые сильно портят жизнь, точнее ее усложняют=))))))))))))).
ЗЫ: неужели среди участников форума все о паскале нет программистов, готовых протянуть руку помощи будущему программисту ??? Я удивлен. Тем более, я смотрел все темы ниже моей, так там такие ламерские задачи, типа максимального элемента матрицы. Получается, что легкие задачи никто не решает, а как попадается сложная задача так все попрятались. Жаль !
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Пионер
**

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

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


Что именно вызывает проблемы:
1) Сложение многочленов (здесь же и приведение подобных),
2) Умножение многочленов (сложение уже есть),
3) Возведение многочлена в степень (при условии, что умножение и сложение уже есть)?
Рассмотри эти вопросы по отдельности (ведь о скорости выполнения тебя спрашивать никто не будет) и проблем вообще никаких не будет, - просто вызывай соответствубщие проц-ы.
Представляй многочлен как массив. A[i] = q - при степени = i - коэффициент - q.
Если данные (многочлены) представлять сложно, - то и все становится сложным.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 11.10.2024 17:53
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name