Bonjour

Exercice :
Ecrire avec Pascal le programme qui initialise deux tableaux d'entiers. Réaliser le tri de chaque tableau puis réaliser la fusion de ces tableaux dans un troisieme tableau puis l'afficher.
Question :

j'ai essayé de faire cet excrcice mais j'ai rencontré quelques problèmes. J'ai fait le programme et mis un lien vers l'image qui illustre bien le problème et je cherche l'astuce pour cet exercice si possible.

Programme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.
Image du problème :
ici