Другие языки программирования и технологии
Уважаемые!Помогите решить задачу по Паскалю,пожайлуста!
Условие:Вычислите y=x+x(в 3 степени)/3+x(в5 степени)/5+...x(в 21 степени)/21,где x=0,5Напишите,пожайлуста,как записать эту задачу!
Доброго времени суток.
Если под паскалем вы подразумеваете Object Pascal aka Delphi, то там есть функция Power в модуле Math. Пишите простой цикл
y := 0;
for i:=1 to 11 do y := y + Power(0.5, 2*i - 1) / (2 * i - 1);
Если же речь идет о турбо паскале, то указанную функцию придется реализолвывать самому. Например, так
function Power(N: Extended; Pwr: Integer): Extended;
begin
if Pwr = 0 then Power := 1
else Power := N*Power(N, Pwr-1);
end;
Или воспользоваться советом попробовать через рекуррентное соотношение.
var
y, x, p : Real;
k : Integer;
begin
x := 0.5; {присваиваем начальное значение}
p := x; {переменная для накапливания степени}
y := x; {переменная для накопления суммы}
k := 0;
repeat
p := p * x * x ; {вычисление членов ряда x, x^2, x^5 ...}
y := y + p / (2 * k - 1); {вычисление слагаемого и добавление его к сумме}
k := k + 1; {увеличение номера}
until (2 * k - 1) <= 21;
WriteLn('Y = , y:7:4);
ReadLn;
end.
Удачи!
Если под паскалем вы подразумеваете Object Pascal aka Delphi, то там есть функция Power в модуле Math. Пишите простой цикл
y := 0;
for i:=1 to 11 do y := y + Power(0.5, 2*i - 1) / (2 * i - 1);
Если же речь идет о турбо паскале, то указанную функцию придется реализолвывать самому. Например, так
function Power(N: Extended; Pwr: Integer): Extended;
begin
if Pwr = 0 then Power := 1
else Power := N*Power(N, Pwr-1);
end;
Или воспользоваться советом попробовать через рекуррентное соотношение.
var
y, x, p : Real;
k : Integer;
begin
x := 0.5; {присваиваем начальное значение}
p := x; {переменная для накапливания степени}
y := x; {переменная для накопления суммы}
k := 0;
repeat
p := p * x * x ; {вычисление членов ряда x, x^2, x^5 ...}
y := y + p / (2 * k - 1); {вычисление слагаемого и добавление его к сумме}
k := k + 1; {увеличение номера}
until (2 * k - 1) <= 21;
WriteLn('Y = , y:7:4);
ReadLn;
end.
Удачи!
пишешь рекурентную формулу задаешь условие, цикл и сумму, все просто...
var x,y:real;
d:byte;
function Stepen(a:Real;b:byte):Real;
var c:byte;
a1:real;
begin
a1:=a;
for c:=1 to b do a:=a*a1;
Stepen:=a;
end;
begin
x:=0.5;
y:=x;
for d:=1 to 10 do
y:=y+stepen(x,d*2+1);
writeln(y:10:10);
readln;
end.
Примерно так.
d:byte;
function Stepen(a:Real;b:byte):Real;
var c:byte;
a1:real;
begin
a1:=a;
for c:=1 to b do a:=a*a1;
Stepen:=a;
end;
begin
x:=0.5;
y:=x;
for d:=1 to 10 do
y:=y+stepen(x,d*2+1);
writeln(y:10:10);
readln;
end.
Примерно так.
Похожие вопросы
- Помогите решить задачи по Паскалю
- помогите решить задачу на паскале: напечатать "столбиком" значения sin2, sin3, ..sin 20.
- Помогите решить задачу в паскале
- Помогите решить задачу на паскале
- Помогите решить задачу в паскале. Задание: Заменить в строке все вхождения "да" на "нет".
- Помогите решить задачу в паскале
- Помогите решить задачу (в паскале)!
- Помогите решить задачу в паскале, пожалуйста! !
- помогите решить задачу на паскале
- помогите решить задачу по Паскалю