- •Алгоритм накопления суммы:
- •Вычисление целочисленных степеней (алгоритм накопления произведения)
- •Алгоритм вычисления количества элементов (счетчик)
- •Программирование алгоритмов со структурой вложенных циклов
- •Операторы форматного ввода/вывода
- •Оператор Формат
- •Спецификация I
- •Спецификация f
- •Спецификация e
- •20 Format(1x,a/) ! пропустить первый символ и напечатать текст строки
- •Группы спецификаций (использование повторителя)
- •Запись повторяющихся спецификаций и групп спецификаций
Вычисление целочисленных степеней (алгоритм накопления произведения)
Рассмотрим символ произведения в сокращенной записи
Разница в алгоритмах суммы и произведения только лишь в том, что речь идет не о слагаемых, а о произведении сомножителей 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).