Исполнение программы p_sezon




Реализация разветвляющихся алгоритмов со структурой выбора

Структура выбора

Второй алгоритмической структурой, определяющей разветвляющийся алгоритм, является структура выбора (рис. 13.1).

Рис. 13.1. – Алгоритмическая структура выбора

Структура выбора используется в алгоритмах, в которых при разных значениях одного и того же выражения (которое называют ключевым выражением) необходимо выполнять различные действия (различные варианты действий, каждый из которых имеет свой уникальный ключ варианта). Выполняется тот вариант, к которому "подошел ключ", полученный в результате вычисления ключевого выражения (значение ключевого выражения и константа, представляющая ключ варианта совпали).

IV.2 6. Оператор выбора

Назначение

Оператор предназначен для реализации структуры выбора, в которой в качестве ключевого выражения используется выражение, дающее результат простого порядкового типа.

Синтаксис

Синтаксическая диаграмма оператора выбора приведена на рис. 13.2.

Синтаксические ограничения:

- ключевое выражение может быть любым выражением, дающим результат простого порядкового типа, имеющего не более 65535 значений;

- все константы, являющиеся ключами вариантов, должны быть уникальными и по типу совместимыми с типом ключевого выражения.

Рис. 13.2. – Оператор выбора

Семантика

1) вычисляется ключевое выражение между символами case и of, получается единственное значение простого порядкового типа;

2) полученное значение последовательно сравнивается с константами, являющимися ключами вариантов;

3) при обнаружении совпадения выполняется оператор данного варианта и выполнение оператора выбора прекращается;

4) при отсутствии совпадения выполняется оператор после символа else, если ветвь else существует.

Задача определения сезона года

Постановка задачи

По номеру месяца определить название сезона года.

Математическая модель

если номер месяца m = 12, 1 или 2, то сезон зима;

если m=3, 4 или 5 - весна;

если m=6, 7 или 8 - лето;

если m=9, 10 или 11 - осень.

Метод решения

Решение заключается в том, что при разных значениях переменной m необходимо выполнять разные выводы. Таким образом, используется структура выбора, в которой ключевое выражение состоит из переменной m, ключи вариантов – констант от 1 по 12, серии команд вариантов состоят из вывода соответствующих символьных значений названий сезонов года:

выбор по m из вариантов

при 12,1,2 вывод('зима');

при 3,4,5 вывод('весна');

при 6,7,8 вывод('лето');

при 9,10,11 вывод('осень')

Информационная модель

Входные данные - номер месяца m типа INTEGER;

выходные - тексты 'зима', 'весна', 'лето', 'осень', 'решения нет';

промежуточные - отсутствуют.

 

Программная модель

program p_sezon;

var m:integer;{номер месяца}

begin

{ввод исходных данных}

writeln('Введите номер месяца');

readln(m);

 

{реализация метода решения}

case m of

12, 1, 2: writeln('зима');

3, 4, 5: writeln('весна');

6, 7, 8: writeln('лето');

9, 10, 11: writeln('осень')

else writeln('решения нет')

end {Сase}

 

end.

Исполнение программы p_sezon

0) До выполнения программы осуществляется распределение свободного участка памяти под переменные величины, описанные в разделе переменных программы (рис. 13.3).

  ОП ..
m ? INTEGER

Рис.13.3. – Распределение памяти

Содержимое выделенного участка памяти - неопределенное;

1) выполняется обращение к процедуре вывода:

writeln('Введите номер месяца')

На экране, начиная с текущего положения курсора, появляется сообщение:

Введите номер месяца

2) выполняется обращение к процедуре ввода:

readln(m)

Пользователь на клавиатуре набирает информацию:

5 и нажимает клавишу ввод (Return или Enter).

ЭВМ: 5 помещает в память под именем m;

  ОП ..
m ? INTEGER

Рис.13.4. – Распределение памяти после ввода

3) начинается выполнение оператора выбора:

Сase m of

12, 1, 2: writeln('зима');

3, 4, 5: writeln('весна');

6, 7, 8: writeln('лето');

9, 10, 11: writeln('осень')

else writeln('решения нет')

end {Сase}

В начале вычисляется ключевое выражение (в нашем случае состоящее из переменной целого типа m), получается ответ 5;

4) производится последовательное сравнение результата вычисления ключевого выражения с константами-ключами вариантов.

Во втором по порядку варианте обнаруживается совпадение ключа 5 с результатом 5;

5) выполняется оператор по ключу 5, остальные действия в операторе Сase не выполняются:

writeln('весна')

На экране, начиная с текущего положения курсора, появляется сообщение:

весна

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-08 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: