Материал: LR_2_Razrabotka_algoritma_vypolnenia_programmy

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

У тверждаю

Ректор университета

_______________ О.Н. Федонин

« ___ » _____________2017 г.

Алгоритмические языки разработка алгоритма выполнения программы

Методические указания

к выполнению лабораторной работы

Брянск 2017

У ДК 004.432.2

Алгоритмические языки. Разработка алгоритма выполнения программы [Электронный ресурс]: методические указания к выполнению лабораторной работы. – Брянск: БГТУ, 2017. –14с.

Разработали:

А.П. Горлов, канд.техн.наук., доц.

М.Л. Гулак, канд.техн.наук., доц.

Рекомендовано кафедрой «Системы информационной безопасности» БГТУ (протокол № 11 от 28.08.2017).

Научный редактор М.Ю. Рытов

Компьютерный набор А.П. Горлов

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

Подписано в печать 28.08.17 г. Формат 60х84 1/16.

Усл. печ.л. 0,81 Уч.-изд.л. 0,81

Брянский государственный технический университет

Кафедра «Системы информационной безопасности», 58-83-54

241035, Брянск, бульвар 50 лет Октября, 7.

1. Цель работы

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

Основное содержание работы:

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

  • реализовать разработанный алгоритм на языке программирования C++.

Продолжительность работы: 4 ч.

2. Теоретическая часть

    1. Алгоритмы

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

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

Правила выполнения схем определяются ГОСТ 19.701-90 – “Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения”. Основные элементы блок-схем алгоритмов представлены в табл. 1.

Таблица 1.

Основные элементы блок-схем

Наименование

Обозначение

Функция

Блок начало-конец

Начало

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

Блок вычислительных операций

a=10*b+c

Выполнение одной или нескольких операций, обработка данных любого вида (изменение значения данных, формы представления, расположения). Внутри фигуры записывают непосредственно сами операции, например, операцию присваивания: a = 10*b + c.

Логический блок

Да

Нет

a<b

Отображает решение или функцию переключательного типа с одним входом и двумя или более альтернативными выходами, из которых только один может быть выбран после вычисления условий, определенных внутри этого элемента. Вход в элемент обозначается линией, входящей обычно в верхнюю вершину элемента. Если выходов два или три, то обычно каждый выход обозначается линией, выходящей из оставшихся вершин (боковых и нижней). Если выходов больше трех, то их следует показывать одной линией, выходящей из вершины (чаще нижней) элемента, которая затем разветвляется. Соответствующие результаты вычислений могут записываться рядом с линиями, отображающими эти пути. Примеры решения: в общем случае − сравнение (три выхода: >, <, =); в программировании − условные операторы if (два выхода: true, false) и case (множество выходов).

Предопределенный процесс

Расчет параметров

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

Ввод-вывод данных

a, x, y

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

Граница цикла

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

Соединитель

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

Комментарий

Используется для более подробного описания шага, процесса или группы процессов. (Если описание какого либо процесса не помещается внутри одного блока необходимо использовать комментарий) Описание помещается со стороны квадратной скобки и охватывается ей по всей высоте. Пунктирная линия идет к описываемому элементу, либо группе элементов (при этом группа выделяется замкнутой пунктирной линией). Также символ комментария следует использовать в тех случаях, когда объём текста, помещаемого внутри некоего символа (например, символ процесса, символ данных и др.), превышает размер самого этого символа.

Вывод информации на печать

Печать a, b

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

Переход

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

Описание других элементов схем можно найти в соответствующих ГОСТ (указан выше).

    1. Правила оформление Блок-схемы

Расстояние между параллельными линиями потоков должно быть не менее 3 мм , между остальными элементами схемы – не менее 5 мм .

Горизонтальный и вертикальный размеры блока должны быть кратны 5 мм (делиться на 5 нацело). Отношение горизонтального и вертикального размеров блока b/а = 1.5 является основным. При ручном выполнении блока допустимо отношение b/а = 2.

Блоки "Начало", "Конец" и "Соединитель" имеют высоту а/2, т. е. вдвое меньше основной высоты блоков.

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

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

    1. Структурное программирование

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

Рис. 1. Основные управляющие конструкции структурного программирования.

Основными конструкциями структурного программирования являются: следование, разветвление и повторение (см. Рисунок). Компонентами этих конструкций являются обобщенные операторы S, S1, S2 и условие (предикат) P. В качестве обобщенного оператора может быть либо простой оператор используемого языка программирования (операторы присваивания, ввода, вывода, обращения к процедуре), либо фрагмент программы, являющийся композицией основных управляющих конструкций структурного программирования. Существенно, что каждая из этих конструкций имеет по управлению только один вход и один выход. Тем самым, и обобщенный оператор имеет только один вход и один выход.

    1. Оператор goto

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

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

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

    2. Конечность алгоритма – обязательность завершения каждого из действий, составленных алгоритмов и завершимость выполнения алгоритма в целом.

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

    4. Массивность, т.е. возможность применения данного алгоритма для решения целого класса задач.

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

    1. Примеры Блок-схем алгоритмов

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ.

  1. Продумать алгоритм решения задачи в соответствии с вариантом.

  2. Определить диапазоны допустимых значений, продумать исключительные ситуации.

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

  4. Реализовать разработанный алгоритм на языке программирования C++.

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

  6. Протестировать программу.

СОДЕРЖАНИЕ ОТЧЕТА

    1. Титульный лист с названием лабораторной работы, номером своего варианта, фамилией студента(ов) и группы.

    2. На первом после титульного листа указать :

- Название работы.

- Цель.

- Задание по варианту.

    1. Блок схема алгоритма.

    2. Текст программы.

    3. Результаты действия программы.

    4. Выводы о полученных результатах работы программы.

КОНТРОЛЬНЫЕ ВОПРОСЫ

    1. Что такое алгоритм?

    2. Какие Виды блоков вы знаете?

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

    4. Правила оформления блок схем.

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

  1. Липпман С. Б. Основы программирования на C++: Пер. с англ. — М.:Вильямс, 2002. — 256 с.

  2. Липпман С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 1104 с.

  3. Страуструп Б. Язык программирования C++: Пер. с англ. — 3-е спец. изд. — М.: Бином, 2003. — 1104 с.

  4. Страуструп Б. Дизайн и эволюция языка C++. Объектно-ориентированный язык программирования: Пер. с англ. — М.: ДМК пресс, Питер, 2006. — 448 с.

  5. Эккель Б. Философия C++. Введение в стандартный C++: Пер. с англ. — 2-е изд. — СПб.: Питер, 2004. — 572 с.

  6. Эккель Б., Эллисон Ч. Философия C++. Практическое программирование: Пер. с англ. — СПб.: Питер, 2004. — 608 с.

Приложение

Источник: https://studfile.net/preview/16485835/