Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Вычисление произведения N сомножителей.

Читайте также:
  1. II. Идиолект произведения искусства
  2. II. Комплексный анализ эпического произведения
  3. Автобиографический персонаж в произведениях М. Горького
  4. Авторская позиция в произведениях Набокова
  5. Алгоритм анализа произведения живописи (картина)
  6. Анализ прослушанного произведения.
  7. В хороших литературных произведениях особое значение придается реакциям.

Пусть необходимо вычислить .

Исходные данные алгоритма – это значение переменной N, которое необходимо ввести, а выходные данные – это значение P, которое надо вычислить и вывести. В данном примере счетчиком цикла является переменная I, которая принимает значения от 1 до N с шагом 1.

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

¼¼¼¼¼¼¼

¼¼¼¼¼¼¼

Начальное значение произведения принимается равным 1 (а не 0, как в случае суммы), а, затем, на каждом шаге текущее значение произведения умножается на значение i -го сомножителя:

Заполним таблицу имен объектов.

Имя объекта в задаче Имя объекта в блок-схеме Тип объекта Примечания
i I целая переменная счетчик цикла
N N целая переменная Конечное значение счетчика цикла
P вещ. переменная текущее значение частное произведение

Тогда схема алгоритма по шагам запишется следующим образом:

Ш1. Ввод N.

Ш2. P присвоить 1.

Ш3. i присвоить 1.

Ш4. Если I £ N, то перейти на Ш7.

Ш5. Вывод P.

Ш6. Конец.

Ш7. P присвоить P × i.

Ш8. i присвоить i + 1.

Ш9. Перейти на Ш4.

Блок-схема этого алгоритма приведена на рис.2.7.

Поясним работу алгоритма таблицей трассировки для N = 3.

№ действия № блока Результат действия
    Ввод
    P = 1
    i = 1
    1 £ 3, ДА
    P = 1×1=1
    i = 1+1 = 2
    Переход на 4
    2 £ 3, да
    P = 1×2 = 2
    i = 2 + 1 = 3
    Переход на 4
    3 £ 3, да
    P = 2×3 = 6
    i = 3 + 1 = 4
    Переход на 4
    4 £ 3, нет
    Вывод P = 6
    Конец

 

Рис. 2.7 Блок-схема алгоритма вычисления произведения N сомножителей

Оператор цикла с параметром может быть использован лишь для программирования арифметического цикла в случаях, когда приращение счетчика цикла равно либо 1 либо -1. В блок-схеме алгоритма этому оператору соответствует несколько блоков: блок присваивания счетчику цикла начального значения, блок проверки того, что счетчик цикла не превосходит конечного значения, и блок увеличения счетчика цикла на величину приращения.

Перейдем непосредственно к программированию примера на основе использования оператора цикла.

Программирование начальных блоков происходит также, как и при использовании оператора цикла с предусловиями WHILE. Отличие начинаются с программирования блока 5.

Блок 5 формирует начальное значение параметра цикла I, т.е. присваивает ему значение 1. Если обратиться к правилам записи оператора цикла с параметром, то увидим, что это делается не оператором присваивания, а с помощью составной части заголовка цикла (подставить в заголовок цикла вместо имени параметра цикла – I, а вместо его начального значения – значение 1); в заголовок цикла также входит конечное значение параметра цикла, которое в этом случае равно N, при превышении которого параметром цикла выполнение цикла заканчивается. На блок-схеме это реализуется с помощью условного блока 6. Кроме того, в заголовке цикла автоматически организовано продвижение по циклу с помощью задания приращения параметра цикла равного 1 (TO), либо -1 (DOWNTO). В блок-схеме изменения параметра цикла изображено в виде блока 10. Т.о. блокам 5,6,10 блок-схемы соответствует заголовок цикла. В теле цикла остаются лишь одно действие: блок 9. Блок 7 программируется также, как и в случае программирования арифметического цикла на основе использования оператора WHILE.

В результате получается следующая программа:

PROGRAM FACTORIAL;

VAR I, N: INTEGER;

P: REAL;

BEGIN

WRITELN('ВВЕДИ ЗНАЧЕНИЕ N');

READLN(N);

P:=1;

FOR I:=1 TO N DO P:=P*I;

WRITELN('ФАКТОРИАЛ P=',P:10:4);

END.

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


Дата добавления: 2015-07-16; просмотров: 66 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Арифметический цикл| Табулирование функции на конечном отрезке.

mybiblioteka.su - 2015-2024 год. (0.008 сек.)