Информатика | Илья Андрианов | itpy 🧑‍💻
1.05K subscribers
263 photos
20 videos
19 files
629 links
По рекламе: @ilandroxxy

Шпаргалки: clck.ru/3FwqWt
📚 Наши курсы: clck.ru/3FwqYb

Разборы: clck.ru/3Fwqay
💬 Чатик: clck.ru/3FwqZa

📺 YouTube: clck.ru/3FwqbX

🙋‍♂️ Я автор: @ilandroxxy
Download Telegram
Про Python:
Язык Python имеет большую экосистему. Чтобы помочь вам в этой экосистеме ориентироваться, мы дадим некоторые полезные ссылки для начинающих программировать на Python:

1 Документация Python чрезвычайно подробна и наполнена большим количеством примеров.
2 Все Python-программисты стараются следовать советам по стилю кода PEP 8, описанным в документе.
3 Библиотеки, написанные сообществом, находятся на ресурсе PyPI (Python Package Index). Именно с этого ресурса будут устанавливаться внешние пакеты, когда вы будете устанавливать их с помощью утилиты pip.
4 На GitHub есть коллекция хороших библиотек для решения различных задач.
5 Канал Тимофея Хирьянова (профессора МФТИ) на youtube.
Пробник.pdf
4.3 MB
Пример офциального пробника ЕГЭ Информатика 2022 года.

К сожалению файлы найти не удалось, но зато можно оценить примерную сложность настоящего экзамена - эти задачи куда точнее, чем то, что дают в сборника Полякова и тд тп

Ответы:
1) 52 17) 17 172728
2) zywx 18) 2666 1720
3) 1557 19) 58
4) 15 20) 106 114
5) 3 21) 105
6) 330 22) 54
7) 2 23) 64
8) 519 24) 151
9) 2715 25)
10) 12 123405788 7259164
11) 10752 123445738 7261514
12) 118 123455768 7262104
13) 11 123465798 7262694
14) 30417 123495718 7264454
15) 80 26) 4802 7468
16) 481 27) 152 524909
Гарантирую, что этот номер с нашего урока тоже можно решить в 3-4 строчки:

#14 номер две системы счсиления: https://inf-ege.sdamgia.ru/problem?id=4559

for i in range(1, 100):
x = i
M3 = []
while x > 0:
M3.append(x%3)
x //= 3
M3.reverse()

x = i
M5 = []
while x > 0:
M5.append(x%5)
x //= 5
M5.reverse()

if M3[len(M3)-1] == 0 and M5[len(M5)-1] == 0:
print("m3 = ", M3)
print("m5 = ", M5)
print("----> ",i," <----\n\n")
break



Программа:
for x in range(1, 100):
if x % 3 == 0 and x % 5 == 0:
print(x)
break


Комментарии:
Только вдумайтесь или прорешайте пример руками - первый остаток от деления добавленный в Список, будет последним числом в итоговой записи нашего Списка (после reverse)
Обращаю внимание, что такой способ работает, только если у нас одно условие: «число оканчивается», если условий несколько, то скорее всего придется решать по-другому.

А ответ на задание: 15
Информатика | Илья Андрианов | itpy 🧑‍💻 pinned «Пачки задач по номерам ЕГЭ Информатика #1. https://clck.ru/ebsmq #2. https://clck.ru/ebsnV #3. https://clck.ru/ebsnt #4. https://clck.ru/ebsoN #5. https://clck.ru/ebsp8 #6. https://clck.ru/ebspK #7. https://clck.ru/ebspX #8. https://clck.ru/ebsq2 #9. htt…»
Для всех ребят которые поступают в вузы, для тех кто просто хочет развиваться в IT - очень рекомендую пройти бесплатный курс профориентации от Яндекс Практикума: https://practicum.yandex.ru/career-advisor/

Вы познакомитесь с самыми актуальными IT профессиями и сможете определиться с выбором средств разработки (которые можно использовать и для сдачи ЕГЭ)
Channel name was changed to «itpy | ИнформатикаЕГЭ»
8️⃣Номер #8
код задания: 3701

Условие:
Все 6-буквенные слова, составленные из букв Б, К, Ф, записаны в алфавитном порядке и пронумерованы.
Вот начало списка:
1. ББББББ
2. БББББК
3. БББББФ
4. ББББКБ
……

☝️Найти:
Запишите слово, которое стоит на 342-м месте от начала списка.

Примечание:
Задание однозначно решается простым строковым перебором, потратьте немного времени и сравните свое решение с моим, а в дальнейших постах мы полноценно разобремся как решать такие задачи.

Ответ:
ККБКФФ

↘️Программа:
s = "БКФ"
M = []
for a in s:
for b in s:
for c in s:
for d in s:
for e in s:
for f in s:
temp = a + b + c + d + e + f
M.append(temp)

print(M[342-1])


Комментарии:
1. Обратите внимание на условие с алфавитным порядком - наша строка s удовлетворяет этому условию. А так же крайняя буква слов в начальном списке - формирует алфавитный порядок (алфавит наизусть знать не надо😅).

2. Так как условие требует 6-буквенные слова, то «фориков» для перебора будет тоже шесть. Каждая переменная из форика (a,b,c,d,e,f,g) соответствует порядку буквы в получаемом слове.

3. В пустой список M=[] мы добавляем новополученные слова и по списку организуем поиск.

4. Так как список начинает свой отсчет от 0, а в примере с 1, то мы отнимаем «минус 1» от индекса нашего списка
при поиске нужного слова.
2️⃣ Разбор номера #2
код примера: 10403

📎 Условие:
Логическая функция F задаётся выражением:

(¬x y) (y z).

На рисунке приведён фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F истинна.

Определите какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z.

# ? ? ? F
# 0 1 0 1
# 0 1 1 1
# 1 1 1 1

Найти:
В ответе напишите буквы x, y, z в том порядке, в котором идут соответствующие им столбцы.

📚 Теория:
Читать подробнее..

Как формулу математической логики перенести на язык Python:
# ¬z - (not(z)) отрицание
# ∧ - and конъюнкция
# ∨ - or дизъюнкция
# → - <= импликация
# ≡ - == тождество

Приоритет операций:
отрицание > конъюнкция > дизъюнкция > импликация

Полезные формулы Алгебры высказываний:
1. A → B ≡ ¬A B
2. A
B ≡ B A
3. ¬(A
B) ≡ ¬A ¬B
Где A и B любые сколь угодно сложные формулы.

Таким образом пременив эти преобразования к изначальной формуле, мы можем получить более простое выражение, которое в свою очередь будет удобно поместить в программу!
Информатика | Илья Андрианов | itpy 🧑‍💻
2️⃣ Разбор номера #2 код примера: 10403 📎 Условие: Логическая функция F задаётся выражением: (¬x ∧ y) ∨ (y ∧ z). На рисунке приведён фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F истинна. Определите какому…
✏️ Решение:
print("x y z F")
for x in range(2):
for y in range(2):
for z in range(2):
F = ( ((not(x)) and y) or (y and z) )
if F == True:
print(x, y, z, F)


Вывод программы:
# x y z F
# 0 1 0 1
# 0 1 1 1
# 1 1 1 1

Теперь это вывод нужно на бумажке сопоставить с таблицой из условия.

💬 Комментарии:
1. Количество строчек решения прямо пропорционально количеству переменных в нашем выражении. Разберемся на примере: в нашей функции три переменные x,y,z и каждая из них может принимать два значения 0 (False) или 1 (True). Таким образом количество строк равно 2**3 = 8
Если бы переменных было четыре x,y,z,w, то количество равнялось бы 2**4 = 16 и тд

2. Строчка print("x y z F") не сильно нужна, она присутствует для удобства

3. Функция range(2) будет перебирать лишь два значения: 0 и 1, что соответствует False и True

4. В переменную F = ( ((not(x)) and y) or (y and z) ) мы записываем функцию полностью (используя подсказку из Теории) и обязательно помещаем ее в общие скобки.
Таким образом мы можем получить значение этой функции при перебираемых значениях переменных x,y,z.
Кстати, если функция сложная, то первоначально можно попробовать упростить ее используя преобразования 1-3. из Теории.

5. if F == True:
print(x, y, z, F)

Если значение функции является истинным (True == 1), то такой набор переменных x,y,z соответствует условию из нашей таблицы.
#tpy Типы данных в Python:
Читать подробнее..

📌 Вступление:
Типы данных позволяют хранить в переменной разные данные, под каждый тип выделается свое кол-во памяти. Так как Python является языком с динамической типизацией, то определение подходящего типа данных к переменной происходит автоматически в момент присвоения ей значения.
Нам крайне важно различать действия над разными типами и разницу между ними.

📚 Теория:
A = 4 # int - integer
Целочисленный тип данных (хранит целые числа)

B = 4.0 # float
Вещественные числа или числа с плавающей точкой (дроби)

C = ‘4’ # str - string
Строчный тип данных, хранит в себе сиволы, слова, знаки… Цифры в том числе могут являться символами!
(Строкой называют все символы в кавычках;
Пробелы, знаки препинания и тд 👉 тоже символы строки)

D1 = True # bool - boolean
D2 = False
Булевый тип данных или математическая логика. Переменные принимают только два значения: Истина (True) или Ложь (False)


✏️ На практике:
pritn(A * 3) # 12

pritn(B * 3) # 12.0
Так как B является переменной типа float, то и результат действия тоже float

pritn(
C * 3) # 444
Строка C продублировалась 3 раза

pritn(A == 5) # False
print(A != 5) # True
Если выражение в скобках истинно, то выведется значение True, а иначе будет False