20024

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

Шпаргалка

Информатика, кибернетика и программирование

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

Русский

2013-07-25

53.5 KB

6 чел.

Билет 6

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

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

  1.  Найти тропу, по которой часто ходят мамонты.
  2.  Вырыть на ней большую глубокую яму и замаскировать ветками.
  3.  Спрятаться и ждать, пока в яму не провалится мамонт.
  4.  Закидать провалившегося мамонта копьями и камнями.
  5.  Разделать тушу и доставить ее к хижинам племени.

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

Само слово "алгоритм" происходит от "algorithmi" - латинской формы написания имени выдающегося математика IX века аль-Хорезми, который сформмулировал правила выполнения арифметических операций.

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

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

Алгоритм выполняется за определенное количество шагов. Шаг – отдельное законченное действие.

Рассмотрим пример алгоритма для нахождения середины отрезка при помощи циркуля и линейки.

Алгоритм деления отрезка АВ пополам:
1) поставить ножку циркуля в точку А;
2) установить раствор циркуля равным длине отрезка АВ;
3) провести окружность;
4) поставить ножку циркуля в точку В;
5) провести окружность;
6) через точки пересечения окружностей провести прямую;
7) отметить точку пересечения этой прямой с отрезком АВ.

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

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

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

Исполнитель алгоритмов

Исполнители часто встречаются в сказках. В одной из них Иван-Царевич говорит Избушке-На-Курьих-Ножках: “Избушка, избушка! Встань к лесу задом, ко мне передом!”. При этом команда должна быть задана очень точно, чтобы исполнитель ее понял. В сказке “Али-Баба и сорок разбойников” волшебная дверь открывалась по команде “Сезам, откройся!”. Жадный Касым, тайно проникший в пещеру, забыл эту фразу и не смог выйти из пещеры.

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

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

Система команд исполнителя (СКИ) – это все команды, которые исполнитель умеет выполнять.

Каждый исполнитель может выполнять команды только из некотоpого стpого заданного списка — системы команд исполнителя. Для каждой команды должны быть заданы условия пpименимости (в каких состояниях сpеды может быть выполнена команда) и описаны pезультаты выполнения команды . Напpимеp, команда Pобота "ввеpх" может быть выполнена, если выше Pобота нет стены. Ее pезультат — смещение Pобота на одну клетку ввеpх.

После вызова команды исполнитель совеpшает соответствующее элементаpное действие .

Отказы исполнителя возникают, если команда вызывается пpи недопустимом для нее состоянии сpеды.

Среда исполнителя – обстановка, в которой функционирует исполнитель.

Исполнителями могут быть

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

Исполнитель Робот

Как и любой исполнитель, Робот понимает только ограниченный набор команд, которые входят в его СКИ (список команд исполнителя). Некоторые примеры команд:

СКИ Робота:

направо; повернуться на 90 градусов вправо
налево; повернуться на 90 градусов влево
кругом; развернуться кругом (на 180 градусов)
вперед ( n ); перейти на n клеток вперед
назад ( n ); перейти на n клеток назад
посади; посадить цветы на грядке в том месте, где стоит Робот

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

  1.  Понятность для исполнителя — т.е. исполнитель алгоритма должен знать, как его выполнять.
  2.  Дискpетность (прерывность, раздельность) — т.е. алгоpитм должен пpедставлять пpоцесс pешения задачи как последовательное выполнение пpостых (или pанее опpеделенных) шагов (этапов).
  3.  Опpеделенность — т.е. каждое пpавило алгоpитма должно быть четким, однозначным и не оставлять места для пpоизвола. Благодаpя этому свойству выполнение алгоpитма носит механический хаpактеp и не тpебует никаких дополнительных указаний или сведений о pешаемой задаче.
  4.  Pезультативность (или конечность). Это свойство состоит в том, что алгоpитм должен пpиводить к pешению задачи за конечное число шагов.
  5.  Массовость . Это означает, что алгоpитм pешения задачи pазpабатывается в общем виде, т.е. он должен быть пpименим для некотоpого класса задач, pазличающихся лишь исходными данными. Пpи этом исходные данные могут выбиpаться из некотоpой области, котоpая называется областью пpименимости алгоpитма.

В какой форме записываются алгоритмы?

На практике наиболее распространены следующие формы представления алгоритмов:

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

Графический способ записи алгоритмов
(блок-схема)

Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным.

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

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

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

Основные алгоритмические блоки

Начало-Конец (блок начала и конца алгоритма)

Процесс (вычислительное действие или последовательность действий)

Решение (проверка условия)

Ввод-вывод (ввод или вывод в общем виде)

 

Модификация (начало цикла)

------------------------------------------------------------------------------------------------------------------------
2. Создание базы данных. Определение структуры базы данных: количество и типы полей, заполнение таблиц (или использование готовых). Организация поиска информации в базах данных. Создание запросов разной сложности.
------------------------------------------------------------------------------------------------------------------------


 

А также другие работы, которые могут Вас заинтересовать

8819. История. Назначение. Системные вызовы. Структура операционных систем. 153 KB
  История. Назначение. Системные вызовы. Структура операционных систем. 1.1 История ОС Первые (1945-1955г.г.) компьютеры работали без операционных систем, как правило, на них работала одна программа. Когда скорость выполнения программ и их количество ...
8820. Процессы и потоки (нити) 130 KB
  Процессы и потоки (нити). 2.1 Процессы 2.1.1 Понятие процесса Процесс (задача) - программа, находящаяся в режиме выполнения. С каждым процессом связывается его адресное пространство, из которого он может читать и в которое он может писать данн...
8821. Взаимодействие между процессами 164.5 KB
  Взаимодействие между процессами. 3.1 Взаимодействие между процессами Ситуации, когда приходится процессам взаимодействовать: Передача информации от одного процесса другому Контроль над деятельностью процессов (например: когда они борются...
8822. Планирование процессов в информатике 144 KB
  Планирование процессов. Основные понятия планирования процессов Планирование - обеспечение поочередного доступа процессов к одному процессору. Планировщик - отвечающая за это часть операционной системы. Алгоритм планирования - используемый алгори...
8823. Взаимоблокировка процессов 181.5 KB
  Взаимоблокировка процессов Взаимоблокировка процессов  может происходить, когда несколько процессов борются за один ресурс. Ресурсы бывают выгружаемые и невыгружаемые, аппаратные и программные. Выгружаемый ресурс - это...
8824. Управление памятью. Страничная организация 128.5 KB
  Управление памятью. Страничная организация 6.1 Основные понятия Менеджер памяти - часть операционной системы, отвечающая за управление памятью. Основные методы распределения памяти: Без использования внешней памяти С использованием внешн...
8825. Алгоритмы замещения страниц 116 KB
  Алгоритмы замещения страниц 7.1 Алгоритмы замещения страниц Идеальный алгоритм заключается в том, что бы выгружать ту страницу, которая будет запрошена позже всех. Но этот алгоритм не осуществим, т.к. нельзя знать какую страницу, когда запросят. Мож...
8826. Сегментация памяти 138.5 KB
  Сегментация памяти 8.1 Основные понятия сегментации Рассмотрим пример, когда программа использует одно адресное пространство.   программа использует одно адресное пространство Недостатки такой системы: Один участок может полностью заполниться, но пр...
8827. Устройства и программное обеспечение ввода-вывода 158 KB
  Устройства и программное обеспечение ввода-вывода 9.1 Принципы аппаратуры ввода-вывода 9.1.1 Устройства ввода-вывода Устройства делят на две категории (некоторые не попадают ни в одну): блочные устройства - информация считывается и записываетс...