Виктор alt f4
Ученик
(125)
3 месяца назад
Ваш код в целом почти правильный, но есть несколько ошибок и недочетов, которые необходимо исправить. В частности, необходимо исправить синтаксические ошибки и правильно организовать условие. Также не хватает обработки случая, когда конечное значение включительно.
Вот исправленная версия вашего кода:
begin = int(input('Введите начало отрезка: '))
finish = int(input('Введите конец отрезка: '))
step = int(input('Введите шаг: '))
# Если необходимо, меняем значения begin и finish местами
if begin > finish:
begin, finish = finish, begin
# Если шаг положительный, делаем его отрицательным
if step > 0:
step = -step
# Используем range для создания нужного диапазона
for x in range(finish, begin - 1, step):
y = (x ** 3) + 2 * (x ** 2) - (4 * x) + 1
print('В точке', x, 'функция равна', y)
Объяснение изменений:
Синтаксические ошибки: Добавил закрывающие скобки в месте считывания finish и step.
Проверка на порядок: Я перенес проверку порядок begin и finish выше, чтобы гарантировать, что они в правильном порядке.
Диапазон range: Исправил range таким образом, чтобы он правильно включал конечные значения. Я использовал begin - 1, чтобы begin также был включен в цикл.
Отрицательный шаг: Проверка на положительный шаг была сохранена, но общая структура программы была немного упрощена.
Теперь программа будет работать корректно для заданных вами входных данных и будет выводить значения функции в каждой точке отрезка с заданным шагом.
Сама функция выглядит так:
y = x**3 + 2*x**2 - 4*x + 1
Должно получится так:
Введите начало отрезка: -2
Введите конец отрезка: 2
Введите шаг: -1
В точке 2 функция равна 9
В точке 1 функция равна 0
В точке 0 функция равна 1
В точке -1 функция равна 6
В точке -2 функция равна 9
Я ввел код
begin = int(input('Введите начало отрезка: '))
finish = int(input('Введите конец отрезка: ')
step = int(input('Введите шаг: ')
for x in range(finish, begin, step):
y = (x ** 3) + 2 * (x ** 2) - (4 * x) + 1
print('В точке', x, 'функция равна', y)
if begin finish:
begin, finish = finish, begin
if step > 0:
step = step * -1
На выходе у меня получилось:
Введите начало отрезка: -2
Введите конец отрезка: 2
Введите шаг: -1
В точке 2 функция равна 9