Шпаргалка: Информатика и ВТ
Задание.
Вычислить произведение элементов массива, превышающих заданное число С, то есть yk > C, для х Î[a,b] и изменяющегося с шагом h.
yk =1 + x + Ö x, где x < 5
yk =Ö 2 – cosx, где 5 £ x £ 8
yk =ln (1+x), где x > 8
Этап 1. Обозначения.
X – значение аргумента x;
Y - значение yk ;
C – заданное число;
А – начальное значение аргумента x;
В – конечное значение аргумента x;
Н – шаг изменения аргумента x;
Р – произведение элементов yk массива.
Этап 2. Обсуждение алгоритма.
Задается начальное значение аргумента x = a и начальное значение произведения элементов массива Р = 1. Так как, число повторений цикла заранее неизвестно, организуется циклический (итерационный) вычислительный процесс. Внутри цикла осуществляется проверка значений х, и в зависимости от того x < 5, или 5 £ x £ 8, или x > 8, выбирается формула для вычисления значений yk . Кроме того, если выполняется условие x < 5, то проверяется еще одно условие х ³ 0 (так как подкоренное выражение при вычислении yk не может быть отрицательным). В случае выполнения этого условия, значению yk присваивается значение yk = 1 (для того, чтобы при вычислении не изменилось значение произведения Р, а процесс перешел к вычислению следующего значения yk при следующем значении х). Затем, на основании полученного значения yk проверяется условие yk > С. Если оно выполняется, то значение произведения Р умножается на полученное значение yk . После этого, аргумент х увеличивается на шаг h. Цикл выполняется до тех пор, пока текущее значение х не превысит значения b – конечное значение аргумента х.
Этап 3. Текст программы.
PROGRAM_KR0;
VAR_A,B,C,H,P,X,Y:REAL;
BEGIN
WRITELN(‘Введите значения a и b’);
READLN(A,B);
WRITELN(‘Введите шаг Н и число С’);
READLN(H,C);
X:=A;
P:=1;
WHILE_X<=B_DO
BEGIN
IF_X<5_THEN_IF_X>=0_THEN_Y:=1+X+SQRT(X);
ELSE_Y:=1;
--> ЧИТАТЬ ПОЛНОСТЬЮ <--