diff --git a/week02/Intro.ipynb b/week02/Intro.ipynb index 63c7df6..294730c 100644 --- a/week02/Intro.ipynb +++ b/week02/Intro.ipynb @@ -788,7 +788,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 1, "metadata": {}, "outputs": [ { @@ -804,7 +804,7 @@ "lst.append('Hello')\n", "lst += [5, 6]\n", "lst.remove(5)\n", - "print(lst)" + "print(lst)\n" ] }, { @@ -855,11 +855,21 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4\n" + ] + } + ], "source": [ - "a = int()" + "a = int()\n", + "a=4\n", + "print (a)" ] }, { @@ -1299,7 +1309,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.8" + "version": "3.7.3" } }, "nbformat": 4, diff --git a/week02/zelenova_week02/n1 zelenova_week02 b/week02/zelenova_week02/n1 zelenova_week02 new file mode 100644 index 0000000..c496291 --- /dev/null +++ b/week02/zelenova_week02/n1 zelenova_week02 @@ -0,0 +1,12 @@ +# 1. Дано число n. С начала суток прошло n минут. +# Определите, сколько часов и минут будут показывать электронные часы в этот момент. +# Программа должна вывести два числа: количество часов (от 0 до 23) и количество минут (от 0 до 59). +# Учтите, что число n может быть больше, чем количество минут в сутках. (pythontutor.ru, 1 урок, электронные часы) +print ('n=') +n= int(input ()) +minute= n % 60 +if n//60 <24: + hour =n//60 +else: hour=(n//60) % 24 +print (hour,':',minute) + diff --git a/week02/zelenova_week02/n2 zelenova_week02 b/week02/zelenova_week02/n2 zelenova_week02 new file mode 100644 index 0000000..7d14d2a --- /dev/null +++ b/week02/zelenova_week02/n2 zelenova_week02 @@ -0,0 +1,9 @@ +# Напишете программу, которая на вход берет строку text и целое число n, и выводит в слово Hello, +# а также n раз через запятую и пробел строку text. В конце выхода запятая не ставится. +# Например, для text = MIPT Students и n = 5 результат будет следующим: +# Hello, MIPT Students, MIPT Students, MIPT Students, MIPT Students, MIPT Students +print('input your text') +text = str (input ()) +print('input n') +n= int (input ()) +print('Hello'+n*(', '+text)) \ No newline at end of file diff --git a/week02/zelenova_week02/n3 zelenova_week02 b/week02/zelenova_week02/n3 zelenova_week02 new file mode 100644 index 0000000..174c3a6 --- /dev/null +++ b/week02/zelenova_week02/n3 zelenova_week02 @@ -0,0 +1,14 @@ +#3. Даны три числа. Выведите значение наименьшего из них. (pythontutor.ru, 2 урок, минимум из трех чисел) +print('input first number') +first = int(input()) +print('input second number') +second = int(input()) +print('input third number') +third = int(input()) +print('The smallest number is') +if first <= second and first <= third: + print(first) +elif second <= first and second <= third: + print(second) +else: + print(third) diff --git a/week02/zelenova_week02/n4 zelenova_week02 b/week02/zelenova_week02/n4 zelenova_week02 new file mode 100644 index 0000000..9711e95 --- /dev/null +++ b/week02/zelenova_week02/n4 zelenova_week02 @@ -0,0 +1,9 @@ +#4. Длина Московской кольцевой автомобильной дороги —109 километров. +# Байкер Вася стартует с нулевого километра МКАД и едет со скоростью v километров в час. +# На какой отметке он остановится через t часов? Программа получает на вход значение v и t. +# Если v > 0, то Вася движется в положительном направлении по МКАД, если же значение v < 0, то в отрицательном. +# Программа должна вывести целое число от 0 до 108 — номер отметки, на которой остановится Вася. (pythontutor.ru, 3 урок, МКАД) +v=int(input()) +t=int(input()) +s=(v*t)%109 +print(s) diff --git a/week02/zelenova_week02/n5 zelenova_week02 b/week02/zelenova_week02/n5 zelenova_week02 new file mode 100644 index 0000000..6b830a7 --- /dev/null +++ b/week02/zelenova_week02/n5 zelenova_week02 @@ -0,0 +1,10 @@ +#5. По данному натуральном n вычислите сумму 1! + 2! + 3! + ... + n!. +# В решении этой задачи можно использовать только один цикл. +# (pythontutor.ru, 4 урок, сумма факториалов) +n= int(input()) +sum = 0 +fact = 1 +for i in range(1, n + 1): + fact=fact*i + sum=fact+sum +print(sum) diff --git a/week02/zelenova_week02/n6 zelenova_week02 b/week02/zelenova_week02/n6 zelenova_week02 new file mode 100644 index 0000000..5503958 --- /dev/null +++ b/week02/zelenova_week02/n6 zelenova_week02 @@ -0,0 +1,16 @@ +#6. Последовательность состоит из различных натуральных чисел и завершается числом 0. +# Определите значение второго по величине элемента в этой последовательности. +# Гарантируется, что в последовательности есть хотя бы два элемента. (pythontutor.ru, 6 урок, второй максимум) +lst=int(input()) +firstmax=0 +secmax=0 +while lst!=0: + + if firstmaxa[i+2]: + n+=1 + + return n +print(biggerthanneib(a)) + diff --git a/week04/zelenova_week04/zelenova_week04n10.py b/week04/zelenova_week04/zelenova_week04n10.py new file mode 100644 index 0000000..735b743 --- /dev/null +++ b/week04/zelenova_week04/zelenova_week04n10.py @@ -0,0 +1,8 @@ +#10.Дана база данных о продажах некоторого интернет-магазина. +# Каждая строка входного файла представляет собой запись вида Покупатель товар количество, +# где Покупатель — имя покупателя (строка без пробелов), +# товар — название товара (строка без пробелов), +# количество — количество приобретенных единиц товара. +# Создайте список всех покупателей, а для каждого покупателя подсчитайте количество приобретенных им единиц каждого вида товаров. +# Список покупателей, а также список товаров для каждого покупателя нужно выводить в лексикографическом порядке. +# (pythontutor.ru, занятие 11, «Продажи») diff --git a/week04/zelenova_week04/zelenova_week04n2.py b/week04/zelenova_week04/zelenova_week04n2.py new file mode 100644 index 0000000..98029ea --- /dev/null +++ b/week04/zelenova_week04/zelenova_week04n2.py @@ -0,0 +1,16 @@ +#2. В списке все элементы различны. +# Поменяйте местами минимальный и максимальный элемент этого списка. +# (pythontutor.ru, занятие 7, «Переставить min и max») + +a=[int(s) for s in input().split()] + +def reverce_min_max(a): + '''reverce min max меняет местами минимальный и максимальный элемент в списке, + при условии что все элементы списка различны.''' + x=a.index(max(a)) + y=a.index(min(a)) + a[x], a[y]=min(a),max(a) + + +reverce_min_max(a) +print(' '.join(map(str,a))) \ No newline at end of file diff --git a/week04/zelenova_week04/zelenova_week04n3.py b/week04/zelenova_week04/zelenova_week04n3.py new file mode 100644 index 0000000..30cf143 --- /dev/null +++ b/week04/zelenova_week04/zelenova_week04n3.py @@ -0,0 +1,14 @@ +#3. Дан список чисел. Посчитайте, сколько в нем пар элементов, равных друг другу. +# Считается, что любые два элемента, равные друг другу образуют одну пару, +# которую необходимо посчитать. (pythontutor.ru, занятие 7, «Количество совпадающих пар») + +a=[int(s) for s in input().split()] +def pairs(a): + '''pairs считает количество пар элементов равных друг другу''' + p=0 + for i in range (len(a)-1): + b=a[i+1:] + n=b.count(a[i]) + p+=n + print('элементы списка образуют',p,'пар') +pairs(a) diff --git a/week04/zelenova_week04/zelenova_week04n4.py b/week04/zelenova_week04/zelenova_week04n4.py new file mode 100644 index 0000000..a26af01 --- /dev/null +++ b/week04/zelenova_week04/zelenova_week04n4.py @@ -0,0 +1,14 @@ +#4. Дан список. Выведите те его элементы, которые встречаются в списке только один раз. +# Элементы нужно выводить в том порядке, в котором они встречаются в списке. (pythontutor.ru, занятие 7, «Уникальные элементы») + +a=input().split() +def uniq(a): + '''создает новую последовательность, включающие лишь те элементы, + что встречались в исходной последовательности один раз''' + uniq_a=[] + for symbol in a: + if a.count(symbol) == 1: + uniq_a.append(symbol) + print(uniq_a) + +uniq(a) \ No newline at end of file diff --git a/week04/zelenova_week04/zelenova_week04n5.py b/week04/zelenova_week04/zelenova_week04n5.py new file mode 100644 index 0000000..521abd2 --- /dev/null +++ b/week04/zelenova_week04/zelenova_week04n5.py @@ -0,0 +1,7 @@ +#5. Даны два списка чисел. Найдите все числа, которые входят как в первый, так и во второй список +# и выведите их в порядке возрастания (pythontutor.ru, занятие 10, «Пересечение множеств») +a=[int(s) for s in input().split()] +b=[int(s) for s in input().split()] +c=sorted(list(set(a)&set(b))) + +print(' '.join(map(str,c))) diff --git a/week04/zelenova_week04/zelenova_week04n6.py b/week04/zelenova_week04/zelenova_week04n6.py new file mode 100644 index 0000000..2442de7 --- /dev/null +++ b/week04/zelenova_week04/zelenova_week04n6.py @@ -0,0 +1,11 @@ +# Во входной строке записана последовательность чисел через пробел. +# Для каждого числа выведите слово YES (в отдельной строке), +# если это число ранее встречалось в последовательности или NO, если не встречалось. +#(pythontutor.ru, занятие 10, «Встречалось ли число раньше») + +a=[int(s) for s in input().split()] +for i in range (len(a)): + if i==a.index(a[i]): + print('NO') + else: print('YES') + diff --git a/week04/zelenova_week04/zelenova_week04n7.py b/week04/zelenova_week04/zelenova_week04n7.py new file mode 100644 index 0000000..273af94 --- /dev/null +++ b/week04/zelenova_week04/zelenova_week04n7.py @@ -0,0 +1,12 @@ +#7. Дан текст: в первой строке записано число строк, далее идут сами строки. +# Определите, сколько различных слов содержится в этом тексте. +# Словом считается последовательность непробельных символов идущих подряд, +# слова разделены одним или большим числом пробелов или символами конца строки. +# (pythontutor.ru, занятие 10, «Количество слов в тексте») +n=int(input()) +c=set() +for i in range (n): + b=set(input().split()) + c.update(b) +print(len(c)) + diff --git a/week04/zelenova_week04/zelenova_week04n8.py b/week04/zelenova_week04/zelenova_week04n8.py new file mode 100644 index 0000000..ef82388 --- /dev/null +++ b/week04/zelenova_week04/zelenova_week04n8.py @@ -0,0 +1,15 @@ +#8. Вам дан словарь, состоящий из пар слов. Каждое слово является синонимом к парному ему слову. +# Все слова в словаре различны. Для слова из словаря, записанного в последней строке, определите его синоним. +# (pythontutor.ru, занятие 11, «Словарь синонимов») +n=int(input()) +sinom= dict(input().split() for k in range(n)) +word = input() +try: + if sinom.get(word) !=-1: + print(sinom[word]) +except KeyError: + for i in sinom: + if sinom[i]==word: + print(i) + + diff --git a/week04/zelenova_week04/zelenova_week04n9.py b/week04/zelenova_week04/zelenova_week04n9.py new file mode 100644 index 0000000..2b97f4d --- /dev/null +++ b/week04/zelenova_week04/zelenova_week04n9.py @@ -0,0 +1,23 @@ +#9. Дан текст: в первой строке задано число строк, далее идут сами строки. +# Выведите слово, которое в этом тексте встречается чаще всего. +# Если таких слов несколько, выведите то, которое меньше в лексикографическом порядке. +# (pythontutor.ru, занятие 11, «Самое частое слово») + +n=int(input()) +words=[] +oftwords=set() +for k in range(n): + words+=(input().split()) + +dict={} +for i in range (len(words)): + if words[i] not in dict: + dict[words[i]] = 1 + else: + dict[words[i]] += 1 +m=max(list(dict.values())) +for i in dict: + if dict[i]==m: + oftwords.add(i) +print(min(oftwords)) + diff --git a/week05/zelenova_week05/z_week05n1.py b/week05/zelenova_week05/z_week05n1.py new file mode 100644 index 0000000..f9e2f76 --- /dev/null +++ b/week05/zelenova_week05/z_week05n1.py @@ -0,0 +1,66 @@ +# Дано действительное положительное число a и целоe число n. Вычислите a в степени n. +# Решение оформите в виде функции power (a, n). +# Стандартной функцией возведения в степень пользоваться нельзя. +# (pythontutor.ru, 8 урок, отрицательная степень) +from math import ceil + +num = 0 +def checknum(num): + """присваивает переменной num значение float с ввода """ + _ = 1 + while _: + try: + num=float(input()) + except ValueError: + print('введите число (по-одному)') + _=0 + return num + +def checknumf(num): + """присваивает переменной num значение положительного float числа с ввода """ + _ = 1 + while _: + try: + num=float(input()) + except ValueError: + print('введите число (по-одному)') + else: + if num >= 0: + _=0 + else: + print('введите положительное число') + return num + +def checknumint(num): + """присваивает переменной num значение положительного int числа с ввода """ + _ = 1 + while _: + try: + num=int(input()) + except ValueError: + print('введите целое число') + else: + if num >= 0: + _=0 + else: + print('введите положительное число') + return num + +def power (a,n): + ''' возводит число а в степень n''' + x=1 + if n>0: + for i in range(n): + x*=a + elif n<0: + for i in range(n*(-1)): + x/=a + return x #проверку на ноль не делаем, там останется единица + +if __name__ == '__main__': + print('Возведение числа в степень.') + print('Введите основание степени (действительное положительное число):') + a=checknumf(num) + print('Введите степень (целое число):') + n=int((checknumint(num))) + print('a^n=', power(a,n)) diff --git a/week05/zelenova_week05/z_week5n2.py b/week05/zelenova_week05/z_week5n2.py new file mode 100644 index 0000000..13a059a --- /dev/null +++ b/week05/zelenova_week05/z_week5n2.py @@ -0,0 +1,44 @@ +#2. Напишите функцию вычисляющие наибольшие общие делители (НОД) для множества пар чисел. +from z_week05n1 import checknum, checknumint + +num = 0 +ans=[] +def is_odd(number): + return (number%2) !=0 +def gcd(n,m): + '''gcd = greatest common divider''' + + if m==0 or n==0: + nod = (max(m,n)) + elif n == m: + nod = a + elif n == 1 or m == 1: + nod = 1 + elif is_odd(n): + if is_odd(m): + nod = gcd(n, abs(m-n)) + else: + nod = gcd(n, m/2) + else: + if is_odd(m): + nod = gcd(n/2, m) + else: + nod = gcd(n/2, m/2) + return nod + +print('Сколько пар чисел, вы хотите ввести?') +a=checknumint(num) +dict={} +for i in range(a): + print('введите',i+1,'пару чисел:') + key=checknum(num) + value=checknum(num) + dict[key]=value + +for i in dict: + n=abs(i) + m=abs(dict[i]) + ans.append(gcd(n,m)) +for i in range(a): + print('для пары',i+1,'НОД =',ans[i]) + diff --git a/week05/zelenova_week05/z_week5n3.py b/week05/zelenova_week05/z_week5n3.py new file mode 100644 index 0000000..c0465a4 --- /dev/null +++ b/week05/zelenova_week05/z_week5n3.py @@ -0,0 +1,44 @@ +#3Напишите функцию, которая в зависимости от выбора пользователя вычисляет площадь круга, прямоугольника или треугольника. +# Для вычисления площади каждой фигуры должна быть написана отдельная функция. +from z_week05n1 import checknumf + +num = 0 +c=['круг','Круг','круга','Круга','circle','rheu','rheuf'] +rec=['прямоугольник','Прямоугольник','Прямоугольника','прямоугольника','rectangle','ghzvjeujkmybr','ghzvjeujkmybrf'] +t=['треугольник','Треугольник','Треугольника','треугольника','triangle','nhteujkmybr','nhteujkmybrf'] + +def circle_area(r): + from math import pi + s=pi*(r*r) + return s + +def rectangle_area(a,b): + s=a*b + return s + +def triangle_area(x,h): + s=x*h/2 + return s +_=1 +while _: + print('Введите площадь какой фигуры вы хотите найти:круга,прямоугольника или треугольника') + shape=input() + if shape in c: + print('Введите радиус круга') + r=checknumf(num) + print('Площадь круга равна', round(circle_area(r),2)) + _ = 0 + elif shape in rec: + print('Введите длины сторон прямоугольника') + a = checknumf(num) + b = checknumf(num) + print('Площадь прямоугольника равна', round(rectangle_area(a,b),2)) + _ = 0 + elif shape in t: + print('Введите длину стороны треугольника и длинну высотыб проведенной к этой стороне') + x = checknumf(num) + h = checknumf(num) + print('Площадь треугольника равна', round(triangle_area(x,h),2)) + _ = 0 + else: + print('Вы ввели некорректную фигуру') \ No newline at end of file diff --git a/week05/zelenova_week05/z_week5n4.py b/week05/zelenova_week05/z_week5n4.py new file mode 100644 index 0000000..6b1956d --- /dev/null +++ b/week05/zelenova_week05/z_week5n4.py @@ -0,0 +1,32 @@ +#4Напишите функцию, которая на вход принимает квадратную матрицу (например, в виде списка списков). +# Вычисляет сумму элементов главной или побочной диагонали в зависимости от выбора пользователя. +# Сумма элементов любой диагонали должна вычисляться в одной и той же отдельной функции. +from z_week05n1 import checknumint + +num = 0 + +def diagonal_sum(column): + sum=0 + for i in range(a): + line=column[i] + sum+=line[n*i] + return sum + +print('Введите порядок матрицы') +a=checknumint(num) +column=[] +print('Введите матрицу по-строчно') +for i in range(a): + line=[int(s) for s in input().split()] + column.append(line) + +_ = 1 +while _: + print('Если вы хотите узнать сумму главной диагонали введите 1,для определения суммы побочной диагонали введите -1') + n=checknumint(num) + if n in [-1,1]: + print('Сумма выбранной диагонали равна' diagonal_sum(column)) + _ = 0 + else: + print('Вы ввели не корректное значение') + diff --git a/week05/zelenova_week05/z_week5n5.py b/week05/zelenova_week05/z_week5n5.py new file mode 100644 index 0000000..075f585 --- /dev/null +++ b/week05/zelenova_week05/z_week5n5.py @@ -0,0 +1,27 @@ +#5 Вычислить значения нижеприведенной функции в диапазоне значений x от -10 до 10 включительно с шагом, равным 1. +# {y = x^2 при -5 <= x <= 5; y = 2*|x|-1 при x < -5; y = 2x при x > 5}. +# Вычисление значения функции оформить в виде программной функции, +# которая принимает значение x, а возвращает полученное значение функции (y). +# Нарисуйте с помощью matplotlib график этой функции. +import matplotlib +import matplotlib.pyplot as plt +import numpy as np + +def funcxy(x): + if x < (-5): + return abs(x)*2-1 + elif x > 5: + return x*2 + else: + return x*x + +x=list(i for i in range (-10,11,1)) +y=list(funcxy(x[i]) for i in range(len(x))) + +plt.plot(x,y,color='blue',linewidth=3) +plt.title('Кусочно заданная функция', fontsize=18) +plt.grid(True) +plt.xlabel('x',fontsize=16) +plt.ylabel('y',fontsize=16) + +plt.show() diff --git a/week05/zelenova_week05/zelenova_week05n1 b/week05/zelenova_week05/zelenova_week05n1 new file mode 100644 index 0000000..8babf3e --- /dev/null +++ b/week05/zelenova_week05/zelenova_week05n1 @@ -0,0 +1,22 @@ +# Дано действительное положительное число a и целоe число n. Вычислите a в степени n. +# Решение оформите в виде функции power (a, n). +# Стандартной функцией возведения в степень пользоваться нельзя. +# (pythontutor.ru, 8 урок, отрицательная степень) + +print('Возведение числа в степень.') +print('Введите основание степени (действительное положительное число):') +a=float(input()) +print('Введите степень (целое число):') +n=int(input()) + +def power (a,n): + ''' возводит число а в степень n''' + x=1 + if n>0: + for i in range(n): + x*=a + elif n<0: + for i in range(n*(-1)): + x/=a + return x #проверку на ноль не делаем, там останется единица +print('a^n=', power(a,n)) diff --git a/week05/zelenova_week05/zelenova_week05n2.py b/week05/zelenova_week05/zelenova_week05n2.py new file mode 100644 index 0000000..677bd8f --- /dev/null +++ b/week05/zelenova_week05/zelenova_week05n2.py @@ -0,0 +1,27 @@ +#2. Напишите функцию вычисляющие наибольшие общие делители (НОД) для множества пар чисел. + +print('Сколько пар чисел, вы хотите ввести?') +a=int(input()) +dict={} +for i in range(a): + print('введите',i+1,'пару чисел:') + key=int(input()) + value=int(input()) + dict[key]=value +def gcd(dict): + '''gcd = greatest common divider for every pair from dictionary(dict). creates list nod with the answers''' + nod=[] + for i in dict: + n=abs(i) + m=abs(dict[i]) + if m==0 or n==0: + nod.append(max(m,n)) + for i in range(min(m,n)): + if n%(min(m,n)-i)==0 and m%(min(m,n)-i)==0: + nod.append(min(m,n)-i) + break + return nod +gcd(dict) +for i in range(a): + print('для пары',i+1,'НОД =',gcd(dict)[i]) + diff --git a/week05/zelenova_week05/zelenova_week05n3.py b/week05/zelenova_week05/zelenova_week05n3.py new file mode 100644 index 0000000..2ca2648 --- /dev/null +++ b/week05/zelenova_week05/zelenova_week05n3.py @@ -0,0 +1,29 @@ +#3Напишите функцию, которая в зависимости от выбора пользователя вычисляет площадь круга, прямоугольника или треугольника. +# Для вычисления площади каждой фигуры должна быть написана отдельная функция. +c=['круг','Круг','круга','Круга','circle','rheu','rheuf'] +rec=['прямоугольник','Прямоугольник','Прямоугольника','прямоугольника','rectangle','ghzvjeujkmybr','ghzvjeujkmybrf'] +t=['треугольник','Треугольник','Треугольника','треугольника','triangle','nhteujkmybr','nhteujkmybrf'] +def circle_area(r): + from math import pi + s=pi*(r*r) + return s +def rectangle_area(a,b): + s=a*b + return s +def triangle_area(x,h): + s=x*h/2 + return s +print('Введите площадь какой фигуры вы хотите найти:круга,прямоугольника или треугольника') +shape=input() +if shape in c: + print('Введите радиус круга') + r=float(input()) + print('Площадь круга равна', round(circle_area(r),2)) +if shape in rec: + print('Введите длины сторон прямоугольника') + a,b = float(input()),float(input()) + print('Площадь прямоугольника равна', round(rectangle_area(a,b),2)) +if shape in t: + print('Введите длину стороны треугольника и длинну высотыб проведенной к этой стороне') + x,h = float(input()),float(input()) + print('Площадь треугольника равна', round(triangle_area(x,h),2)) diff --git a/week05/zelenova_week05/zelenova_week05n4.py b/week05/zelenova_week05/zelenova_week05n4.py new file mode 100644 index 0000000..32a748b --- /dev/null +++ b/week05/zelenova_week05/zelenova_week05n4.py @@ -0,0 +1,25 @@ +#4Напишите функцию, которая на вход принимает квадратную матрицу (например, в виде списка списков). +# Вычисляет сумму элементов главной или побочной диагонали в зависимости от выбора пользователя. +# Сумма элементов любой диагонали должна вычисляться в одной и той же отдельной функции. +print('введите размер метрицы') +print('количество строк') +a=int(input()) +print('количество столбцов') +b=int(input()) +column=[] +for i in range(a): + print('введите '+str(i+1)+' строку(через пробел)') + line=[int(s) for s in input().split()] + column.append(line) +print('Если вы хотите узнать сумму главной диагонали введите 1,для определения суммы побочной диагонали введите -1') +n=int(input()) +def diagonal_sum(column): + sum=0 + for i in range(a): + line=column[i] + sum+=line[n*i] + return sum + +print(diagonal_sum(column)) + + diff --git a/week05/zelenova_week05/zelenova_week05n5.py b/week05/zelenova_week05/zelenova_week05n5.py new file mode 100644 index 0000000..3c040db --- /dev/null +++ b/week05/zelenova_week05/zelenova_week05n5.py @@ -0,0 +1,31 @@ +#5 Вычислить значения нижеприведенной функции в диапазоне значений x от -10 до 10 включительно с шагом, равным 1. +# {y = x^2 при -5 <= x <= 5; y = 2*|x|-1 при x < -5; y = 2x при x > 5}. +# Вычисление значения функции оформить в виде программной функции, +# которая принимает значение x, а возвращает полученное значение функции (y). +# Нарисуйте с помощью matplotlib график этой функции. +import matplotlib +import matplotlib.pyplot as plt +import numpy as np +x=[] +y=[] +for i in range(20): + x.append(int(i-10)) +for i in range(20): + if x[i]<(-5): + y.append(int(x[i]*x[i])) + if -5<=x[i]<=5: + y.append(2*abs(x[i])-1) + if x[i]>5: + y.append(2*x[i]) +print('x',x) +print('y',y) +plt.figure(figsize=(200,100)) +plt.plot(y,color='blue',linewidth=3) +plt.title('Кусочно заданная функция', fontsize=18) +plt.grid(True) +plt.xlabel('x',fontsize=16) +plt.ylabel('y',fontsize=16) + +plt.plot(-10,10) + +plt.show() diff --git a/zelenova_start b/zelenova_start new file mode 100644 index 0000000..e163c3a --- /dev/null +++ b/zelenova_start @@ -0,0 +1,3 @@ +print("sorry") +print("i'm late") +