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

Вычисление целочисленных степеней (алгоритм накопления произведения)

Рассмотрим символ произведения в сокращенной записи

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

Для вычисления произведения в алгоритме меняется только то, что необходимо перед циклом задать начальное значение P, равное не нулю (иначе результат вычисления обнулиться), а единице P = 1, а в цикле накапливать произведение, используя оператор присваивания, например такой: ; здесь t – множитель произведения, который может быть сложным выражением или элементом массива.

Пример 2. Вычислить значение произведения .

Блок-схема задачи:

Запишем программу:

program PRODUCT

read *, k

P = 1; n = 1

do while (n <= k)

P = P + n/2.

n = n + 1

enddo

print *,’ P=’,P

end

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

а)

или

б)

а) read*, X,m

P = 1

do k=1, m

P = P * X

enddo

print *, P

end

б) read*, j

Z = 1

do k=1, 2*j

Z = Z * 3

enddo

print *, Z

end

Если необходимо однократное вычисление степени, то, как правило, используется операция возведения в степень Xn X**n. Вместе с тем, если нужно вычислять несколько раз различные значения степени, например, X2, X3, X4, …, то можно применить алгоритм нахождения произведения.

Пример 3. Программа вычисления факториала. Это специальный вид произведения.

, например,

и . Таким образом, в факториале вид сомножителя определяется порядковым номером. Напомним, что 0! = 1.

Блок-схема задачи:

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

program FACTORIAL

print*, ‘ Vvedite n≠0’

read*, n

P = 1

do k=1, n

P = P * k

enddo

print *, ‘factorial ’, n,’!=’,P

end

Заметим, что при вычислении факториала, результирующее значение быстро увеличивается в зависимости от того, какой факториал n! вы рассчитываете. В программе стоит воспользоваться описанием переменных и, даже использовать двойную точность для больших n (real*8 или double precision – тип действительных переменных двойной точности, для которых выделено 8 байт памяти и диапазоном изменения от –1,7*10-308 до 1,7*10308).

Соседние файлы в папке Лекции_фортран_текст