1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| program fusion;
uses crt;
var
T1,T2:array [1..50] of integer;
T3:array[1..50] of integer;
N,N1,N2:integer;
procedure testtaille(N:integer);
label a;
begin
a:write('donnez la taille du tableau');
read(N);
if (N<1) or (N>50) then begin
write('erreur');
goto a;
end;
end;
procedure remplissage(var T:array [1..50] of integer; N:integer);
var
i:integer;
begin
for i:=1 to N do begin
write('donnez la',i,'valeur');
read(T[i]);
end;
end;
procedure affichage(T:array [1..50] of integer;N:integer);
var
i:integer;
begin
for i:=1 to N do begin
write('la',i,'valeur est',T[i]);
end;
end;
procedure tri(var T:array [1..50] of integer;N:integer);
var
i,min,posmin,j:integer
begin
for i:=1 to N-1 do begin
min:=T[i],posmin:=i;
for j:=i+1 to N do begin
if min>T[j] then begin
min:=T[j];
posmin:=j;
end;
end;
if posmin<>i then begin
T[posmin]:=T[i];
T[i]:=min;
end;
end;
end;
procedure fus(T,V:array [1..50] of integer;N,M:integer;TF:array [1..100] of integer);
var
i,j,k:integer;
begin
i:=1;j:=1;k:=1;
while (i<=N) and (j<=M) do begin
if T[i]<V[j] then begin
TF[k]:=T[i];
i:=i+1;
k:=k+1;
end
else
begin
TF[k]:=V[j];
j:=j+1;
k:=k+1;
end;
while i<=N do begin
TF[k]:=T[i];
k:=k+1;
i:=i+1;
end;
while j<=M do begin
TF[k]:=V[j];
k:=k+1;
j:=j+1;
end;
end. |
Partager