Описание алгоритмов с помощью блок-схем

  • docx
  • 10.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л2-00085.docx

Описание алгоритмов с помощью блок-схем.

Для разработки структуры программы удобнее пользоваться записью алгоритма в видеблок-схемы(в англоязычной литературе используется терминflow-chart). Для изображения основных алгоритмических структур и блоков на блок-схемах используют специальные графические символы. Они приведены на рисунке

http://www.bestreferat.ru/images/paper/94/69/8926994.gifhttp://www.bestreferat.ru/images/paper/95/69/8926995.gifНачало/конец алгоритма

http://www.bestreferat.ru/images/paper/96/69/8926996.gifhttp://www.bestreferat.ru/images/paper/97/69/8926997.gifПередача управления

http://www.bestreferat.ru/images/paper/98/69/8926998.gifhttp://www.bestreferat.ru/images/paper/99/69/8926999.gifВвод данных

http://www.bestreferat.ru/images/paper/00/70/8927000.gifhttp://www.bestreferat.ru/images/paper/95/69/8926995.gifБлок вычислений

http://www.bestreferat.ru/images/paper/01/70/8927001.gifhttp://www.bestreferat.ru/images/paper/95/69/8926995.gifНачало (заголовок) цикла

http://www.bestreferat.ru/images/paper/02/70/8927002.gifhttp://www.bestreferat.ru/images/paper/03/70/8927003.gifКонец цикла

http://www.bestreferat.ru/images/paper/04/70/8927004.gifhttp://www.bestreferat.ru/images/paper/05/70/8927005.gifВетвление

http://www.bestreferat.ru/images/paper/06/70/8927006.gifhttp://www.bestreferat.ru/images/paper/07/70/8927007.gifВывод данных

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

http://www.bestreferat.ru/images/paper/08/70/8927008.gif

при

http://www.bestreferat.ru/images/paper/09/70/8927009.gif.

Числовая последовательностьhttp://www.bestreferat.ru/images/paper/10/70/8927010.gifв пределе приhttp://www.bestreferat.ru/images/paper/11/70/8927011.gifсходится к искомому значению. Выполним только 5 итераций метода, считая, что при этом будет достигнута достаточно хорошая точность. Обычно десяти итераций метода Герона более чем достаточно для достижения хорошей точность расчёта. Оба варианта записи алгоритма:

http://www.bestreferat.ru/images/paper/12/70/8927012.gif

1. Ввестих.

2. Присвоитьhttp://www.bestreferat.ru/images/paper/13/70/8927013.gif.

3. Присвоитьhttp://www.bestreferat.ru/images/paper/14/70/8927014.gif.

4. Присвоитьhttp://www.bestreferat.ru/images/paper/15/70/8927015.gif.

5. Присвоитьhttp://www.bestreferat.ru/images/paper/16/70/8927016.gif.

6. Еслиhttp://www.bestreferat.ru/images/paper/17/70/8927017.gif, то перейти к шагу 4, иначе напечатать значениеhttp://www.bestreferat.ru/images/paper/18/70/8927018.gif.

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

http://www.bestreferat.ru/images/paper/19/70/8927019.gif.

Будем полагать, что коэффициенты этого уравненияhttp://www.bestreferat.ru/images/paper/20/70/8927020.gif,http://www.bestreferat.ru/images/paper/21/70/8927021.gifиhttp://www.bestreferat.ru/images/paper/22/70/8927022.gifпредставляют собой вещественные числа. Простейший случай предполагает, что все коэффициенты отличны от нуля. В зависимости от знака дискриминанта квадратного уравнения

http://www.bestreferat.ru/images/paper/23/70/8927023.gif

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

1. Еслиhttp://www.bestreferat.ru/images/paper/24/70/8927024.gif, то имеются два различных вещественных корня, которые можно вычислить по следующим формулам:

http://www.bestreferat.ru/images/paper/25/70/8927025.gif,http://www.bestreferat.ru/images/paper/26/70/8927026.gif.

2. Еслиhttp://www.bestreferat.ru/images/paper/27/70/8927027.gif, то имеется единственный корень (точнее, двукратный корень):

http://www.bestreferat.ru/images/paper/28/70/8927028.gif.

3. Еслиhttp://www.bestreferat.ru/images/paper/29/70/8927029.gif, то вещественных корней нет.

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

http://www.bestreferat.ru/images/paper/30/70/8927030.gif

Следует заметить, что приведённый алгоритм предназначен для решения узкого класса задач – квадратных уравнений с «хорошими» коэффициентами. Если допустить, что коэффициенты могут принимать произвольные вещественные значения, есть опасность, что при определённых значениях коэффициента (например,http://www.bestreferat.ru/images/paper/31/70/8927031.gif) возникает аварийная ситуация (деление на ноль). Качественный алгоритм и качественная программа должны быть устойчивыми, то есть при любых входных параметрах завершение работы программы должно быть нормальным, хотя, возможно, и сопровождаться предупреждающим сообщением о некорректности входных данных. Свойством устойчивости обладает алгоритм решения квадратного уравнения, приведённый на рисунке:

http://www.bestreferat.ru/images/paper/32/70/8927032.gifРазработанный программистом алгоритм должен давать правильный ответ. Проверка алгоритма может оказаться непростым делом. В простых случаях такая проверка может быть выполнена с помощью заполнениятрассировочной таблицы. Каждый столбец такой таблицы соответствует определённой переменной, а каждая строка – одному шагу алгоритма. Для заполнения таблицы необходимо шаг за шагом проследить выполнение алгоритма, записывая в таблицу текущие значения выбранных для трассировки переменных. Такой метод позволяет выявить логические ошибки, допущенные при составлении или записи алгоритма, и определить, верен ли окончательный ответ. Составим в качестве примера трассировочную таблицу для алгоритма Герона вычисления квадратного корня из числа 2.

i

z

0

1,00000

1

1,50000

2

1,41666

3

1,41421

4

1,41421

5

1,41421

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