Условие задачи : Массив целых чисел состоит из n элементов . Найти сумму элементов, которые имеют парные индексы (Язык Pascal)
Сложность : средняя .
Решение задачи :
Для начала стоит сказать что такое эти парные индексы или парные числа, это два простых числа, разность которых равна двум, т.е. :
2 и 4 , 1 и 3, 5 и 7 , 21 и 23, 30 и 32 — вот это и есть парные числа
Т.е. из второго мы вычитаем первое (N2 — N1), а не наоборот.
Теперь само решение, мы создадим двухмерный массив, дальше заполним его случайными числами, затем во втором цикле, мы будем искать сумму чисел у которых парные индексы.
Для чтобы найти сумму элементов, которые имеют парные индексы нам понадобятся следующие переменные :
- Переменная mass — для массива
- Переменные i и j — для индексов и для циклов
- Переменная summa — для суммы
- Переменная n — для размера матрицы(двухмерного массива)
Начнем мы с каркаса нашей программы :
uses crt;
type
massiv = array [1..10, 1..10] of integer;
var
mass : massiv;
i, j, summa,n : integer;
begin
clrscr;
randomize;
summa := 0;
write('Введите кол-во элементов : ');readln(n);
end.
Тут мы создали свой тип данных для массива, как и зачем читайте ( тут ) дальше объявили все переменные, присвоили переменной summa ноль, чтобы не было ошибок, попросили пользователя ввести кол-во элементов и включили генератор случайных чисел , подробнее (тут).
Теперь давайте заполним наш массив случайными числами :
for i:=1 to n do
for j:=1 to n do
mass[i,j] := random(10);
Вот теперь у нас есть массив. Ну а дальше ищем сумму, тех чисел у которых разность индексов j — i будет равняться 2 :
for i:=1 to n do
begin
for j:=1 to n do
begin
write(mass[i,j], ' | ');
if (j - i = 2) then
summa := summa + mass[i,j];
end;
writeln;
end;
Т.е. тут мы сначала выводим элемент, а потом пишем условие, если разность индексов равна 2 , то прибавляем такое число к общей сумме.
Вот результат :
uses crt;
type
massiv = array [1..10, 1..10] of integer; // создаем тип данных для массива
var
mass : massiv; // объявляем
i, j, summa,n : integer; // переменные
begin
clrscr; // очищаем экран
randomize; // включаем генератор случайных чисел
summa := 0; // обнуляем сумму, чтобы не было ошибок
write('Введите кол-во элементов : ');readln(n); // просим пользователя ввести пароль
for i:=1 to n do // пускаем цикл
for j:=1 to n do // по массиву
mass[i,j] := random(10); // заполняем его случайными числами
for i:=1 to n do // пускаем цикл
begin
for j:=1 to n do // по массиву
begin
write(mass[i,j], ' | '); // выводим число
if (j - i = 2) then // если разность индексов равна 2, то
summa := summa + mass[i,j]; // прибавляем такое число к общей сумме
end;
writeln; // перенос строки, чтобы у нас получилась матрица
end;
writeln('Сумма равна : ', summa); // выводим сумму
readln; // чтобы программа не закрывалась
end.
