введение. 3 Понятие алгоритма и его свойства. 4 Способы описания алгоритмо - umotnas.ru o_O
Главная
Поиск по ключевым словам:
Похожие работы
Название работы Кол-во страниц Размер
Программа «Системы корпоративного управления» 1 51.15kb.
Команд исполнителя (на примере учебного исполнителя). Свойства алгоритма. 1 119.52kb.
4. Перечень экзаменационных тем Дисциплина «Алгоритмы и их сложность» 1 69.39kb.
Алгоритм. Свойства алгоритма. Виды алгоритмов I 1 17.66kb.
Простейшие функции. Квадратные корни 1 327.36kb.
Вопросы к зачету «Теория алгоритмов» 1 6.89kb.
Понятие алгоритма и его свойств 1 198.91kb.
Программа курса «Дискретная математика» 1 27.07kb.
Билет №1. Понятие множеств. Способы задания множеств. Основные числовые... 1 168.86kb.
Квантовые сво й ства атомов и молекул основные понятия и методы описания 2 288.81kb.
Алгоритм – описанная на некотором языке точная конечная система правил... 1 38.97kb.
Текущие международные проекты, конкурсы, гранты, стипендии (добавления... 2 497.73kb.
Викторина для любознательных: «Занимательная биология» 1 9.92kb.

введение. 3 Понятие алгоритма и его свойства. 4 Способы описания алгоритмо - страница №1/4



СОДЕРЖАНИЕ.


ВВЕДЕНИЕ. 3

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

2. Способы описания алгоритмов. 6

3. Основные алгоритмические конструкции. 9

3.1. Линейная алгоритмическая конструкция. 9

3.2. Разветвляющаяся алгоритмическая конструкция. 9

3.3. Алгоритмическая конструкция «Цикл». 11

3.4. Рекурсивный алгоритм. 19

4. Простые типы данных: переменные и константы. 20

5. Структурированные данные и алгоритмы их обработки. 22

6. Языки программирования. 28

6.1. Понятие «язык программирования». 29

6.2. Компиляторы и интерпретаторы. 30

6.3. Системы программирования. 32

6.4. Классификация и обзор языков программирования. 33

7. Этапы подготовки и решения задач на компьютере. 48

ЗАКЛЮЧЕНИЕ. 50

СПИСОК ЛИТЕРАТУРЫ. 52



ВВЕДЕНИЕ.


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

Совокупность команд или действий могут быть объединены в систему действий или алгоритм.

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

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

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

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

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

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



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

Слово «алгоритм» появилось в средние века, когда европейцы познакомились со способами выполнения арифметических действий в десятичной системе счисления, описанными узбекским математиком Муххамедом бен Аль-Хорезми («аль-Хорезми» - человек из города Хорезми; в настоящее время город Хива в Хорезмской области Узбекистана). Слово алгоритм – есть результат европейского произношения слов аль-Хорезми. Первоначально под алгоритмом понимали способ выполнения арифметических действий над десятичными числами. В дальнейшем это понятие стали использовать для обозначения любой последовательности действий, приводящей к решению поставленной задачи.

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

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

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

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

Массовость — применимость алгоритма ко всем задачам рассматриваемого типа, при любых исходных данных.

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

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

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

2. Способы описания алгоритмов.

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



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

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



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

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



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

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


Блок, характеризующий начало/конец алгоритма (для

подпрограмм - вызов/возврат):



Блок — процесс, предназначенный для описания

отдельных действий:

Блок — предопределенный процесс, предназначенный для обращения к _______________________________________________________________________________________________________________________________вспомогательным алгоритмам (подпрограммам):



Блок — ввода/вывода с неопределенного носителя:




Блок - ввод с клавиатуры:







Блок — вывод на монитор:


Блок — вывод на печатающее устройство:





Блок — решение (проверка усло вия или условный блок): Нет Да




Блок, описывающий цикл с параметром:

Блок — границы цикла, описывающий циклические

процессы типа: «цикл с предусловием», «цикл

с постусловием»:





Соединительные блоки:

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

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

3. Основные алгоритмические конструкции.

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



3.1. Линейная алгоритмическая конструкция.



Линейной называют алгоритмическую конструкцию, реализованную в виде последовательности действий (шагов), в которой каждое действие (шаг) алгоритма выполняется ровно один раз, причем после каждого i-го действия (шага) выполняется (i+1)-е действие (шаг), если i-е действие — не конец алгоритма.

Пример 1. Опишем алгоритм сложения двух чисел на псевдокоде в виде блок-схемы (рис. 1).

Псевдокод:

1. Ввод двух чисел а, b.

2. Вычисляем сумму S = а + b.

3. Вывод S.

4. Конец.



Рис. 1. Блок-схема к примеру 1.

3.2. Разветвляющаяся алгоритмическая конструкция.




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


Ложь (Нет) Истина (Да)




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

Истина (Да)


Ложь (Нет)

Рис. 3. Неполное ветвление.
Пример 2.

Вывести значение наибольшего из двух чисел.

Псевдокод:

1. Ввод двух чисел а, b.

2. ЕСЛИ a > b, ТО «выводим a»,

ИНАЧЕ «выводим b».

3. Конец.




Рис. 4. Блок-схема к примеру 2.

Команда «Выбор».

Часто при выборе одного из возможных вариантов действий приходится проверять значение выражения на принадлежность заданному набору данных. Для этого существует команда «Выбор». При ее исполнении сначала вычисляется значение некоторого выражения Z. Затем последовательно проверяются условия V1, V2, ..., Vn относительно Z, начиная с первого, до тех пор, пока не встретится условие, принимающее значение ИСТИНА. Далее выполняется соответствующее этому условию действие (или серия действий), после чего команда выбора завершается. Если ни одно из условий не является истинным, то выполняется действие (или набор действий), идущее по ветви ЛОЖЬ для каждого из условий. На рис. 6 представлена блок-схема команды «Выбор» для n = 3.




Рис. 6. Команда «Выбор».

следующая страница >>