Задача 19 Урок 15
Primary tabs
У вас есть два массива целых чисел по 10 элементов в каждом.
Выведите на экран все числа из первого массива, которые не содержаться во втором.
Type
massiv=array [1..10] of integer;
function full(min:integer;max:integer):massiv;
var i:integer;
mas:massiv;
begin
randomize();
for i:=low(mas) to high(mas) do
mas[i]:=min+random(max-min+1);
result:=mas;
end;
procedure wr(mas:massiv);
var i:integer;
begin
for i:=low(mas) to high(mas) do
write(mas[i],' ');
writeln();
end;
var mas1:massiv;
mas2:massiv;
j,i,len:integer;
begin
len:=0;
mas1:=full(-20,30);
mas2:=full(0,30);
wr(mas1);
wr(mas2);
for j:=low(mas1) to high(mas1) do
for i:=low(mas2) to high(mas2) do
begin
if(mas1[j]<>mas2[i]) then
len:=len+1;
if(len=10) then
begin
write(mas1[j],' ');
len:=0;
end;
if(i=10) then
len:=0;
end;
end. Консоль:
7 -19 18 16 30 -5 11 -8 -18 -18 10 25 15 0 1 15 24 0 14 7 -19 18 16 30 -5 11 -8 -18 -18
- Log in to post comments
- 937 reads
vedro-compota
Sat, 02/26/2022 - 20:35
Permalink
for j:=low(mas1) to high(mas1
--
1) Если элемент уже встретился -перебирать массив дальше смысла нет, надо использовать break
2)
-- лучше вместо счетчика использовать булевский флаг, и на основании его значения уже понимать печать ли нам или элемент или нет. Проверять флаг лучше за пределами внутреннего цикла
_____________
матфак вгу и остальная классика =)