Задача на массивы через процедуру - Pascal
Формулировка задачи:
Нужно сформировать с использованием процедуры массив элементов, каждый из которых встречается в массиве B1, B2, ..., Bn не более одного раза.
Напишите программу, плиз.
Решение задачи: «Задача на массивы через процедуру»
textual
Листинг программы
const m = 15;
type arr = array [1..m] of integer;
procedure unique(x: arr; var y: arr; var n: integer);
var i, j: integer;
f: boolean;
begin
n := 0;
for i := 1 to m do
begin
f := true;
for j := 1 to m do f := f and ((i = j) or (x[j] <> x[i]));
if f
then begin
inc(n);
y[n] := x[i]
end
end
end;
var b, c: arr;
i, k: integer;
begin
randomize;
writeln('Source array:');
for i := 1 to m do
begin
b[i] := -9 + random(19);
write(b[i]:4)
end;
writeln;
unique(b, c, k);
writeln('Unique elements:');
if k = 0
then write('Not found')
else for i := 1 to k do write(c[i]:4);
readln
end.
Объяснение кода листинга программы
- Константа
mустановлена на значение 15. - Определён тип
arrкак массив целых чисел от 1 доm. - Создана процедура
uniqueс параметрамиx(массив),y(массив) иn(целое число). - В процедуре
uniqueобъявлены переменныеi,jиfкак целые числа иbooleanсоответственно. - В процедуре
uniqueпеременнойnприсвоено значение 0. - В цикле от 1 до
mпроизводится проверка уникальности элементов массиваxи, при выполнении условия, увеличивается значение переменнойnи добавляется уникальный элемент в массивy. - Объявлен массив
bиcкак массивы типаarrи переменныеiиkкак целые числа. - Генерируются случайные числа и выводится массив
b. - Вызывается процедура
uniqueс параметрами массиваb, массиваcи переменнойk. - Выводятся уникальные элементы массива
c. - Пользователь вводит что-то с клавиатуры.