В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
NatalyaCeluh
NatalyaCeluh
26.09.2020 20:10 •  Информатика

Автомат обрабатывает натуральное число n по следующему алгоритму:
1) строится двоичная запись числа n.
2) удаляются две последние цифры
3) полученное число переводится в десятичную запись и выводится на экран.
сколько разных значений будет показано на экране автомата при последовательном вводе всех натуральных чисел от 20 до 600?

можете подробно объяснить?

Показать ответ
Ответ:
моюр
моюр
14.07.2020 07:32

Объяснение:

procedure F(n: integer);

begin

 if n>0 then begin

   Write (n);

   F(n-2);

   F(n div 4);

   end

end;

begin

 F(9);

end.

На выходе будет 97531112

Если нужна трассировка, её можно сделать примерно так:

procedure F(n: integer);

begin

 Writeln('Вход');

 if n>0 then begin

   Writeln ('В выходную строку: ',n);

   Writeln('Вызов F(n-2)');

   F(n-2);

   Writeln('Вызов F(n div 4)');

   F(n div 4);

   end;

   Writeln('Выход')

end;

begin

 F(9);

end.

Результат трассировки:

Вход

В выходную строку: 9

Вызов F(n-2)

Вход

В выходную строку: 7

Вызов F(n-2)

Вход

В выходную строку: 5

Вызов F(n-2)

Вход

В выходную строку: 3

Вызов F(n-2)

Вход

В выходную строку: 1

Вызов F(n-2)

Вход

Выход

Вызов F(n div 4)

Вход

Выход

Выход

Вызов F(n div 4)

Вход

Выход

Выход

Вызов F(n div 4)

Вход

В выходную строку: 1

Вызов F(n-2)

Вход

Выход

Вызов F(n div 4)

Вход

Выход

Выход

Выход

Вызов F(n div 4)

Вход

В выходную строку: 1

Вызов F(n-2)

Вход

Выход

Вызов F(n div 4)

Вход

Выход

Выход

Выход

Вызов F(n div 4)

Вход

В выходную строку: 2

Вызов F(n-2)

Вход

Выход

Вызов F(n div 4)

Вход

Выход

Выход

Выход

0,0(0 оценок)
Ответ:
ctc76
ctc76
16.11.2020 02:13

оператор присваивания :=

оператор ввода read(x1,x2,...,xn) или readln(x1,x2,...,xn)

оператор вывода write(x1,x2,...,xn) или writeln(x1,x2,...,xn)

условный оператор if условие then оператор 1 else оператор 2

оператор варианта case управляющая переменная of

                                     набор значений1: оператор1;

                                     набор значений2: оператор2;

                                     ...

                                     набор значенийn: операторN

                               else

                                    альтернативный оператор

                              end;

оператор цикла с предусловиями while ... do

оператор цикла с постусловием repeat ... until

оператор цикла for ... do

оператор break осуществляет немедленный выход из циклов repeat, while, for.

оператор continue начинает новую итерацию цикла, даже если предыдущая не была завершина.

оператор exit осуществляет выход из подпрограммы.

оператор halt прекращает выполнение программы и возвращает код завершения в операционную систему.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота