ПОдчеркнул в одном...

Тема в разделе "Информатика", создана пользователем Felinka, 2 апр 2010.

  1. Felinka

    Felinka New Member

    ПОдчеркнул в одном месте не знаю как вывести с помощью какой переменной. ПЛюс если есть ошибки пишите Сама задача: Даны 2 массиваодномерных, надо их по отдельности упорядочить(они могут быть уже исходно упорядочены по воздрастунию или один из них), затем слить эти массивы в третий массив тоже по возростанию. ВЫвести готовый массив.
     
  2. Radio73

    Radio73 New Member

    program szs;
    type mas100=array[1..100] of integer;
    var a, b, c:mas100;
    na, nb, i:integer;

    procedure sort(var a: mas100; n:integer);
    var i, k:integer;
    temp:integer;
    begin
      for i:= n downto 2 do
        for k:=1 to i-1 do
          if a[k]>a[k+1] then begin
            r:=a[k];
            a[k]:=a[k+1];
            a[k+1]:= r;
          end;
    end;

    procedure merge(var a:mas100; na:integer; var b:mas100; nb:integer; var c:mas100);
    var ia, ib, ic, j, ici:integer;
    begin
      ia:=1;
      ib:=1;
      ic:=1;
      while (ia<=na) or (ib<=nb) do begin
        if (a[ia]<=b[ib]) or (ib>nb) then begin
          c[ic]:=a[ia];
          ia:=ia +1;
        end
        else begin
          c[ic]:=b[ib];
          ib:=ib+1
        end;
        ic:=ic+1;
      end;
    end;

    procedure get_mas(var a:mas100; var n:integer)
    begin
      writeln ('Введите количество элементов массива, нажмите клавишу "Enter", затем введите последовательно все элементы массива' );
      read (n);
      for i:=1 to n do
        readln(a);
    end;

    begin
      get_mas(a,na);
      get_mas(b,nb);
     
      sort (a, na); { сортировка и есть проверка }
      sort (b, nb);
      merge(a,na, b, nb, c);
      Writeln ('Получившийся отсортированный массив');
      for i:=1 to na+nb do
        write (c, ' ')
    end.
     

Поделиться этой страницей

Наша группа