Задание 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
- 1496 reads
vedro-compota
Sun, 01/17/2021 - 14:50
Permalink
уйти от использования
уйти от использования вложенных фукнций
_____________
матфак вгу и остальная классика =)