- •31 Информатика (лек.) – гтк – 2 семестр (2012 г.) Введение Литература
- •Сокращения
- •Тема № 1. Основные понятия программирования
- •1.1. Состав программы на языке Pascal
- •1.2. Элементы программы в языке Pascal
- •1.3. Типы данных в языке Pascal
- •1.4. Операции в языке Pascal
- •1.5. Выражения в языке Pascal
- •1.6. Стандартные функции в языке Pascal
- •1.7. Операторы языка Pascal
- •Тема № 2. Программирование базовых алгоритмов
- •2.1. Программирование последовательных вычислений
- •2.2. Программирование разветвлений
- •2.3. Программирование циклов
- •Тема № 3. Программирование задач с массивами
- •3.1. Одномерные массивы
- •Фрагменты вычисления характеристик одномерного массива
- •Фрагменты операций с одномерными массивами
- •Особенности элементов одномерного массива
- •3.2. Двумерные массивы
- •Фрагменты вычисления характеристик двумерного массива
- •Фрагменты вычисления характеристик строк и столбцов двумерного массива
- •Фрагменты операций с двумерными массивами
- •Особенности элементов квадратных матриц
- •3.3. Перестановка и сортировка элементов массива
- •Тема № 4. Программирование подпрограмм и структурных типов данных
- •4.1. Подпрограммы
- •4.2. Программирование задач с функциями
- •4.3. Программирование задач с процедурами
- •4.4. Программирование задач с файлами
- •4.5. Программирование задач с символами и строками
- •4.6. Программирование задач с записями
- •4.7. Программирование задач со множествами
- •Тема № 5. Знакомство с численными методами
- •5.1. Приближённые вычисления
- •5.2. Методы решения нелинейных уравнений
- •5.3. Методы решения систем уравнений
- •5.4. Методы решения дифференциальных уравнений
- •5.5. Методы численного интегрирования
2.2. Программирование разветвлений
Для реализации алгоритма разветвляющейся структуры в языке Pascal используются следующие операторы.
Оператор безусловного перехода позволяет осуществлять переход к далеко расположенной части программы без проверки условия.
Этот оператор имеет вид:
goto M
где goto – перейти к, M – метка.
Это означает, что надо перейти к строке с меткой M .
Оператору безусловного перехода могут соответствовать фрагменты блок-схемы
или
Оператор условного перехода (условный оператор) позволяет осуществлять переход к одной из двух частей программы в зависимости от выполнения какого-то условия.
Этот оператор имеет вид:
if U then Op1 else Op2
где if – если, then – то, else – иначе, U – условие, Op1 – оператор 1-й, Op2 – оператор 2-й.
Это означает, что если условие U истинное, то выполнять оператор Op1, иначе выполнять оператор Op2.
Условие – логическое выражение, которое может принимать одно из 2-х значений: «истина» или «ложь».
Оператору условного перехода могут соответствовать фрагменты блок-схемы
или
В операторе условного перехода служебное слово else может отсутствовать, но в этом случае ветвь «нет» без блоков всё равно присутствует.
Оператор варианта (оператор выбора) позволяет выбирать направление выполнения программы по одному варианту из множества частей.
Этот оператор имеет вид:
case S of
Z1 : Op1;
…
ZN : OpN
else Op0
end
где case – случай, of – из, else – иначе, end – конец, S – селектор, Z1 – значение 1-е, ZN – значение N-е, Op1 – оператор 1-й, OpN – оператор N-й, Op0 – оператор 0-й.
Это означает, что в случае, если селектор S принимает значение из списка Z1, то выполнять оператор Op1, … если селектор S принимает значение из списка ZN, то выполнять оператор OpN, иначе выполнять оператор Op0.
Селектор – выражение порядкового типа, которое может принимать одно из многих значений (селектор может быть целым числом и не может быть дробным числом).
Оператору варианта могут соответствовать фрагменты блок-схемы
или
В операторе варианта служебное слово else и ветвь «нет» могут отсутствовать.
Задача 2.
Условие задачи. Вычислить величину
Блок-схема.
Программа.
Program z2;
Var
a,b,c:real;
Begin
read(a,b);
if a>b
then c:=a+b
else c:=a-b;
writeln(c);
End.
Задача 3.
Условие задачи. Вычислить величину , где a и c – целые числа.
а) Использование вложенных условных переходов
Программа.
Program z3a;
Var
a,c:integer;
Begin
read(a);
if a=0 then c:=2
else if (a>=1) and (a<=10) then c:=3
else if (a=-1) or (a=11) then c:=4
else c:=5;
writeln(c);
End.
б) Использование множественного ветвления
Программа.
Program z3b;
Var
a,c:integer;
Begin
read(a);
case a of
0: c:=2;
1..10: c:=3;
-1,11: c:=4
else c:=5
end;
writeln(c);
End.