Задачи по Pascal. Найти сумму элементов, которые имеют парные индексы.

Задачи по Pascal

Условие задачи : Массив целых чисел состоит из n элементов . Найти сумму элементов, которые имеют парные индексы (Язык Pascal)

Сложность : средняя .

Решение задачи :

Для начала стоит сказать что такое эти парные индексы или парные числа, это два простых числа, разность которых равна двум, т.е. :

2 и 4 , 1 и 3, 5 и 7 , 21 и 23, 30 и 32 — вот это и есть парные числа

Т.е. из второго мы вычитаем первое (N2 — N1), а не наоборот.

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

Для чтобы найти сумму элементов, которые имеют парные индексы нам понадобятся следующие переменные :

  1. Переменная mass — для массива
  2. Переменные i и j — для индексов и для циклов
  3. Переменная summa — для суммы
  4. Переменная 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.

cyber
Оцените автора
CyberLesson | Быстро освоить программирование Pascal и C++. Решение задач Pascal и C++
Добавить комментарий