§4.1. Алгоритм и кодирование основных алгоритмических структур2

Планирование уроков на учебный год (по учебнику Н.Д. Угриновича, 2017 г.)


Уроки 50 - 51
§4.1. Алгоритм и кодирование основных алгоритмических структур


§4.1.2. Алгоритмические структуры «ветвление» и «цикл»



Содержание урока

§4.1.1. Алгоритм и его свойства

§4.1.2. Алгоритмические структуры «ветвление» и «цикл»

§4.1.3. Подпрограммы. Рекурсивные алгоритмы

§4.1.4. Приёмы отладки программ. Трассировка программ

§4.1.5. Типовые алгоритмы


Алгоритмические структуры «ветвление» и «цикл»


Алгоритмическая структура ветвление. В отличие от линейных алгоритмов, в которых команды выполняются последовательно одна за другой, в алгоритмическую структуру ветвление входит условие: в случае истинности этого условия реализуется одна последовательность команд, а в случае ложности — другая.

В алгоритмической структуре ветвление одна или другая серия команд выполняется в зависимости от истинности условия.

Алгоритмическая структура ветвление может быть зафиксирована графически с помощью блок-схемы (рис. 4.1). В блок-схеме на рис. 4.1 альтернативные последовательности команд обозначены словами Серия 1 и Серия 2.

Рис. 4.1

Рис. 4.1

На языках объектно-ориентированного программирования, которые мы будем рассматривать в этой главе, алгоритмическая структура ветвление кодируется с использованием оператора If. После первого ключевого слова If должно быть записано условие. После ключевого слова Then (в языке Visual C# оно отсутствует) идёт последовательность команд (Серия 1), которая должна выполняться, если условие принимает значение «истина». После ключевого слова Else размещается последовательность команд (Серия 2), которая должна выполняться, если условие принимает значение «ложь».

В сокращённой форме оператора ключевое слово Else отсутствует. Тогда, если условие ложно, выполнение оператора условного перехода заканчивается и выполняется следующая строка программы.

Для реализации ветвления со многими вариантами серий команд используется алгоритмическая конструкция выбор. Конструкция «выбор» может быть зафиксирована графически с помощью блок-схемы (рис. 4.2).

Рис. 4.2

Рис. 4.2

В структуру выбора входят несколько условий, проверка которых осуществляется по порядку их записи в структуре выбора. При истинности одного из условий (Условие 1, Условие 2 и т. д.) выполняется соответствующая последовательность команд (Серия 1, Серия 2 и т. д.). Если ни одно из условий не является истиным, то будет выполнена последовательность команд Серия.

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

На языках объектно-ориентированного программирования конструкция выбор кодируется с использованием оператора выбора. На языке программирования Visual Basic .NET оператор выбора начинается с ключевых слов Select Case, на языке Visual C# — с ключевого слова switch, а на языке Lazarus — с ключевого слова Case.

После ключевого слова записывается выражение (переменная или арифметическое выражение). Заданное выражение сравнивается с определёнными значениями. При истинности одного из условий начинает выполняться соответствующая серия команд. Если ни одно из условий не истинно, то выполняется серия команд после ключевого слова Else (в языках Visual Basic .NET и Lazarus) или ключевого слова default (в языке Visual С#).

В сокращённой форме оператора ключевое слово Else (default) отсутствует. Тогда, если все условия ложны, выполнение оператора выбора заканчивается и выполняется следующая строка программы.

Алгоритмическая структура цикл. В алгоритмическую структуру цикл входит серия команд, выполняемая многократно. Такая последовательность команд называется телом цикла.

В алгоритмической структуре цикл серия команд (тело цикла) выполняется многократно.

Циклические алгоритмические структуры бывают двух типов:

• циклы со счётчиком, в которых тело цикла выполняется определённое количество раз;
• циклы по условию, в которых тело цикла выполняется, пока истинно (или ложно) заданное условие.

Алгоритмическая структура цикл может быть описана графически с помощью блок-схемы (рис. 4.3).

Рис. 4.3

Рис. 4.3

Цикл со счётчиком используется, когда заранее известно, какое количество повторений тела цикла необходимо выполнить. Количество повторений задаётся с помощью счётчика.

Цикл со счётчиком реализуется при помощи оператора For. В заголовке цикла устанавливается начальное значение переменной Счётчик, определяется величина её конечного значения и величина изменения значения за один шаг. Затем располагаются многократно выполняемые операторы тела цикла.

Цикл с условием используется, когда заранее неизвестно, какое количество раз должно повториться тело цикла. В таких случаях количество повторений зависит от некоторого условия.

Цикл называется циклом с предусловием, если условие выхода из цикла стоит в начале, перед телом цикла. В случае ложности условия цикл с предусловием не выполнится ни разу.

В языках объектно-ориентированного программирования цикл с предусловием реализуется с помощью оператора While (в языке Visual Basic .NET — Do While). Проверка условия выхода из цикла проводится до начала цикла с помощью ключевого слова While, которое обеспечивает выполнение цикла, пока условие истинно. Как только условие примет значение «ложь», выполнение цикла закончится.

Цикл называется циклом с постусловием, если условие выхода из цикла стоит в конце, после тела цикла. Цикл с постусловием выполняется обязательно, как минимум один раз, независимо от того, истинно условие или нет.

Цикл с постусловием реализуется с помощью оператора Do (в языке Lazarus — Repeat). Проверка условия выхода из цикла производится после цикла с помощью ключевого слова Until. Как только условие примет значение «истина», выполнение цикла закончится. В языке Visual Basic .NET используется также ключевое слово While. Оно обеспечивает выполнение цикла до тех пор, пока условие не станет ложным, т. е. пока условие имеет значение «истина». Как только условие примет значение «ложь», выполнение цикла закончится.

Пример

Данный пример демонстрирует использование алгоритмических структур.

Рассмотрим алгоритм перевода целых десятичных чисел в двоичную систему счисления на естественном языке:

1) Ввести десятичное целое число.

2) В цикле с предусловием, пока исходное целое десятичное число или целое частное больше 0, выполнить вычисления:

2.1) Вычислить остаток от деления исходного целого десятичного числа или целого частного на основание новой системы (на 2).
2.2) Выполнить целочисленное деление целого десятичного числа или целого частного на основание новой системы (на 2).
2.3) Записать полученный остаток от деления слева от двоичного числа (остатки, записанные в обратном порядке, образуют двоичное число).

3) Вывести двоичное целое число.

На рисунке 4.4 изображена блок-схема этого алгоритма. Команды в блоках записаны на языке Visual Basic .NET.

Рис. 4.4

Рис. 4.4


Вопросы и задания


1. Какие типы алгоритмических конструкций использованы в приведённом в параграфе алгоритме перевода десятичных чисел в двоичное представление?

2. Опишите алгоритм перевода чисел из двоичной системы счисления в десятичную. Оформите ответ в форме блок-схемы для числа 1011.

3. Как работает автомат для покупки газет и журналов? Объясните его работу с использованием алгоритмической конструкции проверки условия при выборе издания и выдаче сдачи автоматом. Оформите ответ с помощью блок-схемы.

4. Приведите примеры использования алгоритмической конструкции проверки условия в различных приборах. Какой алгоритм управляет датчиком включения и отключения света в подъезде дома («умный свет») или автоматическими дверями в магазине? Оформите свой пример с помощью блок-схемы.

5. В различных социальных сетях и журналах часто используются опросы или тесты. Опишите с помощью блок-схемы алгоритм автоматического тестирования при условии, что в тесте предлагается пять вопросов и на каждый вопрос — три возможных ответа. Тестируемый может выбрать только один из предложенных вариантов ответа. Каждый ответ имеет свой балл, который учитывается в суммарном балле тестируемого. По итогам прохождения теста набранный балл сравнивается со шкалой результатов, и для тестируемого на экран выводится сообщение в соответствии с тем диапазоном баллов, в который попал суммарный результат.

Используйте описание алгоритма на естественном языке, предложенное ниже, для построения блок-схемы «Тестирование».

i — счётчик цикла обработки пяти вопросов (i меняется от 1 до 5).

n — номер ответа (n меняется от 1 до 3).

1) Начало цикла: Для i от 1 до 5:

1.1) Вывести на экран вопрос i и три возможных ответа, перенумерованных как 1, 2, 3 и баллы для ответов (B1, В2, ВЗ).
1.2) Ввести с клавиатуры номер ответа n.
1.3) В ячейку суммы S добавить балл, соответствующий выбранному ответу (S = S + Вn).

2) Конец цикла по i

3) Если S < XI, то вывести сообщение 1, если S >= XI AND S < Х2, то вывести сообщение 2, если S >= Х2, то вывести сообщение 3.



Следующая страница §4.1.3. Подпрограммы. Рекурсивные алгоритмы



Cкачать материалы урока







Наверх