Автор работы: Пользователь скрыл имя, 04 Февраля 2013 в 13:34, курсовая работа
Цель курсовой работы – изучить понятия, свойства и типы алгоритмов, получить навыки в создании блок-схем.
Предположим, мы прочитали в учебнике, что самый короткий путь из точки А в точку В - это прямая. Это утверждение становится нашим знанием. Да теперь мы знаем, что если понадобится пройти из точки. А в точку В самым коротким путём, то нужно будет идти по прямой. Но сможем ли мы в конкретной ситуации пройти этой самой прямой. Например, в лесу. Сомневаюсь. От того, что мы знаем, что надо делать ещё не появляется знание как это сделать.
Введение………………………………………………………………….……….3
Глава I. Понятие алгоритма..…...……………………….……..…………..........4
Глава II. Свойства алгоритмов.…………………………………………….…....5
2.1 Типы алгоритмов и их реализация…………..………………….…..........7
2.2 Блок-схема алгоритма…….………………………………………..….......9
2.3 Порядок разработки иерархической схемы реализации
алгоритмов…………….……………………………………………......…12
2.4 Циклический алгоритм…………………………………………...………14
Глава III. Практическая часть…………………………………………………...20
Заключение………………………………………………………………...……..21
Список использованной литературы……...………………………….….…......22
Наименование |
Обозначение |
Функция |
Блок начало-конец |
|
Элемент отображает вход из внешней среды или выход из неё (наиболее частое применение − начало и конец программы). Внутри фигуры записывается соответствующее действие. |
Блок вычислений (вычислительный блок) |
|
Выполнение одной или нескольких операций, обработка данных любого вида (изменение значения данных, формы представления, расположения). Внутри фигуры записывают непосредственно сами операции, например, операции присваивания: a = 10*b + c. |
Логический блок (блок условия) |
|
Отображает решение или
функцию переключательного типа
с одним входом и двумя или
более альтернативными |
Предопределённый процесс |
|
Символ отображает выполнение процесса, состоящего из одной или нескольких операций, который определен в другом месте программы (в подпрограмме, модуле). Внутри символа записывается название процесса и передаваемые в него данные. Например, в программировании − вызов процедуры или функции. |
Данные |
|
Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод). Данный символ не определяет носителя данных (для указания типа носителя данных используются специфические символы). |
Граница цикла |
|
Символ состоит из двух
частей − соответственно, начало и
конец цикла − операции, выполняемые
внутри цикла, размещаются между
ними. Условия цикла и приращения
записываются внутри символа начала
или конца цикла − в |
Соединитель |
|
Символ отображает вход в часть схемы и выход из другой части этой схемы. Используется для обрыва линии и продолжения её в другом месте (для избежания излишних пересечений или слишком длинных линий, а также, если схема состоит из нескольких страниц). Соответствующие соединительные символы должны иметь одинаковое (при том уникальное) обозначение. |
Комментарий |
|
Используется для более
подробного описания шага, процесса или
группы процессов. Описание помещается
со стороны квадратной скобки и охватывается
ей по всей высоте. Пунктирная линия
идет к описываемому элементу, либо
группе элементов (при этом группа выделяется
замкнутой пунктирной линией). Также
символ комментария следует |
Блок «процесс» применяется для обозначения действия или последовательности действий, изменяющих значение, форму представления или размещения данных. Для улучшения наглядности схемы несколько отдельных блоков обработки можно объединять в один блок. Представление отдельных операций достаточно свободно.
Блок «решение» используется для
обозначения переходов
Блок «модификация»
Блок «предопределенный
Рисунок 2. Пример блок-схемы алгоритма вычисления факториала числа N.
2.3 Порядок разработки иерархической схемы реализации алгоритмов
К основным методам структурного программирования относится, прежде всего, отказ от бессистемного употребления оператора непосредственного перехода и преимущественное использование других структурированных операторов, методы нисходящего проектирования разработки программы, идеи пошаговой детализации и некоторые другие соглашения, касающиеся дисциплины программирования.
Всякая программа, в соответствии с структурным подходом к программированию, может быть построена только с использованием трех основных типов блоков.
1. Функциональный блок, который на
блок-схеме изображается в
Функциональному блоку в языках программирования соответствуют операторы ввода и вывода или любой оператор присваивания.
В виде функционального блока может быть изображена любая последовательность операторов, выполняющихся один за другим, имеющая один вход и один выход.
2. Условная конструкция. Этот
блок включает проверку
P
S1
S2
P
S
3. Блок обобщенного цикла. Этот
блок обеспечивает
При конструировании программы с использованием рассмотренных типов блоков эти блоки образуют линейную цепочку так, что выход одного блока подсоединяется ко входу следующего. Таким образом, программа имеет линейную структуру, причем порядок следования блоков соответствует порядку, в котором они выполняются.
Такая структура значительно
При проектировании и написании
программы нужно выполнить
При нисходящем методе конструирования
алгоритма и программы
В процессе нисходящего проектирования сохраняется строгая дисциплина программирования, то есть разбиение на подзадачи осуществляется путем применения только рассмотренных типов конструкций (функциональный блок, условная конструкция, обобщенный цикл), поэтому, в конечном итоге, получается хорошо структурированная программа.
2.4 Циклический алгоритм
Алгоритмы содержащие команды повторения, называют циклическими. Команды повторения составляют цикл.
Цикл - это такая форма организации действий, при которой одна последовательность действий повторяется несколько раз (или не разу), до тех пор , пока выполняются некоторые условия.
Существуют три вида циклов.
Это: цикл «До», цикл «Пока», цикл «Для...».
Они все состоят из нескольких этапов. Это :
1. Подготовка цикла, в которую входят начальные присвоения;
2. Тело цикла - команды повторения цикла;
3. Условие - обязательная часть циклов «До» и «Пока».
3.1 Цикл «До»
Цикл «До» это такой цикл, где тело цикла выполняется перед условием. Его лучше использовать в той циклической структуре, где заранее известно число повторений блока условия.
3.2 Цикл «Пока»
Цикл «Пока» это такой цикл, где тело цикла выполняется, пока выполняются некоторые условия . Его лучше использовать там, где сразу
неизвестны начальные значения цикла.
С помощью циклов «Пока»
можно запрограммировать любые
повторяющиеся фрагменты
1. Число повторений заранее
не известно (например, цикл до
достижения требуемой точности
результата, цикл до первого
2. Число повторений заранее известно, но шаг параметра цикла не равен 1 (в школьном АЯ) или 1, -1 (в Pascal). Такой цикл называется циклом типа «Пока» без прерывания.
Цикл типа «Пока» с прерыванием
Язык |
Пример |
Пояснения |
Школьный АЯ |
i:=1; Flag:= «Нет» нц пока (i<=N) и (Flag= «Нет») если A[i]<0 то Flag:= «Да»; k:=i иначе i:=I + 1 все кц |
Решается задача: определить номер первого отрицательного элемента массива A(N). Здесь Flag – «управляющая» переменная литерного типа (можно использовать также логический или целый тип) |
Pascal |
i:=1; Flag:= False; While (i<=N) and not Flag do If A[i]<0 then begin Flag:=True; k:=i end else i:=i+1; |
Здесь Flag – переменная логического типа, принимающая значение True (истина) или False (ложь), and – операция «и» not – операция «не» |
Basic |
I:=1; FLAG:= 0 WHILE I<=N AND FLAG=0 IF A(I)<0 THEN FLAG=1 : K=I ELSE I=I+1 END IF WEND |
Здесь FLAG – переменная целого типа (В некоторых версиях QBasic можно использовать и логический тип, что предпочтительнее) |
Цикл типа «Пока» без прерывания
Язык |
Пример |
Пояснения |
Школьный АЯ |
i:=1; S :=0 нц пока i < = N S:=S+A[i] I:=i+2 кц |
Вычисляется сумма элементов массива A(N) с нечетными индексами. Число таких элементов заранее известно. Шаг параметра цикла равен двум |
Pascal |
i:=1; S :=0; While i <=N do begin S:=S+A[i]; i:=i+2 end; | |
Basic |
Лучше использовать цикл FOR: S=0 FOR I=1 TO N STEP 2 S=S+A(I) NEXT I |
Для организации цикла типа «Пока» можно также использовать:
Repeat Повторять тело цикла до
тело цикла тех пор, пока не выполнится
until <условие завершения> условие завершения цикла
DO WHILE <условие продолжения> Пока выполняется условие
тело цикла продолжение цикла,
LOOP повторять тело цикла
DO UNTIL <условие завершения> Повторять тело цикла до
тело цикла тех пор, пока не выполнится
LOOP условие завершения цикла
3.3 Цикл «Для»
Цикл «Для...» это цикл с параметром, что приводит к тому, что условие не нужно. В этом случае обязательны два параметра. Это - начальное и конечное значение цикла. А также не обязательным это шаг цикла.
Для А от Х до У шаг Z
Х- начальное значение
У- конечное значение
Z- шаг или приращение
А- переменная, которой присваивается значения начиная с Х до У с шагом
Z.
Циклы типа «Для» применяются, когда число повторений цикла известно к началу его выполнения.
Язык |
Пример |
Величина шага |
Школьный АЯ |
нц для I от 1 до N тело цикла кц |
Всегда 1 |
Pascal |
For i:=1 to N do тело цикла |
1 |
For i:=N downto 1 do тело цикла |
-1 | |
Basic |
FOR I=1 TO N STEP H тело цикла NEXT I |
Шаг Н произвольный (по умолчанию равен 1) |
Глава III. Практическая часть
Заключение
В своей курсовой работе я описал понятие, свойства и типы алгоритмов. Более подробно ознакомился с построением блок-схемы алгоритмов.
Информация о работе Понятие алгоритма. Типы, свойства алгоритмов