
5.3 Пример выполнения контрольной работы № 1 с комментариями
Задание 1.
Условие задачи.
Вычислить:
,
где
,
a = - x + bx2, x = 1.5, b = 1.2.
Блок-схема алгоритма (см. рисунок 5.1).
Рисунок 5.1 - Блок-схема алгоритма к заданию 1
В блоке 2 вводятся исходные данные x и b. В блоках 3, 4, 5 вычисляются значения функций a, y, z. В блоке 6 осуществляется вывод вычисленного значения функции z.
Программа.
‘ Ввод данных
DATA 1.5, 1.2: READ X, B
‘ Вычисление значений функций A, Y, Z
A = - X + B * X^2
Y = (B * X^3 – LOG (ABS (A))) / (2 * B)
Z = SQR(A^2 – B * EXP(SIN(X)) + 1) – Y
‘ Вывод значения функции Z
PRINT “ Z = ” : END
Задание 2.
Условие задачи.
Вычислить:
где c = cos (a + b), a = -3, b = 2.
2. Блок-схема алгоритма (см. рис. 5.2).
Рисунок 5.2 - Блок-схема алгоритма к заданию 2
В блоке 2 вводятся исходные данные a и b. В блоке 3 вычисляется значение функции c. Блоки 4, 6 осуществляют проверку условия: a меньше b, a равно b соответственно и, в зависимости от результата сравнения, направляют вычисление по одной из ветвей – 5, 7, или 8. Блок 9 выводит на печать полученное значение функции y.
3. Программа.
PRINT “ Введите A, B ”
Input a, b
C = COS(A+B)
IF A < B THEN Y = C * LOG (ABS (A - B)) / LOG(10) ELSE IF A = B THEN Y= (COS (A)^3 + C) / (2 * A + B) ELSE Y = C * (A - B)^(1 / 3)
PRINT “ Y = ”; Y : END
Задание 3.
Условие задачи.
Представить таблицу значений аргумента и заданной функции:
,
где a
= 3
cos2x,
b = e x+1
для x [-2; 2] с шагом 0,5.
Блок-схема алгоритма (см. рис. 5.3).
Рисунок 5.3 - Блок-схема алгоритма к заданию 3
В блоке 2 вводятся исходные данные: xn – (начальное значение аргумента), xk – (конечное значение аргумента), h - (шаг изменения аргумента). Блок 3 задает начальное значение параметра цикла x, т.е. осуществляет подготовку цикла. Блоки 4-10 выполняют расчет значений функции с выдачей их на печать. Это рабочая часть цикла. Блок 4 вычисляет значение функций a и b. Блок 5 проверяет условие x-1 и в случае его выполнения осуществляется переход к блоку 6, вычисляющему y = x + b. Если x >-1 (соответствует ветви «нет» блока 5), то блок 7 проверяет условие x1. Если это условие выполняется, то осуществляется переход к блоку 8, вычисляющему y = (a + x) / (ln(x) + 1). В противном случае x находится в интервале между –1 и 1 и происходит переход к блоку 9, вычисляющему y = sin(a). После вычисления по любой из формул осуществляется переход в общую ветвь к блоку печати (блок 10). Блок 11 вычисляет текущее значение параметра цикла, увеличивая значение параметра цикла на величину заданного шага. Блок 9 проверяет условие окончания цикла.
Программа.
INPUT “ Введите XN, XK, H ”; XN, XK, H
X = XN
а1: A = 3 * COS(X)^2: B = EXP(X + 1)
IF X<=-1 THEN Y = ABS(X) + B ELSE IF X>=1 THEN Y = (A+X)/(LOG(X)+1) ELSE Y = SIN(A)
PRINT X; Y: X = X + H
IF X<=XK THEN а1
END
Задание 4.
Условие задачи.
Вычислить
произведение положительных значений
функции Y
и
значение
R по
формуле:
, где
для x [2; 6] с шагом 0.5.
Блок-схема алгоритма (см. рисунок 5.4).
Блок 2 задает начальные значения сумм S=0, S1=0 и начальное значение произведения P=1. Блок 3 является верхней границей цикла и задает закон изменения параметра цикла X от 2 до 6 с шагом 0,5. Блок 4 проверяет условие X>3 и в случае его выполнения происходит переход к блоку 6, вычисляющему y = log2x. В противном случае осуществляется переход к блоку 5, вычисляющему y = -3sin(x). Блок 7 накапливает суммы S и S1. Блок 8 проверяет условие y>0. Если условие выполняется, осуществляется переход к блоку 9, накапливающему произведение. Блок 10 является нижней границей цикла. Блок 11 вычисляет значение R. Блок 12 выводит на печать полученные значения P и R.
Рисунок 5.4 - Блок-схема алгоритма к заданию 4
Программа.
S = 0: S1 = 0: P = 1
FOR X = 2 TO 6 STEP 0.5
IF X>3 THEN Y = LOG(X) / LOG(2) ELSE Y = -3*SIN (X)
‘ Вычисление сумм S, S1
S = S + X^2
S1 = S1 + X * Y
‘ Вычисление произведения P
IF Y>0 THEN P = P * Y
NEXT X
R = S / S1
PRINT “ Произведение P = ”; P; “ R = ”; R: END
Задание 5.
Условие задачи.
Вычислить
и вывести на печать массив A.
Найти
количество отрицательных элементов
массива A,
имеющих четные индексы. Элементы
массива
A формируются по правилу:
,i
= 1, 2, … , 7; b=1,2;
X = {-5, -3, -2, -1, 0, 1, 1.2 } – исходный массив.
Блок-схема алгоритма (см. рис. 5.5).
Блок
2 осуществляет ввод значения b
и массива
X,
состоящего из 7 элементов. Блок 3 задает
начальное значение количества, равное
нулю. Блок 4 организует цикл, в котором
осуществляется просмотр элементов
массива X
и
создание элементов нового массива A.
Блок 5 вычисляет элементы массива A
по формуле
,
гдеi
= 1,2,... 7.
Блок 6
выводит на печать элементы массива A.
Прежде чем накапливать количество, надо проверить, является ли элемент массива A отрицательным числом (блок 7), а индекс элемента – четным числом (блок 8). При невыполнении условия ai<0, или если i – нечетное число, никаких действий не выполняется и осуществляется переход к следующему значению переменной i. Блок 9 накапливает количество отрицательных элементов массива A, имеющих четные индексы. Блок 11 выводит на печать значение количества.
Рисунок 5.5- Блок-схема алгоритма к заданию 5
Программа.
DIM X(7), A(7)
B = 1.2
FOR I = 1 TO 7
INPUT X(I): NEXT I:
K = 0
FOR I = 1 TO 7
A(I) = EXP (B * X(I)) – 2
PRINT A(I)
IF A(I) < 0 THEN IF I MOD 2 = 0 THEN K = K + 1
NEXT I
PRINT “ K = ”; K
END
Задание 6.
Условие задачи.
Вычислить сумму элементов матрицы C(4,4), расположенных ниже главной диагонали.
1 -2 2 -1
C = -2 7 5 5.1
4 1 -7 0.6
3 0 2.4 0.7
2. Блок-схема алгоритма (см. рис. 5.6).
да S = 0 1 2 3 4 5 S
= S + cij нет 6 7 10 8 9 11
Рисунок 5.6 - Блок-схема алгоритма к заданию 6
Блок 2 осуществляет ввод элементов матрицы C. Блок 3 задает начальное значение суммы, равное нулю. Блок 4 задает внешний цикл по индексу i (но-мер строки). Блок 5 задает внутренний цикл по индексу j (номер столбца).
Блок 6 проверяет условие i > j (для элементов, расположенных ниже главной диагонали, выполняется условие i > j, где i – номер строки матрицы,
j – номер столбца матрицы) и, в случае его выполнения, осуществляется переход к блоку 7, накапливающему сумму.
При невыполнении условия i > j никаких действий не выполняется и осуществляется переход к следующему значению переменной внутреннего цикла. Блок 10 выводит на печать значение суммы.
3. Программа
DIM C (4, 4)
DATA 1, -2, 2, -1, -2, 7, 5, 5.1, 4, 1, -7, 0.6, 3, 0, 2.4, 0.7
FOR I = 1 TO 4
FOR J = 1 TO 4
READ C (I, J): NЕXT J, I
S = 0
FOR I = 1 TO 4
FOR J = 1 TO 4
IF I > J THEN S = S + C (I, J): NEXT J, I
PRINT “ S = ”; S: END
Задание 7.
Условие задачи.
Найти максимальный элемент матрицы B(4,5) в каждой строке и записать в массив Y.
Б
лок-схема алгоритма (см. рис. 5.7).
Рисунок 5.7 - Блок-схема алгоритма к заданию 7
Блок 2 осуществляет ввод элементов матрицы B. Для вычисления максимального элемента одной строки матрицы необходимо организовать цикл, перебирающий все элементы строки; параметром этого цикла будет номер столбца j (блок 5). Перед циклом задается начальное значение (блок 4)
Bmax = -105. Блоки 6 и 7 находят максимальный элемент текущей строки. После окончания цикла максимальный элемент строки записывается в массив Y (блок 9). Если все эти действия повторить во внешнем цикле, изменяя индекс строки от 1 до 4 (блок 3), будут вычислены максимальные элементы каждой строки и записаны в массив Y. Блок 11 выводит на печать элементы массива Y.
В рассмотренном примере внешний цикл должен быть обязательно по i (индексу строки), так как в противном случае были бы вычислены максимальные элементы каждого столбца.
Программа.
DIM B (4, 5), Y (4)
FOR I = 1 TO 4
FOR J = 1 TO 5
INPUT B (I, J)
NEXT J, I
FOR I = 1 TO 4
BMAX = -10^5
FOR J = 1 TO 5
IF B (I, J) > BMAX THEN BMAX = B (I, J)
NEXT J
Y (I) = BMAX
NEXT I
FOR I = 1 TO 4
PRINT Y (I)
NEXT I
END