Помощь - Поиск - Пользователи - Календарь
Полная версия: Задачи на простые циклы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Yaroslav
Вычислить значение многочлена n (энной) степени при заданном значении х.


Написать программу для следующих примеров:

1) Р(х) = 4*х*x*x*x*x – 7*x*x*x*x + 5* x*x*x -2*х + 1;
2) Р(х) = x*x*x*x*x*x – 4*x*x*x*x + x*x*x -2* x*x + 5;
3) Р(х) = x*x*x*x*x + x*x*x*x – 6* x*x*x– 14* x*x – 11*х – 3


При написании программы использовать следующий алгоритм:

Начало
далее
n, а0, а1 …, аn, х
далее
р: = а0
далее
i = 1
далее
i =< n
далее: если - , то p далее конец
если + , то р: = p*x +a[i] далее i : = i + 1 и возврат к i =< n
klem4
Вот так чтоли ???

Это для первого многочлена, для остальных просто формулу поменять и все.

Код
uses crt;
var x:extended;
function p(x:extended):extended;
begin
p:=4*exp(5*ln(x))-7*exp(4*ln(x))+5*exp(3*ln(x))-2*x+1;
end;
Begin
  clrscr;
  readln(x);
  writeln(p(x):2:3);
  readln;
end.
klem4
Цитата(Yaroslav @ 11.01.05 20:45)
Начало
далее
n, а0, а1 …, аn, х
далее
р: = а0
далее
i = 1
далее
i =< n
далее: если - , то p    далее конец
если + , то р: = p*x +a[i]    далее i : = i + 1 и возврат к i =< n

Вот это ваще не ясно smile.gif)
Altair
Цитата
Вот так чтоли ???
нет, не так.
Код
exp(5*ln(x))

нельзя это smile.gif
потому что
Цитата
Задачи на простые циклы, цикл for

smile.gif
klem4
т.е. без возведения в степень чтоли надо ?

Даже если и так, то причем тут цикл ?? Ведь нужно просто получить значение монгочлена...
klem4
ИЗВИНЯЮСЬ, ступил )) мне просто показалось что тут 2 задания.
Yaroslav
Цитата(klem4 @ 11.01.05 21:48)
т.е. без возведения в степень чтоли надо ?

Даже если и так, то причем тут цикл ?? Ведь нужно просто получить значение монгочлена...

Спасибо большое! Но могли бы вы решить эти задачки через переменные, которые даны в алгоритме решения задачи,просто мы ещё не проходили функции!

Yaroslav
То, что задание должно быть решено без помощи функций должно оговариваться заранее
klem4
Цитата(Yaroslav @ 11.01.05 20:45)
Начало
далее
n, а0, а1 …, аn, х
далее
р: = а0
далее
i = 1
далее
i =< n
далее: если - , то p  далее конец
если + , то р: = p*x +a[i]    далее i : = i + 1 и возврат к i =< n

Дословно похоже на это :

Код
uses crt;
var
   a : array[0..100] of integer;
 i,n : integer;
 x,p : extended;

Begin
  clrscr;
  write('Input x ');readln(x);
  write('Input n ');readln(n);
  for i:=0 to n do
   readln(a[i]);
  p:=a[0];
  for i:=1 to n do
   p:=p*x + a[i];
  writeln(p:2:3);
  readln;
  end.
klem4
Объясните пожалуйста, как связано

это
Цитата
1) Р(х) = 4*х*x*x*x*x – 7*x*x*x*x + 5* x*x*x -2*х + 1;
2) Р(х) = x*x*x*x*x*x – 4*x*x*x*x + x*x*x -2* x*x + 5;
3) Р(х) = x*x*x*x*x + x*x*x*x – 6* x*x*x– 14* x*x – 11*х – 3


и это


Цитата
Начало
далее
n, а0, а1 …, аn, х
далее
р: = а0
далее
i = 1
далее
i =< n
далее: если - , то p далее конец
если + , то р: = p*x +a[i] далее i : = i + 1 и возврат к i =< n


Между собой ?
Altair
Цитата
первое-уравнения, второе- алгоритм их решения!
klem4
Цитата
Цитата
первое-уравнения, второе- алгоритм их решения!


Это вполне понятно из
Цитата
При написании программы использовать следующий алгоритм:


Но как решить эти уравнения с помощью этого алгоритма blink.gif ? Меня именно это интересует...
Altair
то, что названо здесь алгоритмом, не является алгоритмом. Вот ответ на твой вопрос, klem4.
;)
Алгоритм - последновательность однозначных команд, понятных исполнителю.
А то, что здесь:
Цитата
Начало
далее
n, а0, а1 …, аn, х
далее
р: = а0
далее
i = 1
далее
i =< n
далее: если - , то p далее конец
если + , то р: = p*x +a[i] далее i : = i + 1 и возврат к i =< n

явно не алгоритм.... ;)
Yaroslav
Цитата(klem4 @ 12.01.05 10:11)
Дословно похоже на это :

Код
uses crt;
var
   a : array[0..100] of integer;
 i,n : integer;
 x,p : extended;

Begin
  clrscr;
  write('Input x ');readln(x);
  write('Input n ');readln(n);
  for i:=0 to n do
   readln(a[i]);
  p:=a[0];
  for i:=1 to n do
   p:=p*x + a[i];
  writeln(p:2:3);
  readln;
  end.

Извините, а какие данные я должен подставлять под x и y? Помогите, пожалуйста!
Altair
Цитата
Вычислить значение многочлена n (энной) степени при заданном значении х.

следовательно x и n вводится.
Цитата
write('Input x ');readln(x);
 write('Input n ');readln(n);

smile.gif
Altair
Цитата
Извините, а какие данные я должен подставлять под x и y? Помогите, пожалуйста!

Что значит какие? Вот ваше задание:
Цитата
Вычислить значение многочлена n (энной) степени при заданном значении х.
Yaroslav
Перерешайте пожалуйста заново эти формулы!Просто программа по данному мной алгоритму не работает! Но когда будете переделывать программу через цикл for, не используйте пожалуйста ln ! Помогите мне пожалуйста!
Altair
ок, итак:
Цитата
Написать программу для следующих примеров:
1) Р(х) = 4*х*x*x*x*x – 7*x*x*x*x + 5* x*x*x -2*х + 1;
2) Р(х) = x*x*x*x*x*x – 4*x*x*x*x + x*x*x -2* x*x + 5;
3) Р(х) = x*x*x*x*x + x*x*x*x – 6* x*x*x– 14* x*x – 11*х – 3

Код
uses crt;
var
  a : array[0..100] of integer;
i,n : integer;
x,p : extended;

Begin
 clrscr;
 write('Input x ');readln(x);
 write('Input n ');readln(n);
 for i:=0 to n do
  readln(a[i]);
 p:=a[0];
 for i:=1 to n do
  p:=p*x + a[i];
 writeln(p:2:3);
 readln;
end.


для первого вводишь x- число X для которого надо вычислить значение многочлена.
и затем в цикле вводятся коээфициенты. ты вводишь для первго примера
Цитата
4
-7
5
-2
1

----------------------
для второго
Цитата
1
-4
1
-2
0
5


ясно??????

N для 1 и 3 равно 4, для
2 - равно 6. это степень многочелна
Yaroslav
Oleg_Z
Ничего не получается!
Я делаю так:
на экране появляется input x, я ввожу данное мне в задании число 3.
дальше появляется input n, я ввожу 4 -7 5 -2 1 . После этого ничего не выходит на экран! Что я не так делаю?Пожалуйста помогите!Ответ для 1-ой задачи для x=3 должен быть равен 535.
Yaroslav, не нужно копировать сообщения полностью...
klem4
Во первых n не может быть равно (4 -7 5 -2 1), так как n - кол-во итераций цикла - 1. N - это целое неотр. число, например 2 или 45.
volvo
Yaroslav
Единственное, что приходит в голову для вычисления этой последовательности:
Код
uses crt;
var
 i,j,n, x,p,s : longint;

begin
 clrscr;
 write('Input x ');readln(x);
 write('Input n ');readln(n);

 for i:=n downto 0 do
   begin
     writeln('input a[', i, ']');
     readln(p); j := i;
     while j > 0 do
       begin
         p := p * x; dec(j)
       end;
     s := s + p
   end;
 writeln(s);
 readln;
end.


Вводим (для первого задания):
Цитата
x=3; n=5;
a[5]=4; a[4]=-7; a[3]=5; a[2]=0; a[1]=-2; a[0]=1

Не забываем, что вводить надо ВСЕ коэффициенты последовательности (если соответствующего члена нет, то коэфф = 0)
Oleg_Z
:P
Yaroslav
Я написал программу как сделал Volvo. Но когда на экране было написано input a[i], я ввёл снизу вот так:
a[5]=4; a[4]=-7; a[3]=5; a[2]=0; a[1]=-2; a[0]=1
Но после того как я ввёл эту строку и нажал Enter, программа "вылетела" и на экране появилась надпись об ошибке: Invalid numeric format
Распишите мне пожалуйста как после запуска программы мне вводить все переменные!
Yaroslav
Я написал программу как показал Volvo, всё было нормально пока я не дошел до input a[i]! Я ввёл их так в строку:
a[5]=4; a[4]=-7; a[3]=5; a[2]=0; a[1]=-2; a[0]=1
После этого я нажал Enter и программа "вылетела"! На экране появилось уведомление об ошибке :Invalid numeric format!
Cкажите пожалуйста как мне вводить все эти переменные!Каким образом??
Altair
ты что-то не то ввел.
вот скриншот экрана, смотри как я и что вводил:
Yaroslav
Извините я-дурак!!! Я не ввёл запятые и поэтому программа не работала!Большое спасибо!!!!!!!!!!!!! :thanks: rolleyes.gif lol.gif :D :yes: rolleyes.gif
Yaroslav
Большое спаибо все м кто помогал мне решить эту задачку!!! Я прсто не вводил кое-где запятые!!!
:D lol.gif rolleyes.gif :yes: :no: :rose: :thanks:
Altair
Цитата
Я прсто не вводил кое-где запятые!!!

можно поинтересоваться где? blink.gif
Yaroslav
вот тут надо делать так, как СДЕЛАЛ Volvo:writeln('input a[', i,']')
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.