fork(6) download
  1. Program Intersection_Tab;
  2. Type vect = Array [1..99] of Integer;
  3. Var T1, T2, inter : vect;
  4. n, m : Integer;
  5. (****************************************)
  6. Procedure saisie_int (Var nf : Integer);
  7. Begin
  8. Repeat
  9. Write ('N = ');
  10. Readln (nf);
  11. Until nf in [3..99];
  12. End;
  13. (****************************************)
  14. Procedure remplir_tab (nf : Integer ; Var A:vect);
  15. Var i, j : Integer;
  16. Begin
  17. Writeln ('Saisir la case 1');
  18. Readln (a[1]);
  19. For i:=2 To nf Do
  20. Repeat
  21. Writeln ('Saisir la case ', i);
  22. Readln (A[i]);
  23. j:=i-1;
  24. While (j>1) and (A[i] <> A[j]) Do j:=j-1;
  25. Until A[i]<>A[j];
  26. End;
  27. (****************************************)
  28. Procedure intersection (nf : Integer ; A1, A2:vect; Var p : Integer ; Var B:vect);
  29. Var i, j : Integer;
  30. Begin
  31. p:=0;
  32. For i:=1 To nf Do
  33. Begin
  34. j:=0;
  35. Repeat
  36. j:=j+1;
  37. Until (j=nf) Or (A1[i]=A2[j]);
  38. If A1[i]=A2[j] Then
  39. Begin
  40. p:=p+1;
  41. B[p]:=A1[i];
  42. End;
  43. End;
  44. End;
  45. (****************************************)
  46. Procedure affiche_tab (nf : Integer ; A:vect);
  47. Var i : Integer;
  48. Begin
  49. For i:=1 To nf Do Write (A[i], ' ');
  50. End;
  51. (****************** P.P. *********************)
  52. Begin
  53. saisie_int (n);
  54. remplir_tab (n, T1);
  55. remplir_tab( n, T2);
  56. intersection (n, T1, T2, m, inter);
  57. affiche_tab (n, T1);
  58. Writeln ;
  59. affiche_tab (n, T2);
  60. Writeln ;
  61. affiche_tab (m, inter);
  62. End.
Success #stdin #stdout 0s 288KB
stdin
4
6
3
2
1
5
6
7
3
stdout
N = Saisir la case 1
Saisir la case 2
Saisir la case 3
Saisir la case 4
Saisir la case 1
Saisir la case 2
Saisir la case 3
Saisir la case 4
6 3 2 1 
5 6 7 3 
6 3