valord
1

Турбопаскаль.Двумерные массивы.Из двух матриц составить третью предвариельно сортируя перед занесением в 3 матрицу.

04.06.2009, 12:06. Показов 1316. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые господа разбирающиеся в паскале прошу вас помочь с программой над которой бьюсь уже несколько дней.
Даны два массива чисел размером М*К(матрица А) и М*Т(матрица B). Объединить их столбцы так, чтобы в массиве-результате (M*(K+T))(матрица С) в первой строке элементы получились упорядоченными по возрастанию.Числа вводятся с клавиатуры.
Пример:смотреть в конец сообщения.
Метод решения:
1 шаг.Берем первый столбец из матрицы А и первый столбец из матрицы B,заносим их в матрицу С с условием, что первым должен стоять столбец той матрицы у которой первый эелемент в первой строчке меньше чем первый элемент в первой строчке другой матрицы.
В примере мы взяли 1 столбец из А и первый столбец из B,занесли их в С отсортировав и получив в результате в С на этом шаге следующую матрицу
-3 1
9 7
2 шаг.Дальше мы сравниваем элементы из 1 строки матрицы А с первой строкой матрицы С и в зависимости от результата сравнения заносим столбец из А в матрицу С.После этого сравнения в С на этом шаге должна получится матрица
-3 1 2
9 7 8
3 шаг.Проделываем те же действия но уже для B и для С,в итоге должна получится результирующая матрица С показанная на картинке.
Код:


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
115
uses crt;
var
h,y,k,t,m,z,x,i,j,mina,minb,kt,ka,kb:integer;
pa,pb:string;
a:array [1..6,1..6] of integer;
b:array [1..6,1..6] of integer;
c:array [1..6,1..12] of integer;
begin
clrscr;
writeln('kolichestvo strok v matricax a i b - celoe chislo<=6');
read(m);
writeln('kolichestvo stolbcov v matrice a - celoe chislo<=6');
read(t);
writeln('chislo strok v oboix matricax = ',m);
writeln('chislo stolbcov v matrice a = ',t);
 if (m>=1) and (m<=6) and (t>=1) and (t<=6) then
 begin
 writeln('znachenie elementov matrici - celie chisla');
  for i:=1 to m do
  begin
   for j:=1 to t do
   begin
   write('a[',i,',',j,']=');
   read(a[i,j]);
   end;
  end;
  for i:=1 to m do
  begin
   for j:=1 to t do
   write(a[i,j]:3);
   writeln;
  end;
 end
 else
writeln('oshibka!chislo strok ili stolbcov matrici menshe 1 ili bolshe 6');
writeln('kolichestvo stolbcov v matrice b - celoe chislo<=6');
read(k);
writeln('chislo strok v oboix matricax = ',m);
writeln('chislo stolbcov v matrice a = ',k);
 if (m>=1) and (m<=6) and (k>=1) and (k<=6) then
 begin
 writeln('znachenie elementov matrici - celie chisla');
  for i:=1 to m do
  begin
   for j:=1 to k do
   begin
   write('b[',i,',',j,']=');
   read(b[i,j]);
   end;
  end;
  for i:=1 to m do
  begin
   for j:=1 to k do
   write(b[i,j]:3);
   writeln;
  end;
  end
  else
writeln('oshibka!chislo strok ili stolbcov matrici menshe 1 ili bolshe 6');
writeln('matr c');
kt:=2;
 
 
 
 
if a[1,1]<=b[1,1] then
begin
for h:=1 to m do
 
begin
c[h,1]:=a[h,1];
c[h,2]:=b[h,1];
end;
end
else
begin
for h:=1 to m do
begin
c[h,1]:=b[h,1];
c[h,2]:=a[h,1];
end;
end;
 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
kt:=kt+t-1;
for i:=2 to t do
for z:=1 to kt do
if (a[1,i]<=c[1,z]) and (a[1,i]<=c[1,kt]) then
begin
for j:=1 to m do
begin
c[j,kt+1]:=c[j,kt];                                  
c[j,z+1]:=c[j,z];                                    
c[j,z]:=a[j,i];                                      
kt:=kt+1;                                            
end;                                                 
end                                                  
else                                                 
for j:=1 to m do                                     
begin                                                
c[j,kt+1]:=a[j,i];                                   
kt:=kt+1;                                            
end;                                                 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
  y:=k+t;
   for i:=1 to m do
  begin
   for j:=1 to y do
   write(c[i,j]:3);
   writeln;
  end;
 
  readkey;
  end.
Прошу найти и исправить ошибку в коде программы представляющем второй шаг достижения конечного результата(кусок кода выделен восклицательными знаками).
Заранее спасибо за помощь.
Миниатюры
Турбопаскаль.Двумерные массивы.Из двух матриц составить третью предвариельно сортируя перед занесением в 3 матрицу.  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2009, 12:06
Ответы с готовыми решениями:

На основе двух заданных матриц сформировать третью матрицу
Даны матрицы А(3х4) и С(3х4), элементы которых вычисляются по формулам: ...

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

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

Двумерные массивы: найти сумму двух матриц
Найти сумму двух матриц. Ввод массива организовать с использованием собственных компонентов.

2
2 / 1 / 0
Регистрация: 30.05.2009
Сообщений: 22
04.06.2009, 16:11 2
обьединяешь матрицы в третюю.
А уже потом сортируешь в полученной матрице числа!
0
valord
05.06.2009, 18:04 3
Я тоже хотел так сделать и сделал,но когда показал преподавателю она сказала с пеной у рта что так делать нельзя и надо так как в том сообщении,которое я здесь разместил.
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2009, 18:04
Помогаю со студенческими работами здесь

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

Из двух квадратных матриц создать третью, перемножив элементы первых двух согласно условию
Для двух квадратных матриц нужно создать третюю матрицу, элементы которой которой должны равняться...

Из двух матриц сформировать третью
Даны две прямоугольные целочисленные матрицы А и В одинакового размера m x п. Создать матрицу того...

Из двух матриц сформировать третью
Заданы две матрицы A и B размерности NxN. Сформировать из них прямоугольную матрицу X размером ,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru