// PascalABC.NET 3.1, сборка 1172 от 19.02.2016 var a:array[1..15] of integer; i,k:integer; begin Randomize; k:=0; for i:=1 to 15 do begin a[i]:=Random(20)+1; Write(a[i],' '); if a[i]>10 then k:=k+1 end; Writeln; Writeln('k=',k) end.
Вычисления во вложении. Последнее деление на самом деле можно было бы "в столбик" и не писать, и так понятно, какой будет результат.
2. Переводим в двоичную систему счисления и дописываем вперед незначащие нули, пока не наберётся 8 знаков:
3. Добавляется знаковый бит: дописываем вперед 0, если число положительное, и 1, если отрицательное. Для неотрицательных чисел по сути ничего не меняется, а отрицательные представляем в дополнительном коде: меняем все биты на противоположные и добавляем к результату 1.
-56: меняем биты на противоположные (получаем 11100011) и добавляем 1. Окончательно получается
// PascalABC.NET 3.1, сборка 1172 от 19.02.2016
begin
Writeln('k=',ArrRandom(15,1,20).Println.Count(x->x>10))
end.
Тестовое решение
4 16 14 9 11 18 17 14 14 15 1 1 9 10 15
k=9
2. А вот так учат решать в школе...
// PascalABC.NET 3.1, сборка 1172 от 19.02.2016
var
a:array[1..15] of integer;
i,k:integer;
begin
Randomize;
k:=0;
for i:=1 to 15 do begin
a[i]:=Random(20)+1;
Write(a[i],' ');
if a[i]>10 then k:=k+1
end;
Writeln;
Writeln('k=',k)
end.
Тестовое решение:
18 15 7 6 3 3 10 6 6 15 2 16 16 2 12
k=6
ответ:1. Таблицы сложения и умножения:
Вычисления во вложении. Последнее деление на самом деле можно было бы "в столбик" и не писать, и так понятно, какой будет результат.
2. Переводим в двоичную систему счисления и дописываем вперед незначащие нули, пока не наберётся 8 знаков:
3. Добавляется знаковый бит: дописываем вперед 0, если число положительное, и 1, если отрицательное. Для неотрицательных чисел по сути ничего не меняется, а отрицательные представляем в дополнительном коде: меняем все биты на противоположные и добавляем к результату 1.
-56: меняем биты на противоположные (получаем 11100011) и добавляем 1. Окончательно получается
Объяснение: