Преобразование элементов в одномерном массиве
С обработкой линейных массивов связано множество задач.
Задача 1:
Даны натуральное число n, действительные числа a1, a2, a3,…,an. В заданной последовательности все отрицательные числа увеличьте на 0.5, а все неотрицательные числа замените на 0.5.
Решение:
Зададим и распечатаем случайный массив из N целых чисел:
Program z1;
Var A : Array [1..N] Of Integer;
I, N : Integer;
Begin
Read(N);
Randomize;
For I:=1 To N Do
Begin
A[I]:= random(100)-50;
Write(A[I],' ')
End;
…
Выполним просмотр массива, сравнивая текущий элемент с нулем, если элемент отрицательный, то увеличим его значение на 0.5, в противном случае заменим значение на 0.5.
For I:=1 To N Do
If A[i]>0 then A[i]:=A[i]+0.5 else A[i]:=0.5;
Выполним вывод полученного массива на экран в виде строки:
For I:=1 To N Do
Begin
Write(A[I],' ')
End;
Задача 2:
Вычислим среднее арифметическое тех чисел, которые кратны 3.
Решение: Для этого нужно вычислить сумму и количество чисел, отвечающих условию. Значит, просматривая массив, начиная с первого элемента до последнего, мы будем проверять условие кратности, и выполнять суммирование и насчитывать количество элементов.
…
K:=0;
S:=0;
For I:=1 To N Do
Begin
If A[I]mod 3=0 then begin k:=k+1; s:=s+a[i];end;
End;
Sr:=s/k;
Writeln(‘sr=’,sr:10:3);
…