ФИПИ · ЕГЭ · все форматы ответа · 2475 заданий
Тип задачи: Самостоятельное написание алгоритма.
| КЭС: | 3.2 Оценка сложности вычислений. Время работы и объём используемой памяти, их зависимость от размера исходных данных. Оценка асимптотической сложности алгоритмов. Алгоритмы полиномиальной сложности. Переборные алгоритмы. Примеры различных алгоритмов решения одной задачи, которые имеют различную сложность 3.6 Язык программирования (Паскаль, Python, Java, C++, C#). Типы данных: целочисленные, вещественные, символьные, логические. Ветвления. Сложные условия. Циклы с условием. Циклы по переменной. Обработка данных, хранящихся в файлах. Текстовые и двоичные файлы. Файловые переменные (файловые указатели). Чтение из файла. Запись в файл. Разбиение задачи на подзадачи. Подпрограммы (процедуры и функции). Использование стандартной библиотеки языка программирования |
| Тип ответа: | Развернутый ответ |
Ответ: Контрпример a = 0, b = 0, x = 1; убрать ввод и объявление x; при a = b = 0 вывести любое число
Решение.
1) Контрпример: a = 0, b = 0, x = 1. Первая проверка исходной программы b = 0 истинна, поэтому она печатает только x = 0. В действительности уравнение превращается в 0 · x + 0 = 0 и выполняется при любом действительном x, в частности при x = 1. Сообщённое множество корней неполно.
2) Переменная x не нужна в исходных данных: её значения следует найти по коэффициентам a и b. Убираем её объявление и ввод. Для Pascal остаются var a, b: real и readln(a, b); для Бейсика — ввод только a и b, для Си — две переменные и два соответствующих спецификатора с адресами в scanf.
3) Сначала различаем a = 0 и a ≠ 0. При a = 0 исходное равенство равносильно b = 0. Если одновременно b = 0, подходят все действительные числа; если b ≠ 0, решений нет. При a ≠ 0 переносим b: ax = −b, затем получаем единственный корень x = −ba. Отдельная ветвь для b = 0 здесь не нужна: формула сама даёт нулевой корень.
Такой порядок проверок полностью разбирает возможные коэффициенты и исключает деление на ноль. В программе Python 3 функция truediv из стандартного модуля operator выполняет обычное деление; a и b вводятся через пробел в одной строке.
from operator import truediv
a, b = map(float, input().split())
if a == 0:
if b == 0:
print('любое число')
else:
print('нет решений')
else:
print('x =', truediv(-b, a))Проверка. При a = 0, b = 0 выводится «любое число». При a = 0, b = 5 получается «нет решений», потому что равенство 5 = 0 ложно. При a = 2, b = −6 корень равен 3, и 2 · 3 − 6 = 0. При a = −2, b = 4 корень равен 2, и −2 · 2 + 4 = 0. При ненулевом a и b = 0 единственный корень действительно нулевой.
Ответ: Контрпример a = 0, b = 0, x = 1; убрать ввод и объявление x; при a = b = 0 вывести любое число.
Напишите пожелание к сайту или решению либо сообщите о найденной неточности в задании EGEINF8D5EEF.
Сообщение увидит только команда сайта: на странице оно не публикуется.
Комментарии к решению
Комментарии видны всем посетителям сайта.
Комментариев пока нет. Будьте первым.
Чтобы оставить комментарий, войдите или зарегистрируйтесь.