Подготовка к ЕГЭ по информатике.
Разбор задач раздела С.
[назад]
1. Опишите на русском языке или одном из языков
программирования алгоритм подсчета суммы произведений
последовательных пар элементов в целочисленном массиве из 30
элементов. (Это означает, что надо сосчитать сумму произведений
первого и второго, третьего и четвертого, пятого и шестого
элементов и т.д.)
Решение на естественном языке. Введем
целочисленную переменную SumProd, в
которую будем заносить сумму произведений последовательных пар
элементов в просмотренной части массива, и присвоим ей начальное
значение 0. В цикле до конца массива: считаем произведение
элементов очередной пары и прибавляем его к
SumProd. По окончании цикла переменная
SumProd содержит сумму произведений
последовательных пар элементов массива.
Простой для понимания вариант решения на Паскале.
Собственно алгоритм на естественном языке описан выше. Что
касается технического момента, то в цикле будем определять
четный элемент массива и четный элемент массива умножать на
предыдущий (нечетный). Полученное произведение будем прибавлять
к SumProd.
const
n=30;
var
a: array [1..n] of integer;
SumProd,i: integer;
begin
SumProd:=0;
for i:=1 to n
do
if i mod
2 = 0 then
SumProd :=
SumProd + a[i] * a[i-1];
end.
Оптимальный вариант решения на Паскале. В
этом варианте сокращено число итераций (обращений к массиву) в
два раза.
const
n=30;
var
a: array [1..n] of integer;
SumProd,i: integer;
begin
SumProd:=0;
for i:=1 to n div 2
do
SumProd := SumProd + a[2*i-1] *
a[2*i];
end.
[назад]
|