Алгоритм. Управляющие структуры

Линейные вычислительные процессы

Лекция 3

Цели:

ü познакомиться с понятием алгоритма и управляющими структурами;

ü дать понятие линейного вычислительного процесса;

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

Решение задач с помощью компьютера включает в себя следующие основные этапы, которые осуществляются без помощи компьютера:

1) постановка задачи, её анализ;

2) разбиение задачи на логически завершенные подзадачи (декомпозиция) и описание основного алгоритма;

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

4) перевод алгоритма на язык программирования (этот процесс называется кодированием);

5) отладка программы (поиск ошибок) и проверка правильности работы программы при помощи тестовых примеров.

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

Основные свойства алгоритма:

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

дискретность – алгоритм должен представлять процесс решения задачи как последовательное выполнение простых (или ранее определённых) шагов, этапов;

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

результативность – алгоритм должен приводить к решению задачи за конечное число шагов;

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

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

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

- программная (тексты на языках программирования).

Для написания алгоритма решения конкретной задачи будет достаточно знаний об организации работы трёх управляющих структур:

1) следование – выполнение указанного набора действий в естественном порядке без пропусков и повторений;

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

3) цикл – выполнение некоторое количество раз одного и того же набора действий, который может либо зависеть от некоторой величины (параметра), либо не зависеть от какой-либо величины.

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