Форум сайта python.su
Задали на задачи по информатике ( 1 курс ) , объясните как делать, в школе паскаль был с ним тоже трудновато было. А тут даже не знаю и как что.
1. Дано действительное число А. Вычислить f(A), если f(x)=0 при x<=0; f(x)=x2 при 0<x<=1, в противном случае f(x)=x2sin(π*x2).
2. Даны два целых числа A и B (A < B). Вывести все целые числа, расположенные между данными числами (включая сами эти числа), в порядке их возрастания, а также количество N этих чисел.
3. Дан одномерный массив числовых значений, насчитывающий N элементов. Исключить из массива элементы, принадлежащие промежутку .
4. Описать функцию PowerA(x,a,eps) вещественного типа (параметры x, a, eps — вещественные, |x| < 1, a > 0, eps > 0), находящую приближенное значение функции (1+x)a:
(1+x)a = 1 + a•x + a•(a–1)•x2 / 2! + … + a•(a–1)•…•(a–n+1)•xn / n! + … . В сумме учитывать все слагаемые, большие по модулю eps. С помощью PowerA найти приближенное значение (1+x)a для данных x и a при шести различных значениях eps.
Я конечно понимаю, надо бы хотя бы начать, хочу разобраться не знаю с чего, искал по форуму не нашел для себя полезной информации. Объясните чайнику дальше сам разбираться буду
Офлайн
Начните с решения этих задач математически, на бумаге. Как бы вы решили задачу, без использования языков программирования?
В этот момент должны появится “правильные” вопросы.
Офлайн
3. Дан одномерный массив числовых значений, насчитывающий N элементов. Исключить из массива элементы, принадлежащие промежутку .
>>> la = list(range(-20, 21))
>>> ra = (-5, 8)
>>> la
[-20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
>>> lb = [i for i in la if i not in range(ra[0], ra[1] + 1)]
>>> lb
[-20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -9, -8, -7, -6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
>>>
>>> list(filter(lambda n: n not in range(ra[0], ra[1] + 1), la))
[-20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -9, -8, -7, -6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
>>>
2. Даны два целых числа A и B (A < B). Вывести все целые числа, расположенные между данными числами (включая сами эти числа), в порядке их возрастания, а также количество N этих чисел.
>>> a, b = 5, 20
>>> la = list(range(a, b + 1))
>>> print(la, len(la))
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] 16
>>> print(*la)
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
>>>
Отредактировано (Ноя. 30, 2010 07:33:35)
Онлайн
Posoh
1. Дано действительное число А. Вычислить f(A), если f(x)=0 при x<=0; f(x)=x2 при 0<x<=1, в противном случае f(x)=x2sin(π*x2).
>>> import math
>>> def f(x):
... if x <= 0:
... x = 0
... print x
... else:
... if x <= 1 and x > 0:
... print x * 2
... else:
... print x * x * math.sin(math.pi * x * x)
...
>>> f(4)
-3.13499226579e-014
>>> f(1)
2
>>> f(0)
0
>>> f(-5)
0
>>> f(15)
8.59765139942e-012
Офлайн
Товарищи KarDer_Groom и py.user.next, убедительная просьба: помогайте людям решать задачи, а не решайте их за них, тем более в этом разделе. От того, что вы делаете не будет пользы ни вам, ни Posoh. Делайте как Ferroman :)
Офлайн
regallДа то всё понятно. Сомневался решать или нет, но вспомнил себя в трудные моменты и всё же решил в этот рас помочь. Больше постараюсь так не делать :)
Офлайн
Тут вопрос стоит так - знал бы ты ответы сейчас, елсли бы не проходил трудные моменты?
Офлайн
FerromanХороший подход, убедил. ;) Не будем разводить офтоп. :cool:
знал бы ты ответы сейчас, елсли бы не проходил трудные моменты?
Офлайн
py.user.next
KarDer_Groom
Спасибо!
С первой задачей я и сам разобрался, второе тоже понятно. Третье даже по вашему решению не понял.
Насчет азов программирования, посоветуйте книгу
Офлайн
3. Дан одномерный массив числовых значений, насчитывающий N элементов.
Исключить из массива элементы, принадлежащие промежутку .
>>> N = 7 # установили число элементов
>>> bc = (1, 4) # установили отрезок BC
>>> lst = list(range(1, 1 + N)) # создали список из диапазона от 1 до 8, не включая 8
>>> lst # выводим список в интерпретаторе (в скрипте потребуется print(lst) )
[1, 2, 3, 4, 5, 6, 7]
>>> res = [i for i in lst if i not in range(bc[0], bc[1] + 1)] # создаём список res, описание ниже
>>> res # выводим список в интерпретаторе (в скрипте потребуется print(res) )
[5, 6, 7]
>>>
res = [i for i in lst if i not in range(bc[0], bc[1] + 1)]
Онлайн