Практика программирования (Бейсик, Си, Паскаль)



         

Задачи, советы и ответы - часть 32


if (jb==kb) goto ma;

if (a[ja]<b[jb])goto ma;

mb:

c[jc]=b[jb];

jb++;

continue;

ma:

c[jc]=a[ja];

ja++;

} }

Программа 4_13.pas

program merge2;

uses Crt;

const

na=3 ;

nb=2 ;

a:array [0..na] of integer = (0,2,4,6);

b:array [0..nb] of integer = (1,3,5);

var

c:array [0..na+nb+l] of integer;

j:integer;

procedure merge(a,b:array of integer;var c:array of integer);

var

ja,jb,jc,na,nb,nc:integer;

label ma, mb;

begin

na:=High(a); ja:=0;

nb:=High(b);

jb:=0;

nc:=High(c);

if nc < na+nb+1 then begin

writeln('Массив с слишком мал');

exit;

end;

for jc:=0 to na+nb+1 do begin

if ja > na then goto mb;

if jb > nb then goto ma;

if a[ja] < b[jb] then goto ma;

mb:

с[jc]:=b[jb]; inc(jb);

continue;

ma:

с[j с]:=a[j a];

inc(j a};

end;

end;

begin clrscr;

for j:=0 to na do

write(a[j]:4);

writeln;

for j:=0 to nb do

write(b[j]:4) ;

writeln; merge(a,b,c);

for j:=0 to na+nb+1 do

write(c[j]:4) ;

readln; end.




Содержание  Назад