Задача 15 Урок 15
Primary tabs
Дан массив длиной N (не более 100 элементов). Проверить, что в этом массиве на отрезке индексов от m до p ( 1
type inArr = array[1..20] of Integer; var a: array [1..20] of integer; x, i, k, N, m, p, min, max: integer; res: boolean; function SS(k,m,p: integer; a :inarr): boolean; // принимает числа поиска и массив а. возвращает тру фолс var t: integer; // счетчик поиска чисел flag: boolean; // тру если элемент найден begin writeln('k = ',k); writeln('m = ',m); writeln('p = ',p); writeln(); for t := 0 to k do begin for i := m to p do begin if(t = a[i]) then begin flag := true; //элемент найден break; //выход для проверки следующего числа end else flag := false; end; if(flag = false) then //если хоть раз вернулся фолс то функция вернет фолс break; //выйти и вернуть фолс end; result:= flag; writeln(); end; begin min := 0; max := 30; randomize(); a[1] := 1; write(a[1], ' '); for i := 2 to 20 do begin a[i] := random(max - min + 1) + min; N := i; write(a[i], ' '); end; writeln(); writeln('vvedi chislo m(ot)'); readln(m); writeln('vvedi chislo p(do)'); readln(p); writeln('vvedi chislo k'); readln(k); if((k >= 0) and (k < N) and (m >= 1) and (m <= N) and (p >= 1) and (p <= N) and (p > m)) then begin res := SS(k,m,p,a); if(res) then writeln('est vse chisla ot 0 do ', k ,' v diapazone indeksov ot ', m, ' do ' , p) else writeln('est NE vse chisla oy 0 do ', k,' v diapazone indeksov ot ', m, ' do ' , p); end else writeln('ERRORR- k vne diapazona'); readln(); end.
результат:
1 14 30 9 16 13 13 30 0 5 29 9 0 20 26 3 4 2 2 15 vvedi chislo m(ot) 1 vvedi chislo p(do) 18 vvedi chislo k 3 k = 3 m = 1 p = 18 est vse chisla ot 0 do 3 v diapazone indeksov ot 1 do 18
- Log in to post comments
- 553 reads
vedro-compota
Sat, 09/11/2021 - 12:18
Permalink
решение засчитано
решение засчитано
_____________
матфак вгу и остальная классика =)