Понятия алгоритма и блок-схемы
Алгоритм - конечная последовательность точно определенных действий, которые должны быть выполнены для решения поставленной задачи. Наиболее распространенные типы алгоритма - словесный и графический. В первом случае алгоритм составлен на естественном или математическом языке. Во втором - в виде компактной формы из графических знаков с указанием связей между ними. Алгоритм, реализованный в виде программы - конечный продукт, готовый для ввода в ЭВМ. Можно в принципе сразу писать программу в среде, но если она сложна, то целесообразно сначала составить графическую иллюстрацию. Эта иллюстрация называется блок-схемой.
Алгоритмы можно классифицировать как линейные, разветвляющиеся и циклические. Линейные алгоритмы представляются программой, в которой каждая операция выполняется последовательно одна за другой.
Линейные программы
Приведем пример реализации вычислительной формулы
F =((A+B)2- tg2x/A + B+ln(1+ex).
В символах среды Excel это выражение имеет вид
F=((A+B)^2 - TAN(X)^2)/(A + В)^(1/2) + LN(1+EXP(X))
В этом примере алгоритм линейный и его приведенная реализация весьма проста. Однако для примера словесного алгоритма и применения блок-схемы разобьем выражение на части и рассмотрим весь ход решения задачи от составления алгоритма до реализации его в виде программы.
Словесный алгоритм:
Ввести значения А, В, X.
Вычислить числитель функции F.
Вычислить знаменатель функции F.
Вычислить функцию F.
Напечатать значение функции F.
Графический алгоритм (блок-схему) приведем на рис. 1.
Ввод данных
Ч=числитель
З=знаменатель
F=Ч/З
Печать результата
Рис.1. Блок-схема линейного алгоритма
Замечание. В основном линейные программы реализуют арифметические выражения. Поэтому желательно их перед составлением программ оптимизировать с целью уменьшения команд и операторов.
Разветвляющиеся программы
Эти программы реализуются на основе операторов если. Кроме того, возможны варианты с использованием логических операций типа И для сравнения двух и более соотношений в этих операторах. Перечисленные операторы относятся к группе операторов, реализующих средства автоматизации. Они позволяют компьютеру перевести логику решения задачи на язык программы, с помощью которой ЭВМ может "сама" принимать решения, т.е. нарушать естественный порядок действий на основе управления передачей управления.
Оператор если
Простейший формат записи оператора:
если условие оператор1;оператор2
Здесь условие – выражение (в простейшем случае сравнение двух чисел), которое можно трактовать как истинное или ложное.
В условии используется знак соотношения, принимающий одно из следующих значений:
<, >, =, <=, >=
Правило: Если условие выполняется, т.е. результат сравнения является истинным, то управление передается на оператор1, а если не выполняется - то на оператор2, следующий сразу за оператором ЕСЛИ, который в свою очередь может содержать условие.
Приведем примеры.
Пример 2. Вычислить функцию F=sin(x) для х > 1. Вычисление провести для нескольких значений Х.
Словесный алгоритм:
Ввести значение X.
Проверка значения Х. Если Х>1, то перейти к п.3, в противном случае перейти к п.1
Вычислить функцию f.
Напечатать значение функции F. Перейти к п.1
Рис. 2. Блок-схема разветвляющегося алгоритма
Пример 3. Вычислить функцию F, если ввод параметров А, В, С, X организован с клавиатуры и на экран монитора выдается сообщение о прохождении решения по конкретной ветви - печать результатов в программе должна быть одна. Функция F имеет вид:
sin2(X+A)+e2-AX2+BX
+ C,
если А/В>1
F=
cos(X2-B)+tg3(X)-ln(AX2-B),
еслиА/B<=1
Словесный алгоритм:
Ввести значения А, В, С,X.
Вычислить значение Z=A/B.
Проверить значение Z. Если Z>1, перейти к п.4, иначе перейти к п.6
Вывести текст “Z>1”.
Вычислить F=Sin(X+A)…..Перейти к п.8
Вывести текст “Z<1”.
Вычислить F=Cos(X2-B)…….
Напечатать значение функции f.
Рис. 3. Блок-схема алгоритма для примера 3
Логический оператор И.
Логическая операция И часто используется для комбинации двух и более соотношений.
Например:
если одновременно А>2.5 и В<3.65.
В символах среды Excel это выражение имеет вид:
ЕСЛИ(И(А>2,5;B<3,65))
ПРИМЕР 4. Вычислить значение функции Z по одной из трех формул в зависимости от того, какое значение аргумента X будет задано. Используем логические операторы ЕСЛИ и И.
3x+1+x2,
если x<0
Z=
2xcos(x)e
-2x
, если 0<= x<=1
2sin(3x),
если
x>1
Словесный алгоритм:
Ввести значение X.
Проверить значение Х. Если Х<0, перейти к п.3, иначе перейти к п.4
Вычислить Z=3X+…..Перейти к п.7
Проверить нахождение Х в интервале [0,1]. Eсли “да”, то переход к п.5 ,иначе к п.6
Вычислить Z=2XCos(X)…….Перейти к п.7
Вычислить Z=2Sin(3X)…….
Напечатать значение функции Z.
Ввод ,X
X <0
X>=0
и X<=1
X<0
да
нет
нет
да
Z=2SIN(3X)
Рис. 4. Блок-схема алгоритма для примера 4 (сложное условие)
Циклические процессы
Если вычисления по одним и тем же формулам нужно повторить несколько раз при различных значениях переменных, входящих в эти формулы, то необходимо организовать ЦИКЛИЧЕСКИЙ вычислительный процесс.
Применение алгоритмов циклической структуры позволяет существенно сократить объем программы.
Для организации цикла необходимо выбрать ПАРАМЕТР ЦИКЛА - простую переменную, которая будет изменять свое значение при каждом повторении цикла и управлять работой цикла, а также предусмотреть 4 основных действия :
1. Задание начального значения параметра цикла.
2. Рабочий участок ( или " тело цикла " ) - повторяемые в цикле действия, необходимость
которых вытекает непосредственно из математической постановки задачи.
3. Изменение параметра цикла.
4. Проверка условия окончания повторений цикла и переход к его началу, если повторения не закончены.
Пример 5. Вычислить все квадраты чисел от 1 до 100. Формализация этой задачи в математическом смысле означает вычисление значении Y = N2 для (N=l,...,100).
Словесный алгоритм:
Ввести значение N=0.
Вычислить значение N=N+1
Вычислить значение функции Y
Напечатать значение функции Y.
Проверить значение N. Если N<100, перейти к п.2, иначе окончание счета
да
нет
Рис. 5. Блок-схема циклического алгоритма для примера 5
Пример 6. В этом примере надо вычислить значения функции F для значений Х, изменяющимся с постоянным шагом D. Значения А, В, С – постоянны.
Fi =Сos2(Хi + А/В)-A-Sin(Xi +C), где Xi+1=Xi+D,
D- const, (i=0,1, 2,...,10 ), X0 =e-a/b
Здесь параметр I будет управлять количеством повторов при вычислении (11 раз)
Начальное значение переменной цикла I равно нулю, конечное равно 10.
Словесный алгоритм: