вторник, 20 мая 2025 г.

Урок 66-67. Повторение. Задачи из ОГЭ

Дата проведения занятия 20.05.25

Ребята, вы заканчиваете 8 класс. Посмотрите, оказывается вы уже можете решать большую часть заданий из ОГЭ. Попробуем и убедимся в этом

Задания 1 из ОГЭ с сайта К. Полякова

1.1. В одной из кодировок каждый символ кодируется 8 битами. Вова написал текст (в нём нет лишних пробелов):

«Белка, сурок, слон, медведь, газель, ягуар, крокодил, аллигатор – дикие животные».

Затем он вычеркнул из списка название одного из животных. Заодно он вычеркнул ставшие лишними запятые и пробелы – два пробела не должны идти подряд.

При этом размер нового предложения в данной кодировке оказался на 10 байт меньше,

чем размер исходного предложения. Напишите в ответе вычеркнутое название животного.

1.2. В одной из кодировок Unicode каждый символ кодируется 16 битами. Вова написал текст (в нём нет лишних пробелов): 

«Собака, кошка, курица, корова, лошадь, коза, овца – домашние животные». Затем он добавил в список название ещё одного животного. Заодно он добавил необходимые запятые и пробелы. При этом размер нового предложения в данной кодировке оказался на 10 байт больше, чем размер исходного предложения. Напишите в ответе длину добавленного названия животного в символах.

1.3. В одной из кодировок Unicode каждый символ кодируется 2 байтами.

Иван написал текст (в нем нет лишних пробелов):

«Январь, февраль, март, апрель, май, июнь, июль, август, сентябрь, октябрь, ноябрь, декабрь – месяцы года»Ученик вычеркнул из списка название одного месяца. Заодно он вычеркнул ставшие лишними запятые и пробелы – два пробела не должны идти подряд. При этом размер нового предложения

в данной кодировке оказался на 128 бит меньше, чем размер исходного предложения.

Среди месяцев, имеющих одинаковое количество букв, Иван вычеркивает последний по порядку.

Напишите в ответе вычеркнутое название месяца.

1.4. В одной из кодировок каждый символ кодируется 8 битами. Вова написал текст (в нём нет лишних пробелов):

«Фиалка, лютик, роза, гвоздика, мак, хризантема, гладиолус – это цветы».

Затем он добавил в список название ещё одного растения. Заодно он добавил необходимые запятые и пробелы. При этом размер нового предложения в данной кодировке оказался на 11 байт больше,

чем размер исходного предложения. Напишите в ответе длину добавленного названия растения в символах.


Задания 5 из ОГЭ с сайта К. Полякова

1.1. У исполнителя Альфа две команды, которым присвоены номера:

 1. прибавь 1

 2. умножь на b

(b - неизвестное натуральное число; b ≥ 2)

Выполняя первую из них, Альфа увеличивает число на экране на 1,

а выполняя вторую, умножает это число на b.

Программа для исполнителя Альфа - это последовательность номеров команд.

Известно, что программа 11211 переводит число 6 в число 82. Определите значение b.

1.2. У исполнителя Альфа две команды, которым присвоены номера:

 1. прибавь 1

 2. умножь на b

(b - неизвестное натуральное число; b ≥ 2)

Выполняя первую из них, Альфа увеличивает число на экране на 1,

а выполняя вторую, умножает это число на b.

Известно, что программа 11221 переводит число 7 в число 145. Определите значение b

1.3. У исполнителя Бета две команды, которым присвоены номера:

 1. прибавь b

 2. умножь на 2

(b – неизвестное натуральное число)

Выполняя первую из них, Бета увеличивает число на экране на b,

а выполняя вторую, умножает это число на 2.

Программа для исполнителя Бета – это последовательность номеров команд.

Известно, что программа 12121 переводит число 13 в число 94. Определите значение b.

1.4. У исполнителя Альфа две команды, которым присвоены номера:

 1. прибавь 2

 2. умножь на b

(b - неизвестное натуральное число; b ≥ 2)

Выполняя первую из них, Альфа увеличивает число на экране на 2,

а выполняя вторую, умножает это число на b.

Известно, что программа 12121 переводит число 3 в число 90. Определите значение b.


Задания 6 из ОГЭ с сайта К. Полякова

Откройте сайт К. Полякова и решите следующие задачи:
1237, 1247, 1256,  1257, 1260 (ищите подвох!), 
6953, 6954, 6962, 6963
Задача 1236
s = int(input())
t = int(input())
if s > 10 or t > 10:
print("ДА")
else:
print("НЕТ")
Было проведено 9 запусков этой программы, при которых в качестве значений переменных s и t вводились следующие пары чисел:
  (1, 2); (11, 2); (1, 12); (11, 12); (–11, –12); 
(–11, 12); (–12, 11); (10, 10); (10, 5)
Сколько было запусков, при которых программа напечатала «ДА»?

вторник, 13 мая 2025 г.

Урок 64-65. Списки

Дата проведения занятия 13.05.25
Информация с сайтов: Phyton для начинающих, Skillbox Media

До сих пор в Phyton вы имели дело с простыми типами данных. К простым типам относятся порядковые (целые, логические, символьные)  и вещественные типы данных

Сегодня мы переходим к изучению списков. Списки относятся к  структурированным типам данных.

Что такое список?

Список (list) — это упорядоченный набор элементов, каждый из которых имеет свой номер, или индекс, позволяющий быстро получить к нему доступ. Нумерация элементов в списке начинается с 0. Индекс определяет положение элемента в списке.

В одном списке одновременно могут лежать данные разных типов — например, и строки, и числа, и списки. То есть можно построить список, элементами которого будут списки.
Списки называют динамическими структурами данных, потому что их можно менять на ходу: удалить один или несколько элементов, заменить или добавить новые.
Очень важно: списки в Python содержат не сами данные, а ссылки на их расположение в памяти компьютера!

Создание списков

  1.  Пустой список. В нем нет ни одного элемента
    a = [ ]

  2.  Список, заданный перечислением элементов. В списке b 3 элемента.
    Элемент с индексом 0 это 5, элемент с индексом 1 это 15, Элемент с индексом 2 это 'cat'
    b = [5, 15, 'cat']

  3.  Список с начальным заполнением. Например, список из 10 нулей
    d = list(10*'0')

  4.  Cписок, построенный с помощью  генератора списков. Генератор списков - способ построить новый список, применяя выражение к каждому элементу последовательности. Генераторы списков очень похожи на цикл for.
b = [i*2 for i in range(20)] # список 20 четных чисел

d = [str(i) for i in range(20)] # список 20 строк


from random import *

a = [randint(2, 8) for i in range(20)] # список 20 случайных чисел

Вывод на печать элементов списка

Для вывода на печать можно воспользоваться функцией print. 
Например
a = [ 1, 2, 3]
print(a) # получим [1, 2, 3]
В этой статье описано еще несколько способов вывода списка на печать. Прочитайте! Очень полезно

Изменение значения элементов

В программе к элементу списка b с номером i следует обращаться так: b[i]
Можно изменить значение элементов после того, как список создан.
Например
a = [ 1, 2, 3]
print(a) # получим [1, 2, 3]
a[1] = 4 # заменяем значение элемента с индексом 1 на 4 
print(a) # получим  [1, 4, 3]

Встроенные функции для списков

В Python есть четыре функции, которые позволяют узнавать длину списка, сортировать его и возвращать максимальное и минимальное значение.
  1. len()
    Возвращает длину списка:
    a = [5, 7, 3]
    l = len(a) # 3
  2.  sorted()
    Возвращает отсортированный список:
    a = [5, 7, 3]
    a = sorted (a)
    print (a) #  [3, 5, 7]
  3.  min(), max()
    Возвращают наименьший и наибольший элемент списка:
    a = [5, 7, 3, -5, -2]
    print(max(a), min(a)) # 7 -5
В качестве примера напишем программу Py09.py по следующему заданию:
Заполнить список из 10 элементов случайными целыми  числами от 3 до 15.
Отсортировать список
Вывести значения элементов списка на экран в одну строку
Сосчитать сумму элементов,  вывести сумму на экран с новой строки.

from random import * print('Урок 8') a = [randint(3, 15) for i in range(10)] # список из 10 случайных чисел a = sorted(a) # Сортировка списка print(a) # вывод списка
sm = 0 # обнуление суммы
for i in range(10): # поиск суммы sm += a[i] print ('сумма=', sm ) # вывод суммы


Работа на ПК в классе:

1. Запустить программу Py09.py, показать учителю
2. Далее работаем по вариантам. Прислать учителю текст программ прикрепленным файлом
Вариант 1. Блок-схема для каждой задачи обязательна
  1. Заполнить список из 5 элементов четными значениями, начиная с 2.  Вывести элементы на экран в одну строку. Сосчитать сумму элементов,  вывести сумму на экран с новой строки.  
  2. Заполнить список из 8 элементов случайными целыми  числами от 11 до 18.  Вывести элементы на экран в одну строку. Найти максимальное значение и вывести на экран с новой строки. Ввести с экрана произвольный номер элемента списка и вывести значение элемента. Если  такого элемента нет, вывести сообщение "Неверный номер элемента"
Вариант 2. Блок-схема для каждой задачи обязательна
  1. Заполнить список из 6 элементов нечетными значениями, начиная с 1. Вывести элементы на экран в одну строку. Сосчитать сумму элементов,  вывести сумму на экран с новой строки.
  2. Заполнить список из 12 элементов случайными целыми  числами от 15 до 25. Вывести элементы на экран в одну строку. Найти минимальное значение и вывести на экран с новой строки. Ввести с экрана произвольный номер элемента списка и вывести значение элемента. Если  такого элемента нет, вывести сообщение "Неверный номер элемента"

Домашнее задание

Прислать учителю информатики до 19.05.25 до 22.00 по школьной эл почте письмо-отчет о выполнении домашнего задания.
  1. Заполнить список из 9 элементов степенями 2, начиная с нулевой степени (1). Вывести список в одну строку. Найти сумму элементов списка, вывести с новой строки
  2. Заполнить список  из 15 элементов случайными числами от 9 до 27, Вывести список в одну строку. На следующей строке через запятую вывести индексы (номера) всех элементов, значение которых делится на 3
  3. Написать программу, которая заполняет список  из 20 элементов случайными числами от 2 до 12, а затем считает, сколько максимумов находится в списке. Вывести список в одну строку. На следующей строке вывести количество максимумов

понедельник, 5 мая 2025 г.

Урок 62-63. Цикл for и случайные числа

Дата проведения занятия 8а, 8б - 6.05.25
8в - 7.05.25
Для изучения Python  используем главы из учебника Босовой 3.1, 3.2, 3.4 
Цикл for -  цикл с заданным числом повторений, цикл с параметром
На прошлом уроке мы познакомились с понятием цикл
Цикл - это одна из трех основных алгоритмических конструкций. 
Цикл - многократное повторение некоторой последовательности действий

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

Для повторения цикла некоторое заданное число раз n можно использовать цикл for вместе с функцией range

Оператор цикла for может иметь такую форму. Эта запись означает, что переменная i будет изменяться от 0 до n-1, а цикл выполнится n раз
for i in range(n):
  
оператор

Оператор цикла for может иметь и такую форму. Эта запись означает, что переменная i будет изменяться с шагом s от a до n-1. Шаг может быть положительным или отрицательным!

for i in range(a, n, s):
  
оператор

Изменение переменной-параметра цикла внутри цикла является логической ошибкой.

Обратите внимание: в  теле цикла стоит ТОЛЬКО ОДИН ОПЕРАТОР!
А что делать, если надо выполнить не ОДИН, а НЕСКОЛЬКО операторов? Они должны составлять одно тело, они должны быть написаны с одинаковым СДВИГОМ относительно заголовка.
Случайные числа
Большинство стандартных функций языка Python разбиты на группы по назначению, и
каждая группа записана в отдельный файл, который называется модулем.
Для работы со случайными числами нужно использовать модуль random

1. Случайное число от 0 до 1, тип результата float: random()
2. Случайное  целое число n, в диапазоне  a ≤ n ≤ b : randint(a,b)
Пример: для того, чтобы записать в переменную a случайное число в диапазоне от 1 до 10,
можно использовать следующие операторы:
from random import randint
a = randint (1,10)

Работа на компьютере

Задание 0. Запуск среды IDLE. Подготовка к работе
1. Для запуска оболочки выберите в меню Пуск --> Программы --> Python 3.12 --> IDLE
2. Для создания файла с программой в меню File выберите пункт New File
3. В открывшемся окне наберите текст программы (обе строки набираем с 1 позиции):
#Урок 8
print ('Урок 8. Вас приветствует программа Васи Иванова') 
4. Сохраните текст в своей папке под именем Py08_name.py, выбрав пункт меню File --> Save As. Учтите, что name - это ваша фамилия латинскими буквами.
В этом файле будете сохранять программы, написанные на этом уроке.
Задание 1. Знакомство со случайными числами в Python
Составить блок-схему, написать текст программы, отладить следующие программы
1. В цикле вывести на экран n раз переменную n и текст: "Я знаю случайные числа"
Запустить программу 5 раз. Предложение from random import randint вводится один раз, его не надо повторять перед каждой программой
from random import randint
n = randint (1, 5) # случайное число
for i in range (n):
      print(n, "Я знаю случайные числа")

2. В цикле вывести на экран 6 случайных чисел от -30 до 50, включая границы. Запустить программу 5 раз. Одинаковые ли числа мы получаем при каждом запуске?
for i in range (6):
      x =  randint (-30, 50)  # случайное число
      print (x, end=',') # все числа теперь выводятся в одну строку через ,
print ('') # возвращаем перевод строки

3. Изменить программу так, чтобы выводилось 10 чисел от 15 до 73, а затем 4 числа от -10 до 10

Задание 2
1. В цикле получить 7 целых случайных чисел от 5 до 25, найти их сумму, вывести сумму на экран.
2. Ввести число n. В цикле получить n целых случайных чисел от 5 до 25, найти их произведение, вывести произведение на экран.

Домашнее задание

Прислать учителю информатики до 12.05.25  до 22.00 по школьной эл почте письмо-отчет о выполнении домашнего задания.
Тема письма: 8 кл ДЗ-8 Питон  <ваша фамилия>

Задание Питон 8. Написать и отладить  программы
В тетради начертить  блок-схемы. К письму присоединить  текст на питоне + скриншот для каждой выполненной программы
 py8hm_8_name. 
1. Ввести числа a, b.  В цикле найти сумму 10 случайных чисел x таких, что a<=x<=b. Вывести на экран все случайные числа в одну строку, затем их сумму
2. Ввести число n (от 1 до 7). Затем в цикле получить  n случайных чисел от -15 до 20, найти  сумму положительных чисел, сумму отрицательных чисел. Вывести на экран: все случайные положительные числа в одну строку, все случайные отрицательные числа в одну строку, затем сумму положительных чисел, сумму отрицательных чисел