Блок схема подготовка к экзамену

Время выполнения

6 часов

Цель работы

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

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

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

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

Перечень обеспечивающих средств

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

Общие теоретические сведения

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

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

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

Алгоритм может быть описан одним из трех способов:

  • словесным (пример в начале раздела);
  • графическим (виде специальной блок-схемы);
  • с помощью специальных языков программирования.

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

  1. Линейный алгоритм – это такой алгоритм, в котором все операции выполняются последовательно одна за другой.
  2. Алгоритмы разветвленной структуры применяются, когда в зависимости от некоторого условия необходимо выполнить либо одно, либо другое действие.
  3. Алгоритмы циклической структуры.

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

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

Задание 1. Определить площадь трапеции по введенным значениям оснований (a и b) и высоты (h).

Запись решения задачи на алгоритмическом языке:

нач

                s:=((a+b)/2)*h

кон 

Запись алгоритма в виде блок-схемы (рис. 1):

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

Задание 2. Определить среднее арифметическое двух чисел, если a положительное и частное (a/b) в противном случае.

Запись решения задачи на алгоритмическом языке:

нач

кон

Запись алгоритма в виде блок-схемы (рис. 2):

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

Задание 3. Составить алгоритм нахождения суммы целых чисел в диапазоне от 1 до 10.

Запись решения задачи на алгоритмическом языке:

нач

    S:=0;

    A:=1;

        S:=S+a;

        A:=a+1;

кон

Запись алгоритма в виде блок-схемы (рис. 3):

 Рисунок 3. Циклический алгоритм с предусловием

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

нач

    S:=0;

    A:=1;

        S:=S+a;

        A:=a+1;

кон

Запись алгоритма в виде блок-схемы (рис. 4):

 Рисунок 4. Циклический алгоритм с постусловием

Варианты задания

Технология выполнения работы

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

Содержание отчета

  1. Цель работы и задание.
  2. Условие задачи.
  3. Алгоритм, написанный с помощью псевдокода и блок- схемы.

Вопросы для защиты работы

  1. Что такое алгоритм?
  2. Свойства алгоритма.
  3. Способы записи алгоритма.
  4. Основные элементы блок-схемы.
  5. Виды алгоритмов.
  6. Отличительные особенности алгоритмов с предусловием и постусловием.

Задание для самостоятельной работы

Разработайте бизнес-процесс сдачи экзамена «Пример 4-2«, схема которого изображена на
рис.
8.35.

Роль «Студент» должна быть инициализирована стартовым узлом, а роль «Преподаватель» — отношением «Преподаватель«, примененным к роли «Студент» (см. предыдущие занятия). Роль «Старший_преподаватель» должна быть инициализирована группой «Преподаватели«.

В бизнес-процессе должны быть следующие переменные.

Переменные типа «Строка«:

  • Предмет
  • Комментарий
  • Комментарий-преподавателя
  • Место_экзамена
  • Вопрос_по_теории
  • Ответ_на_вопрос_по_теории
  • Комментарий_по_теории
  • Задача
  • Решение_задачи
  • Комментарий_по_задаче
  • Комментарий_старшего_преподавателя

Переменные типа «Дата-время«:

  • Дата-время экзамена

Переменные типа «Целое«:

  • Оценка_за_теорию
  • Оценка_за_задачу
  • Итоговая_оценка

Схема бизнес-процесса сдачи экзамена ("Пример 4-2")  для самостоятельной разработки

увеличить изображение
Рис.
8.35.
Схема бизнес-процесса сдачи экзамена («Пример 4-2») для самостоятельной разработки

В стартовой форме бизнес-процесса должны быть введены следующие переменные:

  • Предмет
  • Комментарий

Переменная «Предмет» должна быть обязательной, Комментарий — не обязательной. На длину переменной «Предмет» должно быть наложено ограничение в 50 символов, на длину переменной Комментарий — в 200 символов. Поле для ввода переменной «Предмет» должно быть однострочным, а поле для ввода переменной «Комментарий» — многострочным с количеством колонок — 20 и количеством строк — 5.

В форме узла-действия «Принять решение о допуске студента к экзамену» должно быть выведено значение роли «Студент«, а также выведены значения переменных, введенных на стартовой форме. На форме должен быть ввод переменной «Комментарий-преподавателя» в виде многострочного поля с количеством колонок — 20 и количеством строк — 5. На длину переменной «Комментарий-преподавателя» должно быть наложено ограничение в 200 символов. Ввод переменной «Комментарий-преподавателя» должен быть необязательным.

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

В форме узла-действия «Назначить дату и время экзамена» должно быть выведено значение роли «Студент«, а также значения всех веденных в бизнес-процесс переменных. На форме должен быть ввод переменной «Дата-время экзамена» в виде поля для ввода даты-времени, а также ввод переменной «Место_экзамена» в виде однострочного поля.

На переменную «Дата-время экзамена» должны быть наложены следующие ограничения: поле должно быть обязательно для ввода, дата-время экзамена не может быть в прошлом, а также превышать текущую дату-время более чем на 30 календарных дней.

На переменную «Место_экзамена» должны быть наложены следующие ограничения: поле должно быть обязательно для ввода, длина вводимого в переменную текста не может превышать 100 символов.

В форме узла-действия «Сформулировать теоретический вопрос» должно быть выведено значение роли «Студент«, а также значения всех веденных в бизнес-процесс переменных. На форме должен быть ввод переменной «Вопрос_по_теории» в виде многострочного поля с количеством колонок — 20 и количеством строк — 5. На длину вводимого в переменную текста должно быть наложено ограничение в 300 символов. Ввод значения этой переменной должен быть обязательным.

Форма узла-действия «Сформулировать задачу» должна быть подобна форме узла-действия «Сформулировать теоретический вопрос«, только вместо переменной «Вопрос_по_теории» на форме должна вводиться переменная «Задача«.

В формах узлов-действий «Написать ответ на теоретический вопрос» и «Написать решение задачи» должны быть введены соответственно переменные «Ответ_на_вопрос_по_теории» и «Решение_задачи«. Вывод переменных и ограничения должны быть аналогичны ранее описанным формам.

В формах узлов-действий «Написать ответ на теоретический вопрос» и «Написать решение задачи» должны быть введены соответственно переменные «Ответ_на_вопрос_по_теории» и «Решение_задачи«. Вывод переменных и ограничения должны быть аналогичны ранее описанным формам.

В формах узлов-действий «Проверить ответ на теоретический вопрос, поставить оценку за теорию» и «Проверить решение задачи, поставить оценку за задачу» должны быть введены соответственно значения переменных «Комментарий_по_теории«, «Оценка_за_теорию» и «Комментарий_по_задаче«, «Оценка_за_задачу«. Вывод переменных и ограничения должны быть аналогичны ранее описанным формам.

В форме узла-действия «Поставить итоговую оценку за экзамен» должны быть введены значения переменных «Комментарий_старшего_преподавателя» и «Итоговая_оценка«. Вывод переменных и ограничения должны быть аналогичны ранее описанным формам.

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

В узлах-действиях «Ознакомиться с необходимостью пересдачи экзамена» и «Ознакомиться с необходимостью пересдачи экзамена» должны быть введены значения всех введенных в бизнес-процесс переменных и значения всех ролей.

Узел-действие «Внести данные в учетную систему» и соответствующая задача боту настраиваются аналогично тому, как это было сделано в бизнес-процессе «Пример 4-1«.

После разработки бизнес-процесса «Пример 4-2» загрузите его на RunaWFE сервер и выполните под разными пользователями. Добейтесь прохождения точек управления по всем возможным маршрутам. Проверьте выполнение ограничений и работу бота.

Требования к представлению результатов занятия

В результате выполнения лабораторной работы должны быть представлены преподавателю отчет и файлы «Пример4-1.par» и «Пример4-2.par«, содержащие разработанные на занятии бизнес-процессы.

В отчете должны содержаться следующие выходные данные:

  1. Цель
  2. Скриншоты основных действий, совершенных на занятии, с пояснениями
  3. Скриншоты, содержащие маршруты точек управления для экземпляров бизнес-процессов, доведенных до завершения
  4. Скриншоты, содержащие созданные на занятии роли, переменные, настройки ботов, основные формы и их ограничения
  5. Выводы

Контрольные вопросы

  1. Что такое перспектива операций?
  2. Что такое бот-станция?
  3. Как используется в бизнес-процессе определенное в бот-станции задание для бота?
  4. Можно ли в форме бизнес-процесса ввести ограничение, в соответствии с котором одна вводимая в форму дата обязательно должна быть больше другой?

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

На территории Российской Федерации действует единая система программной документации (ЕСПД), частью которой является Государственный стандарт — ГОСТ 19.701-90 «Схемы алгоритмов программ, данных и систем» [1]. Не смотря на то, что описанные в стандарте обозначения могут использоваться для изображения схем ресурсов системы, схем взаимодействия программ и т.п., в настоящей статье описана лишь разработка схем алгоритмов программ.

Рассматриваемый ГОСТ практически полностью соответствует международному стандарту ISO 5807:1985.

Содержание:

  1. Элементы блок-схем алгоритмов
  2. Примеры блок-схем
  3. Нужны ли блок-схемы? Альтернативы

Элементы блок-схем алгоритмов

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

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

flowcharts_terminator
Терминатор начала и конца работы функции
Терминатором начинается и заканчивается любая функция. Тип возвращаемого значения и аргументов функции обычно указывается в комментариях к блоку терминатора.
flowcharts_data
Операции ввода и вывода данных
В ГОСТ определено множество символов ввода/вывода, например вывод на магнитные ленты, дисплеи и т.п. Если источник данных не принципиален, обычно используется символ параллелограмма. Подробности ввода/вывода могут быть указаны в комментариях.
flowcharts_process
Выполнение операций над данными
В блоке операций обычно размещают одно или несколько (ГОСТ не запрещает) операций присваивания, не требующих вызова внешних функций.
flowcharts_solution
Блок, иллюстрирующий ветвление алгоритма
Блок в виде ромба имеет один вход и несколько подписанных выходов. В случае, если блок имеет 2 выхода (соответствует оператору ветвления), на них подписывается результат сравнения — «да/нет». Если из блока выходит большее число линий (оператор выбора), внутри него записывается имя переменной, а на выходящих дугах — значения этой переменной.
flowcharts_procedure
Вызов внешней процедуры
Вызов внешних процедур и функций помещается в прямоугольник с дополнительными вертикальными линиями.
flowcharts_loop
Начало и конец цикла
Символы начала и конца цикла содержат имя и условие. Условие может отсутствовать в одном из символов пары. Расположение условия, определяет тип оператора, соответствующего символам на языке высокого уровня — оператор с предусловием (while) или постусловием (do … while).
flowcharts_preprocess
Подготовка данных
Символ «подготовка данных» в произвольной форме (в ГОСТ нет ни пояснений, ни примеров), задает входные значения. Используется обычно для задания циклов со счетчиком.
flowcharts_connector
Соединитель
В случае, если блок-схема не умещается на лист, используется символ соединителя, отражающий переход потока управления между листами. Символ может использоваться и на одном листе, если по каким-либо причинам тянуть линию не удобно.
flowcharts_comment
Комментарий
Комментарий может быть соединен как с одним блоком, так и группой. Группа блоков выделяется на схеме пунктирной линией.

Примеры блок-схем

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

Сортировка вставками

Массив в алгоритме сортировки вставками разделяется на отсортированную и еще не обработанную части. Изначально отсортированная часть состоит из одного элемента, и постепенно увеличивается.

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

insertsort_flowchart

Блок-схема алгоритма сортировки вставками

В приведенной блок-схеме для организации цикла используется символ ветвления. В главном цикле (i < n) перебираются элементы необработанной части массива. Если все элементы обработаны — алгоритм завершает работу, в противном случае выполняется поиск позиции для вставки i-того элемента. Искомая позиция будет сохранена в переменной j в результате выполнения внутреннего цикла, осуществляющем сдвиг элементов до тех пор, пока не будет найден элемент, значение которого меньше i-того.

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

Сортировка пузырьком

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

bubblesort_flowchart

Блок-схема алгоритма сортировки пузырьком

На блок-схеме показано использование символов начала и конца цикла. Условие внешнего цикла (А) проверяется в конце (с постусловием), он работает до тех пор, пока переменная hasSwapped имеет значение true. Внутренний цикл использует предусловие для перебора пар сравниваемых элементов. В случае, если элементы расположены в неправильном порядке, выполняется их перестановка посредством вызова внешней процедуры (swap). Для того, чтобы было понятно назначение внешней процедуры и порядок следования ее аргументов, необходимо писать комментарии. В случае, если функция возвращает значение, комментарий может быть написан к символу терминатору конца.

Сортировка выбором

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

selectsort_flowchart

Блок-схема сортировки выбором

На блок-схеме приведен пример использования блока «подготовка», а также показано, что в ряде случаев можно описывать алгоритм более «укрупнённо» (не вдаваясь в детали). К сортировке выбором не имеют отношения детали реализации поиска индекса минимального элемента массива, поэтому они могут быть описаны символом вызова внешней процедуры. Если блок-схема алгоритма внешней процедуры отсутствует, не помешает написать к символу вызова комментарий, исключением могут быть функции с говорящими названиями типа swap, sort, … .

На блоге можно найти другие примеры блок-схем:

  • блок-схема проверки правильности расстановки скобок арифметического выражения [2];
  • блок-схемы алгоритмов быстрой сортировки и сортировки слиянием [3].

Часть студентов традиционно пытается рисовать блок-схемы в Microsoft Word, но это оказывается сложно и не удобно. Например, в MS Word нет стандартного блока для терминатора начала и конца алгоритма (прямоугольник со скругленными краями, а не овал). Наиболее удобными, на мой взгляд, являются утилиты MS Visio и yEd [5], обе они позволяют гораздо больше, чем строить блок-схемы (например рисовать диаграммы UML), но первая является платной и работает только под Windows, вторая бесплатная и кроссплатфомренная. Все блок-схемы в этой статье выполнены с использованием yEd.

Частные конторы никакие блок-схемы не используют, в книжках по алгоритмам [6] вместо них применяют словесное описание (псевдокод) как более краткую форму. Возможно блок-схемы применяют на государственных предприятиях, которые должны оформлять документацию согласно требованиям ЕСПД, но есть сомнения — даже для регистрации программы в Государственном реестре программ для ЭВМ никаких блок-схем не требуется.

Тем не менее, рисовать блок-схемы заставляют школьников (примеры из учебников ГОСТ не соответствуют) — выносят вопросы на государственные экзамены (ГИА и ЕГЭ), студентов — перед защитой диплом сдается на нормоконтроль, где проверяется соответствие схем стандартам.

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

Появляются подозрения, что система образования прогнила и отстала лет на 20, однако аналогичная проблема наблюдается и за рубежом. Международный стандарт ISO 5807:1985 мало чем отличается от ГОСТ 19.701-90, более нового стандарта за рубежом нет. Там же производится множество программ для выполнения этих самых схем — Dia, MS Visio, yEd, …, а значит списывать их не собираются. Вместо блок-схем иногда применяют диаграммы деятельности UML [6], однако удобнее они оказываются, разве что при изображении параллельных алгоритмов.

Периодически поднимается вопрос о том, что ни блок-схемы, ни UML не нужны, да и документация тоже не нужна. Об этом твердят программисты, придерживающиеся методологии экстремального программирования (XP) [7], ходя даже в их кругу нет единого мнения.

В ряде случаев, программирование невозможно без рисования блок-схем, т.к. это один процесс — существуют визуальные языки программирования, такие как ДРАКОН [8], кроме того, блок-схемы используются для верификации алгоритмов (формального доказательства их корректности) методом индуктивных утверждений Флойда [9].

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

Список использованных источников:

  1. ГОСТ 19.701–90 (ИСО 5807–85) «Единая система программной документа­ции».
  2. Алгоритм. Свойства алгоритма https://pro-prof.com/archives/578
  3. Алгоритмы сортировки слиянием и быстрой сортировки https://pro-prof.com/archives/813
  4. yEd Graph Editor https://www.yworks.com/products/yed
  5. Книги: алгоритмы https://pro-prof.com/books-algorithms
  6. Рамбо Дж., Якобсон А., Буч Г. UML: специальный справочник. -СПб.: Питер, 2002. -656 с.
  7. Кент Бек Экстремальное программирование: разработка через тестирование – СПб.: Питер – 2003
  8. Визуальный язык ДРАКОН https://drakon.su/
  9. Шилов Н.В. Верификация шаблонов алгоритмов для метода отката и метода ветвей и границ. Моделирование и анализ информационных систем, ISSN 1818 – 1015, т.18, №4, 2011
  10. Брукс Ф., Мифический человеко — месяц или как создаются программные системы. СПб. Символ Плюс, 1999 — 304 с. ил.

Помогаю со студенческими работами здесь

Составить схему алгоритма и программу
Даны три вектора x=(5.2,1.4,3.5) y=(3.4,2.7,6.1) z=(7.8,4.2,2.1). Построить матрицу A, строками…

Составить схему алгоритма и написать программу
Подскажите код программы. Буду очень признателен!
Составить схему алгоритма и написать программу…

Составить схему алгоритма и написать программу
Составить схему алгоритма и написать программу:
Дан массив A(N). Построить массив С из…

Составить схему алгоритма и программу (на Бейсике)
пОМОГИТЕ ПОЖАЛУЙСТА СОСТАВИТЬ СХЕМУ АЛГОРИТМА И ПРОГРАММУ (на бЕЙСИКе), КОТОРЫЕ ПРОВЕРЯЮТ…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

1

Алгоритм. Свойства алгоритмов.
Блок-схемы. Алгоритмические языки

Код ОГЭ: 1.3.1. Алгоритм, свойства алгоритмов, способы записи алгоритмов.
Блок-схемы. Представление о программировании



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

■  Алгоритм
строго определенная последовательность действий для некоторого исполнителя, приводящая к поставленной цели или заданному результату за конечное число шагов.

Любой алгоритм составляется в расчете на конкретного исполнителя с учетом его возможностей. Исполнитель — субъект, способный исполнять некоторый набор команд. Совокупность команд, которые исполнитель может понять и выполнить, называется системой команд исполнителя.

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

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

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

Алгоритм должен обладать определенными свойствами. Наиболее важные свойства алгоритмов:

  • Дискретность. Процесс решения задачи должен быть разбит на последовательность отдельных шагов — простых действий, которые выполняются одно за другим в определенном порядке. Каждый шаг называется командой (инструкцией). Только после завершения одной команды можно перейти к выполнению следующей.
  • Конечность. Исполнение алгоритма должно завершиться за конечное число шагов; при этом должен быть получен результат.
  • Понятность. Каждая команда алгоритма должна быть понятна исполнителю. Алгоритм должен содержать только те команды, которые входят в систему команд его исполнителя.
  • Определенность (детерминированность). Каждая команда алгоритма должна быть точно и однозначно определена. Также однозначно должно быть определено, какая команда будет выполняться на следующем шаге. Результат выполнения команды не должен зависеть ни от какой дополнительной информации. У исполнителя не должно быть возможности принять самостоятельное решение (т. е. он исполняет алгоритм формально, не вникая в его смысл). Благодаря этому любой исполнитель, имеющий необходимую систему команд, получит один и тот же результат на основании одних и тех же исходных данных, выполняя одну и ту же цепочку команд.
  • Массовость. Алгоритм предназначен для решения не одной конкретной задачи, а целого класса задач, который определяется диапазоном возможных входных данных.

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

  • словесная запись (на естественном языке). Алгоритм записывается в виде последовательности пронумерованных команд, каждая из которых представляет собой произвольное изложение действия;
  • блок–схема (графическое изображение). Алгоритм представляется с помощью специальных значков (геометрических фигур) — блоков;
  • формальные алгоритмические языки. Для записи алгоритма используется специальная система обозначений (искусственный язык, называемый алгоритмическим);
  • псевдокод. Запись алгоритма на основе синтеза алгоритмического и обычного языков. Базовые структуры алгоритма записываются строго с помощью элементов некоторого базового алгоритмического языка.

Словесная запись алгоритма

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

■  Пример 1. Записать в словесной форме правило деления обыкновенных дробей.

Решение.
Шаг 1. Числитель первой дроби умножить на знаменатель второй дроби.
Шаг 2. Знаменатель первой дроби умножить на числитель второй дроби.
Шаг 3. Записать дробь, числителем которой являет результат выполнения шага 1, знаменателем — результат выполнения шага 2.

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

Формальные исполнители алгоритма

Формальный исполнитель — это исполнитель, который выполняет все команды алгоритма строго в предписанной последовательности, не вникая в его смысл, не внося ничего в алгоритм и ничего не отбрасывая. Обычно под формальным исполнителем понимают технические устройства, автоматы, роботов и т. п. Компьютер можно считать формальным исполнителем.

Программы на языке произвольного формального исполнителя могут состоять только из элементарных команд, которые входят в его систему (которые исполнитель «понимает»).

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

■ Пример 2. Исполнитель Крот имеет следующую систему команд:

  1. вперед k — продвижение на указанное число шагов вперед;
  2. поворот s — поворот на s градусов по часовой стрелке;
  3. повторить m [команда1 … командаN] — повторить m раз серию указанных команд.

Какой след оставит за собой исполнитель после выполнения следующей последовательности команд?

Повторить 5 [вперед 10 поворот 72]

Решение. Команда вынуждает исполнителя 5 раз повторить набор действий: пройти 10 шагов вперед и повернуть на 72° по часовой стрелке. Так как поворот происходит на один и тот же угол, то за весь путь исполнитель повернет на 5 х 72° = 360°. Поскольку все отрезки пути одинаковой длины и сумма внешних углов любого многоугольника составляет 360°, то в результате будет оставлен след в форме правильного пятиугольника со стороной в 10 шагов исполнителя.

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

■ Пример 3.  В системе команд предыдущего исполнителя Крот сформировать алгоритм вычерчивания пятиступенчатой лестницы (длина ступеньки — 10 шагов исполнителя).

Решение. За каждый шаг цикла должно происходить 4 действия: движение вперед на 10 шагов исполнителя, поворот на 90° по часовой стрелке, еще 10 шагов вперед и поворот на 90° против часовой стрелки (= 270° по часовой). В результате за один шаг цикла формируется ломаная из двух отрезков длиной 10 под прямым углом. За пять таких шагов сформируется 5–ступенчатая лестница (ломаная будет содержать 10 звеньев).

Повторить 5 [вперед 10 поворот 90 вперед 10 поворот 270]

Блок–схема

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

Основные элементы блок–схемы алгоритма:

Основные элементы блок–схемы алгоритма:

Общий вид блок–схемы алгоритма:

Общий вид блок–схемы алгоритма:

■ Пример 4.  Алгоритм целочисленных преобразований представлен в виде фрагмента блок–схемы. Знаком := в нем обозначен оператор присваивания некоторого значения указанной переменной. Запись X := 1 означает, что переменная Х принимает значение 1.

Определить результат работы алгоритма для исходных данных Х = 7, Y = 12.

Решение.

  1. Блок ввода данных определит исходные значения переменных Х и Y (7 и 12 соответственно).
  2. В первом условном блоке осуществляется сравнение значений Х и Y. Поскольку условие, записанное в блоке, неверно (7 < 12), происходит переход по линии «нет».
  3. Во втором условном блоке выполняется второе сравнение, которое для исходных данных оказывается верным. Происходит переход по линии «да».
  4. Вычисляется результат выполнения алгоритма: X := 0, Y := 1.

Ответ: X := 0, Y := 1.

Алгоритмические языки

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

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

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

Псевдокод

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

Служебные слова учебного алгоритмического языка:

Служебные слова учебного алгоритмического языка:

Стандартная структура алгоритма

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

Общий вид записи алгоритма на учебном алгоритмическом языке:

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

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

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

Примеры заголовков алгоритмов:

В первом примере алгоритм имеет название Объем_шара, один вещественный аргумент Радиус и один вещественный результат Объем. Во втором примере алгоритм под названием Choice имеет три аргумента — целые M и N и логический b, а также два результата — вещественные Var1 и Var2.

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

На вход алгоритму даются два вещественных аргумента a и b (величины катетов), результатом является вещественная переменная с (гипотенуза). Для ее расчета используется функция вычисления квадратного корня sqrt.

Описание величин и действия над ними

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

При представлении алгоритма решения в виде блок–схемы выбранные обозначения величин приводятся отдельно от блок–схемы (как объяснение к ней). Если алгоритм представлен на языке программирования, то характеристика обрабатываемых величин включается в программу. Учебный алгоритмический язык также предусматривает описание величин, используемых в алгоритме.

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

В алгоритмическом языке не существует специальных правил именования переменных. Однако их названия не должны совпадать со служебными словами алгоритмического языка. Во многих языках программирования для имен можно использовать только латинские буквы, цифры, знак подчеркивания. Имена обязательно должны начинаться с буквы, при этом строчные и прописные буквы в именах не различаются. В одном алгоритме не могут существовать разные объекты с одинаковыми именами. Все имена являются уникальными. Имена переменных и констант стараются выбирать так, чтобы они напоминали их смысл. Например, имена переменных и констант: S, p12, result, итог.

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

Величина — переменная, с которой связывается определенное множество значений. Этой величине присваивается имя (в языках программирования его называют идентификатор).

Значение — то, чему равна переменная в конкретный момент. Значение переменной можно задать двумя способами: присваиванием и с помощью процедуры ввода.

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

Числовой тип предназначен для обработки числовых данных. Различают целый и вещественный числовые типы. Целый тип в учебном алгоритмическом языке обозначается служебным словом цел, к нему относятся целые числа некоторого определенного диапазона. Они не могут иметь дробной части, даже нулевой. Число 123,0 является не целым, а вещественным числом. Вещественные величины относятся к вещественному типу данных и обозначаются в учебном алгоритмическом языке служебным словом вещ. Такие величины могут отображаться двумя способами: в форме с фиксированной запятой (например, 0,0511 или –712,3456) и с плавающей запятой (те же примеры: 5,11*10-2 и –7,123456*102).

Над числовыми данными можно выполнять арифметические операции и операции сравнения.

обозначение операций

Над целыми числами можно также выполнять две операции целочисленного деления div и mod. Операция div обозначает деление с точностью до целых чисел (остаток от деления игнорируется). Операция mod позволяет узнать остаток при делении с точностью до целых чисел. Например, результатом операции 100 div 9 будет число 11, а результатом 100 mod 9 — число 1.

Литерный тип представляет собой символы и строки, он дает возможность работать с текстом. Литерные величины — это произвольные последовательности символов. Эти последовательности заключаются в двойные кавычки: «результат», «sum_price». В качестве символов могут быть использованы буквы, цифры, знаки препинания, пробел и некоторые другие специальные знаки (возможными символами могут быть символы таблицы ASCII). В учебном алгоритмическом языке литерные величины обозначаются лит.

Над литерными величинами возможны операции сравнения и слияния. Сравнение литерных величин производится в соответствии с их упорядочением: «a» < «b», «b» < «с» и т. д. Слияние (конкатенация) литерных величин приводит к образованию новой величины: «пол» + «е» образует «поле».

Логический тип определяет логические переменные, которые могут принимать только два значения — истина (True) или ложь (False). Над логическими величинами можно выполнять все стандартные логические операции.

Команды учебного алгоритмического языка

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

ОПЕРАЦИЯ ПРИСВАИВАНИЯ

Ко всем типам величин может быть применена операция присваивания, которая обозначается знаком «:=» и служит для вычисления выражения, стоящего справа, и присваивания его значения переменной, указанной слева. Например, если переменная H имела значение 12, а переменная М — значение 3, то после выполнения оператора присваивания H := М + 10 значение переменной H изменится и станет равным 13.

Вычисления в операторе присваивания выполняются справа налево: сначала необходимо вычислить значение выражения справа от знака присваивания. Поэтому допустимы конструкции вида H := Н + 10. В этом случае сначала будет вычислено выражение в правой части (12 + 10), а его результат будет присвоен в качестве нового значения переменной Н (значение 22).

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

ВВОД И ВЫВОД ДАННЫХ

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

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

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

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

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

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

Если при выполнении алгоритма ввести значения 20 и 10, то переменная v примет значение 20, а переменная t — значение 10. По окончании работы алгоритма будет выведен результат:

Путь 200 м

Тот же результат был бы получен, если бы изменить строку вывода на

вывод «Путь «, v * t, » м»


Конспект по информатике «Алгоритм. Свойства алгоритмов. Блок-схемы. Алгоритмические языки».

Вернуться к Списку конспектов по информатике.

Министерство
образования и науки Российской Федерации

Федеральное
государственное бюджетное образовательное
учреждение

высшего
профессионального образования

«Новосибирский
государственный технический университет»

Кафедра
экономической информатики

Блок-схемы
принятия решений.

Стрелочные
диаграммы.

Многомерный
анализ данных.

Выполнила:

Группа:
ФБИ-22

Руководитель:
Преображенская Т.В.

Новосибирск
2015

На
практическом занятии мы рассматривали
3 темы: блок-схемы принятия решений,
стрелочные диаграммы, многомерный
анализ данных.

Блок-схемы принятия решений.

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

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

В
таблице 1 изображены элементы блок-схемы.

Таблица
1 – Элементы блок-схемы

Блок
начало-конец
(пуск-остановка)

Конец

Начало


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

Блок
действия

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

Логический
блок (блок условия)

Нет

Да


?

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

В
каждом элементе блок-схемы только один
вход и выход, кроме логического блока,
в нём может быть два выхода.

На
рисунке 1 изображена блок-схема «Звонок
по телефону».

Рисунок
1 – Звонок по телефону

Двум
группам предложили построить блок-схему
на любую тему.

1
группа представила блок-схему «Подготовка
к сдаче зачёта».

Начало

Находим
список вопросов

Поиск
лекций

Нет

Всё есть?

Да

Ищем
дополнительную литературу

Нет

Все лекции
есть?

Ответы на
вопросы

Да

Учим

Выучим?

Нет

Готовим
материалы для списывания


Да

Явка на
зачёт

Конец

Рисунок
2 – Подготовка к сдаче зачёта

2
группа представила блок-схему «Перевод
студента на следующий семестр».

Начало

Сдать все
предметы

Да

Есть 2 и более долга?

Нет

Нет

Бюджет?

Оплатите
за обучение

Да

Перевод на следующий семестр

Конец

Рисунок
3 – Перевод студента на следующий семестр

Стрелочная диаграмма.

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

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

Стрелочная
диаграмма представляет собой диаграмму
хода проведения работ, из которой̆
должны быть наглядно видны порядок и
сроки проведения различных этапов изо
дня в день.

Этот
инструмент используется для обеспечения
уверенности, что планируемое время
выполнения всей работы и отдельных ее
этапов по достижению конечной̆ цели
является оптимальным. Этот инструмент
широко применяется не только при
планировании, но и для последующего
контроля за ходом выполнения запланированных
работ. Особенно широко этот инструмент
применяется при разработке различных
проектов и планировании производства.
Традиционным методом такого планирования
является метод, использующий̆ стрелочную
диаграмму либо в виде так называемой̆
диаграммы Ганта, либо в виде сетевого
графа. Диаграмма Ганта необходима только
потому, что информация не включена в
сетевой̆ граф.

Стрелочная
диаграмма представляет собой диаграмму
хода проведения работ, из которой видны
порядок и сроки проведения различных
этапов. Инструмент применяется как для
планирования, так и для контроля работ.

ПРИМЕР.
С помощью диаграммы Ганта можно
планировать сроки оказания услуги. Как
и любой процесс, процесс оказания услуг
в сфере государственной̆ регистрации
юридических лиц имеет свои “подводные
камни” — критические моменты, при
достижении которых усиливается риск
потери контроля над протеканием процесса
или наступления нежелательных событий.
В нашем случае, нежелательными событиями
могут быть: отказ в государственной̆
регистрации по основаниям, перечисленным
в ГК РФ, задержка в рассмотрении пакета
документов Московской̆ Регистрационной̆
Палатой̆ или Государственной̆ Налоговой̆
Инспекцией̆ и пр. На диаграмме Ганта,
представленной̆ в таблице, эта информация
никак не отображается. Первому пункту
предшествует заключение договора по
оказанию соответствующих услуг. После
11-ого приемка услуги потребителем (одна
неделя). На рисунке 4 приведен пример
диаграммы Ганта и сетевого графа.

Рисунок
2 – Диаграмма Ганта. Сетевой граф.

Двум
группам предложили построить на любую
тему диаграмму Ганта и сетевой граф.

Соседние файлы в папке Функционально-стоимостный анализ (ФСА) Преображенская

  • #
  • #

    04.01.202012.36 Кб19Диаграмма Парето.xlsx

  • #
  • #

    04.01.202025.37 Кб15Затраты и значимости.xlsx

  • #
  • #

Нужно составить блок — схему алгоритма подготовки к сдаче к экзамену.

Я не могу сочинить этот «алгоритм», помогите ; ) Блок — схемы строить не надо, просто описать, что надо делать.

На странице вопроса Нужно составить блок — схему алгоритма подготовки к сдаче к экзамену? из категории Информатика вы найдете
ответ для уровня учащихся 10 — 11 классов. Если полученный ответ не
устраивает и нужно расшить круг поиска, используйте удобную поисковую
систему сайта. Можно также ознакомиться с похожими вопросами и ответами
других пользователей в этой же категории или создать новый вопрос. Возможно,
вам будет полезной информация, оставленная пользователями в комментариях, где
можно обсудить тему с помощью обратной связи.

Понравилась статья? Поделить с друзьями:
  • Блок социология обществознание егэ
  • Блок социальные отношения егэ презентация
  • Бодлер полное собрание сочинений скачать
  • Богословские сочинения это
  • Богородская игрушка сочинение 6 класс