Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по Информатике.doc
Скачиваний:
4
Добавлен:
26.09.2019
Размер:
3.12 Mб
Скачать
  1. Построение разветвлённых циклов, управляемых параметром.

Приёмы построения разветвленных циклов рассмотрим на примере.

Пример 3. Пусть переменная Х принимает N произвольно заданных значений (задание этих значений осуществляется инструкцией ввода).

Требуется построить алгоритм, который выполняет следующие действия:

а) выводит на печать отрицательные значения и подсчитывает их сумму S;

б) находит среднее арифметическое S1 неотрицательных значений;

в) подсчитывает количество К нулевых значений.

Заметим, что среднее арифметическое SA может быть найдено лишь после подсчета количества К1 положительных и нулевых значений и суммы S1 этих значений. Данный алгоритм должен содержать цикл, ибо количество проверок значений Х выражено переменной N.

За одно исполнение инструкции ввода переменной Х можно задать лишь одно из искомых значений, следовательно, действие ВВОД Х должно исполняться в цикле, предшествуя прочим действиям цикла.

Составим тело цикла, где будет отражаться анализ значения Х и изменение значений переменных К, S, К1, S1. Затем представим изменение параметра цикла и управление циклом как последнее из повторяемых действий. В качестве параметра цикла должен использоваться номер i рассматриваемого значения, ибо эта величина по ходу вычислений изменяется в заданных пределах (от 1 до N) по закону арифметической прогрессии.

Для построения цикла необходимо во всех деталях представить процесс, который требуется реализовать, в частности - взаимоисключающие действия (см. табл.2.1).

Таблица 2.1

Случай Д е й с т в и я

Х < 0 S = S + X

В ы в о д Х

X = 0 K = K + 1

K1 = K1 + 1

X > 0 S1 = S1 + X

Один из вариантов построения тела цикла показан на рис. 2.3, где оно очерчено пунктиром. В блок - схеме каждый блок, кроме ОСТАНОВА, должен быть связан линией потока со следующим (следующими). Нередко соединение блоков представляет проблему для

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

В рассматриваемом примере вне зависимости от того, каким оказалось значение Х и обусловленные этим действия ( см. табл.2.1), далее должен осуществляться переход к следующему значению Х. Значит, должно измениться значение номера i ( блок 12 ). Следовательно, любые пути протекания процесса, изображаемые в теле цикла, должны заканчиваться входом в блок 12.

Для определения места инструкции SA=S1/K1 нужно осознать, что значения S1 и К1 могут рассматриваться как окончательные только после просмотра всех значений Х. Следовательно, инструкция SA=S1/K1 должна выполняться после цикла, до вывода результатов.

Инструкция ВЫВОД Х (блок 7), выводящая отрицательные значения Х, должна входить в цикл, ибо при выявлении такого значения оно должно безотлагательно выводиться (на дисплей, принтер). Иначе при очередном выполнении инструкции ВВОД Х (блок 4) это число будет утеряно вследствие замены значения Х.

Рис 2.3.