Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
50bfcdd
Задача 1
softicer-67 Jul 11, 2021
9fb6496
Задача 1
softicer-67 Jul 11, 2021
17093e4
Задача 1
softicer-67 Jul 11, 2021
ecef0c3
Delete __init__.py
softicer-67 Jul 11, 2021
68b41d3
Delete ALG directory
softicer-67 Jul 11, 2021
1948ac8
Задача 2
softicer-67 Jul 11, 2021
d7aa5eb
Задача 2
softicer-67 Jul 11, 2021
f9e07d2
Delete ALGORITMS/Lesson_2 directory
softicer-67 Jul 11, 2021
bd55c91
Задача 2
softicer-67 Jul 11, 2021
d4e4583
Задача 3
softicer-67 Jul 11, 2021
c7f1f33
Задача 4
softicer-67 Jul 11, 2021
df899a9
Задача 5
softicer-67 Jul 11, 2021
a3f7089
Задача 6
softicer-67 Jul 11, 2021
bde6d3d
Задача 7
softicer-67 Jul 11, 2021
4ac34c0
Задача 8
softicer-67 Jul 11, 2021
6da637b
Задача 9
softicer-67 Jul 11, 2021
b0ef715
Задача 1
softicer-67 Jul 12, 2021
94e676f
Задача 4
softicer-67 Jul 12, 2021
f83526b
Задача 1
softicer-67 Jul 12, 2021
138b87d
Задача 1
softicer-67 Jul 12, 2021
74cf40a
Задача 5
softicer-67 Jul 12, 2021
220d653
Задача 5
softicer-67 Jul 12, 2021
e444ce4
Задача 5
softicer-67 Jul 12, 2021
5b5a17c
Задача 5
softicer-67 Jul 12, 2021
c11d4f3
Задача 4
softicer-67 Jul 12, 2021
cf5153a
Задача 4
softicer-67 Jul 12, 2021
a451a7b
Задача 4
softicer-67 Jul 12, 2021
2650a20
Задача 9
softicer-67 Jul 12, 2021
7d4d55c
Задача 5
softicer-67 Jul 12, 2021
9e1381d
Задача 6
softicer-67 Jul 12, 2021
4a584b1
Задача 8
softicer-67 Jul 12, 2021
13fba2e
Задача 8
softicer-67 Jul 12, 2021
da7f63a
Задача 4
softicer-67 Jul 12, 2021
ee5f2f5
Задача 3
softicer-67 Jul 12, 2021
13f7d5d
Задача 7
softicer-67 Jul 12, 2021
fe98f66
Задача 2
softicer-67 Jul 12, 2021
3f025e5
Задача 3
softicer-67 Jul 12, 2021
43a217c
Задача 3
softicer-67 Jul 12, 2021
9f2aca5
Задача 4
softicer-67 Jul 13, 2021
c775023
Задача 4
softicer-67 Jul 13, 2021
82cdd0d
Задача 4
softicer-67 Jul 13, 2021
dc9042d
Задача 4
softicer-67 Jul 13, 2021
d1a08a3
Задача 4
softicer-67 Jul 14, 2021
0560fe0
Задача 4
softicer-67 Jul 14, 2021
40ae3b6
Задача 1
softicer-67 Jul 18, 2021
454022c
Задача 1
softicer-67 Jul 18, 2021
a734f0f
Задача 1
softicer-67 Jul 18, 2021
9d6e0b0
Задача 2
softicer-67 Jul 18, 2021
eadf5e3
Задача 3
softicer-67 Jul 18, 2021
91c61a9
Задача 4
softicer-67 Jul 19, 2021
a5f861d
Задача 6
softicer-67 Jul 19, 2021
c1a01ce
Задача 4
softicer-67 Jul 19, 2021
decfe5f
Задача 5
softicer-67 Jul 19, 2021
a70e5b3
Задача 7
softicer-67 Jul 19, 2021
164884f
Задача 8
softicer-67 Jul 20, 2021
eb9c3ff
Задача 8
softicer-67 Jul 20, 2021
340e50d
Задача 1
softicer-67 Jul 20, 2021
ff48413
Задача 9
softicer-67 Jul 20, 2021
98c1aa4
Задача 1
softicer-67 Jul 20, 2021
728b9b3
Задача 1
softicer-67 Jul 20, 2021
e94ecd5
Задача 2
softicer-67 Jul 20, 2021
5f33516
Задача 3
softicer-67 Jul 21, 2021
d9e3739
Задача 4
softicer-67 Jul 21, 2021
c3abf82
Задача 4
softicer-67 Jul 21, 2021
bdfc6ca
Задача 4
softicer-67 Jul 21, 2021
2524305
Задача 5
softicer-67 Jul 21, 2021
7fcd9b0
Задача 6
softicer-67 Jul 21, 2021
2126f15
Задача 7
softicer-67 Jul 21, 2021
33a6070
Задача 7
softicer-67 Jul 21, 2021
ef1fea8
Задача 8
softicer-67 Jul 21, 2021
a42f9e5
Задача 8
softicer-67 Jul 21, 2021
20d3e3c
Задача 9
softicer-67 Jul 21, 2021
e2d8141
Задача 9
softicer-67 Jul 21, 2021
c5a6b28
Задача 7
softicer-67 Jul 22, 2021
cefa508
Задача 7
softicer-67 Jul 25, 2021
1b32944
Задача 7
softicer-67 Jul 27, 2021
83a8c58
Задача 2
softicer-67 Jul 27, 2021
10fc283
Задача 1
softicer-67 Jul 27, 2021
88d203a
Задача 1
softicer-67 Jul 27, 2021
40095be
Задача 2
softicer-67 Jul 27, 2021
782dedd
Задача 1
softicer-67 Jul 28, 2021
0c65295
Задача 1
softicer-67 Jul 28, 2021
4e70de5
Задача 2
softicer-67 Jul 28, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions ALGORITMS/.idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions ALGORITMS/Lesson_1/1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# 1. Найти сумму и произведение цифр трехзначного числа, которое вводит пользователь.

number = int(input('\n1 Вариант. Введите трехзначное целое число: '))

a = number // 100
b = number % 100 // 10
c = number % 10

print('\nСумма цифр: ', a + b + c)
print('Произведение цифр: ', a * b * c)


num = input('\n2 Вариант. Введите трехзначное целое число: ')
summa = 0
umn = 1
for i in num:
summa += int(i)
umn *= int(i)

print('\nСумма цифр: ', summa)
print('Произведение цифр: ', umn)



40 changes: 40 additions & 0 deletions ALGORITMS/Lesson_1/2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
"""
2. Выполнить логические побитовые операции «И», «ИЛИ» и др. над числами 5 и 6.
Выполнить над числом 5 побитовый сдвиг вправо и влево на два знака.
Объяснить полученный результат.
"""

n1 = 5
n2 = 6

# "ИЛИ" оператор копирует бит, если тот присутствует в хотя бы в одном операнде.
bit_or = n1 | n2

# "Исключительное ИЛИ" оператор копирует бит только если бит присутствует в одном из операндов, но не в обоих сразу.
bit_xor = n1 ^ n2

# "И" оператор, копирует бит в результат только если бит присутствует в обоих операндах.
bit_and = n1 & n2

# Побитовое отрицание меняет биты на обратные, там где была единица становиться ноль и наоборот.
bit_not_n1 = ~n1
bit_not_n2 = ~n2

# Побитовый сдвиг вправо. Значение левого операнда "сдвигается" вправо на количество бит указанных в правом операнде.
bit_shift_right = n1 >> 2

# Побитовый сдвиг влево. Значение левого операнда "сдвигается" влево на количество бит указанных в правом операнде.
bit_shift_left = n1 << 2

print(f'Побитовое «ИЛИ» (OR) для {bin(n1)} и {bin(n2)}: {bin(bit_or)} ({bit_or})')

print(f'Исключающее «ИЛИ» (XOR) для {bin(n1)} и {bin(n2)}: {bin(bit_xor)} ({bit_xor})')

print(f'Побитовое «И» (AND) для {bin(n1)} и {bin(n2)}: {bin(bit_and)} ({bit_and})')

print(f'Побитовое отрицание (NOT) для {bin(n1)}: {bin(bit_not_n1)} ({bit_not_n1})'
f' и для {bin(n2)}: {bin(bit_not_n2)} ({bit_not_n2})')

print(f'Битовый сдвиг вправо для {bin(n1)}: {bin(bit_shift_right)} ({bit_shift_right})')

print(f'Битовый сдвиг влево для {bin(n1)}: {bin(bit_shift_left)} ({bit_shift_left})')
16 changes: 16 additions & 0 deletions ALGORITMS/Lesson_1/3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
"""
3. По введенным пользователем координатам двух точек вывести уравнение прямой вида y=kx+b, проходящей через эти точки.
"""

print('Координаты точки A(x1,y1): ')
x1 = int(input('\tx1 = '))
y1 = int(input('\ty1 = '))

print('Координаты точки B(x2,y2): ')
x2 = int(input('\tx2 = '))
y2 = int(input('\ty2 = '))

print('Уравнение прямой, проходящей через эти точки: ')
k = (y1 - y2) / (x1 - x2)
b = y2 - k * x2
print('\ty = %.2f*x + %.2f' % (k, b))
64 changes: 64 additions & 0 deletions ALGORITMS/Lesson_1/4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
"""
4. Написать программу, которая генерирует в указанных пользователем границах:
случайное целое число;
случайное вещественное число;
случайный символ.
Для каждого из трех случаев пользователь задает свои границы диапазона.
Например, если надо получить случайный символ от 'a' до 'f', то вводятся эти символы.
Программа должна вывести на экран любой символ алфавита от 'a' до 'f' включительно.
"""

import random


def menu():
print('\n\tМЕНЮ:\n\n\
[1] Вывести случайное целое число\n\
[2] Случайное вещественное число\n\
[3] Случайный символ\n\
[0] Выход')


def num_choice():
print('Задайте границы диапазона: ')
a = int(input('Первое число: '))
b = int(input('Второе число: '))
if a > b:
return random.randint(b, a)
return random.randint(a, b)


def alpha_choice():
print('Задайте границы диапазона: ')
c = input('Первая буква: ')
d = input('Вторая буква: ')
if c == '' or d == '' or c.isdigit() or d.isdigit():
res = '\nОшибка ввода!\n'
elif ord(c) < ord(d):
res = random.choice([chr(i) for i in range(ord(c), ord(d) + 1)])
else:
res = random.choice([chr(i) for i in range(ord(d), ord(c) + 1)])
return res


menu()
option = input()

while option != '0':
if option == '1':
try:
print(num_choice())
except ValueError:
print('\nОшибка ввода!\n')
elif option == '2':
try:
print(float(num_choice()))
except ValueError:
print('\nОшибка ввода!\n')
elif option == '3':
print(alpha_choice())

print('Меню: [1], [2], [3] или [0]')

if __name__ == '__main__':
option = input()
32 changes: 32 additions & 0 deletions ALGORITMS/Lesson_1/5.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
"""
5. Пользователь вводит две буквы. Определить, на каких местах алфавита они стоят и сколько между ними находится букв.
"""

a, b = [i.upper() for i in input('Введите 2 буквы латинского алфавита слитно: ')]

# генерим алфавит
alpha = [chr(i) for i in range(ord('A'), ord('Z') + 1)]

# Определяем какая буква по счету
letter1 = alpha.index(a) + 1
letter2 = alpha.index(b) + 1

# подсчитываем колличество между бувами
interval = letter2 - letter1 - 1

# проверка на случай если буквы указаны не по возрастанию
if letter2 < letter1:
interval = letter1 - letter2 - 1

# исправим на правильное написание слов
text = []
if interval == 1 or interval == 21:
text = 'буква'
elif interval == 2 or interval == 3 or interval == 4 or interval == 22 or interval == 23 or interval == 24:
text = 'буквы'
else:
text = 'букв'

print('Первая буква стоит на', letter1, 'месте')
print('Вторая буква стоит на', letter2, 'месте')
print('Между ними', interval, text)
8 changes: 8 additions & 0 deletions ALGORITMS/Lesson_1/6.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
"""
6. Пользователь вводит номер буквы в алфавите. Определить, какая это буква.
"""

num = int(input('Введите номер буквы от 1 до 26: '))

alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
print('Номер', num, 'соответствует букве: ', alphabet[num - 1])
21 changes: 21 additions & 0 deletions ALGORITMS/Lesson_1/7.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
"""
7. По длинам трех отрезков, введенных пользователем, определить возможность существования треугольника,
составленного из этих отрезков. Если такой треугольник существует, то определить, является ли он разносторонним,
равнобедренным или равносторонним.
"""

b = []
for i in range(3):
x = int(input(f'Введите через пробел длину {i+1} отрезка: '))
b.append(x)

if b[0] < b[1] + b[2] and b[1] < b[0] + b[2] and b[2] < b[0] + b[1]:
if b[0] == b[2] and b[2] == b[1]:
print(f'{b[0]} x {b[1]} x {b[2]} - Равносторонний треугольник')
elif b[0] == b[2] or b[2] == b[1] or b[0] == b[1]:
print(f'{b[0]} x {b[1]} x {b[2]} - Равнобедренный треугольник')
else:
print(f'{b[0]} x {b[1]} x {b[2]} - Разносторонний треугольник')
else:
print(f'{b[0]} x {b[1]} x {b[2]} - Треугольник не существует')

11 changes: 11 additions & 0 deletions ALGORITMS/Lesson_1/8.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
"""
8. Определить, является ли год, который ввел пользователем, високосным или невисокосным.
"""

x = int(input('Введите год: '))
if x % 100 == 0 and x % 400 != 0:
print('Этот год обычный')
elif x % 100 == 0 and x % 400 == 0 or x % 4 == 0:
print('Этот год високосный')
else:
print('Этот год обычный')
17 changes: 17 additions & 0 deletions ALGORITMS/Lesson_1/9.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
"""
9. Вводятся три разных числа. Найти, какое из них является средним (больше одного, но меньше другого).
"""

a = int(input('Введите первое число: '))
b = int(input('Введите второе число: '))
c = int(input('Введите третье число: '))

if b < c < a or a < c < b:
print('среднее число ', c)
elif a < b < c or c < b < a:
print('среднее число ', b)
elif a == b or a == c or b == c:
print('При двух и более одинаковых числах не возможно определить среднее число')
else:
print('среднее число ', a)

46 changes: 46 additions & 0 deletions ALGORITMS/Lesson_2/1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
'''
1. Написать программу, которая будет складывать, вычитать, умножать или делить два числа.
Числа и знак операции вводятся пользователем. После выполнения вычисления программа не должна завершаться,
а должна запрашивать новые данные для вычислений. Завершение программы должно выполняться при вводе символа '0'
в качестве знака операции. Если пользователь вводит неверный знак (не '0', '+', '-', '*', '/'), то программа должна
сообщать ему об ошибке и снова запрашивать знак операции. Также сообщать пользователю о невозможности деления на ноль,
если он ввел 0 в качестве делителя.
'''


def menu():
print('[+] Сложение\n'
'[-] Вычитание\n'
'[*] Умножение\n'
'[/] Деление\n'
'[0] Выход')


menu()
option = input()

while option != '0':
if option == '+':
a = int(input('Введите первое число:'))
b = int(input('Введите второе число:'))
print(f'{a} + {b} =', a + b)
elif option == '-':
a = int(input('Введите первое число:'))
b = int(input('Введите второе число:'))
print(f'{a} - {b} =', a - b)
elif option == '*':
a = int(input('Введите первое число:'))
b = int(input('Введите второе число:'))
print(f'{a} * {b} =', a * b)
elif option == '/':
try:
a = int(input('Введите первое число:'))
b = int(input('Введите второе число:'))
print(f'{a} / {b} =', round(a / b, 4))
except ZeroDivisionError:
print('Ошибка! На <0> делить нельзя!')
else:
print('Ошибка, введите правильный символ:')
menu()
option = input()

20 changes: 20 additions & 0 deletions ALGORITMS/Lesson_2/2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
'''
2. Посчитать четные и нечетные цифры введенного натурального числа. Например, если введено число 34560,
то у него 3 четные цифры (4, 6 и 0) и 2 нечетные (3 и 5).
'''


number = input('Введите число: ')
even = 0
odd = 0
num_even = []
num_odd = []
for f in number:
i = int(f)
if i % 2 == 0:
num_even.append(i)
even += 1
else:
num_odd.append(i)
odd += 1
print(f'У числа {number}: {even} четных {num_even} и {odd} нечетные {num_odd}')
7 changes: 7 additions & 0 deletions ALGORITMS/Lesson_2/3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
'''
3. Сформировать из введенного числа обратное по порядку входящих в него цифр и вывести на экран.
Например, если введено число 3486, то надо вывести число 6843.
'''

number = input('Введите число: ')
print(number[::-1])
18 changes: 18 additions & 0 deletions ALGORITMS/Lesson_2/4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
'''
4. Найти сумму n элементов следующего ряда чисел: 1 -0.5 0.25 -0.125
Количество элементов (n) вводится с клавиатуры.
'''


n = int(input('Введите количество элементов: '))

N = 0
range = 1
sum = 0

while N < n:
sum += range
range /= -2
N += 1

print('Сумма', sum)
11 changes: 11 additions & 0 deletions ALGORITMS/Lesson_2/5.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
'''
5. Вывести на экран коды и символы таблицы ASCII, начиная с символа под номером 32 и заканчивая 127-м включительно.
Вывод выполнить в табличной форме: по десять пар "код-символ" в каждой строке.
'''

for i in range(32, 128):
print('%6d-%s' % (i, chr(i)), end=' ')
if i % 10 == 1:
print()
print()

Loading