Урок №15 задача №9
Primary tabs
Напишите функцию, которая определяет являются ли значения переданного массива целых чисел уникальными относительно друг друга, если среди есть неуникальные элементы, то удалите их, сдвинув значения влево, заполняя оставшиеся справа ячейки нулями.
Протестируйте работу функции на массиве из 7 случайных элементов из диапазона от 1 до 15-ти.
Например для:
|1|-3|5|-3|9|5|8|
получим:
|1|9|8|0|0|0|0|
type // секция объявления типов myArr = array[1..7] of integer; var a: myArr; // объявляем переменную типа myArr i,nomer_massif: integer; procedure initIntArrayOfSeven(var a: array of integer); var min, max: integer; begin randomize(); // инициал. датчик случайных чисел (вызов стандартной процедуры) min := 1; // левая граница max := 15; // правая граница for i:=low(a) to high(a) do a[i] := min + random(max - min + 1); end; function sdvig ( c: myArr; nomer_massif1 : integer): myArr; var i : integer ; begin For i:=low(c) to high(c) do begin if (i >= nomer_massif1 ) then begin c[i]:= c [ i + 1 ]; end; end; c[ high(c)] :=0; sdvig:= c; end ; function sdvig2 ( c: myArr; nomer_massif1 : integer): myArr; var i : integer ; begin For i:=low(c) to high(c) do begin if (i >= nomer_massif1 ) then begin c[i]:= c [ i + 1 ]; end; end; c[ high(c)] :=0; sdvig2:= c; end ; function ynik ( b: myArr): integer; var i, j, y : integer; begin y := 0; for i := 1 to high(b) do begin for j := 1 to high(b) do begin if(i = j) then begin continue; end; if (b[i] = b[j]) then begin b := sdvig( b, i-y); b := sdvig2( b, j-1-y); y := y + 1; end; end; write(b[i], ' '); end; end; begin initIntArrayOfSeven(a); for i:=low(a) to high(a) do begin write(a[i], ' ' ); end; writeln(); ynik(a) ; readln(); end.
- Log in to post comments
- 564 reads