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

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

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

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


Новичок
*

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

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


а тыб мог кодом кинутся, а так у меня самого догадки  есть, но никак ни получается, там в самой программе у меня не получается полностью просчитать все варианты, ну это так на словах не объяснить............................................
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #26


Новичок
*

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

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


так то оно так, что ничего сложного на словах, а на деле бывают затыки, но все равно zx1024 спасибо за помощь и ответы на мои вопросы.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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).
объясните с самого начала, если не сложно..
 К началу страницы 
+ Ответить 
сообщение
Сообщение #28


Гость






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

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

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

 





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