Advertisement
LOVEGUN

Exercice Yahya

Jun 4th, 2021
394
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.97 KB | None | 0 0
  1. {https://cdn.discordapp.com/attachments/850372791802265650/850378322818891787/20210604_151639.jpg}
  2. Program bac21;
  3. Uses Wincrt;
  4. Type
  5.   mat = Array [1..1000,1..1000] Of Char;
  6. Var
  7.   f1,f2: Text;
  8.   nbl,m,n: Integer;
  9.   t: mat;
  10. Procedure remplir_f (Var f:Text;Var nbl:Integer);
  11. Var
  12.   ch: String;
  13. Begin
  14.   Rewrite (f);
  15.   nbl := 0;
  16.   Repeat
  17.     Writeln ('Saisir une ligne: ');
  18.     Readln (ch);
  19.         if (ch<>'') Then
  20.             begin
  21.                 Writeln (f,ch);
  22.             nbl := nbl+1;
  23.             end;
  24.   Until (ch='');
  25.   Close (f);
  26. End;
  27. Function premier (n:Integer): Boolean;
  28. Var
  29.   i,r: Integer;
  30. Begin
  31.   r := 0;
  32.   For i:=1 To n Do
  33.     If (n Mod i=0) Then
  34.       r := r+1;
  35.   premier := r=2;
  36. End;
  37. Procedure saisie (Var m:Integer);
  38. Begin
  39.   Repeat
  40.     Write ('Saisir M: ');
  41.     Readln (m);
  42.   Until (premier(m)=False) And (10<=m) And (m<=50);
  43. End;
  44.  
  45. Procedure remplir_m (Var f:Text;Var t:mat;var n:integer;m,nbl:Integer);
  46. Var
  47.   ch,ch1: String;
  48.   nbc,i,j,x: Integer;
  49. Begin
  50.   Reset (f);
  51.   nbc := 0;
  52.   ch := '';
  53.   While Not (Eof(f)) Do
  54.     Begin
  55.       Readln (f,ch1);
  56.       nbc := nbc+Length(ch1);;
  57.       ch := ch+ch1+'#';
  58.     End;
  59.   n := (nbc+nbl) Div m;
  60.   If (nbc+nbl) Mod m<>0 Then
  61.     n := n+1;
  62.   Close (f);
  63.   Delete (ch,Length(ch),1);
  64.   While ((Length(ch) Mod (n*m))<>0) Do
  65.     ch := ch+'*';
  66.     x:=0;
  67.   For i:=1 To n Do
  68.     For j:=1 To m Do
  69.             begin
  70.                 x:=x+1;
  71.                 t[i,j] := ch[x];
  72.             end;
  73. End;
  74. procedure remplir_f2 (var f:text;t:mat;n,m:integer);
  75. Var
  76. i,j:integer;
  77. ch:string;
  78. Begin
  79.     rewrite (f);
  80.     for i:=1 to m Do
  81.     begin
  82.         ch:='';
  83.         for j:=1 to n Do
  84.             ch:=ch+t[j,i];
  85.         writeln (f,i,' ',ch);
  86.     end;
  87.     close (f);
  88. end;
  89. procedure affiche (var f:text);
  90. Var
  91. ch:string;
  92. Begin
  93.     reset (f);
  94.     while not(eof(f)) Do
  95.         Begin
  96.             readln (f,ch);
  97.             writeln (ch);
  98.         end;
  99.     close (f);
  100. end;
  101. Begin
  102.   Assign(f1,'c:/bac/textinit.txt');
  103.   Assign(f2,'c:/bac/resultat.txt');
  104.     remplir_f (f1,nbl);
  105.     saisie (m);
  106.     remplir_m (f1,t,n,m,nbl);
  107.     remplir_f2 (f2,t,n,m);
  108.     affiche (f2);
  109. End.
  110.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement