Составляющие блок-схем (не надо, есть в практике) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Составляющие блок-схем (не надо, есть в практике)




 


Организация потока управления действиями алгоритма

Существует три различных варианта организации потока управления действиями алгоритма.

1. Линейный – несколько функциональных блоков выполняются последовательно, кроме того, каждый блок обязательно выполняется и не более одного раза. (Пример алгоритма привести самостоятельно).

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

Команда «ветвление» имеет две формы: полную и сокращенную. Полная команда ветвления в записи псевдокодом и синтаксической диаграммой имеет вид:

если условие

то

серия 1

Иначе

серия 2

конец - если

Условие – это логическое выражение (способное принимать одно из двух возможных значений – истина или ложь).

Команда выполняется следующим образом: сначала проверяется, соблюдается ли условие. Если оно соблюдается, то выполняется серия 1, работа команды завершается, и осуществляется переход к команде, стоящей после ключевого слова «конец-если». Если же условие не соблюдается, то выполняется серия 2, и работа команды завершается – осуществляется переход к команде, стоящей после ключевого слова «конец-если». Команды серий реализуются подряд, каждая по своим правилам.

Сокращенная команда «ветвление» имеет вид:

 

 


если условие

то

серия

Конец-если

 

 

Выполнение команды: проверяется, соблюдается ли условие. Если оно соблюдается, то выполняются команды серии, и на этом работа команды завершается, осуществляется переход к команде, стоящей после ключевого слова «конец-если». Если же условие не соблюдается, то серия игнорируется, и работа команды завершается – осуществляется переход к команде, стоящей после ключевого слова «конец-если». При использовании языков программирования высокого уровня русские слова заменяются на английские: «если» – If; «то» – Then; «иначе» – Else.

Пример 2. Даны 2 числа, неравные друг другу. Построить псевдокод алгоритма нахождения наименьшего значения.

Решение.

алгоритм Меньшее из двух

арг    цел а, b

   рез     цел min

Начало

вывести «Наименьшее из чисел а и b»

                   a=, b=

ввести а, b

если а< b

   то min=a

   иначе min=b

конец-если

вывести «Меньшее из», а «и», b, «-», min

  конец

3. Циклический – многократное повторение функционального блока, в зависимости от проверки логического условия.

Цикл с предусловием можно описать составной командой пока выполнять, которую можно представить псевдокодом и графически так:

Псевдокод команды:

пока условие выполнять

серия

Конец-цикл

Серия выполняется, пока условие истинно; если условие ложно изначально, то серия не выполнится ни разу. Цикл завершается, когда условие становится ложным, поэтому тело цикла должно содержать команду, влияющую на выполнение условия.

Пример 3. Даны 2 числа. Построить псевдокод алгоритма Евклида нахождения их наибольшего общего делителя (см. пример 1). Использовать цикл с предусловием.

Решение.

алгоритм Евклида

арг    цел а, b

   рез     цел nod

Начало

вывести «Наибольший общий делитель чисел а и b»

                   a=, b=

ввести а, b

пока а<> b выполнять

  если a>b

       то a=a-b

      иначе b= b- a

  конец-если

конец-цикл

nod= a

вывести «Наибольший общий делитель чисел», а, «и», b, «-», nod

  конец

При использовании языков программирования высокого уровня русские слова заменяются на английские: «пока» – While; «выполнять» – Do.

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

Выполнять

серия

пока условие

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

Пример 4. Даны 2 числа. Построить псевдокод алгоритма Евклида нахождения их наибольшего общего делителя (см. пример 1). Использовать цикл с постусловием.

Решение.

алгоритм Евклида

арг    цел а, b

рез     цел nod

Начало

вывести «Наибольший общий делитель чисел а и b»

                   a=, b=

ввести а, b

        если a= b

то nod= a

иначе

             выполнять

               если a> b

                  то a=a-b

                   иначе b=b-a

              конец-если

            пока а<> b

              nod= a

Конец-если           

вывести «Наибольший общий делитель чисел», а «и», b, «-», nod

  конец

Цикл с параметром предназначен для циклов, которые должны быть проделаны определенное число раз, пока переменная i будет изменяться от j 1 до j 2 с шагом изменения j 3.

Таким образом, серия тело цикла выполняется, если соблюдается условие i £ j 2, и не выполняется, если i > j 2, или когда в процессе повторений значение i превзойдет j 2. Если фраза шаг j 3 пропущена, по умолчанию предполагается j 3 =1.

Для описания цикла с параметром предназначена команда для выполнять:

для i от j 1 до j 2 [ шаг j 3] выполнять

серия

Конец-цикл

Пример 5. Дано целое число n. Построить псевдокод алгоритма вычисления значения факториала этого числа. Использовать цикл с параметром.(понятие фФакториала целого натурального числа – это перемножение всех целых чисел от 1 до   n включительно n!=1×2×…× n до сих не давалось)

Решение..

алгоритм Факториал

арг    цел n

рез     цел factorial

всп цел i

Начало

вывести «Факториал числа n»  n =

ввести n

factorial =1

для i от 2 до n выполнять

factorial = factorial · i

Конец -цикл

вывести «Факториал числа», n,  «=»,   factorial

  конец

При использовании языков программирования высокого уровня русские слова заменяются на английские: «для» – For; «до» – To; «выполнять» – Do.



Поделиться:


Последнее изменение этой страницы: 2021-12-07; просмотров: 43; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.218.252.81 (0.012 с.)