Помощь - Поиск - Пользователи - Календарь
Полная версия: [Pascal]Матрица
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
fly
Помгите с задачкой плиз.Условие такое:
Вводятся два массива символов MxK и MxT.Объединить их слобцы так,чтобы в массиве-результате в первой строке элементы получились упорядоченными по возрастающей.

Пример
Вводится массив MxK размером 2x2

1 2
3 4

Вводится массви MxT размером 2x4

1 2 3 4
5 6 7 8

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


Вот пытылся делать,но застопорился после ввода данных.Подскажите что делать после ввода данных?


var
a:array[1..10,1..10] of integer;
b:array[1..10,1..10] of integer;
c:array[1..100,1..50] of integer;
n,m,k,z,f,i,j:integer;
begin
n:=2;
m:=6;
writeln('vvodite kol-vo stolbcov massiva A');
readln(k);
for i:=1 to n do
writeln('vvodite kolichestvo stolbcov massiva B');
readln(z);
for i:=1 to n do
begin
for i:=1 to n do
writeln('vvodite',k,'chisel');
for i:=1 to n do begin
for j:=1 to n do begin
Write('...');
Read(a[i,j])
end;
writeln('vvodite',z,'chisel');
for i:=1 to n do begin
for j:=1 to n do begin
Write('...');
Read(B[i,j]);
end;
end;


Sto
Напиши результат для этого примера. Или уточни задание, а то ничего не понятно что куда копировать.
Bard
Цитата

Напиши результат для этого примера. Или уточни задание, а то ничего не понятно что куда копировать.


да точно yes2.gif ... объясни задачу толком... norespect.gif
fly
С клавилатуры должно вводится два массива MxK и MxT.Размерность этих массивов мы должны указывать сами.Элементы этих двух массиов мы должны скопировать по возрастающей в другой(Третий) массив,но только в первую строку.Размерность третьего массива вводится с клавилатры не должна.

Приведу пример:
Вводится размер массива A(MxK)
Вводится размер массива B(MxT)
Вводятся элементы массива A(MxK)
Вводятся элементы массива B(MxT)
Элементы массивов A(MxK) и B(MxT) копирются по возрастающей в первую строку третьего массива.

Я пытылся делать,но застрял после ввода данных.Подскажите что нужно делать после ввода данных?
Sto
Копируеш все значения в первую строку 3-го масива и упорядочиваеш его по возрастанию.

P.S.: Может это и не правильное решение потому что, условие до конца я так и не понял.
мисс_граффити
Сортировка слиянием.
Поищи по форуму...
Только придется таскать столбцы целиком, а не отдельные элементы.
fly
Вот что у меня получилось,но почемуто ничего не работает.Скажите где я ошибаюсь?


Type
arrType=array[1..50,1..50] of integer;
var
a:array[1..10,1..10] of integer;
b:array[1..10,1..10] of integer;
n:Integer;
p,m,k,z,f,i,j,t:integer;
d:arrType;
Procedure merge(Var ar: arrType);
Procedure Slit( k, q: Integer );
begin
p:=2;
m:=6;
writeln('vvodite kol-vo stolbcov massiva A');
readln(k);
for i:=1 to p do
writeln('vvodite kolichestvo stolbcov massiva B');
readln(z);
for i:=1 to p do
begin
for i:=1 to p do
writeln('vvodite',k,'chisel');
for i:=1 to p do begin
for j:=1 to p do begin
Write('...');
Read(a[i,j])
end;
writeln('vvodite',z,'chisel');
for i:=1 to p do begin
for j:=1 to p do begin
Write('...');
Read(B[i,j]);
end;
end;
begin
m := k + (q-k) div 2;
i := k; j := Succ(m); t := 1;
While (i <= m) and (j <= q) Do Begin
If ar[j] <= ar[j] Then Begin
d[T] := ar[i,j]; Inc(i,j)
end
Else Begin
d[T] := ar[j]; Inc(j)
end;
Inc(T)
end;
While i <= m Do Begin
d[T] := ar[j]; Inc(j); Inc(T)
end;
For i := 1 to Pred(T) Do
ar[Pred(k+i)] := d[i]
end;
Procedure Sort(i, j: Integer);
Var T: integer
begin
If i >= j Then Exit;
If j-i = 1 Then Begin
If ar[j] < ar[i] Then Begin
T := ar[i]; ar[i] := ar[j]; ar[j] := T
end
end
Else Begin
Sort(i, i + (j-i) div 2);
Sort(i + (j-i) div 2 + 1, j);
Slit(i, j)
end;
end;
Begin
Sort(1, n);
end;
writeln(Sort(1, n));
end.



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