- •1) Оператор присваивания
- •2) Операторы ввода и вывода данных
- •3) Составной оператор
- •Контрольные вопросы
- •3. Программирование алгоритмов циклической структуры
- •3,1. Вычисление суммы и произведения
- •3.2.Программирование алгоритмов со структурой вложенных циклов
- •Пример 3.3.1
- •3.3.2. Вычисление суммы членов бесконечного ряда
Контрольные вопросы
Для чего нужны разделы описания переменных и констант?
Что такое тип? Какие типы данных Вы знаете?
Чем отличаются переменные и константы?
Что такое типизированная константа?
Правила записи арифметических выражений.
Приоритет арифметических операций.
Какие существуют способы задания значений переменным и константам?
2. ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ РАЗВЕТВЛЯЮЩЕЙСЯ
СТРУКТУРЫ
Для организации разветвлений в программах используются операторы перехода, условный и выбора.
9
Оператор перехода имеет общий вид записи: GOTO N ;
где N - метка оператора.
Условный оператор имеет два вида записи:
IF b THEN a; IF b THEN a, ELSE а2;
где b - логическое выражение (имеющее значение "истина" или "ложь"), а,а1,а2- операторы простой или составной. Оператор выбора имеет вид:
CASE <переключатель> OF
константа 1: оператор 1:
константа 2: оператор 2;
………
константа N; оператор N
END;
Пример 2.1
Найти действительные корни квадратного уравнения ах2 + bx + с = O Уравнение имеет решение, если дискриминант D = b2 - 4ac не является отрицательным.. Если D > O, то уравнение имеет корни
Если D = O, то x1 = х2 .
Реализуем данный алгоритм в программу, в которой используются операторы перехода и условий.
PROGRAM KOREN;
VAR A, B, C, D, Xl,X2 : REAL;
LABEL 100,200;
BEGIN
WRITELN (‘ INPUT A, B, C’ );
10
READLN (A, B, C);
D: = B*B-4 *A*C
IF D < 0.0 THEN GOTO 100
ELSE BEGIN
Xl: = (-B + SQRT(D))/(2 * A);
X2: = (-B - SQRT(D))/(2*A);
WRITELN (‘Корни уравнения’); WRITELN (‘X1=’, Xl’, X2=’, X2)
END;
GOTO 200;
100: WRITELN (‘уравнение не имеет решения’)
200: END.
B данной программе условный оператор содержит составной оператор для фразы ELSE.
Для лучшего понимания передачи управления в программе используется режим трассировки (пошаговое выполнение). Для этого выберите команду RUN / Тгасе Into (или нажмите F7). Первый оператор в теле программы begin (строка 4) будет подсвечен (исполняющая полоса).
Теперь нажмите F7 еще раз, чтобы перейти к исполнению программы. Следующая исполняемая строка программы - оператор WRITELN в строке 5.
Снова нажмите F7. Ваш экран мигнет, затем высветит программу с исполняющей полоской на операторе READLN в строке 6. Произошло следующее: ТУРБО-ПАСКАЛЬ переключился на экран исполнения (экран, на котором высвечиваются результаты), выполнил первый оператор WRITELN и возвратился на редактирующий экран.
Снова нажмите F7. Вы опять окажетесь на исполняющем экране. Напечатайте три числа вещественного типа через пробел и нажмите Enter. Вы снова окажетесь на редактируемом экране с исполняющей полоской на строке 7 с оператором присваивания.
11
Нажмите клавишу F7 еще несколько раз. Проследите, куда передается управление и какие операторы выполняются.
Когда исполняющая полоска окажется на последнем операторе End, нажмите F7, и выполнение программы закончится. Заметьте, что исполняемая полоска исчезла.
Пример 2.2
Вычислить значение функции
Из математической формулировки задачи видно, что вычислительный процесс имеет три ветви. Ho есть значение аргумента (в данном случае x = b), при котором функция z не определена. Поэтому добавляется еще одна, четвертая ветвь.
Получить разветвление на четыре ветви можно различными сочетаниями операторов перехода и условного. Поступим следующим образом: используем три условных оператора для проверки каждого из заданных условий определения аргумента X . Если ни одно из условий не выполняется, то выдается сообщение "Функция не определена".
Программа имеет вид:
PROGRAM USL;
VAR X, Y, Z: REAL ;
LABEL 11,22;
BEGIN
WRITELN (‘INPUT X, A, B’);
READLN (X, A, B) ;
IF X< = A THEN BEGIN
Z:=LN(x+l);
12
GOTO 11
END;
IF (X > A) AND (X < B) THEN BEGIN
Z:=COS(X)+SQR(SIN (X));
GOTO 11
END;
IF X > B THEN BEGIN
Z:=EXP(X)+6;
GOTO 11
END;
WRITELN (‘Функция не определена’),
GOTO 22;
ll:WRTTELN(‘Z= ‘,Z)
22: END.
Пример 2.3
Определить, попадает ли точка A с координатами Ха и Ya внутрь круга с радиусом R. Центр круга совпадает с началом координат.
Очевидно, что точка A находится внутри круга, если ее расстояние от
начала
координат, равное
,
будет меньше радиуса R, т.е. если
,<
R ИЛИ
.
Тогда программа этой задачи может быть такой: PROGRAM KRUG;
VAR XA, YA, R, L : REAL;
BEGIN
WRITELN (‘INPUT XA, YA, R’);
READLN (XA,YA,R);
13
L:=SQR (XA)+SQR(YA);
IFL<SQR(R)
THEN WRITELN (‘Точка А внутри круга’) ELSE WRITELN (‘Точка A вне круга’)
END.
Задания к теме № 2
Задачи 11-20
Вычислить функцию. Осуществить вывод значения функции. Провести анализ: при каком значении аргумента функция не определена? Выполнить программу в режиме трассировки.
11)
11)
12)
13)
В =
14
14)
15)
16)
d
=
17)
18)
y
=
15
19)
K
=
20)
m
=
Задачи 21-30
Выяснить, принадлежит ли точка с координатами X, Y замкнутой области, заданной уравнениями. Область показать на графике.
21)
22)
23)
24)
25)
26)
27)
28)
29)
30)
16
Контрольные вопросы
Что такое вычислительный процесс разветвляющейся структуры?
Каковы две формы записи условного оператора?
B чем разница по смыслу между полной и кратной формой записи условного оператора?
Может ли условный оператор содержать в себе другие условные операторы?
Может ли условный оператор содержать оператор перехода?
Как выполняется программа при наличии в ней оператора перехода?
Для чего предназначен оператор выбора?
Можно ли в примере 2.3 вместо условного оператора использовать оператор выбора?
