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