Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

m1031

.pdf
Скачиваний:
1
Добавлен:
15.11.2022
Размер:
573.28 Кб
Скачать

004

П568 СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ

ПОНЯТИЕ АЛГОРИТМА И ЕГО СВОЙСТВА. ТИПОВЫЕ СТРУКТУРЫ АЛГОРИТМОВ

Методические указания к выполнению лабораторной работы

Новосибирск

2015

11

УДК 004.421 (076.5) П568

Понятие алгоритма и его свойства. Типовые структуры алгоритмов: Метод. указ. к выполнению лабораторной работы / Сост. Л.В. Голунова. – Новосибирск: Изд-во СГУПСа, 2015. – 26 с.

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

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

Рассмотрены и рекомендованы к изданию на заседании кафедры «Общая информатика».

О т в е т с т в е н н ы й р е д а к т о р канд. техн. наук, доц. Д.Н. Цветков

Р е ц е н з е н т канд. физ.-мат. наук, доц. кафедры «Информационные

технологии транспорта» СГУПСа К.М. Шлемензон

© Сибирский государственный университет путей сообщения, 2015

© Голунова Л.В., сост., 2015

2

Предисловие

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

Задачи лабораторной работы:

1)познакомиться с процедурой подготовки и решения задач на компьютере;

2)освоить различные способы представления алгоритма, формы его записи;

3)изучить типовые структуры алгоритма;

4)научиться разрабатывать алгоритмы для решения различных типовых задач.

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

После выполнения лабораторной работы студент должен:

1)уметь разрабатывать алгоритмы для решения типовых задач;

2)уметь записывать алгоритм различными способами; Порядок выполнения и защиты лабораторной работы следу-

ющий:

1)последовательно выполнить все предложенные задания;

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

риала;

3)представить выполненную работу преподавателю;

4)ответить на вопросы преподавателя.

3

1.Понятие алгоритма

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

Полагают, что термин происходит от имени средневекового персидского математика IX в. Лбу Джафара Мохамеда ибн Мусы аль-Хорезми. Редукция последней части имени ученого в европейских языках привела к образованию термина «алгорифм» или «алгоритм».

Термин «алгоритм» применяют весьма широко не только в области вычислительной техники и программирования. У каждого человека сформировано свое (пусть даже большей частью интуитивное) понимание смысла этого термина.

Как и для всякого фундаментального понятия, алгоритму невозможно дать абсолютно строгое определение. Приведенные формулировки лишь приближенно описывают алгоритм.

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

Алгоритм (от англ. algorithm) − заранее заданная последовательность четко определенных правил или команд для получения решения задачи за конечное число шагов1.

Алгоритм − система операций, применяемых по строго определенным правилам, которая после последовательного их выполнения приводит к решению поставленной задачи, например, алгоритм извлечения корня из числа2.

1Толковый словарь по вычислительным системам / Под ред. В. Иллингуорта и др.; Пер. с англ. А.К. Белоцкого и др.; Под ред. А.К. Белоцкого. М.: Машиностроение, 1991. 560 с.

2Современный словарь иностранных слов: ок. 20000 слов. М.: Рус. яз.,

1992. 740 с.

4

Алгоритм − понятное и точное предписание исполнителю совершить последовательность действий, направленных на достижение указанной цели или на решение поставленной задачи3.

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

Решение задач на компьютере реализуется программным способом, т.е. путем выполнения последовательно во времени отдельных операций, предусмотренных алгоритмом. Необходимо отметить, что для представления алгоритма в виде, понятном компьютеру, служат языки программирования (алгоритмические языки программирования). Процесс создания программ можно представить как последовательность следующих действий: По-

становка задачи Алгоритмизация решения задач Программирование.

Процедура подготовки и решения задачи на персональном компьютере − достаточно сложный и трудоемкий процесс, который состоит из нескольких этапов.

1.Постановка задачи (задача, которую предстоит решать на компьютере, формулируется пользователем или получается им в виде задания).

2.Математическая формулировка и контрольный просчет за-

дачи.

3.Разработка алгоритма решения задачи.

4.Написание программы на языке программирования.

5.Подготовка исходных данных.

6.Ввод программы и исходных данных в компьютер.

7.Отладка программы.

8.Тестирование программы.

9.Решение задачи на компьютере и анализ результатов. Таким образом, алгоритм должен содержать конечную по-

следовательность шагов или операций, однозначно определяю-

3 Информатика в понятиях и терминах: Кн. для учащихся ст. классов сред. школ / Г.А. Бордовский, В.А. Извозчиков, Ю.В. Исаев, В.В. Морозов; Под ред. В.А. Извозчикова. М.: Просвещение, 1991. 209 с.

5

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

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

2. Свойства алгоритма

При составлении алгоритмов следует учитывать ряд требований, выполнение которых приводит к формированию необходимых свойств.

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

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

деленностью.

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

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

6

Выполнение алгоритма можно разбить на последовательность законченных действий − шагов. Каждое действие должно быть завершено исполнителем прежде, чем он перейдет к выполнению следующего. Значения величин в каждом шаге алгоритма получаются по конкретным правилам из значений величин, определенных на предшествующем шаге. Это свойство называется

дискретностью.

3. Способы представления алгоритма

Существуют различные способы представления алгоритмов. Основными среди них являются:

словесное описание алгоритма на естественном языке (вербальная форма записи);

построчная запись алгоритма;

блок-схема;

запись на языке программирования;

комбинированный способ.

Рассмотрим особенности каждого из способов и в качестве примера в каждой форме приведем один и тот же алгоритм для определения наибольшего числа из двух целых положительных чисел.

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

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

При таком словесном способе содержание алгоритма может быть следующим:

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

2)сравнить оба числа и определить наибольшее из них.

7

Построчная запись алгоритма. Это запись на естественном языке, но с соблюдением некоторых дополнительных правил:

1)шаги (предписания) алгоритма нумеруются;

2)исполнение алгоритма происходит в порядке возрастания номеров шагов, начиная с первого (если не встречается никаких специальных указаний);

3)типичными шагами алгоритма являются описанные ниже. Чтение (ввод) данных, которое записывается в виде: чтение

A, B, …, где A, B, ... − обозначение исходных данных.

Обработка данных (вычисления) по формулам, записанная в виде: V = A + B, где V − переменная, значение которой определяется как результат, полученный после выполнения операции, указанной в правой части.

Сообщение (вывод) результата, который имеет запись: V, A,

B, где V, A, B − обозначение переменных, значение которых необходимо узнать.

Проверка условия, запись которого: если A > B, то идти к N, где A > B − условие, при выполнении которого осуществляется переход к шагу с номером N, а если условие не выполняется, то производится переход к следующему по порядку шагу.

Переход к шагу с номером N: идти к N. Конец вычислений: Останов.

Пример.

[1]Чтение A, B

[2]Если A = B, идти к [8]

[3]Если A > B, идти к [6]

[4]C B

[5]Идти к [9]

[6]С A

[7]Идти к [9]

[8]С = А

[9]Запись C

[10]Останов

Построчная запись алгоритма позволяет избежать неопределенностей в алгоритме.

8

Однако построчная запись алгоритма воспринимается человеком тяжело и требует большого внимания при изучении алгоритмов в этой форме представления.

Блок-схема. Изображение алгоритма в виде блок-схемы отличается высокой степенью наглядности. Блок-схема состоит из соединенных между собой линиями потока информации блоков различного вида и необходимого количества комментариев.

При графическом описании отдельные функции алгоритмов отображаются в виде условных графических изображенийсимволов. Перечень условных графических символов, их наименование, форма, размеры, отображаемые функции и правила выполнения алгоритмов устанавливаются ГОСТ 19.701–90.

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

Соотношения между геометрическими элементами символов устанавливаются стандартом. Размер a (высота блока) должен выбираться из ряда 10; 15; 20 мм. Размер b = 1,5а (ширина блока). Линии потока информации рекомендуется выполнять тоньше линий обводки блоков.

В лабораторных работах рекомендуется для компактного размещения блок-схем применять а = 10 мм, следовательно, b = 15 мм.

Выполнение алгоритма всегда начинается с блока Пуск и оканчивается при попадании на блок Останов. Порядок вычислений определяется направлениями линий потока информации.

В блоке Процесс содержится описание тех действий, которые должны быть выполнены над объектами, здесь вычисляются выражения и присваиваются новые значения переменным.

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

Блок Данные отвечает за ввод или вывод данных, которые должны быть введены или выведены в данном месте схемы.

9

Блок Подготовка обозначает начало циклической части алгоритма.

Комментарии используются для комментирования схемы. Совокупность комментариев должна делать блок-схему понятной для любого пользователя.

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

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

Запись на каком-либо языке программирования. Это за-

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

Комбинированный алгоритм будет рассмотрен ниже

(см. п. 4.4).

4.Типовые структуры алгоритмов

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

4.1.Линейный алгоритм

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

Пример. Разработать алгоритм для вычисления площади треугольника, если известны величины сторон а, b, c.

Для вычисления площади треугольника по известным длинам сторон необходимо сначала вычислить полупериметр треугольника, а затем по формуле Герона его площадь. Пример алгоритма приведен на рис. 1.

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]