Вопрос задан 06.10.2018 в 14:43. Предмет Информатика. Спрашивает Тудорович Влад.

12. Даны матрицы А(5,6) и В(5,6). Из максимальных элементов столбцов матрицы А сформировать вектор

С. Из минимальных элементов столбцов матрицы В сформировать вектор D. Если количество четных элементов в векторе С больше количества четных элементов в векторе D, то добавить вектор С в матрицу А 6-ой строкой, иначе объединить два вектора С и D в один М(12). Pascal ABC
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Мецкер Ника.
Var
  A, B: array [1 .. 6, 1 .. 6] of byte;
  C, D: array [1 .. 6] of byte;
  M: array [1 .. 12] of byte;
  i, j, MIN, MAX, evenCountC, evenCountD: byte;

begin
  randomize;
  for j := 1 to 6 do
  begin
    MAX := 0; MIN := 100;
    evenCountC := 0; evenCountD := 0;
    for i := 1 to 5 do
    begin
      A[i, j] := random(20);
      B[i, j] := random(20);
      if A[i, j] > MAX then MAX := A[i, j];
      if B[i, j] < MIN then MIN := B[i, j];
    end;
    C[j] := MAX;
    D[j] := MIN;
  end;
  writeln('      ***Матрица A***');
  for i := 1 to 5 do
  begin
    for j := 1 to 6 do write(A[i, j]:4);
    writeln;
  end;
  writeln;
  writeln('      ***Матрица B***');
  for i := 1 to 5 do
  begin
    for j := 1 to 6 do write(B[i, j]:4);
    writeln;
  end;
  writeln;
  writeln('***Вектор C***');
  for i := 1 to 6 do
  begin
    writeln(C[i]:7);
    if C[i] mod 2 = 0 then evenCountC := evenCountC + 1;
  end;
  writeln('Количество четных элементов в векторе C = ', evenCountC);
  writeln;
  writeln('***Вектор D***');
  for i := 1 to 6 do
  begin
    writeln(D[i]:7);
    if D[i] mod 2 = 0 then evenCountD := evenCountD + 1;
  end;
  writeln('Количество четных элементов в векторе D = ', evenCountD);
  if evenCountC > evenCountD then
  begin
    writeln('Добавляем вектор C к матрице A.');
    for i := 1 to 6 do A[6, i] := C[i];
    writeln('  ***Измененная матрица A***');
    for i := 1 to 6 do
    begin
      for j := 1 to 6 do write(A[i, j]:4);
      writeln;
    end;
  end
  else
  begin
    writeln('Объединяем два вектора C и D.');
    writeln('Новый вектор M');
    for i := 1 to 6 do M[i] := C[i];
    for i := 7 to 12 do M[i] := D[i - 6];
    for i := 1 to 12 do writeln(M[i]:7);
  end;
  readln;
end.


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, давайте разберем задачу.

1. Создадим матрицы A и B:

```pascal const rows = 5; cols = 6;

var A, B: array[1..rows, 1..cols] of integer; ```

2. Заполним матрицы случайными значениями:

```pascal procedure FillMatrix(var M: array of array of integer); var i, j: integer; begin for i := 1 to rows do for j := 1 to cols do M[i, j] := Random(100); // случайные значения от 0 до 99 end; ```

3. Теперь заполним матрицы A и B:

```pascal FillMatrix(A); FillMatrix(B); ```

4. Найдем максимальные и минимальные элементы столбцов:

```pascal var C, D: array[1..cols] of integer; i, j: integer;

// Инициализация векторов C и D for j := 1 to cols do begin C[j] := A[1, j]; // начальное значение для сравнения D[j] := B[1, j];

for i := 2 to rows do begin if A[i, j] > C[j] then C[j] := A[i, j];

if B[i, j] < D[j] then D[j] := B[i, j]; end; end; ```

5. Подсчитаем количество четных элементов в векторах C и D:

```pascal var countC, countD: integer;

countC := 0; countD := 0;

for j := 1 to cols do begin if C[j] mod 2 = 0 then Inc(countC);

if D[j] mod 2 = 0 then Inc(countD); end; ```

6. В зависимости от условия добавим вектор C в матрицу A или объединим векторы C и D:

```pascal if countC > countD then begin // Добавить вектор C в матрицу A for j := 1 to cols do A[6, j] := C[j]; end else begin // Объединить векторы C и D в один вектор M var M: array[1..12] of integer;

// Копировать вектор C в начало вектора M for j := 1 to cols do M[j] := C[j];

// Копировать вектор D в конец вектора M for j := 1 to cols do M[j + cols] := D[j]; end; ```

Это основной код задачи, который выполняет описанные в задаче действия. Не забудьте объявить переменные и проинициализировать их перед использованием.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос