Файл: Практическая работа Алгоритмы и их свойства. Формы записи алгоритмов словесные, графические.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.01.2024

Просмотров: 57

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
и (или) словесного описания, таблицы, последовательности формул, на

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

Алгоритмическийязык- это система обозначений и правил для единообразной и точной записи алгоритмов и их исполнения. Язык записи алгоритма должен быть понятным для человека.

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

Схема - это ориентированный граф, стрелками (или линиями) указывающий порядок исполнения команд алгоритма, а вершины (события) такого графа представлены геометрическими фигурами, которые называются символами. Например, начало и конец записи алгоритма обозначаются овалом, данные (носитель которых не определен) - параллелограммом, процесс (обработка данных любого вида) - в виде прямоугольника, решение (или функция переключательного типа, например условие) - в виде ромба и т. д. (рис. 2). Стандарт на этот специальный графический язык для записи дан в ЕСПД (Единая система программной документации, стандарт - ГОСТ 19.701-90).




Рис. 2

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


  • всякий реальный алгоритм может быть построен с использованием трех базовых элементов: следования, ветвления и цикла;

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

  • алгоритм проектируется по нисходящей схеме;

  • поэтапное уточнение или пошаговая детализация алгоритма.



В графической форме базовые вершины могут быть одного изтрех типов:


  • функциональная (один вход и один выход);

  • предикатная (один вход и два выхода);

  • объединяющая (два выхода и один вход, передающий управление от первого из двух выходов).


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

Схема ана рис. 3 - самая простая структура алгоритма - это последовательность, если команды следуют одна за другой в естественном порядке. Такой алгоритм называется линейным. Здесь S1 и S2 - некоторые серии команд (S - функциональные вершины).



Рис. 3. Схемы основных алгоритмических структур: ɑ - линейный алгоритм; b разветвляющий алгоритм;

в,г циклические алгоритмы с предусловием и постусловием соответственно

Схема б на рис. 3 - структура, в которой порядок следования команд определяется в зависимости от результатов проверки некоторых условий. Такой алгоритм называется разветвляющимся. В алгоритме разветвляющейся структуры действия записываются не подряд, а в зависимости от выполнения (невыполнения) некоторого

условия. Здесь В - условие (предикатная вершина), в зависимости от истинности (Т) или ложности (F) которого управление передается по одной из двух ветвей. Объединяющая вершина обозначена - О.

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

Схему (блок-схему) алгоритма можно изобразить, например, вызвав через меню текстового процессора MSWord команды: Вид " Панели инструментов " Рисование с помощью

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

Типовая блок-схема алгоритма линейнойструктуры показана на рис. 4. Типовая блок- схема алгоритма разветвляющейся структуры представлена на рис. 5.




В схеме разветвления алгоритма операцию проверки условия выполняет логический блок, изображенный ромбом, внутри которого указывается проверяемое условие (отношение), и имеется два выхода: ДА и НЕТ. Если условие истинно, то выходим на ДА, если ложно - то НЕТ. Типовая блок-схема алгоритма циклической структуры показана на рис. 6.




Рис. 6. Блок-схема алгоритмов циклической структуры: ɑ - цикл с предусловием; b – цикл с постусловием

Для составления алгоритма следует:


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

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

  3. записать описательную часть алгоритма и наметить план решения, т.е. процедурную часть, составив ее в произвольной словесной форме;

  4. переписать алгоритм, используя допустимые для предполагаемого исполнителякоманды, оставляя неясные места;

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



Чтобы алгоритм стал понятен ЭВМ, его следует закодировать - перевести на строго формализованный язык, т.е. язык программирования. Кодирование - процесс достаточно механический, но требует твердого знания команд и синтаксиса языка программирования.

Алгоритм, записанный на языке программирования, называется программой для ЭВМ. Языки эти формальные, специально созданные для общения человека с компьютером. Каждый языкпрограммированияимеет алфавит, словарный запас, грамматику, синтаксис и семантику.

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

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

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

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

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

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

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

уже рабочейпрограммой,которую можно запустить на исполнение. Для записи исходного текста программы прежде всего необходимы три простые команды: присваивание, ввод, вывод. Команда присваивания служит для изменения состояния объектов алгоритма и обозначается, например в языке Pascal, символом := (например, Х:=1, А:=В).

Команды ввода-вывода необходимы для связи ЭВМ с внешним миром. Эти команды относятся к разряду основных и реализованных в любой машине. Основной единицей программы, выполняющей определенные действия над данными,

является оператор.Операторы бывают управляющие и обрабатывающие.

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

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

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

Пример. Найти периметр и площадь круга радиуса R.

Аргументы:

R- радиус круга, вещественное