Помощь - Поиск - Пользователи - Календарь
Полная версия: [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.



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