| 
| 
 | Вопрос # 3 169/ вопрос открыт / | 
 |  Здравствуйте, эксперты!Так как в разделе "программирование в Паскале" не удается задать вопрос - задам здесь.
 Начал проходить полиномы
 Дали задание:
 условие - не использовать массивы
 ввести многочлен P(x)=p0+p1*x+p2*x^2+p3*x^3....pn^n
 затем найти и вывести P(x^3)*(a+b*x+c*x^2)
 объясните пожалуйста как решать ....
 заранее спасибо!
 очень надеюсь на вашу помощь...
 
|  |   Вопрос задал: Ruslan (статус: 1-ый класс)Вопрос отправлен: 10 сентября 2009, 12:10
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 17; последнее сообщение — 10 сентября 2009, 13:38; участников в обсуждении: 3. 
|   | min@y™ (статус: Доктор наук), 10 сентября 2009, 12:19 [#1]:Ну, раз на паскале, то можно использовать вместо массива связний список указателей на коэффициенты, а можно использовать рекурсивный ввод/вывод, т.е. либо использовать динамическую память, либо стек. Можно ещё, зная порядок полинома (n) выделить память для хранения коэффициентов сразу одним куском, а потом читать их оттуда для вычисления значения функции.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Ruslan (статус: 1-ый класс), 10 сентября 2009, 12:25 [#2]:да тут вообще не идет речь о реализации пока что( я хочу узнать теорию как это делается
 вот допусти я знаю что полином можно вычислить по схеме горнера:
 uses crt;
 const
 anMax = 3;
 An: array[0..anMax] of real = (1,2,3,4);
 { Тут описан следующий полином: Pn(x)=1 + 2*x + 3*x^2 + 4*x^3 }
 function Pn(x: real): real;
 var
 i: integer;
 Res: real;
 begin
 Res:=0;
 i:=anMax;
 while i>=0 do
 begin
 Res:=Res*x+An[i];
 i:=i-1;
 end;
 
 Pn:=Res;
 end;
 
 begin
 write(pn(2));
 end.
 
 это пример когда с массивом но оч просто переделать под решение без массивов и чтобы мы вводили n и числа - а потом выводили результат
 
 вообщем меня интересует теория....
 а не выделение памяти и т.д.
 пожалуйста обьясните как вычислить P(x^3)(a+bx+cx^2)
 заранее спасибо!
 |  
|   | Вадим К (статус: Академик), 10 сентября 2009, 12:39 [#3]:м, проблема со степенями что ли? P*(x*x*x)*(a+b*x+c*x*x)
 или
 P*(exp(3*ln(x)))*(a+b*x+c*sqr(x))
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Ruslan (статус: 1-ый класс), 10 сентября 2009, 12:45 [#4]:не то(( вообщем можете обьяснить как посчитать
 P(x^3)(a+bx+cx^2)
 если дан P(x)
 вот!
 |  
|   | Ruslan (статус: 1-ый класс), 10 сентября 2009, 12:47 [#5]:просто условие похоже не могу обьяснить(( |  
|   | Вадим К (статус: Академик), 10 сентября 2009, 12:55 [#6]:а как дан P(x)? как функция? И в чем то сложность? если задано P(x), то вычислить P(x^3) абсолютно не сложно. а потом просто умножить и всё. Или будет понятнее, если я условие запишу так вычислить значение многочлена
 (p0+p1*(x^3)+p2*(x^3)^2+p3*(x^3)^3....pn^n)*(a+bx+cx^2)
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Ruslan (статус: 1-ый класс), 10 сентября 2009, 12:58 [#7]:дан P(x) то есть вводим n,x
 а потом числа p0,p1,p2
 потом вводим a,b,c для квадратного уравнения
 но мы не должны использовать массивов!
 
 P(x^3)=(p0+p1*(x^3)+p2*(x^3)^2+p3*(x^3)^3....pn^n)
 да!
 а как умножать то потом будем многочлен на (a+bx+cx^2)
 вот это не понятно!
 или квадратное уравнение станет просто числом?
 |  
|   | Ruslan (статус: 1-ый класс), 10 сентября 2009, 13:00 [#8]:P(x^3)=(p0+p1*(x^3)+p2*(x^3)^2+p3*(x^3)^3....pn^n) 
 поправлю
 P(x^3)=(p0+p1*(x^3)+p2*(x^3)^2+p3*(x^3)^3....p^n*(x^n))
 |  
|   | Ruslan (статус: 1-ый класс), 10 сентября 2009, 13:04 [#9]:но я думаю, что не все так просто (что квадратное уравнение не станет числом) вот пояснения
 нам же задали несколько задач
 вот вторая например:
 дан p(x)=p0+p1*x+p2*x^2+p3*x^3+pn*x^n
 вычислить p(x)*(a+bx+cx^2)
 =p0'+p1'*x+p2'*x+...
 и преподаватель говорил что здесь "накладывается" что-то
 то есть, что это пример посложнее чем первый
 поэтому квадратное уравнение не превращается в число((
 |  
|   | min@y™ (статус: Доктор наук), 10 сентября 2009, 13:07 [#10]:Квадратный трёхчлен станет числом! Ибо икс ИЗВЕСТЕН!!! Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Вадим К (статус: Академик), 10 сентября 2009, 13:09 [#11]:скобки можно конечно раскрыть, но ... Мне почему то кажется, что Вы пытаетесь решить задачу как простой математик. А надо как программист. а это делаем так -вводим все коэфициенты
 рассчитаем t1 = x^3
 рассчитаем t2 = P(t1)
 рассчитаем t3 = (a+bx+cx^2)
 рассчитаем t4 = t2*t3
 выведем t4.
 
 Цитата: но мы не должны использовать массивов! а я массива в решении и не вижу, хотя хранить коэффициенты где то надо и наиболее оптимально это делать в массиве.
 Но есть заковырка одна. Если использовать метод Горнера, и ввести числа в "правильной последовательности, то всё будет хорошо.
 Вводим вначале x.рассчитываем его куб. а теперь в цикле запрашиваем коэфициенты для многочлена
 вот мнемокод
 t1 = x^3;
 p = t1;
 r = 0;
 повторять
 read(p);
 r = r+p*t1;
 t1 = t1 * p;
 пока есть коефициенты.
 рассчитаем t3 = (a+bx+cx^2)
 рассчитаем t4 = r*t3
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Ruslan (статус: 1-ый класс), 10 сентября 2009, 13:14 [#12]:это все ясно вот именно чему нас учат на 1 курсе))
 решать задачу вначале как математики
 а потом уже писать
 ваше решение понятно и ясно
 но все ж я думаю, что нельзя представлять квадратное уравнение как число и после нахождения полинома P(x^3) просто умножить
 
 
 
 
 >>вот пояснения
 нам же задали несколько задач
 вот вторая например:
 дан p(x)=p0+p1*x+p2*x^2+p3*x^3+pn*x^n
 вычислить p(x)*(a+bx+cx^2)
 =p0'+p1'*x+p2'*x+...
 и преподаватель говорил что здесь "что-то на что-то  накладывается"
 
 то есть, что это пример посложнее чем первый
 поэтому квадратное уравнение не превращается в число((
 |  
|   | Ruslan (статус: 1-ый класс), 10 сентября 2009, 13:15 [#13]:надо думать не как программер - а как математик в данном примере имхо - иначе пример не будет иметь никакого смысла! |  
|   | Ruslan (статус: 1-ый класс), 10 сентября 2009, 13:16 [#14]:вот я и хотел спросить что будет когда P(x^3)*квадратное уравнение! |  
|   | Вадим К (статус: Академик), 10 сентября 2009, 13:24 [#15]:что будет? просто число. если известны все коэффициенты, то любое выражение может быть превращено в число. Чем второй пример сложнее - я не понимаю. Вот если были бы неизвестны a,b,c - вот тогда другое дело.
 Эту задачу можно решать как математик - ввести все коэффициенты, потом сделать преобразования с раскрытием скобок, приведением коэффициентов... и так далее до удобной для вычисления формы. и только потом сосчитать. Но это уже может попахивать крупной дипломной работой.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Ruslan (статус: 1-ый класс), 10 сентября 2009, 13:30 [#16]:понятно сегодня я узнаю истину!
 спасибо за помощь!
 огромное спасибо!
 |  
|   | min@y™ (статус: Доктор наук), 10 сентября 2009, 13:38 [#17]:У всех на первом курсе по программизму были такие задачи и все их решали численными методами. Хватит заниматься ерундой, делай, как все. Препод твой гонит или ты чего-то не понял.
 Не путай квадратное уравнение ax2 + bx + с = 0 с квадратным трёхчленом (ax2 + bx + с). Это разные вещи.
 Напиши несколько функций:
 
 
 вычисление степени аргумента;
вычисление значения полинома;
вычисление значения квадратного трёхчлена.
 Затем воспользуйся ими для получения конечного результата.
 И не надо морочить людям бошки высказываниями, типа "и преподаватель говорил что здесь "что-то на что-то накладывается"".
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |