LilAsian

lab7 sukablyad

Nov 27th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.58 KB | None | 0 0
  1. program lab7;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6. Windows;
  7.  
  8. const
  9. Nmax = 20;
  10. type mass= array [1..nmax] of real;
  11. var
  12. x: mass;
  13. Fin, Fout: TextFile;
  14. n, i,z: integer;
  15. method: integer;
  16. ind: integer;
  17. max: real;
  18. procedure FindMayonez (n:integer;var max :real;var x: mass);
  19.   var i,z,f:integer;
  20. begin
  21.   for z := n - 1 downto 1 do
  22. begin
  23. for i := 1 to z do
  24. if x[i] < x[i + 1] then
  25. begin
  26. max := x[i];
  27. x[i] := x[i + 1];
  28. x[i + 1] := max;
  29. end;
  30. write(Fout, 'Промежуточный вывод: ');
  31. for f := 1 to n do
  32. write(Fout, x[f]:5:1, ' ');
  33. writeln(Fout);
  34. end;
  35. end;
  36.  
  37. begin
  38. setConsoleCP(1251);                  
  39. setConsoleOutputCP(1251);
  40.  
  41. if ParamCount = 0 then
  42. begin
  43. writeln('Не заданы файлы для работы');
  44. write('PRESS ENTER…');
  45. readln;
  46. exit;
  47. end;
  48. AssignFile(Fin, ParamStr(1));
  49. Reset(Fin);
  50. AssignFile(Fout, ParamStr(2));
  51. Rewrite(Fout);
  52. writeln(Fout, 'Лабораторная работа 7. Вариант 11':40);
  53.  
  54. { Ввод исходных данных }
  55. readln(Fin, n);
  56. for i := 1 to n do
  57. readln(Fin, x[i]);
  58. { Вывод исходных данных }
  59. writeln(Fout, 'Количество элементов n = ', n:2);
  60.  
  61. write(Fout, 'X (изначальный вид): ');
  62. for i := 1 to n do
  63. write(Fout, x[i]:5:1, ' ');
  64. writeln(Fout);
  65.  
  66. { Выбор метода }
  67. writeln('Выберите метод сортировки:');
  68. writeln('1 - сортировка пузырьком');
  69. writeln('2 - сортировка выбором');
  70. readln(method);
  71. writeln(fout,'Выбранный метод: ', method);
  72.  
  73. case method of
  74.  
  75. { Реализация алгоритма - Метод пузырька }
  76. 1:
  77. begin
  78. FindMayonez(n,max,x);
  79. write(Fout, 'Промежуточный вывод: ');
  80. for i := 1 to n do
  81. write(Fout, x[i]:5:1, ' ');
  82. writeln(Fout);
  83. end;
  84. { Реализация алгоритма - Метод выбора }
  85. 2:
  86. for z := n downto 2 do
  87. begin
  88. ind := z;
  89.  
  90. for i := 1 to z do
  91. begin
  92. if x[i] < x[ind] then
  93. ind := i;
  94.  
  95. max := x[z];
  96. x[z] := x[ind];
  97. x[ind] := max;
  98.  
  99. end;
  100.  
  101. write(Fout, 'Промежуточный вывод: ');
  102. for i := 1 to n do
  103. write(Fout, x[i]:5:1, ' ');
  104. writeln(Fout);
  105. end;
  106. else
  107. begin
  108. writeln('Неверный метод сортировки');
  109. write('PRESS ENTER…');
  110.  
  111. CloseFile(Fout);
  112. CloseFile(Fin);
  113.  
  114. readln;
  115. exit;
  116. end;
  117. end;
  118.  
  119. { Вывод результатов }
  120. write(Fout, 'X (отсортированный): ');
  121. for i := 1 to n do
  122. write(Fout, x[i]:5:1, ' ');
  123. writeln(Fout);
  124.  
  125. CloseFile(Fout);
  126. CloseFile(Fin);
  127.  
  128. write('PRESS ENTER…');
  129. readln;
  130. end.
Add Comment
Please, Sign In to add comment