C trops simple
voila la solution mais peut etre vous devez faire quelques correction syntaxique car j'ai pas le turbo pascal sur mon poste et j'ai ecrit directement le programme};
program intersection;
uses wincrt; { cette instructionn n'est uliliser qu'avec le TPW 1.5 si tu a le trubo pascal 7 tu dit ecrir uses crt;}
type tab = array[1..50] of char;
var
t1, t2, t3: tab;
n1, n2, k : integer;
{ cette fonction on va l'utiliser pour remplir un tableau par n elements distincts}
function existe(t: tab; f:integer; c:char):boolean;
var i: ineteger;
begin
i:= 0;
repeat
i:= i+1;
until(t[i]=c) or (i=f);
existe:= t[i]=c;
end;
{procedure remplir, pour le remplissage d'un tableau}
procedure rempli(var t:tab; var n: integer);
var i:integer;
begin
readln(n); { taille du tableau}
readln(t[1]); { 1 er element du tableau}
for i:=2 to n do { la suite des elements distincts}
repeat
readln(t[i]);
untill( not existe(t,i-1, t[i])); { l'appel de cette fonction va verifier si t[i] existe dans tout la partie précédente du tableau}
end;
procedure inter( var t3:tab; t1, t2: tab; n1,n2: integer; var n:integer); { t3 c'est le tableau d'intersection; n c sont taille}
var i:integer;
begin
for i:= 1 to n1 do
if not existe(t2, n2, t1[i]) then
begin
n:=n+1;
t3[n]:= t1[i];
end;
for i:= 1 to n2 do
if not existe(t1, n1, t2[i]) then
begin
n:=n+1;
t3[n]:= t1[i];
end;
end;
{programme principal}
begin
remplir(t1, n1);
rempli(t2, n2);
inter(t3, t1, t2, n1, n2, n);
writeln('le tablleau d'intersection est');
for k:= 1 to n do
writeln(t3[k]);
end;