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


         

label ma, mb;


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.

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