Решение задач блока ExamBegin 61-70
Решение задач из задачника по программированию М. Э. Абрамяна. Задачи из блока ExamBegin: «ЕГЭ по информатике: базовые алгоритмы».
Задача ExamBegin61
На вход в первой строке подаются целые положительные числа M и N, а в последующих M строках — двумерный вещественный массив размера M × N. Найти количество строк массива, все элементы которых отрицательны.

uses PT4Exam;
const
P = 100;
var
arr: array[1..P, 1..P] of real;
m, n, i, j, k: integer;
count: boolean;
begin
Task('ExamBegin61');
Readln(m, n);
k := 0; count := true;
for i := 1 to m do
begin
for j := 1 to n do
begin
Read(arr[i, j]);
if arr[i, j] > 0 then count := false;
end;
if count = true then k := k + 1;
count := true;
end;
Write(k);
end.
PascalЗадача ExamBegin62
На вход в первой строке подаются целые положительные числа M и N, а в последующих M строках — двумерный целочисленный массив размера M × N. Найти сумму элементов каждой строки массива (каждое найденное число выводить на новой экранной строке).

uses PT4Exam;
const
P = 100;
var
arr: array[1..P, 1..P] of integer;
m, n, i, j, sum: integer;
begin
Task('ExamBegin62');
Readln(m, n);
sum := 0;
for i := 1 to m do
begin
for j := 1 to n do
begin
Read(arr[i, j]);
sum := sum + arr[i, j];
end;
Writeln(sum);
sum := 0;
end;
end.
PascalЗадача ExamBegin63
На вход в первой строке подаются целые положительные числа M и N, а в последующих M строках — двумерный вещественный массив размера M × N. Найти среднее арифметическое элементов каждого столбца массива (все найденные числа выводить в одной экранной строке, для каждого числа отводить 6 экранных позиций).

uses PT4Exam;
const
P = 100;
var
arr: array[1..P, 1..P] of real;
m, n, i, j: integer;
sum: real;
begin
Task('ExamBegin63');
Readln(m, n);
for i := 1 to m do
for j := 1 to n do
Read(arr[i, j]);
sum := 0;
for i := 1 to n do
begin
for j := 1 to m do
sum := sum + arr[j, i];
Write(sum / m:6:2);
sum := 0;
end;
end.
PascalЗадача ExamBegin64
На вход в первой строке подаются целые положительные числа M и N, а в последующих M строках — двумерный целочисленный массив размера M × N. Найти сумму значений максимальных элементов всех строк массива.

uses PT4Exam;
const
P = 100;
var
arr: array[1..P, 1..P] of integer;
m, n, i, j, sum, max: integer;
begin
Task('ExamBegin64');
Readln(m, n);
sum := 0; max := -10000;
for i := 1 to m do
begin
for j := 1 to n do
begin
Read(arr[i, j]);
if max < arr[i, j] then max := arr[i, j];
end;
sum := sum + max;
max := -10000;
end;
Write(sum);
end.
PascalЗадача ExamBegin65
На вход в первой строке подаются целые положительные числа M и N, а в последующих M строках — двумерный вещественный массив размера M × N. Найти произведение значений минимальных элементов всех столбцов массива.

uses PT4Exam;
const
P = 100;
var
arr: array[1..P, 1..P] of real;
m, n, i, j: integer;
min, k: real;
begin
Task('ExamBegin65');
read(m, n);
for i := 1 to m do
for j := 1 to n do
read(arr[i, j]);
k := 1;
for i := 1 to n do
begin
min := maxint;
for j := 1 to m do
begin
if arr[j, i] < min then min := arr[j, i];
end;
k := k * min;
end;
write(k:1:2);
end.
PascalЗадача ExamBegin66
На вход в первой строке подаются целые положительные числа M и N, а в последующих M строках — двумерный целочисленный массив размера M × N. Найти номер первой строки массива с минимальной суммой элементов (строки нумеруются от 1).

uses PT4Exam;
const
P = 100;
var
arr: array[1..P, 1..P] of integer;
m, n, i, j, sum, min, k: integer;
begin
Task('ExamBegin66');
Readln(m, n);
sum := 0; min := 10000;
for i := 1 to m do
begin
for j := 1 to n do
begin
Read(arr[i, j]);
sum := sum + arr[i, j];
end;
if sum < min then begin
min := sum;
k := i;
end;
sum := 0;
end;
Write(k);
end.
PascalЗадача ExamBegin67
На вход в первой строке подаются целые положительные числа M и N, а в последующих M строках — двумерный целочисленный массив размера M × N. Найти номер последнего столбца массива с максимальной суммой элементов (столбцы нумеруются от 1).

uses PT4Exam;
const
P = 100;
var
arr: array[1..P, 1..P] of integer;
m, n, i, j, sum, min, max, k: integer;
begin
Task('ExamBegin67');
Readln(m, n);
for i := 1 to m do
for j := 1 to n do
begin
Read(arr[i, j]);
if arr[i, j] < min then min := arr[i, j];
end;
sum := 0; max := min;
for i := 1 to n do
begin
for j := 1 to m do
sum := sum + arr[j, i];
if sum >= max then begin
max := sum;
k := i;
end;
sum := 0;
end;
Write(k);
end.
PascalЗадача ExamBegin68
На вход в первой строке подаются целые положительные числа M и N, а в последующих M строках — двумерный вещественный массив размера M × N. Найти номер столбца массива, содержащего максимальный из минимальных элементов всех столбцов (столбцы нумеруются от 1). Предполагается, что существует единственный столбец с требуемым свойством.

uses PT4Exam;
const
P = 100;
var
arr: array[1..P, 1..P] of real;
m, n, i, j, k: integer;
max, min: real;
begin
Task('ExamBegin68');
read(m, n);
for i := 1 to m do
for j := 1 to n do
read(arr[i, j]);
max := -maxint;
for i := 1 to n do
begin
min := maxint;
for j := 1 to m do
begin
if arr[j, i] < min then min := arr[j, i];
end;
if max < min then
begin
max := min;
k := i;
end;
end;
write(k);
end.
PascalЗадача ExamBegin69
На вход в первой строке подается целое положительное число N, а во второй строке — массив из N вещественных чисел. Выполнить циклический сдвиг элементов массива влево на одну позицию (при этом значения всех элементов, кроме первого, должны быть присвоены предыдущему элементу, а значение первого элемента — последнему элементу массива). Вывести преобразованный массив в одной строке, для каждого элемента отводить 7 экранных позиций.

uses PT4Exam;
const
P = 100;
var
arr: array[1..P] of real;
n, i: integer;
t: real;
begin
Task('ExamBegin69');
Readln(n);
for i := 1 to n do
Read(arr[i]);
for i := 1 to n - 1 do
begin
if i = 1 then t := arr[1];
arr[i] := arr[i + 1];
if i = n - 1 then arr[n] := t;
end;
for i := 1 to n do
Write(arr[i]:7:2);
end.
PascalЗадача ExamBegin70
На вход в первой строке подается целое положительное число N, а во второй строке — массив из N вещественных чисел. Выполнить циклический сдвиг элементов массива вправо на одну позицию (при этом значения всех элементов, кроме последнего, должны быть присвоены следующему элементу, а значение последнего элемента — первому элементу массива). Вывести преобразованный массив в одной строке, для каждого элемента отводить 7 экранных позиций.

uses PT4Exam;
const
P = 100;
var
arr: array[1..P] of real;
n, i: integer;
t: real;
begin
Task('ExamBegin70');
Readln(n);
for i := 1 to n do
Read(arr[i]);
for i := n downto 2 do
begin
if i = n then t := arr[n];
arr[i] := arr[i - 1];
if i = 2 then arr[1] := t;
end;
for i := 1 to n do
Write(arr[i]:7:2);
end.
Pascal