Автомат обрабатывает натуральное число N по следующему алгоритму:
1. Строится двоичная запись числа N. 2. Складываются все цифры полученной двоичной записи. В конец записи (справа) дописывается
остаток от деления полученной суммы на 2. 3. Предыдущий пункт повторяется для записи с добавленной цифрой. 4. Результат переводится в десятичную систему и выводится на экран. Пример. Дано число N = 13. Алгоритм работает следующим образом:
1. Двоичная запись числа N: 1101. 2. Сумма цифр двоичной записи 3, остаток от деления на 2 равен 1, новая запись 11011. 3. Сумма цифр полученной записи 4, остаток от деления на 2 равен 0, новая запись 110110. 4. На экран выводится число 54. Сколько различных чисел, меньших 80, могут появиться на экране в результате работы автомата с решением
const
nn=30;
mm=30;
var
a:array[1..mm,1..nn] of integer;
m,n,i,j,k,s:integer;
begin
Writeln('Введите число строк и столбцов массива: '); Read(m,n);
Randomize;
Writeln('*** Исходный массив ***');
k:=0;
for i:=1 to m do begin
for j:=1 to n do begin
a[i,j]:=Random(51)-25;
Write(a[i,j]:4);
if Odd(a[i,j]) then Inc(k)
end;
Writeln
end;
if k>5 then begin
Writeln('Средние арифметические отрицательных элементов по строкам');
for i:=1 to m do begin
s:=0; k:=0;
for j:=1 to n do
if a[i,j]<0 then begin Inc(k); s:=s+a[i,j] end;
if k>0 then Writeln(s/k:9:5) else Writeln(' 0.00000');
end
end
else begin
Writeln('*** Результирующий массив ***');
for i:=1 to m do begin
for j:=1 to n do begin a[i,j]:=2*a[i,j]; Write(a[i,j]:4) end;
Writeln
end
end
end.
Тестовые решения:
Введите число строк и столбцов массива:
8 6
*** Исходный массив ***
-16 -8 -1 24 -22 1
-9 -20 -25 13 -11 10
-15 10 -12 20 -22 3
-6 25 -3 25 -14 22
24 -4 24 17 -4 -17
-23 -9 -22 1 -18 -13
-12 13 6 -16 2 -13
19 8 -22 14 -3 4
Средние арифметические отрицательных элементов по строкам
-11.75000
-16.25000
-16.33333
-7.66667
-8.33333
-17.00000
-13.66667
-12.50000
Введите число строк и столбцов массива:
3 5
*** Исходный массив ***
3 24 -21 -22 -8
-21 14 -22 0 -22
15 -16 -2 6 22
*** Результирующий массив ***
6 48 -42 -44 -16
-42 28 -44 0 -44
30 -32 -4 12 44
Пошаговые действияСоединение с реальным миромСоздание моделиСовместное
Базовый набор MINDSTORMS EV3
Поворот при датчика
ПечатьПоделиться
Ваша задача состоит в том, чтобы запрограммировать своего робота на выполнение поворота на месте на точный угол, используя гироскопический датчик.
45–90 мин
Средний уровень
Классы 5–8
Пошаговые действия
Постройте своего робота.
Создайте свою программу.
Далее установите робота в позицию 2 на поле 2 и запустите программу.
Запишите результаты.
Продолжите изучать использование гироскопического датчика для управления движениями робота.
Прежде чем вы начнете выполнять эту миссию, советуем изучить следующие разделы пособий самоучителя:
• Остановиться под углом
• Цикл
При выполнении миссии учащиеся будут изучать связь между вводом датчика и поведением робота. Приводная платформа будет вращаться под управлением гироскопического датчика.
Наблюдайте за учащимися, чтобы удостовериться, что они:
• используют правильную терминологию;
• понимают функционирование программируемых блоков;
• находят подходящие проверки угла поворота своего робота;
• понимают, какие факторы могут повлиять на точность остановки при использовании гироскопического датчика (погрешность датчика, мертвый ход мотора и вращающий момент)
Объяснение:
удачи