Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
39
Добавлен:
24.02.2016
Размер:
1.14 Mб
Скачать

Разветвляющимся называют алгоритм, в котором в зависимости от значения условия (выполняется или не выполняется) изменяется последовательность выполнения действий алгоритма.

Пример блок-схемы алгоритма определения принадлежности точки с координатами (x, y) номеру сектора (рис. 8).

Рис. 8 - Блок-схема разветвляющегося алгоритма

Циклическим называется алгоритм, в котором некоторая последовательность действий повторяется определенное количество раз.

Тело цикла – действия, выполняемые в цикле. Циклические алгоритмы могут быть:

с предусловием – условие, при котором выполняется тело цикла, задается в начале цикла (рис. 9);

с постусловием – условие, при котором выполняется тело цикла, задается в конце цикла (рис. 10);

с параметром — в начале цикла задается правило изменения его параметра (рис. 11).

52

 

Рис. 10 - Цикл с

Рис. 11 - Цикл с

Рис. 9 - Цикл

постусловием

параметром

с предусловием

 

 

Пример блок-схемы циклического алгоритма нахождения НОД (наибольшего общего делителя) двух значений a и b.

Правило нахождения НОД (a, b) формулируется следующим образом:

1.определяется наибольшее из значений a и b — max (a, b);

2.из наибольшего значения вычитается оставшееся значение;

3.п.п. 1 и 2 повторяются до тех пор, пока значения a и b не станут равными. Полученное значение будет НОД (a, b).

Решение:

 

 

 

Предположим, что a=20 и b=15.

 

 

Тогда:

 

 

 

max (a, b) = max (20, 15) = 20

→ a=20-15=5

b=15

max (a, b) = max (5, 15)

= 15

→ a=5

b=15-5=10

max (a, b) = max (5, 10)

= 10

→ a=5

b=10-5=5

a = b => НОД (a, b) =5

Составим блок-схему алгоритма нахождения НОД (a, b) (рис. 12):

53

Рис. 12 Блок-схема алгоритма нахождения НОД (a, b).

Для реализации алгоритма на компьютере необходимо описать его на языке программирования.

54

ПРИЛОЖЕНИЕ 2 ПРИМЕР ОФОРМЛЕНИЯ

Задание 1

Составить программу вычисления линейного арифметического выраже-

ния

 

 

x2 y ey 1

 

 

 

 

 

 

 

h

 

 

 

 

 

10 3 x ln(z) .

 

 

x

 

tgz

 

 

1

y

 

 

 

 

 

При x = 2,45; y = – 0,423·10-2;

z = 1,232·103

ответ: h = 6,9465.

 

Блок-схема алгоритма

 

Код программы

#include <iostream.h>

#include <math.h>

int main ()

{

double x, y, z, h;

cout << "Vvedite x: "; cin >> x;

55

cout << "Vvedite y: "; cin >> y;

cout << "Vvedite z: "; cin >> z;

h = pow(x, 2*y) + exp(y-1); h / = 1+x * fabs(y - tan(z));

h + = 10 * pow(x, 1/3.) - log(z); cout << "Result h= " << h << endl;

return 0;

}

Результаты выполнения программы

56

ЛИТЕРАТУРА

1.Основы алгоритмизации и программирования. Язык Си: учеб. пособие // М. П. Батура [и др.] / – Минск: БГУИР, 2007.

2.Основы алгоритмизации и программирования: конспект лекций для студ. всех спец. и всех форм обуч. БГУИР / В. Л. Бусько [и др.] /. – Минск: БГУИР, 2004.

3.Вирт, Н. Алгоритмы и структуры данных/ Н. Вирт– СПб.: Невский диа-

лект, 2005.

4.Кнут, Д. Искусство программирования: В 3 т. Т. 3/ Д. Кнут Сортировка и поиск / – М.: Вильямс, 2000.

5.Хопкрофт, Дж. Структуры данных и алгоритмы / Дж. Хопкрофт, Дж.Ульман, А. Ахо– М.: Вильямс, 2003.

6.Павловская, Т. А. С/С++. Программирование на языке высокого уровня / Павловская Т. А. – СПб.: Питер, 2004.

7.Павловская Т. А. С++. Объектно-ориентированное программирование: практикум / Т. А.Павловская, Ю. А. Щупак – СПб.: Питер, 2004.

8.Керниган Б. Язык программирования Си / Б. Керниган, Д. Ритчи – М.: Финансы и статистика, 1992.

9.Демидович Е. М. Основы алгоритмизации и программирования. Язык СИ / Е. М. Демидович – Минск: Бестпринт, 2001.

10.Страуструп Б. Язык программирования С++ / Б. Страуструп – СПб.:

БИНОМ, 1999.

57