Главная страница
Навигация по странице:

  • Задачи для самостоятельного решения На оценку 5 недостаточно дать ответ, надо сделать анализ, почему именно это число является ответом.

  • Видео-разбор заданий по теме: Нахождение НОД (при нажатой клавише: Ctrl ) https://youtu.be/RzXNM8nAOks

  • задачи по информатике. СР Инфа. Анализ программы, содержащей подпрограммы, циклы и ветвления


    Скачать 23.37 Kb.
    НазваниеАнализ программы, содержащей подпрограммы, циклы и ветвления
    Анкорзадачи по информатике
    Дата17.03.2022
    Размер23.37 Kb.
    Формат файлаdocx
    Имя файлаСР Инфа.docx
    ТипДокументы
    #402175

    ©Арбитович Александр, МБОУ лицей №2, апрель, 2020
    Тема: Анализ программы, содержащей подпрограммы, циклы и ветвления.

    Задачи для самостоятельного решения

    На оценку 5 недостаточно дать ответ, надо сделать анализ, почему именно это число является ответом.

    1. Записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: a и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 48, а потом 6.

    x = int(input())

    a = 1

    b = 0

    while x > 0:

        c = x % 10

        a = a*c

        if c > b:

            b = c

        x //= 10

    print(a)

    print(b)

    Решение:

    Следуя из алгоритма, цикл будет выполнятся столько раз, сколько цифр в числе.

    C присваивается остаток от деления x на 10

    Переменная a увеличивается в c раз

    Если остаток от деления x на 10 меньше b, то b присваивается значение c

    Произведение чисел – 48

    Самое большая цифра в числе – 6

    Наименьшее число – 246


    1. Ниже записана программа. Получив на вход число x , эта программа печатает два числа, a и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 72.


    x = int(input())

    a = 0

    b = 1

    while x > 0:

        a += 1

        b *= x % 10

        x = x // 10

    print(a)

    print(b)

    Решение:

    Следуя из алгоритма, цикл будет выполнятся столько раз, сколько цифр в числе, при этом число а увеличивается на 1

    Т.к. в конце а = 2, число двузначное

    b присваивается произведение цифр числа x

    b = 72, разложим его, получим 9*8

    Наименьшее число - 89


    1. Ниже записана программа. Получив на вход число x , эта программа печатает два числа, L и M. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 28.


    x = int(input())

    L = 0

    M = 0

    while x > 0:

        L = L + 1

        if M < x:

            M = M + (x % 10) * 2

        x = x // 10

    print(L)

    print(M)

    Решение:

    Следуя из алгоритма, цикл будет выполнятся столько раз, сколько цифр в числе, при этом числа L увеличивается на 1

    Т.к. в конце L = 3, число трехзначное

    M присваивается сумма удвоенных четных цифр числа x

    Наименьшее число - 177


    1. Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 6, а потом 9.


    x = int(input())

    a = 0

    b = 0

    while x > 0:

        a += 2

        b += (x % 10)

        x //= 10

    print(a)

    print(b)

    Решение:

    Следуя из алгоритма для того, чтобы a=6, x должно быть трехзначным

    b присваивается значение суммы цифр числа. b = 9

    Наименьшее трехзначное начинается с единицы. Разложим 9 на 1+8.

    Наименьшее число - 108


    1. Получив на вход число x, этот алгоритм печатает число M. Известно, что x > 100. Укажите наименьшее такое (т. е. большее 100) число x, при вводе которого алгоритм печатает 60.


    x = int(input())

    L = x-30

    M = x+30

    while L != M:

        if L > M:

            L = L - M

        else:

            M = M - L

    print(M)

    Решение:

    НОД (L, M) = 60

    Выпишем L, которые делятся на 60

    Затем, будем находить x и M. x=L+30, M=x+30


    L

    60

    120

    180

    240

    X

    90

    150

    210

    270

    M

    120

    180

    240

    300

    Первый столбец не подходит, потому что x=90<100

    Находим НОД (L, M), при L=120, M=180

    НОД (120, 180) = 60

    Ответ: x=150
    6. Ниже записана программа. Получив на вход число , эта программа печатает два числа, и . Укажите наибольшее из таких чисел , при вводе которых алгоритм печатает сначала 8, а потом 19.
    x = int(input())

    a = 0; b = 0

    while x > 0:

    a = a + 2

    b = b + (x % 10)

    x = x // 10

    Решение отсутствует, потому что код незакончен

    Видео-разбор заданий по теме:
    Нахождение НОД (при нажатой клавише: Ctrl)
    https://youtu.be/RzXNM8nAOks


    написать администратору сайта