ukkavtodor6
?>

Создайте массив из 50 элементов (диапазон 0..49) с генератора случайных чисел из отрезка [-10; 50]. выведите массив "в строку". подсчитать сумму элементов массива. нужна програма и , если можно, краткое описание идеи алгоритма и сам алгоритм.

Информатика

Ответы

Владимирович_Намик59
Var   i: integer;   s: integer;   a: array[0..49] of integer; begin   s : = 0;   randomize;   for i : = 0 to 49 do   begin       a[i] : = random(60) - 10;       s : = s + a[i];       write(a[i], ' ')   end;   writeln;   writeln('сумма элементов массива ', s) end. пример выполнения в среде pascalabc.net: 46 10 18 47 16 20 3 7 27 -10 10 18 19 28 0 3 21 26 32 36 1 -8 36 32 44 25 35 -1 -4 45 30 35 28 -8 45 6 20 34 0 47 7 9 34 39 47 5 29 10 47 26 сумма элементов массива 1072
b3dllam
                                     PascalABC.NET                                       function ToBinary (x:integer):string; beginif (x>0) then ToBinary := ToBinary(x div 2) + (x mod 2).ToString;end; function FromBinary (x:string):integer; beginif (x.Length>0) then FromBinary := FromBinary(x.Substring(1)) + x[1].ToDigit*Round(Power(2,x.Length-1));end; function func (x:integer):integer; beginvar s := ToBinary(x); loop 2 do s += s.AsEnumerable.Sum(c->c.ToDigit) mod 2; func:=FromBinary(s);end; begin Println('f(N):',func(ReadInteger('N:'))); Println('Количество:',(1..160).Count(x->func(x) in 90..160)); end.

Примечание:

Если к числу в двоичной системе счисления приписывать в конец цифры, то число увеличивается и никак не может уменьшится. Поэтому, n<f(n). Следовательно, перебор различных чисел, принадлежащих отрезку [90;160], можно смело ставить до 160 (можно и меньше, но лень расписывать вычисления).

ToBinary - функция перевода числа из десятичной СС в двоичную. Можно писать любой алгоритм, необязательно в точности использовать мой.

FromBinary - функция перевода числа из двоичной СС в десятичную. Можно писать любой алгоритм, необязательно в точности использовать мой.

func - функция, которая выполняет преобразования числа согласно условию (пункты 1, 2, 3, 4).

Код кажется большим только из-за процедур и begin/endов. Без них - всего то 7 строчек :). В скринах можно проверить, действительно ли 19 (40-22+1).

Пример работы:


Автомат обрабатывает натуральное число N по следующему алгоритму: 1. Строится двоичная запись числа
AMR89154331531

В языке C++ мы можем присвоить указателю нулевое значение, инициализируя его/присваивая ему литерал 0

Поскольку значением нулевого указателя является нуль, то это можно использовать внутри условного ветвления для проверки того, является ли указатель нулевым или нет

значение 0 не является типом указателя, и присваивание указателю значения 0 для обозначения того, что он является нулевым — немного противоречиво, вам не кажется? В редких случаях, использование 0 в качестве аргумента-литерала может привести к проблемам, так как компилятор не сможет определить, используется ли нулевой указатель или целое число 0

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Создайте массив из 50 элементов (диапазон 0..49) с генератора случайных чисел из отрезка [-10; 50]. выведите массив "в строку". подсчитать сумму элементов массива. нужна програма и , если можно, краткое описание идеи алгоритма и сам алгоритм.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

borisova-valeriya
kirill76536
innesagrosheva22
vvk2008
Boris1247
postbox
innesagrosheva22
Мунировна
natakrechko
Fedorovich309
Косарев
Khlustikova_Borisovna
efimov33
tvtanya80
dksvetlydir