Задание 24. Исправление ошибок в программе: все задания

Ответом к заданию по информатике может быть целое число, десятичная дробь (записывайте её через запятую, вот так: 2,5), последовательность цифр или букв (пишите без пробелов: 97531).

Остальные задачи

Задание#T1930

На обработку поступает натуральное число, не превышающее 10910^9. Нужно написать программу, которая выводит на экран минимальную чётную цифру этого числа. Если в числе нет чётных цифр, требуется на экран вывести «NO». Программист написал программу неправильно. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.
DIM N, DIGIT, MINDIGIT AS LONG 
INPUT N 
MINDIGIT = N MOD 10 
WHILE N > 0 
  DIGIT = N MOD 10 
  IF DIGIT MOD 2 = 0 THEN 
    IF DIGIT < MINDIGIT THEN 
      MINDIGIT = DIGIT 
    END IF 
  END IF 
  N = N  10 
WEND 
IF MINDIGIT = 0 THEN 
  PRINT «NO» 
ELSE 
  PRINT MINDIGIT 
END IF
Последовательно выполните следующее.
  1. Напишите, что выведет эта программа при вводе числа 231231.
  2. Приведите пример такого трёхзначного числа, при вводе которого приведённая программа, несмотря на ошибки, выдаёт верный ответ.
  3. Найдите допущенные программистом ошибки и исправьте их. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.
Для каждой ошибки:
  1. выпишите строку, в которой сделана ошибка;
  2. укажите, как исправить ошибку, т.е. приведите правильный вариант строки.
Известно, что в тексте программы можно исправить ровно две строки так, чтобы она стала работать правильно.
Достаточно указать ошибки и способ их исправления для одного языка программирования.
Обратите внимание на то, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения.
Показать разбор
Это задание взято из демоварианта ФИПИ 2019
0 попыток решения0% решили верно

Задание#T4835

Факториалом натурального числа nn (обозначается n!n!) называется произведение всех натуральных чисел от 11 до nn. Например, 4!=1234=244! = 1 \cdot 2 \cdot 3 \cdot 4 = 24.
Дано целое положительное число AA. Необходимо найти ближайшее к AA число, которое является точным факториалом какого-либо натурального числа. Если два точных факториала одинаково близки к AA, нужно выбрать меньший из них.
Например, для A=15A = 15 нужно получить ответ 66, а для A=20A = 20 – ответ 2424.
Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.
Ниже эта программа для Вашего удобства приведена на пяти языках программирования.
DIM A, K, F AS INTEGER
INPUT A
K = 1
F = 1
WHILE F < A
  K = K + 1
  F = F * K
WEND
IF F - A >= FK - A THEN
  F = FK
END IF
PRINT K
END
Последовательно выполните следующее.
  1. Напишите, что выведет эта программа при вводе A=5A = 5.
  2. Приведите пример числа AA, при котором программа выведет верный ответ. Укажите этот ответ.
  3. Найдите в программе все ошибки (известно, что их не больше двух) и исправьте их. Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Достаточно указать ошибки и способ их исправления для одного языка программирования.
Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.
Показать разбор
Это задание составили эксперты «СтатГрада» для Яндекса
0 попыток решения0% решили верно

Задание#T4862

Факториалом натурального числа nn (обозначается n!n!) называется произведение всех натуральных чисел от 11 до nn. Например, 4!=1234=244! = 1 \cdot 2 \cdot 3 \cdot 4 = 24.
Дано целое положительное число AA. Необходимо найти ближайшее к AA число, которое является точным факториалом какого-либо натурального числа. Если два точных факториала одинаково близки к AA, нужно выбрать меньший из них.
Например, для A=15A = 15 нужно получить ответ 66, а для A=20A = 20 – ответ 2424.
Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.
Ниже эта программа для Вашего удобства приведена на пяти языках программирования.
DIM A, K, F AS INTEGER
INPUT A
K = 0
F = 1
WHILE F <= A
  K = K + 1
  F = F * K
WEND
IF F - A > A - FK THEN
  F = FK
  K = K - 1
END IF
PRINT K
END
Последовательно выполните следующее.
  1. Напишите, что выведет эта программа при вводе A=7A = 7.
  2. Приведите пример числа AA, при котором программа выведет верный ответ. Укажите этот ответ.
  3. Найдите в программе все ошибки (известно, что их не больше двух) и исправьте их. Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Достаточно указать ошибки и способ их исправления для одного языка программирования.
Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.
Показать разбор
Это задание составили эксперты «СтатГрада» для Яндекса
0 попыток решения0% решили верно

Задание#T4889

Дано целое положительное число N10N \geq 10. Необходимо найти наибольшую сумму двух соседних цифр в десятичной записи NN. Например, для N=2018N = 2018 нужно получить ответ 99, а для N=2010N = 2010 ответ 22.
Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.
Ниже эта программа для Вашего удобства приведена на пяти языках программирования.
DIM N,M,D1,D2,S AS INTEGER
INPUT N
M = 0
WHILE N >= 10
    D1 = N MOD 10
    D2 = N MOD 100
    S = D1 + D2
    IF S > M THEN
        M = S
    END IF
    N = N  100
WEND
PRINT M
Последовательно выполните следующее.
  1. Напишите, что выведет эта программа при вводе N=2018N = 2018.
  2. Приведите пример числа NN, при котором программа выведет верный ответ. Укажите этот ответ.
  3. Найдите в программе все ошибки (известно, что их не больше двух) и исправьте их. Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Достаточно указать ошибки и способ их исправления для одного языка программирования.
Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки, из-за которых программа может выдать неверный ответ: за исправления, внесённые в любые другие строки, баллы будут снижаться.
Показать разбор
Это задание составили эксперты «СтатГрада» для Яндекса
0 попыток решения0% решили верно

Задание#T4916

Дано целое положительное число N10N \geq 10. Необходимо найти наименьшую сумму двух соседних цифр в десятичной записи NN. Например, для N=2018N = 2018 нужно получить ответ 11, а для N=2030N = 2030 ответ 22.
Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.
Ниже эта программа для Вашего удобства приведена на пяти языках программирования.
DIM N,M,D1,D2,S AS INTEGER
INPUT N
M = 10
WHILE N >= 10
    D1 = N  10
    D2 = N  10 MOD 10
    S = D1 + D2
    IF S < M THEN
        M = S
    END IF
    N = N  10
WEND
PRINT M
Последовательно выполните следующее.
  1. Напишите, что выведет эта программа при вводе N=2018N = 2018.
  2. Приведите пример числа NN, при котором программа выведет верный ответ. Укажите этот ответ.
  3. Найдите в программе все ошибки (известно, что их не больше двух) и исправьте их. Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Достаточно указать ошибки и способ их исправления для одного языка программирования.
Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки, из-за которых программа может выдать неверный ответ: за исправления, внесённые в любые другие строки, баллы будут снижаться.
Показать разбор
Это задание составили эксперты «СтатГрада» для Яндекса
0 попыток решения0% решили верно
Яндекс.Репетитор пришёл на смену сервису Яндекс.ЕГЭ, и мы активно собираем отзывы пользователей. Пожалуйста, пишите нам через форму обратной связи.