четверг, 5 декабря 2024 г.

Урок 12. Поиск минимума , максимума

Дата проведения занятия 5.12.24
В программировании поиск - одна из наиболее часто встречающихся задач невычислительного характера.

Предположим, что мы хотим проанализировать результаты забега на 100 метров.
  • Необходимо выяснить, кто занял первое место.
  • Необходимо выяснить, кто занял 1, 2, 3 место
  • Необходимо выяснить, насколько победитель пробежал быстрее самого слабого участника 
Все эти задачи сводятся к поиску максимального или минимального значения элемента последовательности.
Компьютер не может сравнить разом весь ряд объектов. На каждом шаге он может сравнивать только два объекта. Поэтому в программе необходимо организовать последовательный просмотр элементов последовательности и сравнение значения очередного просматриваемого элемента с некоторым образцом. Самое большое значение в последовательности называется максимумом, самое маленькое - минимумом. Максимумов и минимумов может быть несколько. Значение, которое меньше максимума, но больше всех остальных элементов, называется вторым максимумом. Аналогично, значение, которое больше минимума, но меньше всех остальных элементов, называется вторым минимумом

Пример программы поиска первого максимума

print('Поиск максимума в последовательности из 10 сл чисел от 5 до 20')
from random import *
max_el= 3 # Принудительный макс, самое мин значение
for i in range (10):
    x = randint(5, 20)
    print(x, end=',')
    if x > max_el:
        max_el = x
print ('')
print ('max_el=', max_el)

Пример программы поиска последнего минимума  
print('Поиск минимума в последовательности из 10 сл чисел от 5 до 20')
from random import *
min_el= 25 # Принудительный min, самое max значение
for i in range (10):
    x = randint(5, 20)
    print(x, end=',')
    if x <= min_el:
        min_el = x
print ('')
print ('min_el=', min_el)  

Работа на ПК в классе по группам:

   Написать программу, которая выясняет, насколько максимальное значение больше минимального в последовательности из 15 случайных чисел от 5 до 20

Домашнее Задание (по желанию)

  1. Написать программу, которая считает, сколько максимумов находится в последовательности из 20 случайных чисел от 2 до 8
  2. Написать программу, которая считает, сколько вторых минимумов находится в последовательности из 20 случайных чисел от 10 до 15
 



четверг, 28 ноября 2024 г.

Урок 11. Списки

Дата проведения занятия 28.11.24
Информация с сайтов: 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 случайных чисел

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

В программе к элементу списка 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
В качестве примера напишем программу Py04.py по следующему заданию:
Заполнить список из 10 элементов случайными целыми  числами от 3 до 15.
Отсортировать список
Вывести значения элементов списка на экран в одну строку
Сосчитать сумму элементов,  вывести сумму на экран с новой строки.

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


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

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

Домашнее задание (по желанию)

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

четверг, 21 ноября 2024 г.

Урок 10. Цикл FOR + случайные числа

Дата проведения занятия 21.11.24
Для изучения 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):
  
оператор

 

Текст от слова for до знака : включительно называется заголовком цикла, а оператор после : - телом цикла. Переменная после слова for называется параметром цикла.
Параметр цикла меняется от начального значения до конечного значения, увеличиваясь всякий раз на единицу.
Для каждого значения переменной-параметра выполняется тело цикла. Однократное повторение тела цикла называется итерацией цикла. Значение параметра цикла после завершения цикла считается неопределенным.

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

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

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

Случайные числа

Большинство стандартных функций языка Python разбиты на группы по назначению, и
каждая группа записана в отдельный файл, который называется модулем.
Для работы со случайными числами нужно использовать модуль random

1. Случайное число от 0 до 1, тип результата float: random()
2. Случайное  целое число n, в диапазоне  a ≤ n ≤ b : int 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 позиции):
 #Урок 3
 print ('Урок 3. Вас приветствует программа Васи Иванова') 
4. Сохраните текст в своей папке под именем Py03_name.py, выбрав пункт меню File --> Save As. Учтите, что name - это ваша фамилия латинскими буквами.
В этом файле будете сохранять программы, написанные на этом уроке.
Задание 1
Составить блок-схему, написать текст программы, отладить следующие программы
1. Вывести на экран n раз переменную n и текст: "Я знаю случайные числа"
Запустить программу 5 раз
from random import randint
n = randint (1, 5)
for i in range(n):
      print(n, "Я знаю случайные числа")

За выполнение заданий 0 и 1 - оценка 3
Для получения оценки 4-5 нужно выполнить дополнительные задания

Задание 2. Написать и отладить  программу + письмо учителю с присоединенным текстом программы
1. Ввести целое число a, вывести 5 целых чисел, которые находятся на числовой оси правее числа a, каждое следующее больше на 1

2. Ввести целое число b, вывести 7 целых чисел, которые находятся на числовой оси левее числа b, каждое следующее меньше на 2.  (Использовать отрицательный шаг в заголовке цикла)


Задание 3. Написать и отладить  программу + письмо учителю с присоединенным текстом программы

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

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

По желанию. Доделать программы, начатые в классе, отправить письмо учителю с прикрепленным текстом программы + скриншотом выполнения программы

четверг, 14 ноября 2024 г.

Урок 9. Разветвление

Дата проведения занятия 14.11.24
Для изучения Python  используем главы из учебника Босовой 3.1, 3.2, 3.4 

Повторение. Разветвление

Ветвление - алгоритмическая конструкция, в которой в зависимости от результата проверки условия ("да" или "нет") предусмотрен выбор одной из двух последовательностей действий (ветвей). Алгоритмы, в основе которых лежит структура "ветвления", называются разветвляющимися.
Употребляют разные названия этого алгоритма:
  • разветвляющийся
  • ветвления
  • выбора
  • условный 

Существует 2 формы разветвляющегося алгоритма :
  • полная форма
  • неполная форма 
На Python полная форма разветвляющегося алгоритма реализуется с помощью условного оператора. Сдвиг в записи ОБЯЗАТЕЛЕН!
if условие:
оператор1
elif:
оператор2
elif:
оператор3
else:
оператор4
На Python неполная форма разветвляющегося алгоритма реализуется с помощью условного оператора:
if условие:
оператор

Условный оператор работает так: 
1.      Проверяется выражение, которое является условием.
2.      Если условие истинно (true), выполняется оператор1, иначе (false) — оператор2.
Операторы  оператор1 и оператор2 никогда не выполняются вместе — работает только один из них. После выполнения условного оператора управление передается на оператор, который следует за условным.

Обратите внимание: в ветке if и в ветке else стоит ТОЛЬКО ОДИН ОПЕРАТОР!
А что делать, если надо выполнить не ОДИН, а НЕСКОЛЬКО операторов? Их надо "объединить" в один оператор. На Python это делается очень просто: все эти операторы должны быть написаны с одинаковым сдвигом  
if условие:
оператор12
оператор13
оператор14
оператор15
else:
оператор21
оператор22
оператор23
   

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

Задание 0. Запуск среды IDLE. Подготовка к работе
1. Для запуска оболочки выберите в меню Пуск --> Программы --> Python 3.12  --> IDLE
В результате откроется окно Python Shell, в котором символы >>> означают приглашение ввести команду. 
2.Для создания файла с программой в меню File выберите пункт New File
3. В открывшемся окне наберите текст программы (обе строки набираем с 1 позиции):
 #Урок 2
 print ('Урок 2. Вас приветствует программа Васи Иванова') 
4. Сохраните текст в своей папке под именем Py02_name.py, выбрав пункт меню File --> Save As. Учтите, что name - это ваша фамилия латинскими буквами.
В этом файле будете сохранять программы, написанные на этом уроке.

Задание 1
Написать программу, которая определяет, заканчивается ли введенное число на цифру 4 или нет.
Для определения последней, младшей цифры числа используется операция  a % 10.

Алгоритм
Начало
  Выведите сообщение: 'Программа определяет младшую цифру числа'
  Введите а
  Если a % 10 == 4: 
        выведите сообщение: 'Последняя цифра a=', a, ' это 4'
  иначе:
        выведите сообщение: .Последняя цифра a=', a, ' это не 4'
Конец

Задание 2. Написать текст программы, отладить 
Ввести число, вывести сообщение о том, делится ли оно на 5

За выполнение заданий 1 и 2 - оценка 3
Для получения оценки 4-5 нужно выполнить дополнительные задания

Задание на 4 
If3. 
Ввели натуральное число x. 
Если число 
делится на 3:
      увеличить  x на 6
Иначе:
      умножить x на 3
Вывести x
Проверить работу программы на числах 12 и 11

Задание на 5. Решить задачу If3 и решить одну из задач IF97, IF99
IF97. Определить, принадлежит ли точка x отрезку (a, b] Ввести целые значения a, b, x, вывести сообщение: "Точка x =", x, " принадлежит отрезку" или "Точка x =", x, " не принадлежит отрезку"

IF99. Автомат получает на вход трехзначное целое десятичное число. По полученному числу строится новое десятичное число по следующим правилам.
А. Вычисляются два новых числа: сумма старшего и среднего разрядов, а также сумма среднего и младшего разрядов.
В. Полученные два числа записываются подряд в порядке невозрастания, без разделителей.
Задание
1. Написать программу. Проверить работу программы на числах 321, 567.
2. Найти наибольшее число, при выводе которого будет выведено 1716


 

четверг, 7 ноября 2024 г.

Урок 8. Среда программирования для Python

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

Часть 1. Повторение

Вспоминаем основы программирования.
Гвидо ван Россум. Родился в 1956 г
Языки программирования - формальные языки, предназначенные для записи алгоритмов, исполнителем которых будет компьютер.
Алгоритм – это понятное и точное предписание исполнителю выполнить конечную последовательность команд, приводящую от исходных данных к искомому результату.
Python - один из универсальных языков программирования высокого уровня. Его относят к языкам 3 поколения. (Первое поколение - машинные языки, Второе поколение - Ассемблеры).
Язык является интерпретируемым и объектно-ориентированным (все является объектами).
Python разработан в 1991 году голландским программистом Гвидо ван Россумом. Название язык получил в честь британского телешоу «Летающий цирк Монти Пайтона»
Прочтите дома, это интересно
(статьи с сайта https://skillbox.ru/company/)

Часть 2. Среда IDLE

Для изучения Python  используем главы из учебника Босовой 
Для разработки и отладки программ на Python  существует несколько сред разработки. Мы воспользуемся средой-оболочкой IDLE.
Эта среда по умолчанию поставляется с Python. Она написана на нем, имеет все возможности интегрированной среды разработки, проста и минималистична. С ней можно начать писать программы на Python, но для дальнейшей работы, скорее всего, будет удобнее другой, более масштабный инструмент.
Интересный факт: как язык Python был назван в честь комик-группы «Монти Пайтон», так и IDLE назвали в честь одного из участников этой группы — Эрика Айдла.

Работа на ПК

Задание 0. Запуск среды IDLE. Подготовка к работе
1. На локальном компьютере в папке своего класса 11a проверяем наличие папки, названной вашей фамилией.
Если такой папки нет, в папке своего класса 11a  создаем вложенную папку, названную вашей фамилией латинскими буквами. В этой папке вы будете сохранять все программы на Python
2. Для запуска оболочки выбираем в меню Пуск --> Программы --> Python 3.12  --> IDLE
В результате откроется окно Python Shell, в котором символы >>> означают приглашение ввести команду. 
3. Попробуем  в программном режиме запустить программу.
Для создания файла с программой в меню File выбираем пункт New File
4. В открывшемся окне набираем текст программы (обе строки набираем с 1 позиции):
 #Урок 1
 print ('Вас приветствует программа Васи Иванова') 

5. Сохраняем текст в своей папке под именем Py01_name.py, выбрав пункт меню File --> Save As. Учтите, что name - это ваша фамилия латинскими буквами.
В этом файле будете сохранять программы, написанные на этом уроке.

6. Изучите интерфейс приложения. Схематично зарисуйте в тетрадь расположение и назначение двух окон приложения. 

7. Запустите программу на выполнение, выбрав пункт меню Run --> Run Module или нажав клавишу F5.
8. Учтите, что в имени программы могут использоваться только латинские буквы, цифры и знак подчеркивания (НЕ тире)
9. Проанализируйте полученный результат
   В каком окне находится текст программы? Что написано в строке заголовка этого окна?
   В каком окне находится результат выполнения программы? Что написано про запуск программы? 

Задание 1. Расчет среднего арифметического
1. Напишите в тетради программу, которая работает по такому алгоритму.
Начало
  Ввести x (целое число): x = int(input('Введи x='))
  Ввести y (целое число): y = int(input('Введи y=')) 
  Найти среднее арифметическое x и y: sr = (x + y)/2, 
  Вывести значение sr на экран:   print(sr)
Конец
2. Наберите текст программы в окне Py01_name.py
3. Повторно сохраните текст программы на локальном компьютере в своей папке
    Меню --> File -->Save
4. Запустите программу  3 раза с разными данными  Run --> Run Module
5. Проанализируйте полученный результат
6. Завершите работу IDLE: Меню-->  File -->  Exit 

За выполнение заданий 0 и 1 - оценка 3
Для получения оценки 4-5 нужно выполнить дополнительные задания

1. Напишите  программу вычисления площади прямоугольника S по двум сторонам a, b. Значения a и b - это исходные данные, их требуется ввести, S - результат работы программы, его требуется вывести. Выполните эту программу в среде IDLE
2. Напишите  программу вычисления площади кольца S по двум радиусам r1, r2 (r1 > r2). Значения r1 и r2 - это исходные данные, их требуется ввести, S - результат работы программы, его требуется вывести. Выполните эту программу в среде IDLE

четверг, 17 октября 2024 г.

Урок 7. Алгоритмы и исполнители. Свойства алгоритмов

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

Исполнитель алгоритма - это субъект или устройство, способные правильно интерпретировать описание алгоритма и выполнить содержащийся в нем перечень действий.
Алгоритм - это точная система предписаний, определяющая содержание и порядок действий исполнителя над некоторыми объектами (исходными и промежуточными данными) для получения искомого результата за конечное число шагов.
Теория алгоритмов предоставляет аппарат анализа различных алгоритмов решения одной и той же задачи, на основе которого можно выбрать самый эффективный алгоритм.
Сложность алгоритма выражают в виде функции от объема входных данных.

Обсуждаем и конспектируем презентацию Основные сведения об алгоритмах в Электронном приложении к учебнику Босовой Л.Л.«Информатика» для 11 класса.

Обсуждаем и конспектируем презентацию Алгоритмические структуры в Электронном приложении к учебнику Босовой Л.Л.«Информатика» для 11 класса.

Для тех, кто пропустил - ссылка на учебник Босовой Л.Л. для 11 кл

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

Повторно посмотреть  презентацию, обратить особое внимание на элементы блок-схем.