Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задание_1_Алгоритмы.doc
Скачиваний:
6
Добавлен:
10.08.2019
Размер:
222.21 Кб
Скачать

Понятия алгоритма и блок-схемы

Алгоритм - конечная последовательность точно определенных дейст­вий, которые должны быть выполнены для решения поставленной задачи. Наиболее распространенные типы алгоритма - словесный и графический. В первом случае алгоритм составлен на естественном или математическом язы­ке. Во втором - в виде компактной формы из графических знаков с указанием связей между ними. Алгоритм, реализованный в виде программы - конечный продукт, готовый для ввода в ЭВМ. Можно в принципе сразу писать про­грамму в среде, но если она сложна, то целесообразно сначала составить гра­фическую иллюстрацию. Эта иллюстрация называется блок-схемой.

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

Линейные программы

Приведем пример реализации вычислительной формулы

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))

В этом примере алгоритм линейный и его приведенная реализация весьма проста. Однако для примера словесного алгоритма и применения блок-схемы разобьем выражение на части и рассмотрим весь ход решения за­дачи от составления алгоритма до реализации его в виде программы.

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

  1. Ввести значения А, В, X.

  2. Вычислить числитель функции F.

  3. Вычислить знаменатель функции F.

  4. Вычислить функцию F.

  5. Напечатать значение функции F.

Графический алгоритм (блок-схему) приведем на рис. 1.

Ввод данных

Ч=числитель

З=знаменатель

F=Ч/З

Печать результата

Рис.1. Блок-схема линейного алгоритма

Замечание. В основном линейные программы реализуют арифмети­ческие выражения. Поэтому желательно их перед составлением программ оп­тимизировать с целью уменьшения команд и операторов.

Разветвляющиеся программы

Эти программы реализуются на основе операторов если. Кроме того, возможны варианты с использованием логиче­ских операций типа И для сравнения двух и более соотношений в этих операторах. Перечисленные операторы относятся к группе операторов, реализующих средства автоматизации. Они по­зволяют компьютеру перевести логику решения задачи на язык программы, с помощью которой ЭВМ может "сама" принимать решения, т.е. нарушать ес­тественный порядок действий на основе управления передачей управления.

Оператор если

Простейший формат записи оператора:

если условие оператор1;оператор2

Здесь условие – выражение (в простейшем случае сравнение двух чисел), которое можно трактовать как истинное или ложное.

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

<, >, =, <=, >=

Правило: Если условие выполняется, т.е. результат сравнения является истинным, то управление передается на оператор1, а если не выполняется - то на оператор2, следующий сразу за оператором ЕСЛИ, который в свою очередь может содержать условие.

Приведем примеры.

Пример 2. Вычислить функцию F=sin(x) для х > 1. Вычисление провести для нескольких значений Х.

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

  1. Ввести значение X.

  2. Проверка значения Х. Если Х>1, то перейти к п.3, в противном случае перейти к п.1

  3. Вычислить функцию f.

  4. Напечатать значение функции 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

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

  1. Ввести значения А, В, С,X.

  2. Вычислить значение Z=A/B.

  3. Проверить значение Z. Если Z>1, перейти к п.4, иначе перейти к п.6

  4. Вывести текст “Z>1”.

  5. Вычислить F=Sin(X+A)…..Перейти к п.8

  6. Вывести текст “Z<1”.

  7. Вычислить F=Cos(X2-B)…….

  8. Напечатать значение функции 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

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

  1. Ввести значение X.

  2. Проверить значение Х. Если Х<0, перейти к п.3, иначе перейти к п.4

  3. Вычислить Z=3X+…..Перейти к п.7

  4. Проверить нахождение Х в интервале [0,1]. Eсли “да”, то переход к п.5 ,иначе к п.6

  5. Вычислить Z=2XCos(X)…….Перейти к п.7

  6. Вычислить Z=2Sin(3X)…….

  7. Напечатать значение функции 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).

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

  1. Ввести значение N=0.

  2. Вычислить значение N=N+1

  3. Вычислить значение функции Y

  4. Напечатать значение функции Y.

  5. Проверить значение 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.

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