Задание 15 Урок 15. Одномерные массивы
Primary tabs
условие отражается некорректно. см задачник
15 - 15 Дан массив длиной N (не более 100 элементов). Проверить, что в этом массиве на отрезке индексов от m до p ( 1 ≤ m
const N = 15;
const K = 4;
const M = 4;
const P = 10;
type myArr = array[1..N] of integer;
procedure print(arr: myArr; msg:string);
var i:integer;
begin
writeln(msg);
for i:=low(arr) to high(arr) do
write(arr[i], ' ');
writeln();
end;
function arrayCheck(arr:myArr; k,m,p:integer): boolean;
var i,j: integer;
numFlag, sequenceFlag:boolean;
tempArr: myArr;
begin
for i:= 1 to high(tempArr) do
tempArr[i] := 0;
for j:=0 to k do // все числа от 0 до k
for i:=m to p do // на отрезке индексов от m до p
if (j = arr[i]) then
begin
tempArr[i]:= j;
numFlag:= true;
sequenceFlag:= true; // если последовательность не прерывается
break;
end
else
numFlag:= false;
writeln();
print (tempArr, 'temporary array: ');
result:= (sequenceFlag AND numFlag);
end;
var
i:integer;
arr: myArr;
begin
randomize;
for i:= low(arr) to high(arr) do
arr[i] := random(k+1);
writeln('N=', n, ' ' ,'K=', k, ' ','M=', m, ' ','P=',p );
print(arr, 'original arr');
writeln('array check: ', arrayCheck(arr, k, m, p));
readln();
end.//N=15 K=4 M=4 P=10 //original arr //1 2 2 0 0 1 4 4 3 2 4 3 1 3 2 //array check: //temporary array: //0 0 0 0 0 1 4 0 3 2 0 0 0 0 0 //TRUE //N=15 K=9 M=4 P=10 //original arr //1 3 9 5 3 8 0 1 8 3 3 3 0 2 3 //array check: //temporary array: //0 0 0 5 3 8 0 1 0 0 0 0 0 0 0 //FALSE
- Log in to post comments
- 1188 reads