СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

15.2.Еще пример задания

Категория: Информатика

Нажмите, чтобы узнать подробности

Для подготовки к ОГЭ И ЕГЭ  по информатике

Просмотр содержимого документа
«15.2.Еще пример задания»

Еще пример задания:

В результате выполнения фрагмента программы

while n 0 do begin

write ( 2*(n mod 10)+1);

n := n div 10;

end;

на экран выведено число 13717. Укажите все числа, которые могли находиться в переменной n до выполнения этого цикла.

Решение (вариант 1, аналитический):

  1. прежде всего, заметим, что для вывода используется оператор write, который не переходит на следующую строку; поэтому числа в цикле будут выводиться в одной строке «вплотную» друг к другу, без промежутков

  2. вспомним, что n mod 10 – остаток от деления числа на 10 – это последняя цифра числа в десятичной системе счисления;

  3. операция n div 10 (деление нацело на 10) равносильна отбрасыванию последней цифры в десятичной системе счисления

  4. эти две операции выполняются пока значение переменной n не станет равно нулю

  5. анализируя алгоритм, можно придти выводу, что этот фрагмент программы выводит на экран числа , где – это -ая цифра с конца числа

  6. подумаем, в каком интервале находится значение , если – это цифра от 0 до 9: получаем интервал от до

  7. поэтому разбить цепочку 13717 на части можно следующими способами:

1 – 3 – 7 – 17

1 – 3 – 7 – 1 – 7

13 – 7 – 17

13 – 7 – 1 – 7

  1. в любом варианте разбиения каждое число получено по формуле , поэтому можно сразу определить цифры соответствующих чисел по формуле :

1 – 3 – 7 – 17 0 – 1 – 3 – 8

1 – 3 – 7 – 1 – 7 0 – 1 – 3 – 0 – 3

13 – 7 – 17 6 – 3 – 8

13 – 7 – 1 – 7 6 – 3 – 0 – 3

  1. вспоминаем, что цифры числа в цикле обрабатываются, начиная с последней, поэтому в ответе нужно перечислить числа 836, 3036, 8310 и 30310.

  2. таким образом, правильный ответ – 836, 3036, 8310, 30310.

Возможные ловушки и проблемы:

  • нужно уметь анализировать работу алгоритма, «прокручивать» его в уме

  • можно забыть, что цифры числа обрабатываются в обратном порядке, начиная с последней

Решение (вариант 2, перебор, М.Н. Мамчур, УГАТУ):

  1. для вывода используется оператор write, который не переходит на следующую строку; поэтому числа в цикле будут выводиться в одной строке «вплотную» друг к другу, без промежутков

  2. вспомним, что n mod 10 – остаток от деления числа на 10 – это последняя цифра числа в десятичной системе счисления;

  3. операция n div 10 (деление нацело на 10) равносильна отбрасыванию последней цифры в десятичной системе счисления

  4. эти две операции выполняются пока значение переменной n не станет равно нулю

  5. составим таблицу, в которой представим все возможные для вывода числа (последний столбец):

    Исходная цифра

    n mod 10

    2*(n mod 10)+1

    0

    0

    1

    1

    1

    3

    2

    2

    5

    3

    3

    7

    4

    4

    9

    5

    5

    11

    6

    6

    13

    7

    7

    15

    8

    8

    17

    9

    9

    19

  6. на основе таблицы, разобьем нашу цепочку 13717 на все возможные комбинации:

1 – 3 – 7 – 1 – 7

1 – 3 – 7 – 17

13 – 7 – 17

13 – 7 – 1 – 7

  1. из этой же таблицы видим, что каждому числу в этой цепочке соответствует исходная цифра (первый столбец); таким образом, преобразуем полученные комбинации в наборы исходных цифр:

0 – 1 – 3 – 0 – 3

0 – 1 – 3 – 8

6 – 3 – 8

6 – 3 – 0 – 3

  1. 5) во фрагменте программы цифры числа обрабатываются в обратном порядке, начиная с последней, поэтому в ответе нужно перечислить числа, записанные в обратном порядке, т.е. 30310, 8310, 836, 3036.

  2. таким образом, правильный ответ – 30310, 8310, 836, 3036.






Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!