- •Раздел 1. Основные понятия алгоритмизации
- •Тема 1.1 Понятие алгоритма
- •1.2 Свойства алгоритма
- •Тема 1.2 Основные алгоритмические конструкции
- •На практике наиболее распространены следующие формы представления алгоритмов:
- •2.1 Словесный способ записи алгоритмов
- •2.2 Графический способ записи алгоритмов.
- •Тема 2.1 Основы алгебры логики
- •2.3. Псевдокод
- •2.4. Программный способ записи алгоритмов.
- •Одноместная операция (отрицание)
- •Логическое сложение
- •Логическое произведение
- •Импликация
- •Эквивалентность
- •Тема 1.3.1. Языки и системы программирования
- •Раздел 2 . Основы программирования на Турбо Паскаль.
- •Тема 2.1.1. Элементы языка Pascal. Структура языка.
- •I. Структурная схема программы на языке TurboPascal
- •Var имя переменной : тип;
- •II. Алфавит языка Паскаль
- •Тема 2.1.2 Данные: понятия и типы
- •Тема 2.2.1. Операторы языка Паскаль.
- •Тема 2.2.2. Операторы условного и безусловного перехода.
- •Тема 2.2.3. Циклические конструкции.
Тема 2.2.2. Операторы условного и безусловного перехода.
Оператор безусловного перехода. Условный оператор. Оператор варианта.
После изучения темы студент должен
знать:
Оператор безусловного перехода;
Условный оператор;
Оператор варианта
уметь
Составлять программы с использованием операторов ветвления.
Оператор перехода
Оператор безусловного перехода вызывает передачу управления оператору, которому предшествует метка. Синтаксическая диаграмма для оператора перехода имеет следующий вид:
Метка
goto
В авторской версии языка метка представляет собой целое десятичное число в диапазоне от 1 до 9999. TurboPascal допускает использование в качестве меток также и идентификаторов. В любом случае при использовании операторов перехода должны соблюдаться следующие правила:
Все метки используемые в блоке, должны быть описаны, причем каждая не более одного раза. Описание меток имеет следующий вид:
Label
Метка
;
,
Метка, указанная в операторе перехода, должна помечать оператор, находящийся в том же блоке, что и сам оператор перехода. Таким образом НЕ ДОПУСКАЮТСЯ переходы вовне процедур (функций) или внутрь них.
переход внутрь структурного оператора может вызвать непредсказуемые эффекты, хотя компилятор не выдает сообщение об ошибке.
Использование безусловных передач управления в программе считается теоретически избыточным и подвергается серьезной критике, так как поощряет создание малопонятных и трудно модифицируемых программ, которые вызывают большие сложности при отладке и сопровождении. При использовании операторов перехода рекомендуется соблюдать следующие правила:
Следует стремиться применять операторы перехода для передачи управления только вниз по тексту программы; при необходимости передачи управления «назад» следует использовать операторы цикла
Расстояние между меткой и оператором перехода на нее не должно превышать одной страницы текста
Условный оператор
Условные операторы предназначены для выбора к исполнению одного из двух возможных действий (операторов) в зависимости от некоторого условия (при этом одно из действий может быть пустым, то есть отсутствовать). В качестве условия выбора используется значение логического выражения. Синтаксическая диаграмма для условного оператора представлена ниже (полная развилка).
Выражение
then
Оператор
Else
Оператор
If
Данный оператор выполняется следующим образом. сначала вычисляется значение, стоящее после служебного слова if. Результат вычисления должен иметь булевский тип. Если значение есть true, то выполняется оператор указанный после служебного слова then. Если результат вычисления есть false, выполняется оператор, следующий за служебным словом else. Если при этом часть условного оператора, начиная со слова else, отсутствует, то управление немедленно передается оператору, следующему за условным.
Поскольку развилка может быть неполной, то возможна и неполная форма записи условного оператора:
IF <логическое выражение> THEN серия;
Выражение
then
Оператор
If
Примеры условных операторов
Пример1
If x<y then
Max:=y
Else
Max:=x
Пример2
Вычислить значение функции Y, в зависимости от значения x.
Условный оператор будет иметь вид:
If x>0 Then Y:=a*x+b Else Y:=a*x*x+b;
Листинг программы
