Урок 15 Задача 11
Primary tabs
Заполнить массив из 9 элементов случайными числами из диапазона от нуля до N
, и затем удалите из этого массива все элементы равные M
, причем удаление необходимо производить "сдвигом" влево оставшихся элементов на позиции элементов, совпавших с M
.
Решить двумя способами:1) Любым
2) Провести операцию сдвига за одно прочтение исходного массива (для этого нам потребуется еще один массив, где мы будем хранить какие-то значения)
program u15_z11; // 1 вариант решения type myArr1 = array[1..9] of integer; var m,i: integer; a: myArr1; min,max,n,z: integer; begin randomize(); min := 0; max := n; n := 10; z:=0; for i := low(a) to high(a) do begin a[i] := min + random(max - min +1); write(a[i],' '); end; writeln(); m:=4; // например если m равно 4 for i := low(a) to high(a) do begin if (a[i] <> m) then write(a[i],' ') else if (a[i] = m) then begin if a[9] = z then a[9]:=0; a[i]:= a [i + 1]; z:=z+1; end; end; readln(); end.
program project1; // 2 вариант решения с двумя массивами type myArr1 = array[1..9] of integer; myArr2 = array[1..9] of integer; var m,i,j,z: integer; a: myArr1; b: myArr2; min,max,n: integer; begin randomize(); min := 0; n := 10; max := n; j := 1; m := 4; // например если m равно 4 z := 0; for i := low(a) to high(a) do begin a[i] := min + random(max - min +1); write(a[i],' '); end; writeln(); i := 1; while (j <= 9) do begin b[j] := a[i]; if (i > 9) then break; if (a[i] = m) then begin b[j]:= a [i+1]; i := i+1; z := z + 1; end; j := j + 1; i := i + 1; end; for i := low(b) to (j - 1) do begin write(b[i],' '); end; readln(); end.
- Log in to post comments
- 72 reads