Типичным примером циклического процесса является задача табулирования функции одной переменной, которая формулируется следующим образом:
Вычислить значение функции некоторой переменной х, изменяющейся от начального значения х0 до конечного хk с постоянным шагом h.
При программной реализации данного алгоритма на печать выводится множество пар значений аргумента x и функции y с помощью оператора печати, расположенного внутри тела цикла.
При решении данной задачи необходимо учесть, что тригонометрические функции в Qbasic вычисляются от угла заданного в радианах, поэтому переведем исходные данные из градусов в радианы:
Алгоритм решения задачи:
Программа:
CLS
'Вводим значения чисел х0, хk, h
INPUT “X0,XK,H=”; X0,XK,H
X0=X0*3.14/180: XK=XK*3.14/180: H=H*3.14/180
FOR X=X0 TO XK STEP H
Y=SIN(X)
PRINT X, Y
NEXT X
END
Результаты работы программы:
X | Y |
-3,14 | -0,001592653 |
-2,791111111 | -0,343350116 |
-2,442222222 | -0,643736039 |
-2,093333333 | -0,8665558 |
-1,744444444 | -0,984961013 |
-1,395555556 | -0,98468459 |
-1,046666667 | -0,865759839 |
-0,697777778 | -0,642516449 |
-0,348888889 | -0,341853849 |
0,348888889 | 0,341853849 |
0,697777778 | 0,642516449 |
1,046666667 | 0,865759839 |
1,395555556 | 0,98468459 |
1,744444444 | 0,984961013 |
2,093333333 | 0,8665558 |
2,442222222 | 0,643736039 |
2,791111111 | 0,343350116 |
3,14 | 0,001592653 |
График:
При построении графика полученные результаты необходимо округлить до десятых.
Алгоритм решения задачи:
Программа:
CLS
'Вводим значения х0,хk,h
INPUT “X0,XK,H=”; X0,XK,H
FOR X = X0 TO XK STEP H
IF X < = 1 THEN
Y = X ^ 2
ELSE
Y = SQR(X)
ENDIF
PRINT X, Y
NEXT X
END
Результаты работы программы:
| График: |
Уравнение прямой на отрезке [0;2]: .
Найдем уравнение прямой, проходящей через точки (-2;0) и (0;1) используя уравнение прямой, проходящей через две точки:
.
Аналогично определяем уравнения остальных прямых. В результате кусочно-гладкая функция примет вид:
Алгоритм решения задачи:
Программа:
CLS
INPUT “X0,XK,H=”; X0,XK,H
FOR X = X0 TO XK STEP H
SELECT CASE X
CASE IS<0
Y = 0.5 * X + 1
CASE IS>3
Y = -X + 3
CASE 0 TO 2
Y = 1
CASE ELSE
Y = X - 1
END SELECT
PRINT X, Y
NEXT X
END
Результаты работы программы:
X | Y | X | Y | X | Y | X | Y |
-3 | -0,5 | -0,6 | 0,7 | 1,8 | 4,2 | 0,8 | |
-2,8 | -0,4 | -0,4 | 0,8 | 4,4 | 0,6 | ||
-2,6 | -0,3 | -0,2 | 0,9 | 2,2 | 1,2 | 4,6 | 0,4 |
-2,4 | -0,2 | 2,4 | 1,4 | 4,8 | 0,2 | ||
-2,2 | -0,1 | 0,2 | 2,6 | 1,6 | |||
-2 | 0,4 | 2,8 | 1,8 | 5,2 | -0,2 | ||
-1,8 | 0,1 | 0,6 | 5,4 | -0,4 | |||
-1,6 | 0,2 | 0,8 | 3,2 | 1,8 | 5,6 | -0,6 | |
-1,4 | 0,3 | 3,4 | 1,6 | 5,8 | -0,8 | ||
-1,2 | 0,4 | 1,2 | 3,6 | 1,4 | -1 | ||
-1 | 0,5 | 1,4 | 3,8 | 1,2 | |||
-0,8 | 0,6 | 1,6 |
Алгоритм решения задачи:
Программа:
CLS
'Вводим значения чисел х0, хk, h
INPUT “X0,XK,H=”; X0,XK,H
MIN = TAN(2 * X0 + 3)
MAX = TAN(2 * X0 + 3)
FOR X = X0 + H TO XK STEP H
Y = TAN(2 * X + 3)
IF Y<MIN THEN MIN = Y
IF Y>MAX THEN MAX = Y
NEXT X
PRINT “MIN, MAX=”; MIN, MAX
END
Результаты работы программы:
MIN, MAX=-225,9508465 0,871447983
Алгоритм решения задачи:
Программа:
CLS
Y = 2: P = 2
FOR X = 0 TO 1.2 STEP 0.3
Z = EXP(X + Y) * P
PRINT X, Y, P, Z
Y = Y + 1
P = P + 1
NEXT X
END
Результаты работы программы:
X | Y | P | Z |
14,7781122 | |||
0,3 | 81,33791676 | ||
0,6 | 397,9372626 | ||
0,9 | 1825,187339 | ||
1,2 | 8036,584586 |
Программа:
CLS
a = 0.4
FOR i = 1 TO 10
y = sin(a) ^2 - a
PRINT a, y
a = a + 0.2
NEXT i
END
Алгоритм решения задачи:
Результаты работы программы:
a | y |
0.4 | 0.2483534 |
0.6 | 0.2811789 |
0.8 | 0.2854002 |
0.2919266 | |
1.2 | 0.3313031 |
1.4 | 0.4288889 |
1.6 | 0.6008528 |
1.8 | 0.8516211 |
1.173179 | |
2.2 | 1.546334 |