Информатика (Исправление ошибок в программе)


1
2
3
4
5
6
7
8
9
10
  • 1
  • 2

Вопрос 24

Дано целое положительное число N, не превосходящее 1000. Необходимо определить, является ли это число степенью числа 3. То есть требуется определить, существует ли такое целое число K, что 3K = N, и вывести это число либо сообщение, что такого числа не существует.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа оказалась неверной. Ниже эта написанная им программа для Вашего удобства приведена на пяти языках программирования. 

 


БейсикPython
DIM N, K AS INTEGER
  INPUT N
 K = 0
 WHILE K MOD 3 = 0
    K = K + 1
    N = N  3
 WEND
 IF N > 0 THEN
    PRINT K
 ELSE
    PRINT "Не существует"
 END IF
 END

n = int(input())

k = 0

while k%3 == 0:

    k = k + 1

    n = n // 3

if n > 0:

    print(k)

else:

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

 

 

ПаскальАлгоритмический язык
var n, k: integer;
begin
    read(n);
    k := 0;
    while k mod 3 = 0 do begin
        k := k + 1;
        n := n div 3;
    end;
    if n > 0 then
        writeln(k)
    else
        writeln('Не существует')
end.
алг
нач
    цел n, k
    ввод n
    k := 0
    нц пока mod(k, 3)=0
        k := k + 1
        n := div(n,3)
    кц
    если n > 0
        то вывод k
        иначе вывод "Не существует"
    все
кон
Си++
#include 
using namespacestd;
int main(){
    int n, k;
    cin >> n;
    k = 0;
    while (k%3 == 0) {
        k = k + 1;
        n = n / 3;
    }
    if (n > 0)
        cout « k « endl;
    else
        cout << "Не существует";
    return 0;
}

 

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

1. Напишите, что выведет эта программа при вводе числа 9.

2. Приведите пример числа, при вводе которого приведённая программа напечатает то, что требуется.

3. Найдите в программе все ошибки (их может быть одна или несколько).

Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

Достаточно указать ошибки и способ их исправления для одного языка программирования.

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.