Урок 15 Задача 20
Primary tabs
У вас есть два массива целых чисел по 10 элементов в каждом.
Выведите на экран все числа из первого массива, которые не содержаться во втором.
Решение:
program u15z20;
type newArr = array [1..10] of integer;
var a,b:newArr;
i,j:integer;
t:boolean;
function randomArr(arr:newArr): newArr;
begin
for i:=low(arr) to high(arr) do
arr[i]:=random(10);
result:=arr;
end;
procedure writeArr(arr:newArr);
begin
for i:=low(arr) to high(arr) do
write(arr[i],'|');
writeln();
end;
begin
randomize;
a:=randomArr(a);
b:=randomArr(b);
writeln('первый массив:');
writeArr(a);
writeln('второй массив:');
writeArr(b);
writeln();
for i:=low(a) to high(a) do
begin
t:=true;
for j:=low(b) to high(b) do
begin
if a[i]=b[j] then
t:=false;
end;
if t then
write(a[i],' ');
end;
readln();
end.
Консоль:
первый массив: 3|6|1|6|1|1|4|8|0|3| второй массив: 5|7|4|5|4|7|2|1|8|8| 3 6 6 0 3
- Log in to post comments
- 1361 reads
vedro-compota
Tue, 06/07/2022 - 21:31
Permalink
for j:=low(b) to high(b) do
-- если нашел, смысла перебирать дальше этот цикл нет
_____________
матфак вгу и остальная классика =)
avast36
Thu, 06/09/2022 - 12:18
Permalink
Исправил
Решение:
program u15z20; type newArr = array [1..10] of integer; var a,b:newArr; i,j:integer; t:boolean; function randomArr(arr:newArr): newArr; begin for i:=low(arr) to high(arr) do arr[i]:=random(10); result:=arr; end; procedure writeArr(arr:newArr); begin for i:=low(arr) to high(arr) do write(arr[i],'|'); writeln(); end; procedure element(arr1,arr2:newArr); begin for i:=low(arr1) to high(arr1) do begin t:=true; for j:=low(arr2) to high(arr2) do begin if arr1[i]=arr2[j] then begin t:=false; break; end; end; if t then write(arr1[i],' '); end; end; begin randomize; a:=randomArr(a); b:=randomArr(b); writeln('First array:'); writeArr(a); writeln('Second array:'); writeArr(b); writeln(); element(a,b); readln(); end.Консоль:
vedro-compota
Wed, 06/15/2022 - 19:23
Permalink
засчитано
засчитано
_____________
матфак вгу и остальная классика =)