paprikodlak

Seřažení řádků matice od nejmenšího podle první hodnoty

Oct 22nd, 2012
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.20 KB | None | 0 0
  1. program NEW;
  2.  
  3. var                                                                      
  4. a:array[1..10, 1..10] of integer;
  5. b:array[1..10, 1..2] of integer;
  6. c:array[1..10, 1..10] of integer;
  7.  
  8. i,j,q,o,f:integer;
  9. p:boolean;
  10. cookies:string;
  11.  
  12. begin
  13. repeat
  14. randomize;
  15.  
  16. for i:=1 to 10 do begin for j:=1 to 10 do begin a[i,j]:=random(100)+1; end; end;
  17. for i:=1 to 10 do begin b[i,2]:=i; end;
  18.  
  19.  
  20. for i:=1 to 10 do b[i,1]:=a[i,1];
  21.  
  22. repeat
  23. p:=false;
  24. for i:=1 to 9 do
  25.    
  26.     if (b[i,1]>b[i+1,1]) then
  27.          begin
  28.          p:=true;
  29.          q:=b[i,1]; b[i,1]:=b[i+1,1]; b[i+1,1]:=q;
  30.          o:=b[i,2]; b[i,2]:=b[i+1,2]; b[i+1,2]:=o;
  31.          end;
  32.  
  33.  
  34. until p=false;
  35.  
  36.  
  37. writeln;
  38.  
  39.  
  40.  i:=1;
  41. repeat
  42.  
  43. f:=b[i,2];
  44.  
  45. for j:=1 to 10 do begin c[i,j]:=a[f,j]; end;
  46.  
  47. i:=i+1;
  48. until i=11;
  49.  
  50.  
  51. for i:=1 to 10 do  begin writeln(); for j:=1 to 10 do begin write(a[i,j]:4,' '); end; end;
  52. writeln;
  53.  
  54. for i:=1 to 10 do begin writeln(); for j:=1 to 2 do begin write(b[i,j]:3); end; end;
  55.  
  56. writeln();
  57.  
  58.  
  59. for i:=1 to 10 do begin writeln(); for j:=1 to 10 do begin write(c[i,j]:4); end;  end;
  60.  
  61.  
  62. writeln();
  63. writeln;  
  64. writeln('Gimme cookies!!!');
  65. readln(cookies);
  66. until cookies='we have no cookies';
  67. end.
Advertisement
Add Comment
Please, Sign In to add comment