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

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

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

📺 YouTube: clck.ru/3FwqbX

🙋‍♂️ Я автор: @ilandroxxy
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера 8554 #kege по информатике #ЕГЭ9

Полный разбор задачи в Notion

👩‍💻 Код решения:
cnt = 0
for s in open('9.txt'):
M = [int(x) for x in s.split()]
if len([x for x in M if abs(x) % 10 == 3]) == 3:
A = [x for x in M if x > 0]
B = [x for x in M if x < 0]
if sum(A) ** 2 < sum(B) ** 2:
cnt += 1
print(cnt)


Файлы к заданию: 9.txt

#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
8772
This media is not supported in your browser
VIEW IN TELEGRAM
💡 Библиотека Turtle, чем может быть полезна на ЕГЭ #tpy

Библиотека Turtle в Python - это отличный способ познакомить начинающих программистов с основами графики и обучить их создавать интересные визуальные проекты.

Зачем нужна библиотека Turtle в Python?

🚩 Обучение программированию: Благодаря простоте и интуитивно понятному интерфейсу, библиотека Turtle отлично подходит для обучения основам программирования.

🚩 Визуализация: С помощью Turtle можно визуализировать различные математические концепции, алгоритмы и структуры данных.

🚩 Творческие проекты: Turtle открывает возможности для создания креативных и веселых проектов, таких как анимации, иллюстрации и игры.

Как использовать библиотеку Turtle в Python?
Для начала работы с библиотекой Turtle в Python необходимо импортировать модуль turtle. Вот простой пример создания окна и отображения черепахи:
import turtle

# Создание окна
wn = turtle.Screen()
wn.title("Графика с помощью Turtle")

# Создание черепахи
t = turtle.Turtle()

# Движение и рисование
t.forward(100) # перемещение вперед на 100 пикселей
t.left(90) # поворот налево на 90 градусов
t.circle(50) # рисование окружности радиусом 50 пикселей

# Закрытие окна при клике
wn.exitonclick()


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

Библиотека Turtle отлично подходит для тех, кто хочет начать свой путь в мир программирования!

🚩 Более подробную информацию про работу с библиотекой turtle вы можете изучить в нашей статье на Notion

Информатика ЕГЭ | itpy 👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
16👍662🤩1
👩‍💻 Пять простейших функций из библиотеки Turtle в Python #tpy

🚩 forward(distance)
Двигает черепаху вперед на заданное расстояние.
import turtle as t
t.forward(100) #t.fd(100)
t.done()


🚩 backward(distance)
Двигает черепаху назад на заданное расстояние.
import turtle as t
t.backward(50) #t.bk(50)
t.done()


🚩 right(angle)
Поворачивает черепаху направо на заданный угол.
import turtle as t
t.right(90) #t.rt(45)
t.done()


🚩 left(angle)
Поворачивает черепаху налево на заданный угол.
import turtle as t
t.left(45) #t.lt(45)
t.done()


🚩 circle(radius)
Рисует окружность с заданным радиусом.
import turtle as t
t.circle(50)
t.done()


Эти примеры демонстрируют базовые функции библиотеки Turtle, которые помогают управлять черепахой.

Информатика ЕГЭ | itpy 👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
95👏331
👩‍💻 Давайте рассмотрим несколько функций для управления положением черепахи на экране #tpy

🚩 Функция goto() перемещает черепаху в указанные координаты на экране. Координаты задаются в виде пары (x, y), где x - горизонтальная координата, y - вертикальная координата.
   import turtle as t
t.goto(100, 100)
t.done()


🚩 Функция setx() перемещает черепаху к указанной горизонтальной координате, оставляя вертикальную координату без изменений.
   import turtle as t
t.setx(50)
t.done()


🚩 Функция sety() перемещает черепаху к указанной вертикальной координате, оставляя горизонтальную координату без изменений.
   import turtle as t
t.sety(-50)
t.done()


🚩 Функция xcor() возвращает текущее значение горизонтальной координаты черепахи.
   import turtle as t
x = t.xcor()
print("Текущая координата x:", x)
t.done()


🚩 Функция ycor() возвращает текущее значение вертикальной координаты черепахи.
   import turtle as t
y = t.ycor()
print("Текущая координата y:", y)
t.done()


Эти функции позволяют управлять положением черепахи на экране и получать текущие значения координат.

Информатика ЕГЭ | itpy 👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
107👏51
👩‍💻 Рисование и управление экраном в Turtle: down(), up(), dot(), screensize(), tracer(), done() #tpy

🚩 Функция down() опускает перо черепахи, позволяя ей рисовать на экране.
import turtle as t
t.down()
t.forward(100)
t.done()


🚩 Функция up() поднимает перо черепахи, останавливая рисование.
import turtle as t
t.down()
t.forward(100)
t.up()
t.forward(50)
t.done()


🚩 Функция dot(size, color) рисует точку заданного размера (size) и цвета (color) в текущей позиции черепахи.
import turtle as t
t.dot(10, "red")
t.done()


🚩 Функция screensize(width, height) устанавливает размеры экрана в пикселях. Это определяет размер доступной области для рисования.
import turtle as t
t.screensize(800, 600)
t.done()


🚩 Функция tracer(n, delay) управляет скоростью отрисовки черепахи. n задает количество шагов отрисовки, а delay - задержку между шагами.
import turtle as t
t.tracer(3, 100)
t.done()


🚩 Функция done() ожидает закрытия окна черепахи перед окончанием программы.
import turtle as t
t.done()


Эти функции помогают управлять рисованием и настройками экрана при работе с библиотекой Turtle в Python.

Информатика ЕГЭ | itpy
👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👏886
This media is not supported in your browser
VIEW IN TELEGRAM
🚩 Разбор номера 13843 #kege по информатике #ЕГЭ6

Полный разбор задачи в Notion

👩‍💻 Код решения:
import turtle as t
t.tracer(0)
t.left(90)
m = 20

t.up()
for _ in range(10):
t.right(120)
t.forward(12 * m)
t.down()
for _ in range(7):
t.forward(7 * m)
t.right(90)
for _ in range(5):
t.right(60)
t.forward(20 * m)
t.right(30)

t.up()
for x in range(-30, 30):
for y in range(-30, 30):
t.goto(x * m, y * m)
t.dot(2, 'red')

t.done()


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
76👏51
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 7357 #kege по информатике #ЕГЭ25

👩‍💻 Код решения:
from fnmatch import *
R = []
for x in range(53191, 10**10, 53191):
if fnmatch(str(x), '?136*'):
if str(x)[0] in '02468' and str(x)[-1] in '13579':
R.append([x, x // 53191])


for i in range(-5, 0):
print(*R[i])


👩‍💻 Комментарии к коду решения:

1⃣ from fnmatch import *
Импорт всех функций из модуля fnmatch для работы с шаблонами и строками.


2⃣ R = []
Создание пустого списка R, куда будут добавляться результаты.


3⃣ for x in range(53191, 10**10, 53191):
Цикл для перебора чисел от 53191 до 10**10 с шагом 53191.


4⃣ if fnmatch(str(x), '?136*'):
Проверка, соответствует ли строковое представление числа x шаблону '?136*'.


5⃣ if str(x)[0] in '02468' and str(x)[-1] in '13579':
Проверка, что первая цифра числа находится в диапазоне '02468', а последняя - в '13579'.


6⃣ R.append([x, x // 53191])
Добавление пары чисел [x, x // 53191] в список R.


7⃣ for i in range(-5, 0):
Цикл для вывода последних пяти элементов списка R.


8⃣ print(*R[i])
Вывод списка элементов с индексами с -5 по -1.


Полный разбор задачи в Notion

#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9554
Практиковать комментарии к коду решения?
Anonymous Poll
91%
Точно да
9%
Скорее нет
This media is not supported in your browser
VIEW IN TELEGRAM
2⃣5⃣ Шпаргалка ЕГЭ | Задание #ЕГЭ25 #tpy #шпора

📌 Ссылка на шпаргалку/методичку на Notion и несколько полезных функций уже здесь:

Подготовил для вас методичку по решению 25 задач. Хочу отметить, что это не просто шпаргалка, а скорее пособие, которое поможет вам создать свою собственную "шпору".

В комментариях к этому посту закреплю файл в формате pdf 👇

🚩 Функция проверки на простое число:
def Prost(x):
if x == 1:
return False
for i in range(2, int(x**0.5)+1):
if x % i == 0:
return False
return True


🚩 Функция поиска делителей числа:
def Divisors(x):
div = []
for j in range(1, int(x ** 0.5) + 1):
if x % j == 0:
div += [j, x // j]
return sorted(set(div))


🚩 Пример работы с библиотекой fnmatch:
from fnmatch import * 

for x in range(23, 10 ** 9, 23):
if fnmatch(str(x), '12345?7?8'):
print(x, x//23)


🚩 Проверка числа на палиндром:
x = int(input())
if str(x) == str(x)[::-1]:
print(True)
else:
print(False)


Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора: boosty 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
👏126611
Есть идея сделать ряд постов с разбором 13 номеров, актуально?
Anonymous Poll
95%
Давайте, необходимо и интересно
5%
Легкий/скучный номер
5
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 5911 #reshu по информатике #ЕГЭ13

🚩 Условие задачи:
По заданным IP-адресу узла и маске определите адрес сети.
IP-адрес узла: 129.131.130.64
Маска: 255.255.192.0


🚩 Теоретическая справка:
Простейшая задача 13 номера с которой стоит начать изучение этих задач. Главная формула:
Адрес сети = Адрес узла & Маска сети
где & - это операция побитовой конъюнкции.


👩‍💻 Код решения:
from ipaddress import *  
net = ip_network('129.131.130.64/255.255.192.0', 0)
print(net) # 129.131.128.0/18


👩‍💻 Комментарии к коду решения:

1⃣ from ipaddress import *
Импорт всех функций из модуля ipaddress для работы с сетевыми адресами.


2⃣ net = ip_network('129.131.130.64/255.255.192.0', 0)
Создание объекта сети net с заданным IP-адресом и маской подсети, причем последний аргумент указывает на коррекцию префикса.


3⃣ print(net)
Вывод объекта сети net.


4⃣ # 129.131.128.0/18
Комментарий, указывающий на правильность адресации объекта сети: IP-адрес 129.131.128.0 с маской /18.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
8654
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 7696 #reshu по информатике #ЕГЭ13

🚩 Условие задачи:
Для узла с IP-адресом 224.128.112.142 адрес сети равен 224.128.96.0.
Чему равен третий слева байт маски? Ответ запишите в виде десятичного числа.


🚩 Теоретическая справка:
Маска сети имеет длину 32 бита и вид 1111..000 (сначала единицы, потом нули). Поэтому мы можем перебрать ее значения через for mask in range(32+1):


👩‍💻 Код решения:
from ipaddress import *
for mask in range(32+1):
net = ip_network(f'224.128.112.142/{mask}', 0)
if str(net) == f'224.128.96.0/{mask}':
print(str(net.netmask).split('.')[2])


👩‍💻 Комментарии к коду:

1⃣ from ipaddress import *
Импорт всех функций из модуля ipaddress для работы с сетевыми адресами.


2⃣ Цикл for mask in range(32+1):
Для перебора возможных значений маски сети от 0 до 32 (включительно).


3⃣ net = ip_network(f'224.128.112.142/{mask}', 0)
Создание объекта сети net с заданным IP-адресом и переменной маской подсети, где последний аргумент указывает на коррекцию префикса.


4⃣ if str(net) == f'224.128.96.0/{mask}':
Условие проверки соответствия адреса сети определенному значению.


5⃣print(str(net.netmask).split('.')[2])
Вывод третьего октета маски подсети из объекта сети net, если условие выполнено.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
7643
Подсчитал примерно 5-6 основных типов для 13 номера. После постов нужно ли сделать общую Шпаргалку?
Anonymous Poll
100%
Точно надо
0%
Скорее нет
113
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 10783 #kege по информатике #ЕГЭ13

🚩 Условие задачи:
Два узла, находящиеся в одной сети, имеют IP-адреса 121.171.5.70 и 121.171.5.107.
Укажите наименьшее возможное количество адресов в этой сети.


👩‍💻 Код решения:
from ipaddress import *
R = []
for mask in range(32+1):
net1 = ip_network(f'121.171.5.70/{mask}', 0)
net2 = ip_network(f'121.171.5.107/{mask}', 0)
if net1 == net2:
R.append(net1.num_addresses)
print(min(R))

Ответ: 64

👩‍💻 Комментарии к коду:

1⃣ from ipaddress import *
Импорт всех функций из модуля ipaddress для работы с сетевыми адресами.


2⃣ R = []
Создание пустого списка R, куда будут добавляться результаты.


3⃣ Цикл for mask in range(32+1):
Для перебора возможных значений маски сети от 0 до 32 (включительно).

4⃣ net1 = ip_network(f'121.171.5.70/{mask}', 0)
Создание объекта сети net1 с заданным IP-адресом и переменной маской подсети, с коррекцией префикса.

5⃣ net2 = ip_network(f'121.171.5.107/{mask}', 0)
Создание объекта сети net2 с другим IP-адресом, но той же маской подсети.

6⃣ if net1 == net2:
Условие проверки, совпадают ли сети net1 и net2.

7⃣ R.append(net1.num_addresses)
Добавление количества адресов в сети net1 в список R.


8⃣ print(min(R))
Вывод минимального значения количества адресов среди всех сетей, для которых условие совпадения сетей выполнилось.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
1087
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 12947 #kege по информатике #ЕГЭ13
Автор задачи: (C. Горбачёв)

🚩 Условие задачи:
Сеть задана IP-адресом 203.111.195.0 и маской сети 255.255.240.0. Сколько в этой сети IP-адресов, в двоичной записи которых количество нулей кратно трём, а также содержатся три подряд идущие единицы и три подряд идущих нуля одновременно?
В ответе укажите только число.


🚩 Теоретическая справка:
После того, как мы определили адрес сети с помощью функции ip_network, мы можем перебрать все IP-адреса в этой сети с помощью обычного цикла for ip in net.


👩‍💻 Код решения:
from ipaddress import *
net = ip_network('203.111.195.0/255.255.240.0', 0)
cnt = 0
for ip in net:
s = f'{ip:b}'
if s.count('0') % 3 == 0:
if '111' in s and '000' in s:
cnt += 1
print(cnt)

# Ответ: 1043


👩‍💻 Комментарии к коду:

1⃣ from ipaddress import *
Импорт всех функций из модуля ipaddress для работы с сетевыми адресами.


2⃣ net = ip_network('203.111.195.0/255.255.240.0', 0)
Создание объекта сети net с заданным IP-адресом и маской подсети, с коррекцией префикса.


3⃣ cnt = 0
Инициализация счетчика cnt для подсчета количества IP-адресов, удовлетворяющих условиям.


4⃣ Цикл for ip in net:
Для перебора всех IP-адресов в сети net.


5⃣ s = f'{ip:b}'
Перевод IP-адреса в бинарное представление и сохранение в строковую переменную s.


6⃣ if s.count('0') % 3 == 0:
Проверка условия: количество нулей в бинарном представлении делится на 3 без остатка.


7⃣ if '111' in s and '000' in s:
Дополнительная проверка наличия подстрок '111' и '000' в бинарном представлении.


8⃣ cnt += 1
Увеличение счетчика, если IP-адрес удовлетворяет обоим условиям.


0⃣ print(cnt)
Вывод общего количества IP-адресов, которые соответствуют условиям.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
1085
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 11835 #kege по информатике #ЕГЭ13
Автор задачи:
(Л. Шастин)

🚩 Условие задачи:
Сеть, в которой содержится узел с IP-адресом 207.0.A.167, задана маской сети 255.255.255.192, где A - некоторое допустимое для записи IP-адреса число. Определите количество значений A, для которых для всех IP-адресов этой сети в двоичной записи IP-адреса суммарное количество нулей в левых двух байтах больше суммарного количества нулей в правых двух байтах.
В ответе укажите только число.


🚩 Теоретическая справка:
По условию задачи требуется перебрать значения допустимого для формирования IP-адреса числа A. Поскольку на каждое число A отводится 1 байт (8 бит), допустимые числа находятся в диапазоне от 0 до 255 (в двоичной системе счисления - от 00000000 до 11111111).


👩‍💻 Код решения:
from ipaddress import *
cnt = 0
for A in range(0, 255+1):
net = ip_network(f'207.0.{A}.167/255.255.255.192', 0)
if all(f'{ip:b}'[:16].count('0') > f'{ip:b}'[16:].count('0') for ip in net):
cnt += 1
print(cnt)

# Ответ: 37


👩‍💻 Комментарии к коду:

1⃣ from ipaddress import *
Импорт всех функций из модуля ipaddress для работы с IP-адресами и сетями.


2⃣ cnt = 0
Инициализация переменной cnt для подсчета количества IP-адресов, удовлетворяющих условиям.


3⃣ for A in range(0, 255+1):
Цикл для перебора значения A от 0 до 255 включительно.


4⃣ net = ip_network(f'207.0.{A}.167/255.255.255.192', 0)
Создание объекта сети net с динамически формируемым IP-адресом, маской подсети и коррекцией префикса.


5⃣ if all(f'{ip:b}'[:16].count('0') > f'{ip:b}'[16:].count('0') for ip in net):
Проверка условия: количество нулей в первой половине бинарного представления IP-адреса больше чем во второй половине для всех IP-адресов в сети.


6⃣ cnt += 1
Увеличиваем счетчик, если IP-адрес удовлетворяет условию.


7⃣ print(cnt)
Вывод количества IP-адресов в созданных сетях, соответствующих условиям.


Информатика ЕГЭ | itpy 👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
965
This media is not supported in your browser
VIEW IN TELEGRAM
1⃣3⃣ Шпаргалка ЕГЭ | Задание #ЕГЭ13 #шпора

Подготовили для вас методическое пособие по решению 13 номера! Сохраняйте все, что нужно знать о задании 😼

В комментариях к этому посту закреплю файл в формате pdf 👇

Ссылка на шпаргалку/методичку на Notion и несколько полезных функций уже здесь:

🚩 Подключаем библиотеку:
from ipaddress import *


🚩 Функция для создания объекта сети IP:
net = ip_network('адрес сети/маска')


🚩 Получение маски сети:
net.netmask


🚩 Получение количество адресов:
net.num_addresses


🚩 Получение адреса сети:
net.network_address


🚩 Цикл для перебора значений маски:
for mask in range(33):
net = ip_network(f'адрес узла/{mask}', 0)


🚩 Цикл для перебора IP-адресов в сети:
for ip in net:


🚩 Представление ip-адреса в двоичном виде:
ip_b = f'{ip:b}'


Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора: boosty 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
107643
Ребят, сел делать разборы на канал.
Какой номер разбираем следующим?
Anonymous Poll
32%
5️⃣
24%
8️⃣
45%
1️⃣4️⃣
🖥 🔤🔤🔤 🔤🔤🔤🔤🔤

Здесь я и другие авторы готовы ответить на все ваши вопросы, касающиеся подготовки к ЕГЭ. Будем рады видеть вас в нашем сообществе!

Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
776