Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Алгоритмы циклической структуры




Определение. Алгоритмом разветвляющейся структуры называется алгоритм, в котором в зависимости от выполнения определенных условий он реализуется по одному из нескольких, заранее предусмотренных направлений.

Алгоритмы разветвляющейся структуры

Пример.

Составить блок-схему вычисления значений функции в указанной точке.

при а=0.83, х=1.2

 
начало

 
 


А, Х

 
 

3 Y1 =

 
 


4 Y2 =

 
 


5 Y3 =

 
 


 
 

 



конец
8

 

Алгоритм решения задачи 1. Начало 2. Ввести с клавиатуры а, х 3. Y1 = 4. Y2 = 5. Y3 = 6. Y = Y2 – Y3 7. Вывести значение Y 8. Конец  

Каждое отдельное направление называется ветвью вычислений. Выбор той или иной ветви осуществляется при выполнении программы в результате проверки некоторых условий и определяется свойствами исходных данных и промежуточных результатов. При составлении программы должны быть учтены все возможные ветви вычислений.

В основе организации разветвления лежит проверка логического условия, которое может быть истинно или ложно.

Общая структура ветвления

 

True False

2 3

 

Порядок выполнения.

1. Вычисляется выражение, записанное в условии.

2. В результате его вычисления получается значение булевского типа. Если значение логического выражения равно TRUE (истина), то выполняется Оператор1, а Оператор2 пропускается,

3. Если значение логического выражения равно False (ложно), то выполняется Оператор2, а Оператор1 пропускается.

4. Далее в любом случае выполняется оператор3.

Пример 1. Вычислить

1. Исходные данные: x Є R, x ³ 0

Результат: y Є R.

2. Полный вариант

Блок-схема
 
 


 
 


3

Да Нет

4

5

 
 

 

 


6

 
 


 

Алгоритм решения задачи 1. Начало 2. Ввести Х с клавиатуры 3. Если Х ³ 0 4. То 5. Иначе «Решений нет» 6. Вывести Y 7. Конец  

2. Сокращенный вариант

Блок-схема
 
 


1

 
 


3

4 Да Нет

 


5

 
 


 

Алгоритм решения задачи 1. Начало 2. Ввести Х с клавиатуры 3. Если Х ³ 0 4. То 5. Вывести Y 6. Конец

Пример 2.

Вложенные алгоритмы разветвляющейся структуры

Разветвляющийся алгоритм может иметь вложенную конструкцию, когда после True или False используется такой же алгоритм структуры разветвления.

Пример. Составить блок-схему вычисления значений функции:

1. Исходные данные: х Є R

Результат: y Є R

2. Блок-схема
 
 


1

 
 


2

Да 3 Нет

4 5

y = x
Да Нет

       
   
 
 


y = -x+5
y = 2
6 7

 

 
 

 

 


8

 
 


Алгоритм решения задачи 1. Начало 2. Ввести Х 3. Если Х < 2 4. То Y = X 5. Иначе Если 2£Х<3 6. То Y = 2 7. Иначе Y = -x + 5 8. Вывести Y 9. Конец  

Пример 3.

Составить алгоритм нахождения max (min) числа среди трех заданных чисел.

Дано:

MAX (a+2*b; a*b+c; c2 + 1)

Решение.

1. Исходные данные:

a, b, c Є R; y1 = a+2*b; y2 = a*b+c; y3 = c2 + 1

2. Блок-схема
 
 


1

 
 


 
 


 
 


 
 


+ -

6

+ 7 - + 10 -

8 9 11 12

               
   
Y = y3  
   
Y = y3  
 
Y = y2  
 
Y = y1
 
 


 
 

 


13

 
 


 

Алгоритм решения задачи 1. Начало 2. Ввести а, b, c с клавиатуры 3. Вычислить у1 = a+2*b 4. Вычислить у2 = a*b+c 5. Вычислить у3 = c2 + 1 6. Если у1>y2, то 7. Если y1>y3, 8. То Y = y1, 9. Иначе Y=y3 10. Иначе Если у2>y3, 11. То Y = y2, 12. Иначе Y = y3 13. Вывести Y 14. Конец  

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

 

где S - некоторое выражение, селектор (выбор альтернативы); instr 1, instr 2, …, instr n - операторы, из которых выполняется тот, константа выбора которого равна текущему значению селектора S; instr - оператор, который выполняется, если значение выражения S не совпадает ни с одной из констант
instr 2  
instr 1  
instr  

Ложь Истина

1 2 n

 
 
instr n  


………

       
   
 
 
Порядок выполнения. 1. Сначала вычисляется значение выражения-селектора S. 2. Обеспечивается реализация того оператора, константа выбора которого равна текущему значению селектора instr1, instr2, …, instr n. Если ни одна из констант не равна текущему значению селектора, выполняется оператор instr.

 


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

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

Циклический алгоритм позволяет существенно сократить объем программы.

Циклом называется многократное выполнение последовательности операторов с различными входными данными на каждом шаге цикла.

Циклы подразделяют:

- циклы с известным числом повторений (параметрические циклы или циклы со счетчиком);

- циклы с неизвестным числом повторений (итерационные циклы).

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

Определение. Итерационным называется цикл, число повторений которого заранее неизвестно, но может быть определено в ходе его работы.




Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 601; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.057 сек.