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 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
| 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. |