Const N = 33; Var A:array[1..N] of real; i,k:integer; Begin Randomize; k:=0; For i:= 1 to N do Begin if random(2) = 1 then A[i]:=random*N else A[i]:=0; Write(A[i]:0:3,' '); if A[i] = 0 then k:=k+1 End; WriteLn; WriteLn('Количество нулей в массиве: ',k); ReadLn End.
Решено, исходные данные: a(1)=0 a(2)=1 a(n+2)=a(n+1)-a(n) Найди a(885) Внимание: скобка означает число в нижнем индексе. Решаем, исходим сразу от наибольшего числа: a(885)=a(884)-a(883)=a(883)-a(882)-a(883)=a(882) В чем фокус-покус. Сначала мы применили формулу по отношению к числуa(885), а потом к числу a(884), из чего получилось равенство a(885)=a(882) Тем самым, мы можем утверждать, что числа в последовательностях будут совпадать каждые 885-882=3 раза. 885 кратно 3, следовательно ищем наименьшее общее кратное число, оно равно 3. Следовательно a(885)=a(3) Находим a(3) из формулы: a(3)=a(2)-a(1)=1-0=1, следовательно a(885)=1
Var b,c:integer; a: array [1..20] of integer; {объявляем массив} begin randomize; {говорим что будем использовать в теле программы рандомные числа} for b:=1 to 15 do begin {жи есть цикл программы который заполняет наш массив от первой ячейки (b) до 15 ячейки } a[b]:=random(1000); {присваиваем элементам массива рандомные значения} write(a[b]); {выводим эти значения} writeln(' <== ',a[b]*2); {рядом выводим точно такой же массив с такими же числами, только умноженными на 2 , а стрелочка для красоты } end; end. надеюсь что так можно? ;D
N = 33;
Var
A:array[1..N] of real;
i,k:integer;
Begin
Randomize;
k:=0;
For i:= 1 to N do
Begin
if random(2) = 1 then A[i]:=random*N
else A[i]:=0;
Write(A[i]:0:3,' ');
if A[i] = 0 then k:=k+1
End;
WriteLn;
WriteLn('Количество нулей в массиве: ',k);
ReadLn
End.