Требуется из одного массива скопировать в другой массив значения, удовлетворяющие определенным условиям и посчитать их количество.
Допустим, у нас будет исходный массив из 50 элементов, значения которых формируются функцией random и лежат в диапазоне от -50 до 49 включительно. Условием, при котором значения одного массива должны быть скопированы в другой, будет попадание значения в диапазон от -5 до 5 включительно.
const m = 50; type arr = array[1..m] of shortint; var arr1, arr2: arr; k, i: byte; begin randomize; writeln ('Исходный массив: '); for i := 1 to m do begin arr1[i] := random(100)-50; write (arr1[i]:4); end; writeln; writeln; k := 0; for i := 1 to m do if (arr1[i] >= -5) and (arr1[i] = 5) then begin k := k + 1; arr2[k] := arr1[i]; end; write ('Отфильтрованный массив: '); for i := 1 to k do write (arr2[i]:3); writeln; writeln ('Количество элементов: ', k); readln end.
В переменной k хранится количество элементов второго массива, а также она используется при занесении очередного удовлетворяющего условию элемента в массив.
Комментарии
более компактный вариант
более компактный вариант )