diff --git a/2. max.py b/2. max.py new file mode 100644 index 0000000..cfe3c23 --- /dev/null +++ b/2. max.py @@ -0,0 +1,14 @@ +huge = 1 +big = 0 +a = 1 +while a > 0: + a = int(input()) + + if a > big and a > huge: + big = huge + huge = a + + if a > big and a < huge: + big = a + +print(big) \ No newline at end of file diff --git a/Chasy.py b/Chasy.py new file mode 100644 index 0000000..bc915b3 --- /dev/null +++ b/Chasy.py @@ -0,0 +1,12 @@ +min = int(input()) +if min > 1439: + alfa = min // 1440 + min = min - alfa * 1440 + +if min < 60: + print(0, ' ', min) + +if min >= 60: + hour = min // 60 + min = min - hour * 60 + print(hour, ' ', min) diff --git a/Factorial.py b/Factorial.py new file mode 100644 index 0000000..46d293a --- /dev/null +++ b/Factorial.py @@ -0,0 +1,8 @@ +n = int(input()) +sum = 0 +fact = 1 +for i in range(1, n + 1): + fact = i * fact + sum = sum + fact + +print(sum) \ No newline at end of file diff --git a/Improved/2..max negat.py b/Improved/2..max negat.py new file mode 100644 index 0000000..f6e0d83 --- /dev/null +++ b/Improved/2..max negat.py @@ -0,0 +1,14 @@ +huge = -9998 +big = -9999 +a = int(input()) +while a < 0: + + + if a > big and a > huge: + big = huge + huge = a + + if a > big and a < huge: + big = a + a = int(input()) +print(big) \ No newline at end of file diff --git a/Improved/Chasy.py b/Improved/Chasy.py new file mode 100644 index 0000000..229f350 --- /dev/null +++ b/Improved/Chasy.py @@ -0,0 +1,12 @@ +minimum = int(input()) +if minimum > 1439: + alfa = minimum // 1440 + minimum = minimum - alfa * 1440 + +if minimum < 60: + print(0, ' ', minimum) + +if minimum >= 60: + hour = minimum // 60 + minimum = minimum - hour * 60 + print(hour, ' ', minimum) diff --git a/Improved/Factorial.py b/Improved/Factorial.py new file mode 100644 index 0000000..4098edc --- /dev/null +++ b/Improved/Factorial.py @@ -0,0 +1,9 @@ +n = int(input()) +summa = 0 +fact = 1 +for i in range(1, n + 1): + fact = i * fact + fact = i * fact + summa = summa + fact + +print(summa) \ No newline at end of file diff --git a/Improved/MKAD.py b/Improved/MKAD.py new file mode 100644 index 0000000..1205182 --- /dev/null +++ b/Improved/MKAD.py @@ -0,0 +1,12 @@ +v = int(input()) +t = int(input()) +s = v*t + + +p = s % 109 + + + + +print(s) +print(p) \ No newline at end of file diff --git a/MKAD.py b/MKAD.py new file mode 100644 index 0000000..f29a575 --- /dev/null +++ b/MKAD.py @@ -0,0 +1,6 @@ +v = int(input()) +t = int(input()) +s = v*t +alfa = s // 109 +s = s - alfa*109 +print(s) \ No newline at end of file diff --git a/min iz 3 chisel.py b/min iz 3 chisel.py new file mode 100644 index 0000000..4ce1014 --- /dev/null +++ b/min iz 3 chisel.py @@ -0,0 +1,13 @@ +a = int(input()) +b = int(input()) +c = int(input()) + +if a <= b: + small = a +else: + small = b + +if c <= small: + small = c + +print(small) \ No newline at end of file diff --git a/week02/test.py b/week02/test.py new file mode 100644 index 0000000..20ddd29 --- /dev/null +++ b/week02/test.py @@ -0,0 +1,13 @@ +import os +import sys +def hi(): + print(os.getcwd()) + print('hello, world') + +def by(): + print('by, by') + +if __name__ == '__main__': + print('hi') + hi() + by() diff --git a/week03/turtle10.py b/week03/turtle10.py new file mode 100644 index 0000000..5ebe546 --- /dev/null +++ b/week03/turtle10.py @@ -0,0 +1,16 @@ +import turtle + +turtle.shape('turtle') +turtle.speed(10) +def circle(x): + for i in range(40): + + turtle.forward(4) + turtle.left(360/40) + + +for k in range (1,7): + circle(k) + turtle.setheading(360*k / 6) + +turtle.done() \ No newline at end of file diff --git a/week03/turtle11.py b/week03/turtle11.py new file mode 100644 index 0000000..6549544 --- /dev/null +++ b/week03/turtle11.py @@ -0,0 +1,18 @@ +import turtle +turtle.setheading(90) +turtle.shape('turtle') +turtle.speed(10) +def circle(x): + for i in range(40): + + turtle.forward(4+x) + turtle.left(360/40) + + +for k in range (1,7): + circle(k) + turtle.setheading(-90) + circle(k) + turtle.setheading(90) + +turtle.done() \ No newline at end of file diff --git a/week03/turtle12.py b/week03/turtle12.py new file mode 100644 index 0000000..6fb1737 --- /dev/null +++ b/week03/turtle12.py @@ -0,0 +1,13 @@ +import turtle +turtle.speed(10) +def dug(x): + for i in range(40): + + turtle.forward(x) + turtle.right(180/40) + +for i in range(5): + turtle.setheading(90) + dug(5) + dug(1) + turtle.setheading(-90) \ No newline at end of file diff --git a/week03/turtle13.py b/week03/turtle13.py new file mode 100644 index 0000000..950f942 --- /dev/null +++ b/week03/turtle13.py @@ -0,0 +1,49 @@ +import turtle +turtle.speed(1) +def circle(x): + for i in range(40): + + turtle.forward(x) + turtle.left(360/40) + +def dug(x): + for i in range(40): + + turtle.forward(x) + turtle.right(180/40) + + +turtle.penup() +turtle.forward(40) +turtle.pendown() +turtle.setheading(90) +turtle.color('yellow') +turtle.begin_fill() +turtle.circle(70) +turtle.end_fill() +turtle.penup() +turtle.goto(25,10) +turtle.pendown() +turtle.color('blue') +turtle.begin_fill() +turtle.circle(20) +turtle.penup() +turtle.goto(-30,10) +turtle.pendown() +turtle.circle(20) +turtle.end_fill() +turtle.penup() +turtle.goto(-23,0) +turtle.pendown() +turtle.width(5) +turtle.color('red') +turtle.left(180) +turtle.forward(30) +turtle.penup() +turtle.goto(5,-19) +turtle.pendown() +dug(2) + + + +turtle.done() \ No newline at end of file diff --git a/week03/turtle14.py b/week03/turtle14.py new file mode 100644 index 0000000..6036b31 --- /dev/null +++ b/week03/turtle14.py @@ -0,0 +1,17 @@ +import turtle + + +def star(n): + for i in range(n): + turtle.forward(150) + turtle.left(180-180/n) + + + + +star(5) +turtle.penup() +turtle.forward(300) +turtle.pendown() +star(11) +turtle.done() \ No newline at end of file diff --git a/week03/turtle2.py b/week03/turtle2.py new file mode 100644 index 0000000..4729123 --- /dev/null +++ b/week03/turtle2.py @@ -0,0 +1,14 @@ +import turtle + +turtle.shape('turtle') +turtle.forward(50) +turtle.left(90) +turtle.forward(50) +turtle.left(90) +turtle.forward(50) +turtle.right(90) +turtle.forward(50) +turtle.right(90) +turtle.forward(50) + +turtle.done() \ No newline at end of file diff --git a/week03/turtle3.py b/week03/turtle3.py new file mode 100644 index 0000000..806b356 --- /dev/null +++ b/week03/turtle3.py @@ -0,0 +1,9 @@ +import turtle + +turtle.shape('turtle') +for i in range(4): + turtle.forward(50) + turtle.left(90) + + +turtle.done() \ No newline at end of file diff --git a/week03/turtle4.py b/week03/turtle4.py new file mode 100644 index 0000000..1bd9c6f --- /dev/null +++ b/week03/turtle4.py @@ -0,0 +1,10 @@ +import turtle + +turtle.shape('turtle') +turtle.speed(5) +for i in range(100): + turtle.forward(4) + turtle.left(360/100) + + +turtle.done() \ No newline at end of file diff --git a/week03/turtle5.py b/week03/turtle5.py new file mode 100644 index 0000000..f48c5ed --- /dev/null +++ b/week03/turtle5.py @@ -0,0 +1,16 @@ +import turtle + +turtle.shape('turtle') +for i in range(10): + + for k in range(4): + turtle.forward(50+i*10) + turtle.left(90) + turtle.penup() + turtle.right(135) + turtle.forward(7.07) + turtle.pendown() + turtle.left(135) + + +turtle.done() \ No newline at end of file diff --git a/week03/turtle6.py b/week03/turtle6.py new file mode 100644 index 0000000..7c6e3b3 --- /dev/null +++ b/week03/turtle6.py @@ -0,0 +1,9 @@ +import turtle + +turtle.shape('turtle') +for i in range(12): + turtle.forward(50) + turtle.stamp() + turtle.goto(0,0) + turtle.right(360/12) +turtle.done() \ No newline at end of file diff --git a/week03/turtle7.py b/week03/turtle7.py new file mode 100644 index 0000000..f44514e --- /dev/null +++ b/week03/turtle7.py @@ -0,0 +1,10 @@ +import turtle + +turtle.shape('turtle') +turtle.speed(10) +for i in range(10*100): + turtle.forward(1+i/100) + turtle.left(360/100) + + +turtle.done() \ No newline at end of file diff --git a/week03/turtle8.py b/week03/turtle8.py new file mode 100644 index 0000000..d51b94f --- /dev/null +++ b/week03/turtle8.py @@ -0,0 +1,11 @@ +import turtle + +turtle.shape('turtle') +for i in range(100): + + + turtle.forward(50+i*10) + turtle.left(90) + + +turtle.done() \ No newline at end of file diff --git a/week03/turtle9.py b/week03/turtle9.py new file mode 100644 index 0000000..b643aed --- /dev/null +++ b/week03/turtle9.py @@ -0,0 +1,23 @@ +import turtle as t +t.speed(1) +def ugolnik(n,l): + for k in range(i): + t.forward(50+10*l) + t.left(360 / i) + +for i in range(4,10): + t.penup() + t.goto(-10*i,-10*i) + t.setheading(0) + t.pendown() + ugolnik(i,i) + + + + + + + + + +t.done() \ No newline at end of file diff --git a/week04/week04_01.py b/week04/week04_01.py new file mode 100644 index 0000000..70d68ed --- /dev/null +++ b/week04/week04_01.py @@ -0,0 +1,9 @@ +#Дан список чисел. Определите, сколько в этом списке элементов, которые больше двух своих соседей, +# и выведите количество таких элементов. Крайние элементы списка никогда не учитываются, поскольку у них недостаточно соседей. + +count = 0 +l = list(map(int, input().split())) +for i in range(1, len(l)-1): + if (l[i-1] < l[i]) and(l[i+1] < l[i]): + count += 1 +print(count) diff --git a/week04/week04_02.py b/week04/week04_02.py new file mode 100644 index 0000000..111d66f --- /dev/null +++ b/week04/week04_02.py @@ -0,0 +1,24 @@ +#Задача «Переставить min и max» +#Условие +#В списке все элементы различны. Поменяйте местами минимальный и максимальный элемент этого списка. +l = list(map(int, input().split())) +small = l[0] +big = l[0] +small_index = 0 +big_index = 0 + +for i in range(len(l)): + if l[i] > big: + big = l[i] + big_index = i +for i in range(len(l)): + if l[i] < small: + small = l[i] + small_index = i + + +l[big_index] = small +l[small_index] = big + +print(*l) + diff --git a/week04/week04_03.py b/week04/week04_03.py new file mode 100644 index 0000000..2f65b4f --- /dev/null +++ b/week04/week04_03.py @@ -0,0 +1,14 @@ +"""Задача «Количество совпадающих пар» +Условие +Дан список чисел. Посчитайте, сколько в нем пар элементов, равных друг другу. Считается, что любые два элемента, +равные друг другу образуют одну пару, которую необходимо посчитать.""" + + +l = list(map(int, input().split())) +sum = 0 +for j in range(len(l)): + for i in range(j + 1, len(l)): + if l[i] == l[j]: + sum += 1 + +print(sum) \ No newline at end of file diff --git a/week04/week04_04.py b/week04/week04_04.py new file mode 100644 index 0000000..fe682f1 --- /dev/null +++ b/week04/week04_04.py @@ -0,0 +1,30 @@ +"""Занятие 7. Списки +Задача «Уникальные элементы» +Условие +Дан список. Выведите те его элементы, которые встречаются в списке только один раз. Элементы нужно выводить +в том порядке, в котором они встречаются в списке.""" +def occurredOnce(l, n): + mp = dict() + # Store all the elements in the + # map with their occurrence + for i in range(n): + if l[i] in mp.keys(): + mp[l[i]] = -100 + else: + mp[l[i]] = i + + # invert mapping + mp_invert = {v: k for k, v in mp.items()} + + delete = [key for key in mp_invert if key == -100] + + for key in delete: del mp_invert[key] + + for t in mp_invert: + print(mp_invert[t], end=" ") + + +l = list(map(int, input().split())) +n = len(l) + +occurredOnce(l, n) diff --git a/week04/week04_05.py b/week04/week04_05.py new file mode 100644 index 0000000..1691c9b --- /dev/null +++ b/week04/week04_05.py @@ -0,0 +1,14 @@ +"""Занятие 10. Множества +Задача «Пересечение множеств» +Условие +Даны два списка чисел. Найдите все числа, которые входят как в первый, так и во второй список и выведите их в порядке возрастания. + +Примечание. И даже эту задачу на Питоне можно решить в одну строчку.""" +set1 = set(map(int, input().split())) +set2 = set(map(int, input().split())) + +set_to_list = list(set1 & set2) + +set_to_list.sort() + +print(*set_to_list) \ No newline at end of file diff --git a/week04/week04_06.py b/week04/week04_06.py new file mode 100644 index 0000000..4a30edd --- /dev/null +++ b/week04/week04_06.py @@ -0,0 +1,19 @@ +""""Занятие 10. Множества +Задача «Встречалось ли число раньше» +Условие +Во входной строке записана последовательность чисел через пробел. Для каждого числа выведите слово YES + (в отдельной строке), если это число ранее встречалось в последовательности или NO, если не встречалось.""" + + +l = list(map(int, input().split())) +print('NO') +for i in range(1, len(l)): + temp = 0 + for j in range(i): + if l[i] == l[j]: + print('YES') + break + if l[i] != l[j]: + temp += 1 + if temp == i: + print('NO') diff --git a/week04/week04_08.py b/week04/week04_08.py new file mode 100644 index 0000000..c8d7cea --- /dev/null +++ b/week04/week04_08.py @@ -0,0 +1,20 @@ +"""Занятие 11. Словари +Задача «Словарь синонимов» +Условие +Вам дан словарь, состоящий из пар слов. Каждое слово является синонимом к парному ему слову. Все слова в словаре различны. + +Для слова из словаря, записанного в последней строке, определите его синоним.""" + +N = int(input()) +l = [] +d = {} +for i in range(N): + l = list(map(str, input().split())) + d[l[0]] = l[1] + +d_invert = {v: k for k, v in d.items()} # invert dictionary +key = input() +if key in d.keys(): + print(d[key]) +else: + print(d_invert[key]) \ No newline at end of file diff --git a/week05/week05_1.py b/week05/week05_1.py new file mode 100644 index 0000000..5ba8caf --- /dev/null +++ b/week05/week05_1.py @@ -0,0 +1,27 @@ +"""Дано действительное положительное число a и целоe число n. Вычислите a в степени n. +Решение оформите в виде функции power (a, n). Стандартной функцией возведения в степень +пользоваться нельзя. (pythontutor.ru, 8 урок, отрицательная степень)""" +def power(a, n): + if n == 0: + print(1) + + if n > 0: + prod = a + flag = 1 + while flag != n: + prod = prod * a + flag += 1 + print(prod) + + if n < 0: + prod = a + flag = 1 + while flag != -n: + prod = prod * a + flag += 1 + print(1/prod) + + +a = float(input()) +n = int(input()) +power(a, n) \ No newline at end of file diff --git a/week05/week05_2.py b/week05/week05_2.py new file mode 100644 index 0000000..77af1a0 --- /dev/null +++ b/week05/week05_2.py @@ -0,0 +1,18 @@ +def gcd2(m, n): + if m % n != 0: + return gcd2(n, m % n) + else: + return n + +def main(): + n = int(input('How many pairs: ')) + a = [] + for i in range(n): + row = input().split() + for i in range(2): + row[i] = int(row[i]) + a.append(row) + + for i in range(n): + print(gcd2(a[i][0], a[i][1])) +main() \ No newline at end of file diff --git a/week05/week05_3.py b/week05/week05_3.py new file mode 100644 index 0000000..ef37a23 --- /dev/null +++ b/week05/week05_3.py @@ -0,0 +1,30 @@ +"""Напишите функцию, которая в зависимости от выбора пользователя вычисляет площадь круга, +прямоугольника или треугольника. Для вычисления площади каждой фигуры должна быть написана отдельная функция.""" +import math + +def circle(r): + S = math.pi*r**2 + return S +def rectangle(a, b): + S = a*b + return S + + +def main(): + figure = input('Calculate surface. Choose: circle, triangle, rectangle: ') + + if figure == 'circle': + r = float(input('Give radius: ')) + print('Surface = ', circle(r)) + if figure == 'rectangle': + a = float(input('Give 1. side: ')) + b = float(input('Give 2. side: ')) + print('Surface = ', rectangle(a, b)) + + if figure == 'triangle': + a = float(input('Give base: ')) + b = float(input('Give height for base: ')) + print('Surface = ', 0.5*rectangle(a, b)) + +if __name__== "__main__": + main() \ No newline at end of file diff --git a/week05/week05_4.py b/week05/week05_4.py new file mode 100644 index 0000000..4a87880 --- /dev/null +++ b/week05/week05_4.py @@ -0,0 +1,31 @@ +"""Напишите функцию, которая на вход принимает квадратную матрицу (например, в виде списка списков). +Вычисляет сумму элементов главной или побочной диагонали в зависимости от выбора пользователя. +Сумма элементов любой диагонали должна вычисляться в одной и той же отдельной функции""" + +# первая строка ввода - это количество строк массива +def main(): + n = int(input("Dimension of matrix: ")) + print("Enter matrix: ") + a = [] + for i in range(n): + row = input().split() + for i in range(n): + row[i] = int(row[i]) + a.append(row) + traceq = input("main trace/side trace: ") + if traceq == 'main trace': + trace(0, 1, n, a) + if traceq == 'side trace': + trace(n - 1, -1, n, a) + + + + +def trace(k, p, n, a): + sum = 0 + for t in range(n): + sum += a[k + p * t][t] + print(sum) + +if __name__== "__main__": + main() \ No newline at end of file diff --git a/week05/week05_5.py b/week05/week05_5.py new file mode 100644 index 0000000..a31f5ed --- /dev/null +++ b/week05/week05_5.py @@ -0,0 +1,34 @@ +"""Вычислить значения нижеприведенной функции в диапазоне значений x от -10 до 10 включительно с шагом, равным 1. +{y = x^2 при -5 <= x <= 5; y = 2*|x|-1 при x < -5; y = 2x при x > 5}. Вычисление значения функции оформить +в виде программной функции, которая принимает значение x, а возвращает полученное значение функции (y). +Нарисуйте с помощью matplotlib график этой функции.""" + + + +xx = [] +for i in range (21): + xx.append(i-10) + +yy = [] + +for x in range(-10, 11): + + if x > 5 and x <= 10: + yy.append(2*x) + + if x >= -10 and x< -5: + yy.append(2*abs(x) - 1) + if x >= -5 and x <= 5: + yy.append(x**2) + + + + +import matplotlib.pyplot as plt + + +plt.plot(xx, yy) +plt.grid() +plt.draw() + +plt.show() \ No newline at end of file