Файл: Понятие и свойства алгоритма.doc

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

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

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

Добавлен: 11.08.2020

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

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

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

Московский Авиационный Институт (Технический Университет)

Реферат

Введение в специальность

Тема: Алгоритм и программа для вычислительной машины.

Выполнила студентка группы 04-115

Малкова Екатерина Сергеевна
















Москва

-2007-


Содержание.




Алгоритмы.

Понятие и свойства алгоритма.

Алгоритм - формальное описание последовательности действий, которое необходимо выполнить для решения задачи;

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


Появление алгоритмов связывают с зарождением математики. Более 1000 лет назад (в 825 году) ученый из города Хорезма Абдулла (или Абу Джафар) Мухаммед бен Муса аль-Хорезми создал книгу по математике, в которой описал способы выполнения арифметических действий над многозначными числами. Само слово алгоритм возникло в Европе после перевода на латынь книги этого математика.


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


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

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

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

2. Определенность (детерминированность). Каждое правило алгоритма должно быть четким и однозначным. Отсюда выполнение алгоритма носит механический характер.


3. Результативность (финитность, конечность). Алгоритм должен приводить к решению задачи за конечное число шагов.


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


В

Вид стандартного графического объекта

Назначение

Начало, завершение программы или подпрограммы

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


Обработка данных

(вычисление, пересылка и т.п.)

Проверка условия



Вызов процедуры


Соединительные линии и их объединение.

Точки связи или соединители


Комментарий



Рис. 2 Вид и назначение графического объекта

иды алгоритмов
:


  1. Линейный алгоритм (описание действий, которые выполняются однократно в заданном порядке).

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

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

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


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

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


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

Язык схем алгоритмов – важный тип языка для представления алгоритмов; схема может быть важным дополнением к алгоритму, записанному в какой – либо форме.


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

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


Простая программа - алгоритм, для которого:

  • Существует единственный вход и единственный выход.

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

Примеры простой и непростых программ:

Простая программа

Бесконечный цикл

Недостижимый фрагмент



Рис. 3 Примеры программ


Основные (базовые) структуры алгоритмов и их производные:


Следование -последовательное выполнение действий (блоков).


Цикл с постусловием - тело цикла (блок 2) выполняется до тех пор, пока условие (блок 3) не станет истинным.

Цикл с предусловием - пока не будет нарушено условие (блок 3), осуществляется повторение тела цикла (блок 2).

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


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


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

Рис. 4 Структуры алгоритмов

Стадии создания алгоритма:


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

  2. Алгоритм должен быть представлен в форме, понятной тому объекту (в том числе и человеку), который будет выполнять описанные в алгоритме действия.


Идеальными исполнителями являются машины, роботы, компьютеры...

Алгоритм, записанный на «понятном» компьютеру языке программирования, называется программой.

Программа.

Программа вычислительной машины - описание алгоритма решения задачи, заданное на языке программирования (на машинный язык конкретной ЭВМ переводится автоматически при помощи транслятора). Процесс составления программ называют программированием.


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


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


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

Используемые в разработке

ABAP/4 | Ада | ActionScript | Ассемблеры | Awk | BASIC | C | COBOL | C++ | C# | ColdFusion | D | Delphi | Forth | FoxPro | DataFlex | Фортран | Groovy | Haskell | Java | JavaScript | J++ | J# | Icon | Limbo | Лисп | Lua | Objective-C | Оберон | Oz | Паскаль | Perl | PHP | PL/I | Пролог | Руби | Python | Tcl | Scheme | Smalltalk | SQL | Visual DataFlex | Visual Basic | VB.NET | Visual FoxPro

Академические

АПЛ | Clean | Curry | Лого | MATLAB | ML

IEC61131-3

Instruction List | FBD | Ladder Diagram | SFC

Прочие

Алгол | Алгол 68 | Модула-2 | Miranda

Эзотерические

INTERCAL | Brainfuck