Сформировать массив B из положительных элементов массива A, имеющих четный индекс
Задача
Дан массив A вещественного типа, содержащий 20 положительных и отрицательных элементов. Сформировать массив B из положительных элементов массива A, имеющих четный индекс. Найти сумму квадратов элементов нового массива.
Решение
Описание переменных:
- j - счетчик количества элементов массива B;
- sum - сумма квадратов элементов массива B.
Алгоритм решения задачи:
- Сразу будем "просматривать" только четные элементы массива A. Для этого переменной i сначала присвоим значение 2 (первый четный элемент - второй) и затем в цикле будем увеличивать ее значение на 2.
- Если элемент массива A с четным индексом (i) больше нуля, то увеличим счетчик элементов массива B, по этому индексу присвоим его массиву B.
- Для подсчета суммы квадратов элементов массива B присвоим переменной sum сначала значение 0, затем добавим к ней квадрат каждого элемента.
Программа на языке Паскаль:
const n = 20; var arrA, arrB: array[1..n] of real; i, j: byte; sum: real; begin randomize; writeln('Array A:'); for i:=1 to n do begin arrA[i] := random() * 10 - 5; // (-5;+5) write(arrA[i]:6:2); if i mod 10 = 0 then writeln; end; i := 2; j := 0; sum := 0; while i <= n do begin if arrA[i] > 0 then begin j := j + 1; arrB[j] := arrA[i]; sum := sum + arrB[j] * arrB[j]; end; i := i + 2; end; writeln('Array B:'); for i:=1 to j do write(arrB[i]:6:2); writeln; writeln('sq.sum = ', sum:5:2); end.
Пример выполнения программы:
Array A: -1.49 0.50 -4.70 -1.08 -4.95 1.14 -2.46 2.61 -3.14 4.35 0.52 1.24 4.29 -2.39 -3.95 -4.91 -4.35 3.60 2.50 -0.21 Array B: 0.50 1.14 2.61 4.35 1.24 3.60 sq.sum = 41.78