Урок 15 Задача 17
Primary tabs
Дан массив длиной N (где 10≤N<100). Найти в этом массиве отрезок длиной F, такой что на нем встречаются все числа от 0 до k, где 0≤k<F.
В качестве ответа (если отрезок найден) получите его начальный и конечных индекс - m
и p ( 1≤m<p≤N, считая что массив индексируется с единицы)
Указание: Проверку массива на соответствие условиям задачи вынести в подпрограмму (процедуру, которая вычислит нужные индексы, если есть)
Подсказка: можно использовать функцию проверки отрезка в массиве из предыдущей задачи.
Решение:
program u15z17; type newArr = array [1..100] of integer; var a:newArr; i,j,k,m,p,count:integer; function randomArr(arr:newArr): newArr; begin for i:=low(arr) to high(arr) do arr[i]:=random(31); result:=arr; end; begin randomize; a:=randomArr(a); writeln(); m:=100; p:=0; for i:=low(a) to high(a) do write(a[i],'|'); writeln(); write('vvedite chislo k: '); readln(k); count:=-1; for j:=0 to k do begin for i:=low(a) to high(a) do begin if j=a[i] then begin count:=count+1; if i>p then p:=i; if i<m then m:=i; break; end; end; end; if count=k then begin writeln('TRUE'); writeln('m:',m,' p:',p); end else writeln('FALSE'); readln(); end.
Консоль:
10|26|4|4|15|20|5|24|0|9|12|20|25|8|28|29|6|4|19|4|22|22|4|16|28|1|17|11|13|23|9|16|8|22|15|10|26|7|7|19|3|4|21|10|11|8|18|14|24|5|12|28|28|24|23|26|2|28|3|0|22|22|24|4|10|19|2|2|7|15|13|4|10|20|16|8|10|16|28|29|21|1|26|0|16|28|11|25|4|18|9|3|27|17|21|30|1|19|26|30| vvedite chislo k: 10 TRUE m:1 p:57
- Log in to post comments
- 1899 reads
vedro-compota
Tue, 06/07/2022 - 21:24
Permalink
1) Указание: Проверку массива
1) Указание: Проверку массива на соответствие условиям задачи вынести в подпрограмму (функцию)
2) можно использовать (вызывать) подпрограмму из предыдущей задачи
_____________
матфак вгу и остальная классика =)
avast36
Thu, 06/09/2022 - 12:36
Permalink
Исправил
Решение:
Консоль:
vedro-compota
Wed, 06/15/2022 - 19:22
Permalink
замечания
_____________
матфак вгу и остальная классика =)