Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 11.10.2017
Сообщений: 18
1

Реализовать в виде модуля набор подпрограмм для выполнения действий над матрицами

13.12.2017, 14:21. Показов 1426. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Реализовать в виде модуля набор подпрограмм для выполнения следующих действий над матрицами:
1) объединение двух матриц с одинаковым числом столбцов в одну матрицу: матрица B(L,M) присоединяется снизу к матрице A(N,M), в результате получается матрица R(L+N,M);
2)объединение двух матриц с одинаковым числом строк в одну матрицу: матрица B(N,L) присоединяется справа к матрице A(N,M), в результате получается матрица R(N,M+L);
3)Сортировка элементов строк матрицы по возрастанию;
4)Сортировка элементов столбцов матрицы по убыванию;
5)вывод элементов матрицы в общепринятом виде;
Используя этот модуль решить следующие задачи:
А) объединить две матрицы с одинаковым числом столбцов в одну матрицу и в полученной матрицы упорядочить элементы строк по возрастанию;
В)Объединить две матрицы с одинаковым числом строк в одну матрицу и в полученной матрице упорядочить элементы столбцов по убыванию;
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.12.2017, 14:21
Ответы с готовыми решениями:

Реализовать в виде модуля набор подпрограмм для выполнения операций над векторами
Доброе время суток. Прошу помощи опытных людей. Задача на Паскале по теме "Модули" Реализовать в...

Реализовать в виде модуля набор подпрограмм для выполнения операций над комплексными числами
1) Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над комплексными...

Реализовать в виде модуля набор подпрограмм для выполнения над обыкновенными дробями вида P/Q
4.1 Реализовать в виде модуля набор подпрограмм для выполнения над обыкновенными дробями вида P/Q...

Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над одномерными массивами
Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над одномерными...

3
Почетный модератор
64305 / 47600 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
13.12.2017, 14:37 2
Паскаль-то хоть какой?
0
0 / 0 / 0
Регистрация: 11.10.2017
Сообщений: 18
13.12.2017, 18:36  [ТС] 3
обычный

Добавлено через 25 секунд
turbo или free
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7795 / 4618 / 2830
Регистрация: 22.11.2013
Сообщений: 13,113
Записей в блоге: 1
13.12.2017, 23:58 4
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Задания немного нелогичны, для вертикального объединения имело смысл сортировать столбцы, для горизонтального -- строки. Тем не менее:
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
unit mtx;
interface
type
  TMatrix = array of array of Integer;
  TLessFunc = function (a, b: Integer): Boolean;
 
procedure mVCat(const a, b: TMatrix; var r: TMatrix);
procedure mHCat(const a, b: TMatrix; var r: TMatrix);
procedure mVSort(var a: TMatrix; IsLess: TLessFunc);
procedure mHSort(var a: TMatrix; IsLess: TLessFunc);
 
function Less(a, b: Integer): Boolean;
function More(a, b: Integer): Boolean;
 
implementation
function Less(a, b: Integer): Boolean; begin Less:=a<b end;
function More(a, b: Integer): Boolean; begin More:=a>b end;
procedure mVCat(const a, b: TMatrix; var r: TMatrix);
var i, j: Integer;
begin
  if High(a[0]) <> High(b[0]) then RunError(201);
  SetLength(r, High(a)+High(b)+2, High(a[0])+1);
  for i:=0 to High(a) do for j:=0 to High(a[0]) do r[i,j]:=a[i,j];
  for i:=0 to High(b) do for j:=0 to High(b[0]) do r[i+High(a)+1,j]:=b[i,j];
end;
procedure mHCat(const a, b: TMatrix; var r: TMatrix);
var i, j: Integer;
begin
  if High(a) <> High(b) then RunError(201);
  SetLength(r, High(a)+1, High(a[0])+High(b[0])+2);
  for i:=0 to High(a) do for j:=0 to High(a[0]) do r[i,j]:=a[i,j];
  for i:=0 to High(b) do for j:=0 to High(b[0]) do r[i,j+High(a[0])+1]:=b[i,j];
end;
procedure mVSort(var a: TMatrix; IsLess: TLessFunc);
var j: Integer;
  procedure VSort;
  var i, n, nn: Integer; t: Integer;
  begin
    nn:=High(a);
    repeat
      n:=nn; nn:=0;
      for i:=0 to n-1 do
        if IsLess(a[i+1,j],a[i,j]) then begin
          t:=a[i+1,j]; a[i+1,j]:=a[i,j]; a[i,j]:=t; nn:=i;
        end;
    until nn=0;
  end;
begin
  for j:=0 to High(a[0]) do VSort;
end;
procedure mHSort(var a: TMatrix; IsLess: TLessFunc);
var i: Integer;
  procedure HSort;
  var j, n, nn: Integer; t: Integer;
  begin
    nn:=High(a[0]);
    repeat
      n:=nn; nn:=0;
      for j:=0 to n-1 do
        if IsLess(a[i,j+1],a[i,j]) then begin
          t:=a[i,j+1]; a[i,j+1]:=a[i,j]; a[i,j]:=t; nn:=j;
        end;
    until nn=0;
  end;
begin
  for i:=0 to High(a) do HSort;
end;
procedure mWrite(const a: TMatrix; const s: String; W: Integer = 7);
var i, j: Integer;
begin
  if s<>'' then WriteLn(s);
  for i:=0 to High(a) do begin
    for j:=0 to High(a[0]) do Write(' ',a[i,j]:W); WriteLn;
  end;
end;
procedure mGen(var a: TMatrix; r, c, u, v: Integer);
var i, j: Integer;
begin
  SetLength(a, r, c);
  for i:=0 to r-1 do for j:=0 to c-1 do a[i,j]:=u+Random(v);
end;
 
end.
Pascal
1
2
3
4
5
6
7
8
9
var a, b, r: TMatrix;
begin
  Randomize;
  mGen(a,5,5,0,100); mWrite(a,'A =');
  mGen(b,5,5,0,100); mWrite(b,'B =');
  mVCat(a,b,r); mHSort(r,@Less); mWrite(r,'A/B =');
  mHCat(a,b,r); mVSort(r,@More); mWrite(r,'A|B =');
  Write('Press Enter...'); ReadLn;
end.
0
13.12.2017, 23:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.12.2017, 23:58
Помогаю со студенческими работами здесь

Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над комплексными числами
Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над комплексными...

Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над обыкновенными дробями вида P/Q
Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над обыкновенными...

Реализуйте в виде модуля набор подпрограмм для выполнения операций над четырехугольниками
Реализуйте в виде модуля набор подпрограмм для выполнения следующих операций над...

Реализовать в виде модуля набор подпрограмм для выполнения операций со строками
Реализовать в виде модуля набор подпрограмм для выполнения следующих операций со строками: 1)....


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru