Написать программу случайным образом формирующую числовой массив в диапазоне [-10,10]

0 голосов
48 просмотров

Написать программу случайным образом формирующую числовой массив в диапазоне [-10,10]


image

Информатика (45 баллов) | 48 просмотров
Дано ответов: 2
0 голосов
Правильный ответ
// PascalABC.NET 3.3, сборка 1625 от 17.01.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger('n=');
  var a:=ArrRandom(n,-10,10);
  for var i:=0 to n-2 do Write('A[',i+1,']=',a[i],', ');
  Writeln('A[',n,']=',a[n-1]);
  Writeln('Четных элементов- ',a.Where(t->t.IsEven).Count);
  a.Transform(t->t<0?1:0); a.Println;<br>end.

Пример
n= 13
A[1]=-10, A[2]=-2, A[3]=-8, A[4]=6, A[5]=-1, A[6]=3, A[7]=-10, A[8]=-3, A[9]=-6, A[10]=5, A[11]=7, A[12]=-3, A[13]=5
Четных элементов- 6
1 1 1 0 1 0 1 1 1 0 0 1 0
(150k баллов)
0 голосов

//Старый вариант решения этой задачи

var
a:array[1..1000000] of integer;
n, i, count:integer;
Begin
  Write('Введите количество элементов массива: ');Readln(n);
  Write('Сгенерированный массив -> ');
  for i:= 1 to n do
    begin
      a[i]:= -10 + random(21);
      Write('a[',i,']=', a[i], ',');
    end;
  for i:= 1 to n do
    if (a[i] mod 2 = 0) then count := count + 1;
  Writeln();
  Writeln('Четных элементов: ', count);
  For i:= 1 to n do
  begin
    if (a[i] < 0) then a[i]:= 1 else
      a[i]:= 0;
    write(a[i], ' ');
  end;
end.

Прмер:
Введите количество элементов массива: 10
Сгенерированный массив -> a[1]=9,a[2]=-7,a[3]=8,a[4]=6,a[5]=4,a[6]=10,a[7]=0,a[8]=7,a[9]=1,a[10]=-5,
Четных элементов: 5
0 1 0 0 0 0 0 0 0 1


(8.8k баллов)
0

Ну, никто не говорил, что числа не могут быть одни и те же все время, да и миллионом больше, миллионом меньше....

0

Сделал бы динамический хоть)