Задание 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
- 870 reads