На предыдущей странице было несколько задач из решебника Абрамяна, посвященных выводу элементов матрицы в различном порядке. Здесь же мы займемься анализом элементов. Все матрицы являются целочисленными, а формирование матрицы случайное - с помощью датчика random.
Matrix17. Дана матрица размера M × N и целое число K (1 ≤ K ≤ M). Найти сумму и произведение элементов K-й строки данной матрицы.
var
A: array[1..10, 1..10] of integer;
i, j, M, N, K: byte;
S, P: integer;
begin
write('M = ');
readln(M);
write('N = ');
readln(N);
{ Вводим номер строки: }
repeat
write('K = ');
readln(K)
until (K >= 1) and (K <= M);
S := 0; { Начальная сумма }
P := 1; { Начальное произведение }
randomize;
for i := 1 to M do begin
for j := 1 to N do begin
a[i, j] := random(10);
write(a[i, j]:3);
if i = K then begin
S := S + a[i, j]; { Изменяем сумму }
P := P * a[i, j] { Изменяем произведение }
end
end;
writeln
end;
writeln;
writeln('Сумма элементов ', K, '-й строки: ', S);
writeln('Произведение элементов ', K, '-й строки: ', P);
readln
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**type** byte;
: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647
**procedure** Randomize;
: Инициализирует датчик псевдослучайных чисел.2)**procedure** Randomize(seed: integer);
: Инициализирует датчик псевдослучайных чисел, используя значение seed. При одном и том же seed генерируются одинаковые псевдослучайные последовательности.**function** Random(maxValue: integer): integer;
: Возвращает случайное целое в диапазоне от 0 до maxValue - 1.2)**function** Random(a,b: integer): integer;
: Возвращает случайное целое в диапазоне от a до b.3)**function** Random: real;
: Возвращает случайное вещественное в диапазоне [0..1). Matrix18. Дана матрица размера M × N и целое число K (1 ≤ K ≤ N). Найти сумму и произведение элементов K-го столбца данной матрицы.
var
A: array[1..10, 1..10] of integer;
i, j, M, N, K: byte;
S, P: integer;
begin
write('M = ');
readln(M);
write('N = ');
readln(N);
{ Вводим номер столбца: }
repeat
write('K = ');
readln(K)
until (K >= 1) and (K <= N);
S := 0; { Начальная сумма }
P := 1; { Начальное произведение }
randomize;
writeln('Случайная матрица ', M, 'x', N, ':');
for i := 1 to M do begin
for j := 1 to N do begin
a[i, j] := -10 + random(20);
write(a[i, j]:3);
if j = K then begin
S := S + a[i, j]; { Изменяем сумму }
P := P * a[i, j] { Изменяем произведение }
end
end;
writeln
end;
writeln;
writeln('Сумма элементов ', K, '-го столбца: ', S);
writeln('Произведение элементов ', K, '-го столбца: ', P);
readln
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**type** byte;
: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647
**procedure** Randomize;
: Инициализирует датчик псевдослучайных чисел.2)**procedure** Randomize(seed: integer);
: Инициализирует датчик псевдослучайных чисел, используя значение seed. При одном и том же seed генерируются одинаковые псевдослучайные последовательности.**function** Random(maxValue: integer): integer;
: Возвращает случайное целое в диапазоне от 0 до maxValue - 1.2)**function** Random(a,b: integer): integer;
: Возвращает случайное целое в диапазоне от a до b.3)**function** Random: real;
: Возвращает случайное вещественное в диапазоне [0..1). Matrix19. Дана матрица размера M × N. Для каждой строки матрицы найти сумму ее элементов.
var
A: array[1..10, 1..10] of integer;
i, j, M, N: byte;
S: integer;
begin
write('M = ');
readln(M);
write('N = ');
readln(N);
randomize;
writeln('Случайная матрица ', M, 'x', N, ':');
for i := 1 to M do begin
S := 0; { Сумма в начале строки }
for j := 1 to N do begin
a[i, j] := - 100 + random(200);
write(a[i, j]:4);
S := S + a[i, j]; { Увеличиваем сумму }
end;
writeln('Сумма: ':15, S) { Выводим сумму в конце строки }
end;
writeln;
readln
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**type** byte;
: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647
**procedure** Randomize;
: Инициализирует датчик псевдослучайных чисел.2)**procedure** Randomize(seed: integer);
: Инициализирует датчик псевдослучайных чисел, используя значение seed. При одном и том же seed генерируются одинаковые псевдослучайные последовательности.**function** Random(maxValue: integer): integer;
: Возвращает случайное целое в диапазоне от 0 до maxValue - 1.2)**function** Random(a,b: integer): integer;
: Возвращает случайное целое в диапазоне от a до b.3)**function** Random: real;
: Возвращает случайное вещественное в диапазоне [0..1). Matrix20. Дана матрица размера M × N. Для каждого столбца матрицы найти произведение его элементов.
var
A: array[1..10, 1..10] of integer;
i, j, M, N: byte;
S: integer;
begin
write('M = ');
readln(M);
write('N = ');
readln(N);
randomize;
{ Формируем и выводим матрицу: }
writeln('Случайная матрица ', M, 'x', N, ':');
for i := 1 to M do begin
for j := 1 to N do begin
a[i, j] := - 10 + random(20);
write(a[i, j]:4)
end;
writeln
end;
writeln;
writeln('Вычисляем произведение в каждом столбце:');
for j := 1 to N do begin { <-- внешний цикл по столбцам }
S := 1; { Произведение в начале столбца }
for i := 1 to M do { <-- внутренний цикл по строкам }
S := S * a[i, j]; { Произведение в j-м столбце }
{ Выводим произведение в конце столбца }
writeln(j, ') Произведение = ', S)
end;
readln
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**type** byte;
: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647
**procedure** Randomize;
: Инициализирует датчик псевдослучайных чисел.2)**procedure** Randomize(seed: integer);
: Инициализирует датчик псевдослучайных чисел, используя значение seed. При одном и том же seed генерируются одинаковые псевдослучайные последовательности.**function** Random(maxValue: integer): integer;
: Возвращает случайное целое в диапазоне от 0 до maxValue - 1.2)**function** Random(a,b: integer): integer;
: Возвращает случайное целое в диапазоне от a до b.3)**function** Random: real;
: Возвращает случайное вещественное в диапазоне [0..1). Matrix21. Дана матрица размера M × N. Для каждой строки матрицы с нечетным номером (1, 3, …) найти среднее арифметическое ее элементов. Условный оператор не использовать.
var
A: array[1..10, 1..10] of integer;
i, j, M, N: byte;
S: real;
begin
write('M = ');
readln(M);
write('N = ');
readln(N);
randomize;
{ Формируем и выводим матрицу: }
writeln('Случайная матрица ', M, 'x', N, ':');
for i := 1 to M do
begin
for j := 1 to N do
begin
a[i, j] := - 100 + random(200);
write(a[i, j]:4)
end;
writeln
end;
writeln;
writeln('Среднее арифметическое в нечетных строках:');
i := 1;
while i <= M do
begin
S := 0; { Сумма элементов в начале строки }
for j := 1 to N do
S := S + a[i, j]; { Увеличиваем сумму в i-й строке }
S := S / N; { Среднее арифметическое элементов i-й строки }
writeln(i, ') Среднее арифметическое = ', S:0:3);
i := i + 2 { Переходим на следующую нечетную строку }
end;
readln
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**type** byte;
: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255**type** real;
: Представляет число двойной точности с плавающей запятой.Размер: 8 байт Количество значащих цифр: 15 - 16 Диапазон значений: -1.8∙10308 .. 1.8∙10308
**procedure** Randomize;
: Инициализирует датчик псевдослучайных чисел.2)**procedure** Randomize(seed: integer);
: Инициализирует датчик псевдослучайных чисел, используя значение seed. При одном и том же seed генерируются одинаковые псевдослучайные последовательности.**function** Random(maxValue: integer): integer;
: Возвращает случайное целое в диапазоне от 0 до maxValue - 1.2)**function** Random(a,b: integer): integer;
: Возвращает случайное целое в диапазоне от a до b.3)**function** Random: real;
: Возвращает случайное вещественное в диапазоне [0..1). Matrix22. Дана матрица размера M × N. Для каждого столбца матрицы с четным номером (2, 4, …) найти сумму его элементов. Условный оператор не использовать.
var
A: array[1..10, 1..10] of integer;
i, j, M, N: byte;
S: integer;
begin
write('M = ');
readln(M);
write('N = ');
readln(N);
randomize;
{ Формируем и выводим матрицу: }
writeln('Случайная матрица ', M, 'x', N, ':');
for i := 1 to M do begin
for j := 1 to N do begin
a[i, j] := - 100 + random(200);
write(a[i, j]:4)
end;
writeln
end;
writeln;
writeln('Вычисляем сумму в четных столбцах:');
j := 2;
while j <= N do begin { <-- внешний цикл по столбцам }
S := 0; { Сумма в начале столбца }
for i := 1 to M do { <-- внутренний цикл по строкам }
S := S + a[i, j]; { Увеличиваем сумму в j-м столбце }
writeln(j, ') Сумма = ', S); { Выводим сумму в конце столбца }
j := j + 2 { Следующий четный номер }
end;
readln
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**type** byte;
: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647
**procedure** Randomize;
: Инициализирует датчик псевдослучайных чисел.2)**procedure** Randomize(seed: integer);
: Инициализирует датчик псевдослучайных чисел, используя значение seed. При одном и том же seed генерируются одинаковые псевдослучайные последовательности.**function** Random(maxValue: integer): integer;
: Возвращает случайное целое в диапазоне от 0 до maxValue - 1.2)**function** Random(a,b: integer): integer;
: Возвращает случайное целое в диапазоне от a до b.3)**function** Random: real;
: Возвращает случайное вещественное в диапазоне [0..1).