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

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

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

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


Новичок
*

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

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


а тыб мог кодом кинутся, а так у меня самого догадки  есть, но никак ни получается, там в самой программе у меня не получается полностью просчитать все варианты, ну это так на словах не объяснить............................................
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
zx1024
сообщение 22.10.2003 6:08
Сообщение #22


Пионер
**

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

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


Чтение мн-нов из файла.

type
 TMnog : array [0..100] of real;
var f, g : TMnog;
...
procedure Read_from_file (file_name : string; var Mnog : TMnog);
var file_p : text;
 s : string;
 Er : integer;
 i : integer;
 k : real;
begin
 for i := 0 to 100 do
   Mnog[i] := 0;
 assign (file_p, file_name);
 reset (file_p);
 repeat
   readln (file_p, s);
   val (s, i, Er);
   readln (file_p, s);
   val (s, k, Er);
   Mnog[i] := Mnog[i] + k;
 until eof(file_p);
 close (file_p)
end;


В программе соотв-но

...
read_from_file ('f.txt', f);
read_from_file ('g.txt', g);
...


Без проверки ошибок.
Дела улажу и напишу всё остальное.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
zx1024
сообщение 22.10.2003 6:51
Сообщение #23


Пионер
**

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

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


Сложение

procedure Add_Mnog (x, y : TMnog; var z : TMnog);
var i : integer;
begin
 for i := 0 to 100 do
   z[i] := x[i] + y[i]
end;


Не правда ли, просто.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
zx1024
сообщение 22.10.2003 7:54
Сообщение #24


Пионер
**

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

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


Умножение

procedure Mul_Mnog (x, y : TMnog; var z : TMnog);
var i, j : integer;
begin
 for i := 0 to 100 do
   z[i] := 0;
 for i := 0 to 100 do
   for j := 0 to 100 - i do
     z[i+j] := z[i+j] + x[i] * y[j]
end;


Прошу заметить, что при умножении степени результата, большие 100, отбрасываются. Если надо, для произвольных степеней (там будет и оптимизация/скорость лучше) пиши сам. Я только предлагаю идею.
Кстати. Пока нет ничего сложного.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
zx1024
сообщение 22.10.2003 8:06
Сообщение #25


Пионер
**

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

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


Ещё более элементарное возведение в степень.

procedure Power_Mnog (x : TMnog; power : byte; var z : TMnog);
var A, t : TMnog;
 i : integer;
begin
 for i := 1 to 100 do
   t[i] := 0;
 t[0] := 1;
 if power = 0 then
   A := t
 else
   A := x;
 while power > 1 do
 begin
   if (power and 1) = 1 then
     Mul_Mnog (A, t, t);
   Mul_Mnog (A, A, A);
   power := power shr 1
 end;
 Mul_Mnog (A, t, z)
end;


Добавь ещё умножение мног-на на число. Понадобится при суперпозиции.
Теперь всё соединяешь и считаешь, используя уже написанные проц-ры. Кстати, что-то может неправильно работать - сам не проверяю, пишу прямо сюда.
Как видишь - ничего сложного.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Camel_Toe
сообщение 23.10.2003 17:50
Сообщение #26


Новичок
*

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

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


так то оно так, что ничего сложного на словах, а на деле бывают затыки, но все равно zx1024 спасибо за помощь и ответы на мои вопросы.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
kisin
сообщение 11.07.2007 2:58
Сообщение #27


Гость






быть может у кого есть полное решение (или хотя бы алгоритм) задачи по действию над многочленами (сложение, умножение и т.п.)?

кусок по сложению, что был приведен выше:

procedure Add_Mnog (x, y : TMnog; var z : TMnog);
var i : integer;
begin
for i := 0 to 100 do
z[i] := x[i] + y[i]
end;

  1. что должно быть сообщено этой функции?
  2. в каком виде представлять и обрабатывать данные, вводимые с клавиатуры (к примеру: x^3+4*x+5).
объясните с самого начала, если не сложно..
 К началу страницы 
+ Ответить 
volvo
сообщение 11.07.2007 9:55
Сообщение #28


Гость






Цитата
объясните с самого начала, если не сложно..

А может быть ты перечитаешь всю тему с начала? Ясно же написано, что такое TMnog, да и сложение с умножением тоже реализовано... А заглянул бы в поиск - нашел бы еще один (как минимум) вариант обработки многочленов...
 К началу страницы 
+ Ответить 

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

 



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