Top.Mail.Ru
Ответы

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

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

По дате
По рейтингу
Аватар пользователя
Знаток
3мес

Ты задал условия в теле алгоритма, что никак не влияет на значения в range()

Аватар пользователя
Ученик
5мес

Привет, вот мой вариант.

123456789101112
 beginning = int(input("Введите начало отрезка: ")) 
end = int(input("Введите конец отрезка: ")) 
step = int(input("Введите шаг: ")) 
 
if beginning > end: 
  beginning, end = end, beginning 
if step > 0: 
  step = -step 
 
for x in range(end, beginning - 1, step): 
  y = x**3 + 2 * x**2 - 4 * x + 1 
  print("В точке ", x, "функция равна ", y) 
Аватар пользователя
Ученик
6мес

шаг задается в интервале range. больше он не меняется. хоть что напиши в теле алгоритма, хоть убейся.
надо изначально задать шаг:
- abs(step)

for x in range(finish, begin, - abs(step)):

Аватар пользователя
Мастер
10мес

print (hello world!)