Дан массив 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.

Объяснение кода листинга программы

  1. const m = 10;
    1. type matrix = array[1..m, 1..m] of integer;
    2. procedure write_neg(const x: matrix); var i, j: integer; found: boolean;
    3. var b: matrix; i, j, k, n, sum, min: integer; prod, average: extended; s: string; t: text;
    4. writeln('Сгенерированная матрица:');
    5. 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;
    6. sum := 0; for j := 1 to m div 2 do sum := sum + b[5, j * 2];
    7. writeln('Сумма элементов 5 строки, стоящих на чётных позициях = ', sum);
    8. write_neg(b);
    9. 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];
    10. writeln('Минимальный элемент матрицы = ', min);
    11. 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];
    12. writeln('Произведение элементов с чётной суммой индексов = ', prod:0:0);
    13. 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;
    14. if k > 0 then begin   average := average / k;   writeln('Среднее арифметическое положительных элементов главной диагонали = ', average:0:5)   end else writeln('Главная диагональ матрицы не содержит положительных элементов');
    15. repeat   write('n > 0;  n = ');   readln(n) until n > 0;
    16. sum := 0; repeat   sum := sum + n mod 10;   n := n div 10 until n = 0;
    17. writeln('Сумма цифр числа = ', sum);
    18. writeln('Введите текст, окончание ввода — точка:');
    19. 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5
Похожие ответы