Условие задачи : Массив целых чисел состоит из 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.