Вывести на экран суммы значений - Free Pascal
Формулировка задачи:
Дана квадратная матрица со стороной 9 элементов, заполненным случайными натуральными числами от 0 до 9 вывести на экран суммы четных значений нечетных элементов и нечетных значений четных элементов. Элементы считать относительно начала строк. Спасибо большое.
Решение задачи: «Вывести на экран суммы значений»
textual
Листинг программы
program pr1;
const
nine = 9;
var
matrix: array[1..nine, 1..nine] of byte;
i, j: byte;
values: array[1..2] of integer;
begin
Randomize();
for i := 1 to nine do
begin
for j := 1 to nine do
begin
matrix[i, j] := Random(nine + 1);
Write(matrix[i, j], ' ');
if odd(matrix[i, j]) and (not odd(j)) then
Inc(values[1], matrix[i, j])
else if (not odd(matrix[i, j])) and odd(j) then
Inc(values[2], matrix[i, j]);
end;
WriteLn();
end;
WriteLn('Сумма четных значений нечетных элементов строк: ', values[1], '.');
WriteLn('Сумма нечетных значений четных элементов строк: ', values[2], '.');
ReadLn();
end.
Объяснение кода листинга программы
В этом коде:
- Объявлены следующие переменные:
matrix- двумерный массив байтов размером 9x9, который заполняется случайными значениями от 0 до 99.iиj- индексы для обхода массива.values- массив из двух целых чисел, который используется для хранения суммы четных и нечетных значений.
- Используется функция
Randomize()для инициализации генератора случайных чисел. - Два вложенных цикла
forиспользуются для прохода по всем элементам массиваmatrix. - Каждый элемент массива
matrixвыводится на экран с пробелом после него. - Если элемент массива
matrixнечетный и его индекс в строке нечетный, то к суммеvalues[1]добавляется значение этого элемента. - Если элемент массива
matrixчетный и его индекс в строке четный, то к суммеvalues[2]добавляется значение этого элемента. - После заполнения массива
matrixвыводится горизонтальная строка из пробелов. - Выводится сообщение с суммой четных значений нечетных элементов строк.
- Выводится сообщение с суммой нечетных значений четных элементов строк.
- Программа ожидает ввода с клавиатуры, прежде чем завершиться.