Advertisement
LOVEGUN

Bac 2018

Mar 15th, 2021 (edited)
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.74 KB | None | 0 0
  1. Program bac2018;
  2. Uses Wincrt;
  3. Type
  4.   tab = Array [1..20,1..10] Of Integer;
  5. Var
  6.   f1,f2: Text;
  7.   t: tab;
  8.   n: Integer;
  9.  
  10. Procedure creation (Var f1,f2:Text);
  11. Begin
  12.   Assign (f1,'c:\bac\source.txt');
  13.   Assign (f2,'c:\bac\resultat.txt');
  14. End;
  15.  
  16. Procedure ligne (Var t:tab;ch:String;i:Integer);
  17. Var
  18.   j,x,e: Integer;
  19. Begin
  20.   ch := ch+' ';
  21.   j := 0;
  22.   Repeat
  23.     j := j+1;
  24.     Val (Copy(ch,1,Pos(' ',ch)-1),x,e);
  25.     t[i,j] := x;
  26.     Delete (ch,1,Pos(' ',ch));
  27.   Until (ch='') Or (j=10);
  28. End;
  29.  
  30. Procedure remplir (Var f1:Text;Var t:tab;Var i:Integer);
  31. Var
  32.   ch: String;
  33. Begin
  34.   Reset (f1);
  35.   i := 0;
  36.   While Not(Eof(f1)) Do
  37.     Begin
  38.       i := i+1;
  39.       Readln (f1,ch);
  40.       ligne (t,ch,i);
  41.     End;
  42.   Close (f1);
  43. End;
  44.  
  45. Procedure tri_insert (Var t:tab;l,c:Integer);
  46. Var
  47.   j,aux,i: Integer;
  48. Begin
  49.   For i:=2 To l Do
  50.     Begin
  51.       j := i;
  52.       aux := t[i,c];
  53.       While (j>1) And (aux<t[j-1,c]) Do
  54.         Begin
  55.           t[j,c] := t[j-1,c];
  56.           j := j-1;
  57.         End;
  58.       t[j,c] := aux;
  59.     End;
  60. End;
  61.  
  62. Procedure traitement (Var f2:Text;Var t:tab;i:Integer);
  63. Var
  64.   j,n: Integer;
  65.   x,ch: String;
  66. Begin
  67.   For j:=1 To 10 Do
  68.     tri_insert (t,i,j);
  69.   n := i;
  70.   Rewrite (f2);
  71.     For i:=1 To n Do
  72.     Begin
  73.       j := 0;
  74.       ch:='';
  75.       Repeat
  76.         j := j+1;
  77.         Str (t[i,j],x);
  78.         ch := ch+x+' ';
  79.       Until (j=10);
  80.       Delete (ch,Length(ch),1);
  81.       Writeln (f2,ch);
  82.     End;
  83.   Close (f2);
  84. End;
  85.  
  86. Procedure affiche (Var f2:Text);
  87. Var
  88.   ch: String;
  89. Begin
  90.   Reset (f2);
  91.   While Not (Eof(f2)) Do
  92.     Begin
  93.       Readln (f2,ch);
  94.       Writeln (ch);
  95.     End;
  96.   Close (f2);
  97. End;
  98. Begin
  99.   creation (f1,f2);
  100.   remplir (f1,t,n);
  101.   traitement (f2,t,n);
  102.     affiche (f2);
  103. End.
  104.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement