fork download
  1. program ArrayProcessing;
  2. {$APPTYPE CONSOLE}
  3.  
  4. uses
  5. SysUtils;
  6.  
  7. const
  8. SIZE = 10; // размер массива
  9.  
  10. type
  11. TArr = array[1..SIZE] of Integer;
  12.  
  13. procedure print_arr(x: TArr);
  14. var
  15. i: Integer;
  16. begin
  17. Writeln('Original array:');
  18. for i := 1 to SIZE do
  19. Write(x[i], ' ');
  20. Writeln;
  21. Writeln;
  22. end;
  23.  
  24. procedure initialize_arr(var x: TArr);
  25. var
  26. i: Integer;
  27. begin
  28. for i := 1 to SIZE do
  29. x[i] := Random(101) - 50;
  30. print_arr(x);
  31. end;
  32.  
  33. procedure indexNegative(x: TArr);
  34. var
  35. i: Integer;
  36. firstNegativeIndex: Integer;
  37. hasNegative: Boolean;
  38. begin
  39. firstNegativeIndex := -1; // отрицательный элемент не найден
  40. hasNegative := False;
  41. for i := 1 to SIZE do
  42. begin
  43. if x[i] < 0 then
  44. begin
  45. firstNegativeIndex := i;
  46. hasNegative := True;
  47. Break; // выходим из цикла после нахождения первого отрицательного
  48.  
  49. end;
  50. end;
  51.  
  52. if hasNegative then
  53. Writeln('Index of the first negative element: ', firstNegativeIndex)
  54. else
  55. Writeln('No negative elements found');
  56. Writeln;
  57. end;
  58.  
  59. function sumEven(x: TArr): Integer;
  60. var
  61. i: Integer;
  62. evenSum: Integer;
  63. begin
  64. evenSum := 0;
  65. for i := 1 to SIZE do
  66. begin
  67. if x[i] mod 2 = 0 then // проверка на чётность
  68. evenSum := evenSum + x[i];
  69. end;
  70. sumEven := evenSum;
  71. end;
  72.  
  73. procedure sortArr(var x: TArr);
  74. var
  75. i, j, temp: Integer;
  76. begin
  77. for i := 1 to SIZE - 1 do
  78. begin
  79. for j := 1 to SIZE - i do
  80. begin
  81. if x[j] > x[j + 1] then
  82. begin
  83. // обмен элементов
  84. temp := x[j];
  85. x[j] := x[j + 1];
  86. x[j + 1] := temp;
  87. end;
  88. end;
  89. end;
  90. for i := 1 to SIZE do
  91. Write(x[i], ' ');
  92. Writeln;
  93. Writeln;
  94. end;
  95.  
  96. procedure replaceZero(var x: TArr);
  97. var
  98. i: Integer;
  99. begin
  100. for i := 1 to SIZE do
  101. begin
  102. if x[i] = 0 then
  103. x[i] := 100;
  104. Write(x[i], ' ');
  105. end;
  106. Writeln;
  107. end;
  108.  
  109. var
  110. arr: TArr;
  111. i: Integer;
  112.  
  113. begin
  114. Randomize; // инициализация генератора случайных чисел
  115.  
  116. // 1. заполнение массива случайными значениями от −50 до 50 и вывод на экран
  117. initialize_arr(arr);
  118.  
  119. // 2. поиск индекса первого отрицательного элемента
  120. indexNegative(arr);
  121.  
  122. // 3. вычисление суммы всех чётных элементов массива
  123. Writeln('Sum of all even elements: ', sumEven(arr));
  124. Writeln;
  125.  
  126. // 4. сортировка массива по возрастанию методом «пузырька»
  127. Writeln('Array after sorting in ascending order:');
  128. sortArr(arr);
  129.  
  130. // 5. замена всех нулевых элементов на 100 и вывод изменённого массива
  131. Writeln('Array after replacing zero elements with 100:');
  132. replaceZero(arr);
  133.  
  134. Readln;
  135. end.
  136.  
Success #stdin #stdout 0.01s 5288KB
stdin
7 21
1 2 547152
1 3 509157
1 4 539282
1 5 541645         
1 6 458433
1 7 385173

2 3 131528
2 4 92735
2 5 150511
2 6 94440
2 7 194542
3 4 216600
3 5 272401
3 6 157176
3 7 124077
4 5 57785
4 6 97323
4 7 242232
5 6 136663
5 7 283862
6 7 147426
stdout
Original array:
-17 12 1 23 35 6 -13 31 48 30 

Index of the first negative element: 1

Sum of all even elements: 96

Array after sorting in ascending order:
-17 -13 1 6 12 23 30 31 35 48 

Array after replacing zero elements with 100:
-17 -13 1 6 12 23 30 31 35 48