Вычислить произведение ряда - Free Pascal (591)
Формулировка задачи:
помогите пожалуйста составить программу с использованием всех операторов цикла. (В одной программе решить задачу тремя способами)
Ввести действительное х и вычислить:
(x-1)(x-3)(x-7)...(x-63)/(x-2)(x-4)(x-8)...(x-64)
Решение задачи: «Вычислить произведение ряда»
textual
Листинг программы
uses crt;
var x,y:real;
i,p:integer;
begin
clrscr;
write('x=');
readln(x);
p:=1;
y:=1;
for i:=1 to 6 do
begin
p:=p*2;
if x=p then
begin
write('y не определено, деление на 0');
readln;
exit
end;
y:=y*(x-p-1)/(x-p);
end;
writeln('for=',y:0:2);
p:=1;
y:=1;
i:=1;
while p<64 do
begin
p:=p*2;
if x=p then
begin
write('y не определено, деление на 0');
readln;
exit
end;
y:=y*(x-p-1)/(x-p);
end;
writeln('while=',y:0:2);
p:=1;
y:=1;
i:=1;
repeat
p:=p*2;
if x=p then
begin
write('y не определено, деление на 0');
readln;
exit
end;
y:=y*(x-p-1)/(x-p);
until p=64;
writeln('repeat=',y:0:2);
readln
end.
Объяснение кода листинга программы
- Ввод значения переменной
xс помощью функцииreadln(). - Инициализация переменных
pиyсо значениями 1. - Использование цикла
forдля вычисления значения переменнойyв диапазоне от 1 до 6 (не включая 6). - Внутри цикла проверка на деление на ноль при равенстве
xиp. - Вычисление значения переменной
yс помощью формулыy = y * (x - p - 1) / (x - p). - Использование цикла
whileдля вычисления значения переменнойyв диапазоне от 1 до 64 (не включая 64). - Внутри цикла проверка на деление на ноль при равенстве
xиp. - Вычисление значения переменной
yс помощью формулыy = y * (x - p - 1) / (x - p). - Использование цикла
repeat...untilдля вычисления значения переменнойyв диапазоне от 1 до 64 (не включая 64). - Внутри цикла проверка на деление на ноль при равенстве
xиp. - Вычисление значения переменной
yс помощью формулыy = y * (x - p - 1) / (x - p). - Вывод значения переменной
yс помощью функцииwriteln(). - Ввод значения от пользователя с помощью функции
readln(). - Код завершается.