Помогите, пожалуйста, с задачей. Сформировать массив А с помощью датчика случайных чисел...

0 голосов
37 просмотров

Помогите, пожалуйста, с задачей.

Сформировать массив А с помощью датчика случайных чисел целыми числами из интервала [-43, 32]. Вывести элементы массива на экран. Количество элементов массива задается с клавиатуры
1. Сдвинуть массив на два элемента влево.
2. Найти минимальный четный элемент массива, его номер(а) и количество.
3. Поменять максимальный элемент массива местами с последним элементом. Вывести получившийся массив на экран.
4. Найти среднее арифметическое положительных элементов массива.


Информатика (127 баллов) | 37 просмотров
0

В задании 1 сдвиг кольцевой (элементы 1 и 2 станут элементами n-1 и n) или с потерей, тогда чем заполнить элементы n-1 и n?

0

Ответа нет, сдвиг делаю иклический

Дан 1 ответ
0 голосов
Правильный ответ

Const
  nn = 50;

var
  a: array[1..nn] of integer;
  b: array[1..10] of integer; { для номеров минимальных четных }
  n, i, km, min, max, t1, t2: integer;

begin
  Randomize;
  Write('Укажите количество элементов массива (не более 50): ');
  Readln(n);
  Writeln('Исходный массив');
  for i := 1 to n do
  begin
    a[i] := Random(76) - 43;
    Write(a[i]:4);
  end;
  Writeln;
  Writeln('1. Массив со сдвинутыми влево на 2 элементами');
  t1 := a[1]; t2 := a[2];
  for i := 1 to n - 2 do
  begin
    a[i] := a[i + 2];
    Write(a[i]:4);
  end;
  a[n - 1] := t1; a[n] := t2;
  Writeln(a[n - 1]:4, a[n]:4);
  Writeln('2. Минимальные четные элементы массива');
  min := 100;
  for i := 1 to n do
    if (i mod 2 = 0) then
      if min > a[i] then begin min := a[i]; km := 1; b[km] := i end
      else if min = a[i] then begin km := km + 1; b[km] := i end;
  Write('Значение: ', min, ', индексы:');
  for i := 1 to km do Write(b[i]:3);
  Writeln;
  Writeln('3. Поменять местами максимальный и последний элементы массива');
  max := -100;
  for i := 1 to n do
    if max < a[i] then begin max := a[i]; b[1] := i end;
  t1 := a[b[1]]; a[b[1]] := a[n]; a[n] := t1;
  for i := 1 to n do Write(a[i]:4);
  Writeln;
  Writeln('4. Найти среднее арифметическое элементов массива');
  t1 := 0;
  for i := 1 to n do t1 := t1 + a[i];
  Writeln('Среднее арифметическое равно ', t1 / n)
end.

Тестовое решение:
Укажите количество элементов массива (не более 50): 30
Исходный массив
  31 -41 -18 -42 -15 -10  -8 -18 -30  21  -6 -43 -32 -18 -30  26 -37  20  29  18  26  21  29  22 -23 -43  29  30 -41  -9
1. Массив со сдвинутыми влево на 2 элементами
 -18 -42 -15 -10  -8 -18 -30  21  -6 -43 -32 -18 -30  26 -37  20  29  18  26  21  29  22 -23 -43  29  30 -41  -9  31 -41
2. Минимальные четные элементы массива
Значение: -43, индексы: 10 24
3. Поменять местами максимальный и последний элементы массива
 -18 -42 -15 -10  -8 -18 -30  21  -6 -43 -32 -18 -30  26 -37  20  29  18  26  21  29  22 -23 -43  29  30 -41  -9 -41  31
4. Найти среднее арифметическое элементов массива
Среднее арифметическое равно -5.4



(142k баллов)