mail9
?>

Дан двумерный массив . заменить минимальный элемент суммой всех элементов.текст программы в pascal.​

Информатика

Ответы

loa364

begin

 var (m, n) := ReadInteger2('Число строк и столбцов:');

 var a := MatrRandom(m, n, -99, 99);

 a.Println(5);

 Writeln;

 var t := a.ElementsWithIndices.MinBy(p -> p[0]);

 a[t[1], t[2]] := a.ElementsByRow.Sum;

 a.Println(5)

end.


Дан двумерный массив . заменить минимальный элемент суммой всех элементов.текст программы в pascal.​
merzlikinairena
Для того, чтобы эта программа заработала надо добавить перед описанием процедуры F следующую строчку:
procedure G(n: integer);forward;
Так как в процедуре F есть вызов процедуры G описанной дальше по тексту программы.
После исправления кода и запуска программы с F(12) получим 17 звездочек. По шагам это будет выглядеть так:

 Вызов процедуры F и выполнение
* n = 12
* n = 12
Вызов процедуры G и выполнение
* n = 11
* n = 11
Вызов процедуры F и выполнение
* n = 9
* n = 9
Вызов процедуры G и выполнение
* n = 8
* n = 8
Вызов процедуры Fи выполнение
* n = 6
* n = 6
Вызов процедуры G и выполнение
* n = 5
* n = 5
Вызов процедуры F и выполнение
* n = 3
* n = 3
Вызов процедуры G и выполнение
* n = 2
* n = 2
Вызов процедуры F и выполнение
* n = 0

Ниже записаны две рекурсивные функции (процедуры): f и g.сколько символов «звёздочка» будет напечата
aza2103
// PascalABC.Net 3.0, сборка 1064
const
  n = 10;
var
  ms: array[1..n] of string;
  t: string;
  i, j: integer;
  f: Text;
begin
  { Чтение матрицы из файла }
  Assign(f, 'in.txt'); Reset(f);
  for i := 1 to n do Readln(f, ms[i]);
  Close(f);
  { Вывод матрицы на экран }
  Writeln('*** Бинарная матрица ***');
  for i := 1 to n do Writeln(ms[i]);
  { Сортировка обменом (простейшая) }
  for i := 1 to n - 1 do
    for j := 1 to n - 1 do
      if ms[j] > ms[j + 1] then
      begin t := ms[j]; ms[j] := ms[j + 1]; ms[j + 1] := t end;
  { Поиск одинаковых строк }
  Writeln('Совпадающие строки');
  j := 1; t := ms[1];
  for i := 2 to n do
  begin
    if ms[i] = t then Inc(j)
    else begin
      if j > 1 then begin Writeln(t); j := 1 end;
      t := ms[i]
    end
  end;
  if j > 1 then Writeln(t)
end.

Контрольное решение:
*** Бинарная матрица ***
1 1 0 1 0 1 0 1 0 1
0 0 1 0 1 0 1 0 1 0
1 0 1 0 1 0 1 0 1 0
1 1 0 1 0 1 0 1 0 0
0 0 1 0 1 0 1 0 1 1
0 1 0 1 0 1 0 1 0 1
1 1 0 1 0 1 0 1 0 1
0 0 1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1 0 1
Совпадающие строки
0 0 1 0 1 0 1 0 1 0
0 1 0 1 0 1 0 1 0 1
1 0 1 0 1 0 1 0 1 0
1 1 0 1 0 1 0 1 0 1

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Дан двумерный массив . заменить минимальный элемент суммой всех элементов.текст программы в pascal.​
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

mashuska
perovd8111
Kati2005
zurabghiendzhoian886
Olifirenko119
Шарабанов
silantyevevgeny
kalina1372
kolgatin69
Васильевий
mekap22044
Альберт Луиза1595
bk4552018345
anechcak
alapay