CyberPascal

Cpascal #1

Jan 31st, 2014
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.44 KB | None | 0 0
  1. {
  2. Сибирский Государственный Университет Путей Сообщения (СГУПС)
  3. Кафедра "Информационные технологии транспорта"
  4.  
  5. Задание:
  6. Сортировка отрицательных элементов в порядке убывания
  7. по строкам в двухмерном массиве A(n,m)
  8.  
  9. Выполнил: ст.гр. МЛ-212, Фомин Александр
  10. г.Новосибирск, 2014г.
  11. }
  12. Program CyberPascal; uses crt;
  13.  
  14. const n=8; m=10;
  15.  
  16. type matrix=array [1..n,1..m] of real;
  17.  
  18. var a:matrix;
  19.      
  20. {----- Генерируем матрицу Start -----}
  21. Procedure GenerateMatrix(var x:matrix; n,m:byte);
  22. var i,j:byte;
  23. Begin
  24. for i:=1 to n do
  25.     for j:=1 to m do X[i,j]:=Random(51)-25.;
  26. end;
  27. {----- Генерируем матрицу End -----}
  28.  
  29. {----- Выводим матрицу на экран Start -----}
  30. Procedure OutPutMatrix(x:matrix; name:string; n,m:byte);
  31. var i,j:byte;
  32. Begin
  33. Writeln(' Матрица ' +Name+ ': ');
  34. for i:=1 to n do
  35.     Begin
  36.     for j:=1 to m do Write(X[i,j]:7:2);
  37.     Writeln;
  38.     end;
  39. end;
  40. {----- Выводим матрицу на экран End -----}
  41.  
  42. {----- Сортировка матрицы Start -----}
  43. Procedure SortingMatrix(var x:matrix; n,m:byte);
  44. var i,j,k,l:byte;
  45.     cache:real;
  46. Begin
  47. for j:=1 to m do
  48.     for i:=1 to n do
  49.         Begin
  50.         if X[i,j] < 0 then
  51.                           Begin
  52.                           Cache:=X[i,j];
  53.                           L:=1;
  54.  
  55.                           While (X[L,j] > Cache) do Inc(L);
  56.  
  57.                           for k:=i downto (L+1) do X[k,j]:=X[k-1,j];
  58.                           X[L,j]:=Cache;
  59.                           end;
  60.         end;
  61. end;
  62. {----- Сортировка матрицы End -----}
  63.  
  64. Begin clrscr;
  65. Randomize;
  66. GenerateMatrix(A,N,M);
  67. Write('--------------------------------------------------------------------------------');
  68. OutPutMatrix(A,'A',N,M);
  69. SortingMatrix(A,N,M);
  70. Write('--------------------------------------------------------------------------------');
  71. OutPutMatrix(A,'A (новая)',N,M);
  72. Write('--------------------------------------------------------------------------------');
  73. GotoXY(15,WhereY); Writeln('Для выхода из программы нажмите клавишу "Enter"');
  74. Write('--------------------------------------------------------------------------------');
  75. Readln;
  76. end.
Advertisement
Add Comment
Please, Sign In to add comment