Смекни!
smekni.com

Понятие алгоритма, его свойства. Описание алгоритмов с помощью блок схем на языке Turbo Pascal (стр. 2 из 2)

Ветвление

Вывод данных

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

при

.

Числовая последовательность

в пределе при
сходится к искомому значению. Выполним только 5 итераций метода, считая, что при этом будет достигнута достаточно хорошая точность. Обычно десяти итераций метода Герона более чем достаточно для достижения хорошей точность расчёта. Оба варианта записи алгоритма:
1. Ввести х. 2. Присвоить
. 3. Присвоить
. 4. Присвоить
. 5. Присвоить
. 6. Если
, то перейти к шагу 4, иначе напечатать значение
.

А теперь займёмся самым любимым занятием школьников всех времён и народов – решением квадратного уравнения:

.

Будем полагать, что коэффициенты этого уравнения

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

возможны три случая:

1. Если

, то имеются два различных вещественных корня, которые можно вычислить по следующим формулам:

,
.

2. Если

, то имеется единственный корень (точнее, двукратный корень):

.

3. Если

, то вещественных корней нет.

Блок схема алгоритма приведена на рисунке:

Следует заметить, что приведённый алгоритм предназначен для решения узкого класса задач – квадратных уравнений с «хорошими» коэффициентами. Если допустить, что коэффициенты могут принимать произвольные вещественные значения, есть опасность, что при определённых значениях коэффициента (например,

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

Разработанный программистом алгоритм должен давать правильный ответ. Проверка алгоритма может оказаться непростым делом. В простых случаях такая проверка может быть выполнена с помощью заполнения трассировочной таблицы. Каждый столбец такой таблицы соответствует определённой переменной, а каждая строка – одному шагу алгоритма. Для заполнения таблицы необходимо шаг за шагом проследить выполнение алгоритма, записывая в таблицу текущие значения выбранных для трассировки переменных. Такой метод позволяет выявить логические ошибки, допущенные при составлении или записи алгоритма, и определить, верен ли окончательный ответ. Составим в качестве примера трассировочную таблицу для алгоритма Герона вычисления квадратного корня из числа 2.
i z
0 1,00000
1 1,50000
2 1,41666
3 1,41421
4 1,41421
5 1,41421

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

Заключение.

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

Список литературы.

1. Коляда М. Г. Окно в удивительный мир информатики. – Д.: Сталкер, 1997.

2. Немнюгин С. А. Turbo Pascal: практикум. – СПб: Питер, 2003.

3. Попов В. Б. Turbo Pascal для школьников: Учеб. пособие. – М.: Финансы и статистика, 2000.

4. Турбо Паскаль 7.0. Самоучитель. – СПб.: Питер; К.: Издательская группа BHV, 2002.