Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите, пожалуйста с решением задачи код Python

Владислав Великий Ученик (100), на голосовании 2 месяца назад
Перед изучением функций из программирования Саша решил оживить свои знания о функциях математики. Помогите Саше написать программу, которая будет считать значение функции в каждой точке отрезка с нужным шагом, начиная с конца). Напишите программу, которая получает на вход начало и конец отрезка, а также шаг (отрицательный), а затем высчитывает функцию y в каждой точке отрезка и выводит ответ на экран с нужным шагом, начиная с конца.
Сама функция выглядит так:
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
Голосование за лучший ответ
Виктор 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 также был включен в цикл.
Отрицательный шаг: Проверка на положительный шаг была сохранена, но общая структура программы была немного упрощена.

Теперь программа будет работать корректно для заданных вами входных данных и будет выводить значения функции в каждой точке отрезка с заданным шагом.
Владислав ВеликийУченик (100) 3 месяца назад
Виктор alt, к сожалению программа по-прежнему выводит не во всех точках, а в точке -2
Виктор alt f4 Ученик (125) Владислав Великий, Извините, код писала ии.
Похожие вопросы