Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_1семестр.doc
Скачиваний:
23
Добавлен:
17.11.2019
Размер:
3.76 Mб
Скачать

3.1.4 Примеры реализации основных алгоритмических структур

В рассмотренных ниже алгоритмах используются простые типы данных – переменные и константы. Реальные данные, которые обрабатывает программа - это целые и вещественные числа, символы и логические величины. Эти простые типы данных называют базовыми. Все данные, обрабатываемые компьютером, хранятся в ячейках памяти компьютера, каждая из которых имеет свой адрес. Для того чтобы не следить за тем, по какому адресу будут записаны те или иные данные, в языках программирования используется понятие переменной, позволяющее отвлечься от адреса ячейки памяти и обращаться к ней с помощью имени (идентификатора).

Переменная – есть именованный объект (ячейка памяти), который может изменять свое значение. Имя переменной указывает на значение, а способ ее хранения и адрес остаются скрытыми от пользователя. Кроме имени и значения, переменная имеет тип, определяющий, какая информация находится в памяти. Тип переменной задает:

  • используемый способ записи информации в ячейки памяти;

  • необходимый объем памяти для ее хранения.

Объем памяти для каждого типа определяется таким образом, чтобы в него можно было поместить любое значение из допустимого диапазона значений данного типа. Например, тип «байт» может принимать значения от 0 до 255, что в двоичном коде соответствует ячейке памяти длиной в 8 бит (или 1 байт).

В описанных ниже алгоритмах (примеры 1 - 6) все данные хранятся в виде переменных. Например, инструкция «Ввод двух чисел a,b» означает введение пользователем значений двух переменных, а инструкция «К=К+1» означает увеличение значения переменной К на единицу.

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

Все остальные данные в программе, значения которых не изменяются на протяжении ее работы, называют константами или постоянными. Константы, как и переменные, имеют тип. Их можно указывать явно, например, в инструкции «К = К + 1» 1 есть константа, или для удобства обозначать идентификаторами: pi = 3,1415926536. Только значение pi нельзя изменить, так как это константа, а не переменная.

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

Линейная алгоритмическая конструкция

Пример 1. Алгоритм сложения двух чисел.

Постановка задачи: определить сумму двух чисел.

Исходные данные: а, b – два числа из области действительных значений.

Выходные данные: S – сумма заданных чисел а, b.

Формульно-словесное описание алгоритма:

  1. Начало.

  2. Ввод двух чисел a, b.

  3. Вычисление суммы S=a+b.

  4. Вывод S.

  5. Конец.

Блок-схема алгоритма представлена на рисунке 3.12.

Рисунок 3.12 Блок-схема алгоритма к примеру 1.

Разветвляющаяся алгоритмическая конструкция

Пример 2. Алгоритм вывода значения наибольшего из двух чисел.

Постановка задачи: вывести значение наибольшего из двух заданных чисел.

Исходные данные: а, b – два числа из области действительных значений.

Выходные данные: наибольшее из заданных чисел а, b.

Псевдокод алгоритма:

  1. Начало.

  2. Ввод двух чисел а, b.

  3. ЕСЛИ а > b, ТО «вывести а»,

ИНАЧЕ «вывести b».

  1. Конец.

Блок-схема алгоритма представлена на рисунке 3.13.

Рисунок 3.13 Блок-схема алгоритма к примеру 2.

Пример 3. Алгоритм поиска наименьшего значения среди трех заданных (неполная разветвляющаяся алгоритмическая конструкция).

Постановка задачи: Заданы три числа. Вывести значение наименьшего из них.

Исходные данные: а, b, c – три числа из области действительных значений.

Выходные данные: min – значение наименьшего из заданных чисел.

Псевдокод алгоритма:

  1. Начало.

  2. Ввод трех чисел а, b, с.

  3. Присвоить результирующему наименьшему значение первого из заданных чисел min=a.

  4. ЕСЛИ b < min, ТО min=b,

ИНАЧЕ «перейти к п.5».

  1. ЕСЛИ с < min, ТО min=с,

ИНАЧЕ «перейти к п.6».

  1. Вывести min.

  2. Конец.

Блок-схема алгоритма представлена на рисунке 3.14.

Рисунок 3.14 Блок-схема алгоритма к примеру 3.

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

Пример 4. Алгоритм нахождения наибольшего общего делителя двух натуральных чисел (алгоритмическая конструкция «цикл с предусловием»).

Постановка задачи: определить наибольший общий делитель двух натуральных чисел.

Исходные данные: m, n – два числа принадлежащие ряду натуральных чисел.

Выходные данные: значение наибольшего общего делителя.

Псевдокод алгоритма:

  1. Начало.

  2. Ввод натуральных чисел m и n.

  3. Пока mn выполнять:

  4. ЕСЛИ m > n ТО m = m - n,

ИНАЧЕ n = n - m.

  1. Переход к п3.

  2. Вывод m (найденный наибольший общий делитель).

  3. Конец.

Блок-схема алгоритма представлена на рисунке 3.15.

Рисунок 3.15 Блок-схема алгоритма к примеру 4.

Пример 5. Алгоритм игры «Угадай число» (алгоритмическая конструкция «цикл с постусловием»).

Постановка задачи: Первый игрок вводит задуманное число от 1 до 50. Второй (угадывающий) вводит другое число и получает один из ответов: «Ваше число меньше», «Ваше число больше» или «Вы угадали». Игра продолжается до тех пор, пока второй игрок не угадает задуманное число.

Исходные данные: х – задуманное первым игроком натуральное число, принадлежащее диапазону от 1 до 50, у – число, вводимое на очередном шаге вторым игроком.

Выходные данные: сообщения второму игроку.

Псевдокод алгоритма:

  1. Начало.

  2. Ввод числа х.

  3. Ввод числа y.

  4. ЕСЛИ x > y ТО вывести сообщение «Ваше число меньше» и перейти к п.3

ИНАЧЕ перейти к п.5

  1. ЕСЛИ x < y ТО вывести сообщение «Ваше число больше» и перейти к п.3

ИНАЧЕ перейти к п.6

  1. Вывести сообщение «Вы угадали»

  2. Конец.

Блок-схема алгоритма представлена на рисунке 3.16.

Рисунок 3.16. Блок-схема алгоритма к примеру 5.

Пример 6. Алгоритм вычисления суммы (алгоритмическая конструкция «арифметический цикл»).

Постановка задачи: Для заданного натурального числа N вычислить сумму

Исходные данные: N – натуральное число.

Выходные данные: S – результирующая сумма.

Формульно-символьное описание алгоритма:

  1. Начало.

  2. Ввод N.

  3. Задать начальное значение суммы S=0.

  4. Для i = 1, N, 1 повторить

4.1.

  1. Вывод S.

  2. Конец.

Блок-схема алгоритма представлена на рисунке 3.17.

Рисунок 3.17. Блок-схема алгоритма к примеру 6.