Составим алгоритм вычисления квадратного корня из произвольного положительного вещественного числа х методом Герона и запишем его на естественном языке, а также в виде блок-схемы. Метод основан на многократном применении формулы:
при
.Числовая последовательность
в пределе при сходится к искомому значению. Выполним только 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.