Задать одномерный числовой массив А [15] из целых чисел. Сформировать одномерный массив В из положительных элементов массива А.
Математическая формулировка задачи:
Прежде всего нужно заполнить исходный массив А какими-либо числами. Часть из них могут быть положительными, а часть отрицательными или равными нулю.
Чтобы получить одномерный массив В из элементов исходного массива А нужно просматривать массив А в цикле и проверять каждый элемент исходного массива, является ли его значение положительным. Если найден положительный элемент, то его значение нужно записать в первую ячейку нового массива В (присвоить элементу массива В значение элемента массива А). Затем просмотр продолжается. Отыскав второе положительное значение, записываем его во вторую ячейку массива В и так далее.
Обратите внимание, что увеличение индексов (номеров) элементов массива В идет не одновременно с увеличением индексов массива А. В самом деле, ведь не каждый элемент массива А попадет в массив В. Даже количество элементов массива В заранее не известно (это будет зависеть от конкретных данных массива А). Поэтому понадобится одна переменная для индексации массива А и другая переменная для индексации массива В, причем увеличение индекса в массиве В будет происходить только в тот момент, когда очередному элементу массива В присваивается найденный в массиве А положительный элемент.
|
|
Рисунок:
-59 | -8 | -36 | -29 | -4 | |||||||
Порядковые номера элементов массива (индексы)
A [12] – исходный одномерный массив.
В[5] – одномерный массив, сформированный из положительных элементов массива А.
Текст программы к задаче 8.2:
Program Ex_8_2;
Uses Crt;
Type Mas = array [1..15] of integer;
{ объявляем тип массив из 10 целых чисел }
Var A, В: Mas;
{ переменные A, В типа массив }
i: integer; { индексы массива A}
k: integer; { индексы массива В }
Begin
ClrScr; { очищение экрана }
Randomize;
For i:=1 to 15 do begin
A[i]:=random(200)-100;
Write(A[i]:5);
{ вывод элементов массива в одну строку }
End;
Writeln; { перевод строки }
k:=0;
For i:=1 to 15 do begin
If A[i]>0 then begin
k:=k+1; { увеличение индекса массива В }
B[k]:=A[i]; { записываем положительные элементы массива А в массив В }
Write(B[k]:5);
{ выводим элементы массива В на экран }
End;
End;
Writeln; { перевод строки }
Textcolor(4); { установим цвет текста красный }
Writeln(‘Количество элементов массива B ’,k);
Readln;
End.