![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Задача на массивы [D7, XP]
Shell © (2006-11-22 19:16:00)Здравствуйте, подскажите пожалуйста как решить вот такую задачу:
Многочлен степени N задан своими коэффициентами an, an-1, an-2, …, a2, a1, a0 (коэффициент ai стоит при x в степени i):
Вот формула многочлена: P{x}=AnXn+An-1Xn-1+...+A2X2+AX+A(Xn-степень, An-номер многочлена)
Помогите написать программу для вычисления P(x): число N, все коэффициенты и x вводятся с клавиатуры, N <= 20. Коэффициенты и x - вещественные числа.
Зарание благодарен Вам за помошь.
ProgRAMmer Dimonych (2006-11-23 00:11:00) [41]> palva © (23.11.06 00:08) [11]
Инфа одним Горнером не ограничивается. Я вообще предпочитаю не занижать информатику до уровня математики.
palva (2006-11-23 00:08:00) [42]> Школа атаковала всегда, т.к. нормальных учебников по инфе ещё не написано...
Как это не написано!?
Курош. Курс высшей алгебры.
Написан лет 40 назад. Доступен десятикласснику. Открыть главу про многочлены и прочитать, что такое схема Горнера. Или поискать в интернете этого Горнера.
Lazy_Coder (2006-11-22 21:59:00) [43]Удалено модератором
Примечание: офтопик
Джо (2006-11-22 21:53:00) [44]> Блин, чё я такой пьяный сегодня?
Когда трезвый — на Делфи пишешь? ;)
Lazy_Coder (2006-11-22 21:45:00) [45]На CBuilder5 это будет выгдядеть так:
#include <vector.h>
#include <stdio.h>
#include <conio.h>
#include <vcl.h>
#include <math.h>
...
bool flag=false;
cout << "Vasya Pupkin SOFTWARE presents : *Calculator*\r\n";
AnsiString buf;
float fbuf;
vector <float> coef;
vector <float> eks;
coef.clear();
eks.clear();
int i=0;
while(!flag)
{
cout << "Коэффициент при "+IntToStr(i)+"-й степени >";
cin >> buf;
if(buf=="")flag=true; //Пустая строка - конец ввода
else
{
try
{
fbuf=StrToFloat(buf);
coef.push_back(fbuf);
i++;
}
catch(...)
{
cout << "Ошибка ввода!\n";
}
}
}
for(int i=0;i<coef.size();i+=0) //Пока всё не введеш
{
cout << "x в "+IntToStr(i)+"-й степени >";
cin >>buf;
try
{
fbuf=StrToFloat(fbuf);
eks.push_back(fbuf);
i++;
}
catch(...)
{
cout << "Internal Error #34523456134";
}
}
// Вычисления
float p=0;
float x,a;
for(int i=0;i<coef.size();i++)
{
x=eks[i];
a=coef[i];
p+=pow(eks,i)*a;
}
cout << "\n";
cout << "Значение многочлена >"+FloatToStrF(p,ffGeneral,12,12);
cin >> buf;
P.S. В трубопаскакаль сами переводите...
Блин, чё я такой пьяный сегодня?
ProgRAMmer Dimonych (2006-11-22 20:17:00) [46]> Алхимик © (22.11.06 20:04) [6]
Школа атаковала всегда, т.к. нормальных учебников по инфе ещё не написано...
Алхимик (2006-11-22 20:04:00) [47]Попробуй "на пальцах" объяснить как ты видишь решение задачи, с переводом на паскакаль поможем. :)
p.s. А вы говорите у студентов обострение... Школа атакует! :)
ProgRAMmer Dimonych (2006-11-22 20:00:00) [48]Что вообще проходите? Turbo Pascal?
Shell (2006-11-22 19:59:00) [49]Да
Джо (2006-11-22 19:57:00) [50]> [2] Shell (22.11.06 19:51)
> Просто эту тему в
> школе мы начали проходить только сегодня.
И что, уже сразу задание задали?
Shell (2006-11-22 19:51:00) [51]Я не много не догоняю как это сделать.Просто эту тему в школе мы начали проходить только сегодня.
Рамиль (2006-11-22 19:40:00) [52]А в чем, собственно, проблема?
Проходишь по циклу в массив и считаешь.