Файл: Алгоритмизация как обязательный этап разработки программы. Свойства алгоритмов.pdf
Добавлен: 23.04.2023
Просмотров: 119
Скачиваний: 1
ВВЕДЕНИЕ
Актуальность темы, обусловлена тем, что изучение новых языков программирования всегда сопровождается потребностью в доступной и понятной форме записи будущей программы для любого разработчика..
В настоящее время на рынке представлено великое множество программных средств и обучающих приложений, а также справочных средств, предназначенных для изучения языков программирования. Использование алгоритмического языка позволяет расширить современный математический инструментарий студента, не привязываясь к конкретному языку программирования, делает его универсальным по отношению к сферам приложения и удовлетворяющим специфике постановке и решения задач на ПК.
Курсовая работа предусматривает изучение способов представления основных характеристик объекта в виде, удовлетворяющем требования компьютерного исследования математической модели, определяет типы алгоритма, и формы его представления, объясняет элементы и синтаксис алгоритмического языка.
Темой курсовой работы было «Алгоритмизация как обязательный этап разработки программы».
Актуальность темы заключается в необходимости автоматизировать процесс обучения конечного пользователя стандартным функциям алгоритмического языка в удобной форме не привязываясь к конкретному языку программирования.
Цель работы – существенно расширить представления об алгоритмах и средствах их описания, подготовить к возможности быстрого овладения любым из языков, с которым придется столкнуться в последующей практической деятельности.
Эти функции и выполняет алгоритмический язык – формализованное средство описания алгоритмов, являющееся пропедевтикой изучения языков программирования (своего рода промежуточное звено между языком программирования и описанием алгоритмов)
Стояли задачи:
- обосновать необходимость создания алгоритма до создания программы;
- проанализировать существующие формы представления алгоритма;
- проанализировать основные свойства алгоритмов;
- изучить типы алгоритмов;
- опробовать алгоритмический язык в работе.
Пояснительная записка к курсовой работе состоит из двух разделов:
В первом разделе дана характеристика основных свойств и формы записи алгоритма, обоснована необходимость решения задачи с помощью алгоритмического языка, выполнен анализ существующих типов и форм записи алгоритмов а также средств реализации поставленной задачи. [4], [6], [8].
Во втором разделе выполнена постановка задачи для обоснования алгоритмизации как обязательного этапа разработки программы [5], [7], [8].
Оформление отчета в текстовом редакторе согласно требованиям стандартов и ГОСТ Р 7.0.5-2008 (Библиографическая ссылка); ГОСТ 7.32-2001 в ред. Изменения №1 от 01.12.2005, ИУС №12, 2005 (Отчет о научно-исследовательской работе); ГОСТ 7.1-2003 (Библиографическая запись. Библиографическое описание. Общие требования и правила составления)[1],[2],[3].
1 ПОНЯТИЕ АЛГОРИТМА
Решение задач с использованием компьютера основано на понятии алгоритма, который является точным описанием вычислительного процесса, ведущего от варьируемых начальных данных к конечному результату. Алгоритмы заложены в основе каждой программы, а также они встречаются во многих сферах деятельности человека (например, рецепты, схема вязания или танца).
Алгоритмизация является техникой разработки алгоритма для решения задач на ЭВМ.
Алгоритм представляет собой точное описание определенного процесса, инструкцию по его выполнению.
Процесс разработки алгоритма - достаточно сложный и трудоемкий. Можно также сказать, что алгоритм представляет собой конечную последовательность команд для исполнителя, направленную на достижение конкретной цели. Цель же, в свою очередь, является достижением желаемого результата. В качестве исполнителя могут выступать люди, живые существа, автоматические устройства, способные к исполнению и восприятию команд.
Перечень команд, воспринимаемых и выполняемых (по возможности) исполнителем, называют системой команд.
Каждый алгоритм предназначен для конкретного исполнителя. Исполнение алгоритма начинается с первой команды. После того, как ее исполнили, переходят к следующей команде и так до конца алгоритма.
В качестве примера алгоритма можно вспомнить известный всем со школы арифметический способ сложения двух положительных чисел «столбиком». Алгоритм данной задачи представим в виде системы следующих действий:
-выделим в слагаемых разряды единиц и сложим единицы;
-при получении суммы меньшей 10 запишем ее в разряде единиц под нижним числом;
- при получении суммы большей или равной 10 запишем в разряде единиц только количество единиц, затем выделим в слагаемых разряд десятков и запишем полученный при сложении единиц десяток над разрядом десятков первого (верхнего) слагаемого; сложим десятки и т. д.
Аналогичные указания дают для сложения единиц других разрядов числа. Системой-исполнителем этого алгоритма может стать как ЭВМ, так и человек. Понятие алгоритма в теорию и практику обучения вошло в конце -х годов прошлого столетия в связи с развитием программированного обучения и применением обучающимися машин.
-
- Свойства алгоритмов
Можно выделить следующие основные свойства алгоритмов:
1) Понятность для исполнителя - т.е. исполнитель алгоритма должен знать, как его выполнять.
2) Дискретность (прерывность, раздельность) - т.е. алгоритм должен представлять процесс решения задачи как последовательное выполнение простых или ранее определенных шагов.
3) Определенность - т.е. каждое правило алгоритма должно быть четким, однозначным и не оставлять места для разночтений.
4) Результативность (или конечность). Это свойство состоит в том, что алгоритм должен приводить к решению задачи за конечное число шагов.
5) Массовость - означает, что алгоритм решения задачи pазpабатывается в общем виде, т.е. он должен быть применим для некоторого класса задач, различающихся лишь исходными данными. При этом исходные данные могут выбираться из некоторой области, которая называется областью применимости алгоритма.
-
- Формы представления
Существуют различные способы описания алгоритмов.
Приведем основные из них:
- словесный (пошаговое описание);
-табличный и в виде формул;
-графический (в виде схем);
-с использованием псевдокода (алгоритмического языка).
Алгоритмический язык является формальным языком, предназначенным для записи алгоритма. В его состав входят набор основных символов (алфавит), система точных правил построения текстов (синтаксис) и система соответствия синтаксически допустимых текстов языка описываемым действиям и объектам (семантика). Множество языков программирования, используемых при решении задач на ЭВМ, являются алгоритмическими. Псевдокод представляет собой способ описания логики программы до начала ее программирования и занимает промежуточное положение между машинным языками и естественными. Под схемой алгоритма понимают графическое представление последовательности шагов алгоритма, наглядно показывающее взаимосвязь операций, которые осуществляются в алгоритме на каждом шаге, и их очередность. Другими словами, для графического изображения структуры алгоритма используется блок-схема. В соответствии с блок-схемой последовательность действий указывается с помощью стрелок, которые соединяют отдельные блоки и показывают, какой блок и за каким должен быть выполнен.
Пример словесной записи алгоритма.
Записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел.
Алгоритм:
1) задать два числа;
2) если числа равны, то взять любое из них в качестве ответа и остановиться, в противном случае продолжить выполнение алгоритма;
3) определить большее из чисел;
4) заменить большее из чисел разностью большего и меньшего из чисел;
5) повторить алгоритм с шага 2.
Описанный алгоритм применим к любым натуральным числам и должен приводить к решению поставленной задачи за конечное число шагов.
Словесный способ не имеет широкого распространения, поскольку такие описания:
а) строго не формализуемы;
б) страдают многословностью записей;
в) допускают неоднозначность толкования отдельных предписаний.
Пример записи алгоритма в виде псевдокода:
С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой стороны, в псевдокоде используются служебные слова и математическая символика, что приближает запись алгоритма к общепринятой математической записи. Служебные слова выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются для того, чтобы их можно было отличить от остального текста.
Алгоритм:
1) задать два числа x и y;
2) ЕСЛИ x=y, ТО НОД=x и КОНЕЦ;
3) ЕСЛИ x>y, ТО x=x-y, ИНАЧЕ y=y-x;
4) ПЕРЕЙТИ в пункт 2.
Пример графической записи алгоритма:
Графический способ записи алгоритма отражает выполнение последовательности шагов в виде некоторого изображения. Подобную запись можно встретить на инструкциях по сборке чего-либо, на упаковках с едой и т.п.
Рисунок 1.1 - Графическая форма записи алгоритма
Основные алгоритмические структуры изображаются с помощью специальных графических символов. Все составляющие блок-схемы соединяются между собой в той последовательности, в какой они должны быть исполнены. Кроме того, в алгоритмах используются разветвляющие и циклические блоки. Обязательными блоками являются блоки начала и конца алгоритма. Между ними размещаются остальные блоки алгоритма. Операторный блок (блок действия) содержит команды обработки данных. Блок проверки условия предполагает 2 варианта дальнейшего развития решения задачи, в зависимости от того или иного выполнения поставленного условия. Блоки ввода или вывода данных. Для выполнения алгоритма необходимы не только команды, но и данные, поступающие из вне. Для получения этих данных используется блок ввода. Для того, чтобы можно было вывести результат выполнения программы, либо какое-нибудь сообщение используют блок вывода.
Частным (и наиболее популярным) графическим способом является блок-схема, где алгоритм изображается в виде функциональных блоков, логически связанных между собой. При этом каждому отдельному действию соответствует своя геометрическая фигура. Определение этих фигур можно найти в ГОСТ 19.701-90 (ИСО 5807-85) «Единая система программной документации». Наиболее распространенные символы приведены на рисунке 1.2:
- «Начало алгоритма» и «Конец алгоритма» - применяются для обозначения начала, конца, а также прерывания процесса обработки данных или же исполнения программы;
Рисунок 1.2 - Операторы блок-схем
- «Ввод (вывод) данных» - применяется с целью преобразования данных в форму, которая пригодна для отображения или обработки результатов. Различным устройствам ввода/вывода компьютера соответствует различная геометрическая форма данного блока, при этом принято отображать тип используемого устройства или файла с данными, а также тип используемой информации и вид операции обмена;
- «Операция» - данный блок используется для обозначения некоторой последовательности действий, основной задачей которых является изменение значения, размещения или формы представления данных. В большинстве случаев несколько таких одинаковых блоков, идущих друг за другом, принято объединять в один;
Рисунок 1.3 – Пример графического представления алгоритма
Пример записи алгоритма в виде таблицы:
В табличной форме записи все шаги алгоритмов заносятся в таблицу, которая отражает изменение значений входных данных, а также промежуточных значений и результата.
В качестве примера рассмотрим табличную форму записи алгоритма нахождения площади прямоугольника. При этом входными данными являются длины сторон, а результатом - величина площади (см. таблицу 1.1).
Таблица 1 - Пример табличной записи алгоритма
|
№ шага |
Входные данные |
Результат |
Примечания |
|
a |
b |
S |
|
|
1 |
5 |
7 |
Ввод данных |
|
2 |
35 |
Вычисление площади |
|
|
3 |
Вывод результата S = 35 |
-
- Основные виды и типы алгоритмов
Элементарные шаги алгоритма можно объединить в следующие алгоритмические конструкции: линейные (последовательные), разветвляющиеся и циклические.