№№ заданий Пояснения Ответы Ключ Добавить инструкцию Критерии
Источник Раздел кодификатора ФИПИ Справка
PDF-версия PDF-версия (вертикальная) PDF-версия (крупный шрифт) PDF-версия (с большим полем) Версия для копирования в MS Word
Задания
Задание 24 № 11320

Ученик написал программу, определяющую, какой степенью числа 4 является введенное. Например, для 16 это 2, так как 42 = 16. Если же такой степени нет, то необходимо вывести сообщение "Не существует". К сожалению, ученик написал программу неверно.

 

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 0

WHILE K MOD 4 = 0

    N = N \ 4

    K = K + 1

WEND

IF N <= 4 THEN

    PRINT K

ELSE

    PRINT "Не существует"

END IF

END

n = int(input())

k = 0

while k%4 == 0:

    n = n // 4

    k = k + 1

if n <= 4:

    print(k)

else:

    print("Не существует")

ПаскальАлгоритмический язык

var n, k: integer;

begin

    read(n);

    k := 0;

    while k mod 4 = 0 do begin

        n := n div 4;

        k := k + 1;

    end;

    if n <= 4 then

        writeln(k)

    else

        writeln('Не существует')

end.

алг

нач

    цел n, k

    ввод n

    k := 0

    нц пока mod(k, 4)=0

        n := div(n,4)

        k := k + 1

    кц

    если n <= 4

        то вывод k

        иначе вывод "Не существует"

    все

кон

Си++

#include <iostream>

using namespace std;

int main(){

    int n, k;

    cin >> n;

    k = 0;

    while (k%4 == 0) {

        n = n / 4;

        k = k + 1;

    }

    if (n <= 4)

        cout « k « endl;

    else

        cout << "Не существует";

    return 0;

}

 

 

 

Последовательно выполните следующее.

 

1. Что выдаст программа при вводе числа 64?

2. При вводе какого числа программа выдаст верный ответ? Укажите этот ответ.

3. Исправьте программу. Запишите ошибочную строку, затем исправленный вариант. Помните, что нужно исправить имеющуюся программу, а не писать свою, хоть и с лучшим алгоритмом.

Решение.

1. При вводе числа 64 программа выведет "Не существует".

2. n = 4 (выдаст k = 1)

3. Пример исправления для языка Python 3.3.

Первая ошибка:

while k % 4 == 0:

Исправленная строка:

while n % 4 == 0:

Вторая ошибка:

if n <= 4:

Исправленная строка:

if n == 1:

 

3. Пример исправления для языка Паскаль.

Первая ошибка:

while (k mod 4 = 0);

Исправленная строка:

while (n mod 4 = 0);

Вторая ошибка:

if n <= 4;

Исправленная строка:

if n = 1;

· · Видеокурс ·