1. Pascal / Говнокод #3474

    +103

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    program lab15;
     uses crt;
     const nmax=100;
     var z,i,j,k,n,m:integer;
         pr:boolean;
         stolb:boolean;
     sum:array[1..nmax] of integer;
     A:array[1..nmax,1..nmax] of integer;
    
     procedure swap(var a,b:integer);
     var c:integer;
     begin
     c:=0;
     c:=a;
     a:=b;
     b:=c;
     end;
    
     function prostoe(x:integer):boolean;
     var i:integer;
         p:boolean;
         begin
     x:=abs(x);
     p:=false;
     if x>1 then p:=true;
     for i:=2 to x-1 do
     if x mod i=0 then p:=false;
     prostoe:=p
     end;
    
    
     begin
     z:=0;
     stolb:=false;
     pr:=false;
       clrscr;
        write('n= ');
        readln(n);
        write('m= ');
        readln(m);
        for i:=1 to n do
          for j:=1 to m do
            read(A[i,j]);
        for i:=1 to n do
        sum[i]:=0;
        for i:=1 to n do
         for j:=1 to m do
           sum[i]:=sum[i]+abs(a[i,j]);
             for i:=1 to n do
              for j:=1 to m do
               if prostoe(a[i,j])=true then pr:=true;
    
             for i:=1 to m-1 do
             begin
               for j:=i+1 to m do
               begin
               z:=0;
                for k:=1 to n do
                 begin
                   if a[k,i]=a[k,j] then z:=z+1;
                   if z=n then stolb:=true;
                 end;
               end;
             end;
    
                if (pr=true) and (stolb=true) then
                begin
                   for i:=1 to n-1 do
                   for j:=i+1 to n  do
                     if sum[i]>sum[j] then begin
                     swap(sum[i],sum[j]);
                     for k:=1 to m do
                       swap(a[i,k],a[j,k]);
                     end;
                end;
    
      writeln('stolbec= ', stolb);
      writeln('prostoe= ', pr);
    
      for i:=1 to n do
      begin
      writeln;
      for j:=1 to m do
      write(a[i,j], ' ');
      end;
        readkey;
        end.

    Запостил: basic, 14 Июня 2010

    Комментарии (4) RSS

    • scholota...
      Ответить
    • если вчитаться, то форма сигмовидной кишки автора мне нравится, но TL;DR же

      PS: тест на простоту еще искромётнее чем в 3476, можно было бы им и ограничиться
      Ответить
    • ну почему
      "c:=0;"
      перед
      "c:=a;"
      это явно кого-то "переучили"
      а насчёт
      "(pr=true) and (stolb=true)"
      это порсто супер
      p.s. написать "pr and stolb" явно сложнее :)
      Ответить

    Добавить комментарий