Задание 14 Урок 15
Primary tabs
Задание 14 Урок 15
Дан массив длиной N (не более 100 элементов). Проверить, что в нем в встречаются все числа от 0 до k, где 0≤k
type arr = array of integer;
var first_array : arr;
n,k : integer;
function initialization_array(f_array: arr; n: integer): arr;
var i,min,max : integer;
begin
min := 0;
max := 100;
setlength(f_array,n);
for i := low(f_array) to high(f_array) do
f_array[i] := min + random(max - min + 1);
result := f_array;
end;
function check_availability(f_array: arr; k : integer): arr;
var c,z : integer;
second_array : arr;
function change_within(c: integer): arr;
var h : integer;
begin
for h := low(f_array) to high(f_array) do
if (f_array[h] > c) then
begin
f_array[h] := c;
break;
end;
result := f_array;
end;
begin
setlength(second_array,k+1);
for c := low(second_array) to high(second_array) do
begin
second_array[c] := c;
for z := low(f_array) to high(f_array) do
if second_array[c] = f_array[z] then
break
else
if (z = high(f_array)) and (second_array[c] <> f_array[z]) then
begin
writeln('Число ', second_array[c],' в массиве отсутствует!');
f_array := change_within(c);
end;
end;
result := f_array;
end;
procedure print(f_array: arr);
var z : integer;
begin
for z := low(f_array) to high(f_array) do
write('|', f_array[z], '|');
end;
procedure check_n(var n: integer);
var m : integer;
begin
m := 0;
repeat
if n > 100 then
begin
write('Значение N > 100, введите корректное значение!');
readln(n);
end
else
if n < 0 then
begin
write('Значение N < 0, введите корректное значение!');
readln(n);
end
else
m += 1;
until m > 1;
end;
procedure check_k(n: integer; var k: integer);
var l : integer;
begin
l := 0;
repeat
if k >= n then
begin
write('Значение K >= N, введите корректное значение!');
readln(k);
end
else
if k < 0 then
begin
write('Значение K < 0, введите корректное значение!');
readln(k);
end
else
l += 1;
until l > 1;
end;
begin
write('Введите N: ');
readln(n);
check_n(n);
write('Введите K: ');
readln(k);
check_k(n,k);
first_array := initialization_array(first_array,n);
print(first_array);
writeln();
check_availability(first_array,k);
print(first_array);
check_availability(first_array,k);
readln();
end.консоль
Введите N: 12 Введите K: 5 |55||59||72||85||60||86||55||85||42||62||65||38| Число 0 в массиве отсутствует! Число 1 в массиве отсутствует! Число 2 в массиве отсутствует! Число 3 в массиве отсутствует! Число 4 в массиве отсутствует! Число 5 в массиве отсутствует! |0||1||2||3||4||5||55||85||42||62||65||38|
Введите N: 20 Введите K: 19 |55||59||72||85||60||86||55||85||42||62||65||38||44||30||90||5||97||27||38||48| Число 0 в массиве отсутствует! Число 1 в массиве отсутствует! Число 2 в массиве отсутствует! Число 3 в массиве отсутствует! Число 4 в массиве отсутствует! Число 6 в массиве отсутствует! Число 7 в массиве отсутствует! Число 8 в массиве отсутствует! Число 9 в массиве отсутствует! Число 10 в массиве отсутствует! Число 11 в массиве отсутствует! Число 12 в массиве отсутствует! Число 13 в массиве отсутствует! Число 14 в массиве отсутствует! Число 15 в массиве отсутствует! Число 16 в массиве отсутствует! Число 17 в массиве отсутствует! Число 18 в массиве отсутствует! Число 19 в массиве отсутствует! |0||1||2||3||4||6||7||8||9||10||11||12||13||14||15||5||16||17||18||19|
- Log in to post comments
- 1682 reads
vedro-compota
Sun, 01/17/2021 - 14:50
Permalink
уйти от использования
уйти от использования вложенных фукнций
_____________
матфак вгу и остальная классика =)