Задача 8.2

Задать одномерный числовой массив А [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.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: