Advertisement
Arfizato

mhr

Apr 27th, 2020
961
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 3.75 KB | None | 0 0
  1. program bac;
  2. uses crt;
  3. type mat=array[1..99,1..99] of integer;
  4. var m:mat; n:integer;
  5.    result:text;
  6.    function premier (x:integer):boolean;
  7.    var test:boolean; i:integer;
  8.    Begin
  9.         test:=true;  i:=2;
  10.         Repeat
  11.             if x mod i = 0 then
  12.                 test:=false
  13.             else i:=i+1;
  14.         Until(test=false) or (i> x div 2 )
  15.     end;
  16.  
  17.   Procedure afficher (m:mat;n:integer);
  18.   var i,j:integer;
  19.   Begin
  20.         for i:=1 to n do
  21.             begin
  22.                 for j:=1 to n do
  23.                     begin
  24.                         write(m[i,j],'  ');
  25.                     end;
  26.          writeln;                  
  27.             end;
  28.     end;
  29.    
  30.    Procedure Remplir(var m:mat ; var n:integer);
  31.    var  i,j:integer;
  32.    begin
  33.             write('Donner la taille du matrice : ');
  34.             readln(n);
  35.         for i:=1 to n do
  36.             begin
  37.             for j:=1 to n do
  38.               Begin
  39.                Repeat
  40.                     write('Donner un entier premier : ');
  41.                     Readln(m[i,j]);
  42.                Until(m[i,j] in [2..99]) and (premier(m[i,j]));
  43.              End;
  44.          end;
  45.          afficher(m,n);
  46.     End;
  47.    
  48.   Function decroissant (m:mat;L:integer;n:integer):boolean;
  49.   var  test:boolean;c:integer;
  50.    begin
  51.         test:=true;
  52.         for C:=1 to (n-1) do
  53.             begin
  54.                 if m[L,C]<m[L,C+1] then
  55.                     test:=false;
  56.                 end;
  57.         decroissant:=test;
  58.     end;
  59.     Function croissant (m:mat;L:integer;n:integer):boolean;
  60.   var  test:boolean;c:integer;
  61.    begin
  62.         test:=true;
  63.         for C:=1 to (n-1) do
  64.             begin
  65.                 if m[L,C]>m[L,C+1] then
  66.                     test:=false;
  67.                 end;
  68.         croissant:=test;
  69.     end;
  70.  
  71.    
  72.    Procedure RemplirL(var f:text; m:mat;n:integer);      
  73.    var l,i:integer; ch,chi,chl:string;
  74.    begin
  75.     For L:=1 to n do
  76.         Begin  
  77.            
  78.             if (decroissant(m,L,n)) or (croissant(m,L,n)) then
  79.                 begin
  80.                     for i:=1 to n do
  81.                         begin
  82.                             str(m[L,i],chi);
  83.                             ch:=ch+chi+' - ';
  84.                         end;
  85.                 str(L,chl);
  86.                                             delete(ch,length(ch)-2,3);
  87.                 ch:='L'+chl+'*'+ch;
  88.                 writeln(f,ch);
  89.                 writeln(ch);
  90.                 ch:='';
  91.               end;
  92.         end;
  93.     end;
  94.    
  95.  
  96.    
  97.  
  98.     Function decroissant1 (m:mat;C:integer;n:integer):boolean;
  99.   var  test:boolean;l:integer;
  100.    begin
  101.         test:=true;
  102.         for L:=1 to (n-1) do
  103.             begin
  104.                 if m[L,C]<m[L+1,C] then
  105.                     test:=false;
  106.                 end;
  107.         decroissant1:=test;
  108.     end;
  109.  
  110.     Function croissant1 (m:mat;C:integer;n:integer):boolean;
  111.   var  test:boolean;l:integer;
  112.    begin
  113.         test:=true;
  114.         for L:=1 to (n-1) do
  115.             begin
  116.                 if m[L,C]>m[L+1,C] then
  117.                     test:=false;
  118.                 end;
  119.         croissant1:=test;
  120.     end;
  121.  
  122.     Procedure RemplirC(var f:text; m:mat;n:integer);      
  123.    var C,i:integer; ch,chi,chl:string;
  124.    begin
  125.     For C:=1 to n do
  126.         Begin  
  127.             if decroissant1(m,C,n) or croissant1(m,C,n) then
  128.                 begin
  129.                    
  130.                     for i:=1 to n do
  131.                         begin
  132.                             str(m[i,c],chi);
  133.                             ch:=ch+chi+' - ';
  134.                         end;
  135.                     str(C,chl);
  136.                                             delete(ch,length(ch)-2,3);
  137.                     ch:='C'+chl+'*'+ch;
  138.                     writeln(ch);
  139.                     writeln(f,ch);
  140.                     ch:='';
  141.               end;
  142.                
  143.         end;
  144.     end;
  145.    
  146.    
  147.    
  148.    Begin
  149.         Assign(result,'result.txt');
  150.         rewrite(result);
  151.         Remplir(m,n);
  152.         RemplirL(result,m,n);
  153.         RemplirC(result,m,n);
  154.         close(result);
  155. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement