Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Aresson
1 / 1 / 2
Регистрация: 03.01.2014
Сообщений: 5
1

Замена строки одной матрицы строкой другой матрицы

03.01.2014, 17:30. Просмотров 948. Ответов 2
Метки нет (Все метки)

Прошу помощи в ещё одной задаче:
Ввести квадратные матрицы X1N×M , X2N×M. Заменить первой строкой одной матрицы первую строку другой матрицы. Матрица, строка которой будет дублирована в другой матрице, определяется минимальным значением (у какой матрицы минимальный элемент меньше – та и является донором, т.е. источником). Матрицы вывести до и после преобразования вместе со значением их минимумов. (При решении реализовать процедуры ввода и вывода массивов: Vvod2m(A,N,M,Name), Vivod2m(A,N,M,Name); а также
функцию Minimum(A,N,M):<тип массива> – минимум матрицы; и процедуру Zamena(A1,A2,M,Str) – замена строки номер Str в матрице A1 строкой Str в матрице A2)

Остановился после поиска минимума, дальше идей нет

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
program lab42;
 
const MaxRazm = 10;
type T2m=array[1..MaxRazm,1..MaxRazm] of integer;
     TName=string[5];
var X1,X2:T2m;
  N,M:byte;
  min1,min2:integer;
  
// ввод двумерного массива
procedure Vvod2m(var A:T2m; var N,M:byte; const Name:TName);
var i,j:byte;
begin
  writeln('Ввод массива ', Name,':');
  write('введите количество строк N=');
  readln(N);
  write('введите количество столюцов M=');
  readln(M);
  for i:=1 to N do
    for j:=1 to M do
    begin
      write(Name,'[',i,',',j,']=');
      readln(A[i,j]);
    end;
end;
  
// вывод двумерного массива
procedure Vivod2m(const A:T2m; const N,M:byte; const Name:TName);
var i,j:byte;
begin
  writeln('вывод массива ', Name,':');
  for i:=1 to N do
  begin
    for j:=1 to M do
      write(A[i,j]:5);
      writeln;
    end;
end;
 
// поиск минимума в двумерном массиве
function Minimum(const A:T2m; N,M:byte):integer;
var max:integer;
    i,j:byte;
begin
  min:=999;
  for i:=1 to N do
      if A[i,j]<min then
        min:=A[i,j];
  Minimum:=min;
end;
Благодарю заранее
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2014, 17:30
Ответы с готовыми решениями:

Вывести на печать исходный массив в виде матрицы и средние арифметические каждой строки матрицы с указанием номера строки
О великие знатоки паскаля, прошу у вас помощи Задача : Ввести двумерный...

Заменить минимальный элемент одной матрицы на минимальный другой
Доброго времени суток многоуважаемые.Вот лабараторная работа немогу...

Слить две строки, вставив символы одной строки между символами другой строки
Строка a из n символов лексикографически меньше строки b из n символов, если...

Переставить местами две любые строки матрицы; два любых столбца матрицы.
Дан Двумерный массив. Составить программу, которая: а) переставляет две любые...

Обнулить все элементы строки и столбца матрицы, на пересечении которых находится максимальный элемент матрицы
Определить максимальный элемент в произвольно заданной матрице Z размером m x n...

2
Aresson
1 / 1 / 2
Регистрация: 03.01.2014
Сообщений: 5
08.01.2014, 14:07  [ТС] 2
наверх
0
Aresson
1 / 1 / 2
Регистрация: 03.01.2014
Сообщений: 5
12.01.2014, 21:11  [ТС] 3
Разобрался сам. Вдруг кому-то понадибится:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
program lab42;
 
const
  MaxRazm = 10;
 
type
  T2m = array[1..MaxRazm, 1..MaxRazm] of integer;
  TName = string[5];
 
var
  X1, X2: T2m;
  N, M: byte;
  min1, min2: integer;
// ввод двумерного массива
procedure Vvod2m(var A: T2m; var N, M: byte; const Name: TName);
var
  i, j: byte;
begin
  writeln('Ввод массива ', Name);
  write('Введите количество строк: ');
  readln(N);
  write('Введите количество столбцов: ');
  readln(M);
  for i := 1 to N do
    for j := 1 to M do
    begin
      write(Name, '[', i, ',', j, ']=');
      readln(A[i, j]);
    end;
  writeln;
end;
 
// вывод двумерного массива
procedure Vivod2m(const A: T2m; const N, M: byte; const Name: TName);
var
  i, j: byte;
begin
  writeln;
  writeln('Массив ', Name, ':');
  for i := 1 to N do
  begin
    for j := 1 to M do
      write(A[i, j]:5);
    writeln;
  end;
end;
 
// поиск минимума в двумерном массиве
function Minimum(const A: T2m; N, M: byte): integer;
var
  min, imin, jmin: integer;
  i, j: byte;
begin
  imin := 1;
  jmin := 1;
  min := a[1, 1];
  for i := 1 to N do
    for j := 1 to M do
      if a[i, j] < min then
      begin
        min := a[i, j];
        imin := i;
        jmin := j;
      end;
  Minimum := min;
end;
 
// замена  матрицы
procedure Zamena(var A1, A2: T2m; M: byte);
var
  i, j: byte;
begin
  for i := 1 to 1 do
    for j := 1 to m do
      a1[1, j] := a2[1, j];
end;
 
//Тело основной программы
begin
  //Ввод массивов
  Vvod2m(x1, m, n, 'X1');
  Vvod2m(x2, m, n, 'X2');
  //Вывод исходных массивов
  write('Вывод исходных массивов');
  Vivod2m(x1, m, n, 'X1');
  Vivod2m(x2, m, n, 'X2');
  //Поиск минимумов
  min1 := Minimum(x1, n, m);
  min2 := Minimum(x2, n, m);
  writeln;
  writeln('Минимум в массиве Х1 равен ', min1);
  writeln('Минимум в массиве Х2 равен ', min2);
  //Замена строки
  if (min1 = min2) then
  begin
    writeln;
    writeln('Минимумы в матрицах равны,');
    writeln('преобразование невозможно');
  end
  else 
  begin
    if (min1 < min2) then
    begin
      Zamena(x2, x1, m);
    end
    else
      Zamena(x1, x2, m);
    //Вывод преобразованных массивов
    writeln;
    write('Вывод преобразованных массивов');
    Vivod2m(x1, m, n, 'X1');
    Vivod2m(x2, m, n, 'X2');
  end;
end.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2014, 21:11

Создать новую матрицу так, чтобы строки новой матрицы являлись столбцами исходной матрицы
Создать новую матрицу так,чтобы строки новой матрицы являлись столбцами...

Сформировать новый текст, в котором все такие строки заменены другой заданной строкой
Помогите написать программу для универа.. Задание 5.6. а) Определить ...

Получите новую матрицу путём умножения минимума строки первой матрицы на максимум столбца второй матрицы
Пусть даны две вещественные матрицы порядка n. Получите новую матрицу следующим...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru