четверг, 25 апреля 2024 г.

Урок 30. Поиск минимума и максимума в последовательности

Дата проведения занятия 25.04.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
 



четверг, 18 апреля 2024 г.

Урок 29. Решение задач с циклами

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

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

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

Задание 1. Для поиска модуля х используется функция abs (x)
Составить блок-схему, написать текст программы, отладить следующие программы
1. Напишите программу, которая в последовательности натуральных чисел определяет количество чисел, кратных 4. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, кратное 4 . Программа должна вывести одно число: количество чисел, кратных 4. Проверить на числах: 7, затем 4 13 16 25 24 20 17

2. Напишите программу, которая в последовательности целых чисел определяет количество чисел, кратных 3. Программа получает на вход количество чисел в последовательности, а затем сами числа как случайные от -30 до 20. Программа должна вывести одно число: количество чисел, кратных 3, или сообщение НЕТ, если таких чисел нет

3. Для тех, кто сдает ОГЭ. Напишите программу, которая в последовательности целых чисел определяет максимальное число, кратное 4, но не кратное 7. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, кратное 4 и не кратное 7. Количество чисел не превышает 1000. Введённые числа по модулю не превышают 30 000. Программа должна вывести одно число: максимальное число, кратное 4, но не кратное 7

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

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

Задание Питон 5. Написать и отладить  программу
В тетради начертить  блок-схемы. К письму присоединить  текст на питоне + скриншот для каждой выполненной программы
 py9hm_5_name. 
1Напишите программу, которая в последовательности натуральных чисел определяет количество чисел, кратных 5 и не кратных 3. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, кратное 5 и не кратное 3. Программа должна вывести одно число: количество чисел, кратных 5 и не кратных 3.
2. Для тех, кто сдает ОГЭ, задача 1021 с сайта Полякова
   

четверг, 11 апреля 2024 г.

Урок 28. Повторение. Цикл FOR + случайные числа

Дата проведения занятия 11.04.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.9  --> IDLE
2.Для создания файла с программой в меню File выберите пункт New File
3. В открывшемся окне наберите текст программы (обе строки набираем с 1 позиции):
 #Урок 4
 print ('Урок 4. Вас приветствует программа Васи Иванова') 
4. Сохраните текст в своей папке под именем Py04_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, "Я знаю случайные числа")

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

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

4. Для тех, кто сдает ОГЭ, задача 1012 с сайта Полякова

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

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

Задание Питон 4. Написать и отладить  программу
В тетради начертить  блок-схемы. К письму присоединить  текст на питоне + скриншот для каждой выполненной программы
 py9hm_4_name. 
1. Ввести число n (от 1 до 7). Затем в цикле получить  n случайных чисел, найти их сумму, вывести сумму на экран
2. Ввести число m (сколько знаков - неизвестно). В цикле сосчитать, сколько в нем цифр, найти сумму цифр числа
3. Для тех, кто сдает ОГЭ, задача 1013 с сайта Полякова
   

четверг, 4 апреля 2024 г.

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

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

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

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

2. Составить блок-схему, написать текст программы, отладить следующие программы
1. Ввести число, вывести сообщение о том, делится ли оно на 5

2.  Даны две переменные вещественного типа: AB. Перераспределить значения данных переменных так, чтобы в A оказалось меньшее из значений, а в B — большее. Вывести новые значения переменных A и B.
Домашнее задание 
  • Прислать учителю информатики до 10.04.24  до 22.00 по школьной эл почте письмо-отчет о выполнении домашнего задания.
  • Тема письма: 9 кл ДЗ-3  Питон <ваша фамилия>
  • К письму прикрепить  файл с текстом  решенной задачи и скриншот, на котором видно выполнение задачи - для каждой решенной задачи
Задание на 3. 
If3. 
Ввели натуральное число x. 
Если число 
делится на 3:
      увеличить  x на 6
Иначе:
      умножить x на 3
Вывести x
Проверить работу программы на числах 12 и 11

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

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