Предмет: Информатика, автор: Ziza59

Помогите, пожалуйста. Очень нужно!!!
Написать программу(на Паскале) , реализующую следующий алгоритм: Дан массив A(N) (N - четное). Сформировать массив B(M), элементами которого являются средние арифметические соседних пар рядом стоящих в массиве A чисел. (например, массив A состоит из элементов 1; 3; 5; -2; 0; 4; 0; 3. Элементами массива B будут 2; 1,5; 2; 1,5)

Ответы

Автор ответа: vimmortal2
0

Программа:
Pascal:

var

 A, B: array of real;

 N, i, j: integer;

begin

 write('N = ');  readln(N);

 if N mod 2 <> 0 then begin

   writeln('Введите чётное N! ');

   exit();

 end;

 randomize;

 SetLength(A, N);

 SetLength(B, N div 2);

 

 for i := 0 to N - 1 do

   A[i] := random(100);

 writeln(A);

 

 i := 0;

 while i < N do begin

   B[j] := (A[i] + A[i + 1]) / 2;

   inc(i, 2);  inc(j);

 end;

 

 writeln(B);

end.

Объяснение:

В начале выделяется память под массивы действительных чисел. Далее - регистрируются переменные N, i, j для будущего использования.

В основном коде вводится N и делается проверка, является ли чётным это число. Если нечётное, пишем предупреждение и заканчиваем выполнение кода. В ином случае устанавливаем длину массива для A, равную N. Длина массива B - целое число при делении N на 2. После - массив А заполняется рандомными числами (можете интервал указать самостоятельно, либо же добавить ввод с клавиатуры). Далее, с помощью цикла while, устанавливаем элемент массива B с индексом j равным среднего арифметического текущему числа массива A с индексом i и следующего (i + 1). Далее мы увеличиваем i на 2, j на 1. Потому что в массиве А мы перешагиваем один элемент, чтобы пропустить тот, который использовался в теле как i + 1, j - отвечает за индекс элемента массива В.

В конце - вывод двух сформированных массивов.

Результат:

N = 6

[82,39,88,40,10,84]

[60.5,64,47]

Похожие вопросы