Дан массив B = [i, j], Выполните задание с указанными условиями - Pascal ABC
Формулировка задачи:
Дан массив B = [ {b [i, j] }, i=1,10; j=1,10 ]
(элементы выбираются случайным образом):
1. Посчитать сумму элементов 5 строки, стоящих на четных позициях
2. * Вывести все отрицательные элементы массива - этот пункт выполнить в виде подпрограммы.
3. Найти min-элемент.
4. Найти произведение элементов, стоящих на местах с четной суммой индексов.
5. Найти среднюю величину положительных элементов главной диагонали.
6. Дано целое положительное число. Определите сумму цифр в числе.
7. С клавиатуры вводиться текст. Слова разделяются пробелом. Ввод текста прекращается после нажатия на клавиатуре точки. Выдайте на экран введенный текст, удалив из него все вхождения буквы «а».
Если невозможно выполнить тот или иной пункт, то необходимо выдать соответствующее сообщение (7 пункт!!)
Решение задачи: «Дан массив B = [i, j], Выполните задание с указанными условиями»
textual
Листинг программы
const m = 10; type matrix = array[1..m, 1..m] of integer; procedure write_neg(const x: matrix); var i, j: integer; found: boolean; begin writeln('Отрицательные элементы матрицы:'); found := false; for i := 1 to m do for j := 1 to m do if x[i, j] < 0 then begin write(x[i, j]:4); found := true end; if not found then write('Массив не содержит отрицательных элементов'); writeln end; var b: matrix; i, j, k, n, sum, min: integer; prod, average: extended; s: string; t: text; begin writeln('Сгенерированная матрица:'); for i := 1 to m do begin for j := 1 to m do begin b[i, j] := -99 + random(199); write(b[i, j]:4) end; writeln end; sum := 0; for j := 1 to m div 2 do sum := sum + b[5, j * 2]; writeln('Сумма элементов 5 строки, стоящих на чётных позициях = ', sum); write_neg(b); min := b[1, 1]; for i := 1 to m do for j := 1 to m do if b[i, j] < min then min := b[i, j]; writeln('Минимальный элемент матрицы = ', min); prod := 1; for i := 1 to m do for j := 1 to m do if not odd(i + j) then prod := prod * b[i, j]; writeln('Произведение элементов с четной суммой индексов = ', prod:0:0); k := 0; average := 0; for i := 1 to m do if b[i, i] > 0 then begin average := average + b[i, i]; inc(k) end; if k > 0 then begin average := average / k; writeln('Среднее арифметическое положительных элементов главной диагонали = ', average:0:5) end else writeln('Главная диагональ матрицы не содержит положительных элементов'); repeat write('n > 0; n = '); readln(n) until n > 0; sum := 0; repeat sum := sum + n mod 10; n := n div 10 until n = 0; writeln('Сумма цифр числа = ', sum); writeln('Введите текст, окончание ввода - точка:'); assign(t, 'temp.tmp'); rewrite(t); repeat readln(s); if pos('.', s) > 0 then begin s := s + ' '; delete(s, pos('.', s) + 1, length(s)) end; writeln(t, s) until pos('.', s) > 0; close(t); writeln('Текст без символов "a":'); reset(t); while not eof(t) do begin readln(t, s); while pos('a', s) > 0 do delete(s, pos('a', s), 1); writeln(s) end; close(t); erase(t); write('Нажмите <Enter> для выхода из программы'); readln end.
Объяснение кода листинга программы
- const m = 10;
- type matrix = array[1..m, 1..m] of integer;
- procedure write_neg(const x: matrix); var i, j: integer; found: boolean;
- var b: matrix; i, j, k, n, sum, min: integer; prod, average: extended; s: string; t: text;
- writeln('Сгенерированная матрица:');
- for i := 1 to m do begin for j := 1 to m do if x[i, j] < 0 then begin write(x[i, j]:4) found := true end; writeln end;
- sum := 0; for j := 1 to m div 2 do sum := sum + b[5, j * 2];
- writeln('Сумма элементов 5 строки, стоящих на чётных позициях = ', sum);
- write_neg(b);
- min := b[1, 1]; for i := 1 to m do for j := 1 to m do if b[i, j] < min then min := b[i, j];
- writeln('Минимальный элемент матрицы = ', min);
- prod := 1; for i := 1 to m do for j := 1 to m do if not odd(i + j) then prod := prod * b[i, j];
- writeln('Произведение элементов с чётной суммой индексов = ', prod:0:0);
- k := 0; average := 0; for i := 1 to m do if b[i, i] > 0 then begin average := average + b[i, i]; inc(k) end;
- if k > 0 then begin average := average / k; writeln('Среднее арифметическое положительных элементов главной диагонали = ', average:0:5) end else writeln('Главная диагональ матрицы не содержит положительных элементов');
- repeat write('n > 0; n = '); readln(n) until n > 0;
- sum := 0; repeat sum := sum + n mod 10; n := n div 10 until n = 0;
- writeln('Сумма цифр числа = ', sum);
- writeln('Введите текст, окончание ввода — точка:');
- assign(t, 'temp.tmp');
open(t);
repeat
readln(s);
if pos('.', s) > 0 then begin
s := s + ' ';
delete(s, pos('.', s) + 1, length(s))
end;
writeln(t, s)
until pos('.', s) > 0;
close(t);
writeln('Текст без символов
a
:'); reset(t); while not eof(t) do begin readln(t, s); while pos('a', s) > 0 do delete(s, pos('a', s), 1); writeln(s) end; close(t); erase(t); write('Нажмитедля выхода из программы'); readln
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д