Главная 1 четверть 2 четверть  3 - 4 четверть

10 А класс, углубленный уровень

 

ЕГЭ:   ФИПИ       Сдам ЕГЭ    Сайт К.Ю. Полякова

Видеоконсультация от разработчиков ГИА (ЕГЭ и ОГЭ)

Дополнительный электронный учебник

ИИ‑помощник от Яндекс Учебника для подготовки к ЕГЭ

 

ОЛИМПИАДЫ и КОНКУРСЫ   Участвуй и ПОБЕЖДАЙ!!!

 

Проект Код будущего https://talent-it.ru/

 

Презентации Python

 

СИРИУС Пригласительный этап ВсОШ

23, 24 мая 2024 года Регистрация с 18 апреля

 

03.05.2024, пятница

Практическая работа. Символьные строки и системы счисления

Контроль. Простейшие задачи на символьные строки.

С4

 

Преобразования число - строка

Компьютерные системы счисления в Python

 

ЕГЭ-14

1 группа №№ 107 - 117, 120  - 124

2 группа №№ 147 - 155, 158 - 173, 191 - 215

3 группа №№ 216 - 220

4 группа №№ 221 - 230

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

Уметь решать задания ЕГЭ-14 из рассмотренных групп

 

23.04.2024, вторник

Символьные строкиФункции и методы строк

Учебник, стр. 239 - 242

Вопросы и задания

 Что такое символьная строка?

2.     Как компьютер распознаёт символы в строках?

3.     Какой тип имеет символьная строка?

4.     Как ввести символьную строку?

5.     Как вывести символьную строку?

6.     Как узнать длину символьной строки?

7.     Как вывести символ строки по индексу?

8.     Можно ли изменить строку?

9.     Как получить новую строку из существующей?

10. Как работает операция конкатенация?

11. Как сравнивают строки?

12. Что такое срез строки?

13. Как получить реверс строки срезом?

14. Как срезом сформировать из строки новую строку из символов на нечётных позициях?

15. Как работают методы isdigit(), upper(), lower()?

16. Вводится строка, не содержащая знаков препинания. Найти:

a.     длину строки;

b.     получи слова: форма, томат, фирма, норма из слова ИНФОРМАТИКА;

c.     получи реверс строки;

d.     количество гласных букв в строке;

e.     количество согласных в строке;

f.     количество слов в строке, если слова разделены одним пробелом;

g.     количество слов в строке, если слова разделены любым количеством пробелов;

h.     количество вхождений данной подстроки в строке;

i.      является ли строка палиндромом (око – палиндром, окно – не палиндром)?

 

Примечание. Все задачи разрешается оформить в одном файле.

Чем отличаются методы find(), rfind().

Что будет результатом методов find(), rfind(), если подстроки в строке не найдено?

Если вызвать метод find() с тремя параметрами s.find(s1, a, b), то поиск будет осуществляться в срезе s[a:b]

Метод count(). Возвращает количество вхождений подстроки в строку.

s = "abscnacat"

print(s.count("а"))

#возвращает 3

print(s.count("", 1))

#возвращает 2

Что будет результатом обработки строки?

print(s.count("g"))

Что будет результатом обработки строки?

print(("f"*20).count("fff")

Метод replace() заменяет все вхождения одной строки на другую. Формат: s.replace(old, new) — заменить в строке s все вхождения подстроки old на подстроку new.

s = "abscnacat"

s.replace("a","A")

print(s)

#результат: AbscnAcAt

Что будет результатом обработки строки?

s = "abscnAcatac"

s.replace("a","A", 2)

print(s)

Функция len() возвращает длину строки.

Функция chr() возвращает символ по коду.

Функция ord() возвращает номер символа в кодовой таблице символов.

Опишите результаты выполнения фрагмента программы:

print(len("343nrtfd"))

print(ord("A"))   #А – буква кирилицы

print(chr(1041))

Преобразование строка-число.

Задачи

1.      Вводится целое число. Найти количество цифр в числе. Число может быть как положительным, так и отрицательным.

2.      Вводится вещественное число. Найти количество цифр в числе. Число может быть как положительным, так и отрицательным.

3.      Вводится целое число. Является ли число палиндромом?

4.      Напишите программу, которая вычисляет сумму трех чисел, введенную в форме символьной строки. Все числа целые.

Пример:

Введите выражение:

12+3+45

Ответ: 60

Преобразование строки в список.

    s = 'abbcdd' #строка

    print(s)

    #результат abbcdd

    s = list(s)  #список

    print(s)

    #результат ['a','b','b','c','d','d']

    s = set(s) #множество

    print(s)

    #результат {'d','a','c','b']

Преобразование списка, кортежа в строку.

    s = ['a','1','b','cd'] #список

    s = ''.join(s)  #строка

    print(s)

    #результат a1bcd

 

 


Задачи для самостоятельной работы

5.      Ввести с клавиатуры символьную строку и заменить в ней все буквы «а» на «б» и все буквы «б» на «а» (заглавные на заглавные, строчные на строчные).

 Пример:

Введите строку:

ааббААББссСС

Результат:

ббааББААссСС

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

 Пример:

Введите строку:

  Вася  пошел      гулять

Найдено слов: 3

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

8.      Ввести с клавиатуры в одну строку фамилию, имя и отчество, разделив их пробелом. Вывести фамилию и инициалы.

Пример:

Введите фамилию, имя и отчество:

Иванов Петр Семёнович

П.С. Иванов

9. Ввести адрес файла и «разобрать» его на части, разделенные знаком '/'. Каждую часть вывести в отдельной строке.

 Пример:

Введите адрес файла:

C:/Фото/2013/Поход/vasya.jpg

C:

Фото

2013

Поход

vasya.jpg

10.  Напишите программу, которая заменяет во всей строке одну последовательность символов на другую.

Пример:

Введите строку:

(X > 0) and (Y < X) and (Z > Y) and (Z <> 5)

Что меняем: and

Чем заменить: &

Результат

(X > 0) & (Y < X) & (Z > Y) & (Z <> 5)

11.  Напишите программу, которая вычисляет сумму трех чисел, введенную в форме символьной строки. Все числа целые.

Пример:

Введите выражение:

12+3+45+50

Ответ: 110

12.  Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков (допускаются только знаки «+» или «–»). Выражение вводится как символьная строка, все числа целые.

Пример:

Введите выражение:

12-3+45

Ответ: 54

13. Дано целое положительное число. Найдите количество единиц и нулей в двоичной записи числа. (Для перевода десятичного числа в двоичное используйте функцию bin()).

14. Дано целое положительное число. Найдите количество различных цифр в шестнадцатеричной записи этого числа. Также выведите эти цифры в порядке возрастания. (Для перевода числа из десятичной записи в шестнадцатеричную используйте функцию hex())

 

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

Оформить решение всех задач, к каждой строке написать пояснение в комментариях

 

 

25.04.2022, понедельник

1 урок

Зачёт. Матрицы

 

2 урок

Символьные строки

 

Изучи

Символьные строки

Учебник, стр. 236 - 239

Выполни

Ответь на вопросы и выполни задания

1.     Что такое символьная строка?

2.     Как компьютер распознаёт символы в строках?

3.     Какой тип имеет символьная строка?

4.     Как ввести символьную строку?

5.     Как вывести символьную строку?

6.     Как узнать длину символьной строки?

7.     Как вывести символ строки по индексу?

8.     Можно ли изменить строку?

9.     Как получить новую строку из существующей?

10. Как работает операция конкатенация?

11. Как сравнивают строки?

12. Что такое срез строки?

13. Как получить реверс строки срезом?

14. Как срезом сформировать из строки новую строку из символов на нечётных позициях?

15. Как работают методы isdigit(), upper(), lower()?

16. Вводится строка, не содержащая знаков препинания. Найти:

a.     длину строки;

b.     получи слова: форма, томат, фирма, норма из слова ИНФОРМАТИКА;

c.     получи реверс строки;

d.     количество гласных букв в строке;

e.     количество согласных в строке;

f.     количество слов в строке, если слова разделены одним пробелом;

g.     количество слов в строке, если слова разделены любым количеством пробелов;

h.     количество вхождений данной подстроки в строке;

i.      является ли строка палиндромом (око – палиндром, окно – не палиндром)?

 

 

19.04.2024, пятница

1 урок

Квадратная матрица

Матрица с одинаковым количеством строк и столбцов называется квадратной.

Общий вид матрицы 3x3

a00 a01 a02

a10 a11 a12

a20 a21 a22

 

n = 3

    a00 a01 a02

    a10 a11 a12

    a20 a21 a22

(i == j) Красным выделены элементы главной диагонали

(i < j) Синим выделены элементы над главной диагональю

(i > j) Зелёным выделены элементы под главной диагональю

n = 3

    a00 a01 a02

    a10 a11 a12

    a20 a21 a22

(i + j == – 1) Красным выделены элементы побочной диагонали

(i + j– 1) Синим выделены элементы над побочной диагональю

(i+ – 1 ) Зелёным выделены элементы под побочной диагональю

 

Задача 1

Найти сумму элементов квадратной матрицы. n = 5.

# ввод матрицы построчно, вывод матрицы

a = []

n = 5

for i in range(n):

    row = input("a["+str(i)+"]>").split()

    row = list(map(int,row))

    a.append(row)

print()

for row in a:

    for x in row:

        print(x, end = " ")

    print()

print()

# вычисление суммы элементов матрицы

s = 0

for row in a:

    s += sum(row)

print(s)

 

# вычисление суммы элементов каждой строки матрицы

for row in a:

    print(sum(row))

 

Задача 2а

Найти сумму элементов главной диагонали квадратной матрицы. n = 5.

# фрагмет вычисления суммы элементов главной диагонали

s = 0

for i in range(n):

    s += a[i][i]

print(s)

Задача 2б

Найти сумму элементов побочной диагонали квадратной матрицы. n = 5.

# фрагмет вычисления суммы элементов побочной диагонали

s = 0

j = n -1

for i in range(n):

    s  += a[i][j]

    j -= 1

print(s)

Дополнительно

Получить копию (сформировать одномерный массив) строки и столбца. Смотри учебник. Стр. 254

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

Уметь решать все задачи, 2 задачи по выбору - оформить решение в тетради (по одной задаче из каждого десятка)

Задачи для самостоятельной работы.

Дана квадратная матрица размера n.

3. Найти максимальный элемент главной диагонали.

4. Найти минимальный элемент побочной диагонали.

5. Найти сумму элементов, расположенных выше главной диагонали.

6. Найти произведение элементов, расположенных ниже главной диагонали.

7. Найти произведение элементов над побочной диагональю.

8. Найти сумму элементов под побочной диагональю.

9. Найти минимальный элемент над главной диагональю.

10. Найти максимальный элемент под побочной диагональю.

11. Сравнить суммы элементов главной и побочной диагонали.

12. Поменять местами соответствующие элементы главной и побочной диагоналей.

13. Вывести номер строки и столбца на пересечении которых находится максимальный элемент главной диагонали.

14. Вывести номер строки и столбца на пересечении которых находится минимальный элемент побочной диагонали.

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

16. Заменить нулями те элементы главной и побочной диагонали, которые кратны хотя бы одному их индексу (строки или столбца), за исключением строки и столбца с индексом 0.

17. Заменить все элементы главной диагонали максимальным элементом побочной диагонали.

18. Заменить все элементы побочной диагонали  минимальным значением крайних элементов матрицы (крайние – угловые, их всегда 4).

19. Найти количество и сумму чётных элементов, расположенных на главной или побочной диагонали.

20. Найти количество элементов, расположенных на главной или побочной диагонали, шестнадцатеричная запись которых оканчивается на А или F.

21. В квадратной матрице поменять соответственные элементы k-й строки и k-го столбца местами.

2 урок

Контрольная работа. Одномерные массивы и матрицы

Всегда вначале выводить исходный массив. Матрицу - в формате столбцы и строки!!!

  C6 ЕГЭ-25(2020) Квадратная матрица
Вариант 1 29 30 21
Вариант 2 28 31 20
Вариант 3 27 32 19
Вариант 4 26 33 18
Вариант 5 25 34 17
Вариант 6 24 35 16
Вариант 7 23 36 15
Вариант 8 22 37 14
Вариант 9 21 38 13
Вариант 10 20 39 12
Вариант 11 19 40 11
Вариант 12 18 41 10
Вариант 13 17 42 9
Вариант 14 16 43 8
Вариант 15 15 44 7
Вариант 16 14 45 6
Вариант 17 13 46 5
Вариант 18 12 47 4
Вариант 19 11 48 3

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

Уметь решать все задачи

 

 

12.04.2024, пятница

Практикум. Алгоритмы обработки матриц

Задача 1

Найти сумму элементов матрицы 4х5.

#Сумма элементов матрицы

a = []

n =4

m = 5

for i in range(n):

    row = input("a["+str(i)+"]>").split()

    row = list(map(int,row))

    a.append(row)

  

print()

 

for row in a:

    for x in row:

        print(x, end = " ")

    print()

 

print()

#нахождение суммы перебором элементов матрицы по значениям

s = 0

for row in a:

    for x in row:

        s += x

print("Сумма =", s)

# или так

 

#нахождение суммы перебором строк  матрицы

s = 0

for row in a:

    s += sum(row)

print(s)

 

нахождение суммы перебором строк по индексам

s = 0

for i in range(n):

    s += sum(a[i])

print(s)

 

Задача 2

Найти сумму элементов каждой строки матрицы.

# сумма элементов каждой строки матрицы

a = []

n =4

m = 5

for i in range(n):

    row = input("a["+str(i)+"]>").split()

    row = list(map(int,row))

    a.append(row)

print()

for row in a:

    for x in row:

        print(x, end = " ")

    print()

print()

 

#1  способ, суммы строк

for i in range(n):

    s = 0

    for j in range(m):

        s += a[i][j]

    print("Cумма {} строки = {}".format(i,s))

print()

 

#2 способ, суммы строк

for i in range(n):

    print(f"Cумма {i} строки = {sum(a[i]}")

 

Задача 3

Поменять местами две строки матрицы. Номера строк для обмена запрашиваются и вводятся с клавиатуры.

# перестановка строк

a = []

n = 6

m =9

 

for i in range(n):

    row = input("a["+str(i)+"]>").split()

    row = list(map(int,row))

    a.append(row)

print()

for row in a:

    print(*row)

   

#запрос номеров строк для перестановки

s1 = int(input("1-я строка"))

s2 = int(input("2-я строка"))

#обмен строк местами

a[s1],a[s2] = a[s2],a[s1]

#вывод изменённой матрицы

for row in a:

    print(*row)

 

Задача 4

Поменять местами два столбца матрицы.

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

 

Задача 4а

Найти строку и её номер с максимальной суммой.

Вывести элементы строки, их сумму и номер строки.

 

print(max(a), sum(max(a)), a.index(max(a)))

Что плохо в коде?

 

Самостоятельная работа

Дана матрица. (Размер матрицы можно брать произвольным)

5. Найти максимальный элемент матрицы. Вывести значение максимального и его координаты (номер строки и столбца). Если максимальных элементов несколько, то выбирать можно любой.

6. Найти сумму элементов каждого столбца.

7. Найти максимальный элемент каждой строки.

8. Найти минимальный элемент каждого столбца.

9. Найти сумму элементов той строки, в которой находится минимальный элемент.

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

11. Переставить местами те строки матрицы, в которых находятся первый максимальный и последний минимальный элементы.

12. Найти строку с наибольшей суммой.

13. Найти столбец с наименьшей суммой.

14. Найти сумму той строки, в которой наибольшее количество чётных элементов.

15. Найти минимальный элемент той строки, в которой находится первый нулевой элемент матрицы при просмотре матрицы по строкам.

16. Найти количество нечётных элементов каждой строки.

17. Найти максимальный элемент матрицы среди элементов, которые в каждой строке являются последними.

18. Отсортировать каждую строку массива по возрастанию.

19. Отсортировать нечётные строки по возрастанию, чётные – по убыванию.

20. Вывести номера строк, в которых находятся нулевые элементы. Отсортировать эти строки по убыванию.

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

Оформить решение 3 любых задач с интервалом номеров не менее 4.

Закомментировать каждую строку во всех задачах

 

09.04.2024, вторник

1 урок

Зачёт. Сортировка массива

2 урок

Матрицы

Алгоритмы ввода и вывода матрицы

Матрица – это двумерный массив (прямоугольная таблица из строк и столбцов).

Матрица – это массив массивов.

Двумерный массив – это массив, каждый элемент которого характеризуется двумя индексами: индексом строки и индексом столбца, на пересечении которых находится элемент массива.

Т.к. в Python массив  - это список, то двумерный массив – это список, каждый элемент которого является также списком.

Пример матрицы.

1 2 1 3

3 6 2 7

9 5 4 6

В данном случае – это матрица размером 3 х 4. Три строки, 4 столбца. Пусть это будет матрица a.

Обращение к элементам матрицы

а[2][3] – элемент на пересечении строки с индексом 2 и столбца с индексом 3. Первым всегда записывается индекс строки, затем индекс столбца. В данном примере – этот элемент равен 6.

a[1] – это строка [3 6 2 7]

Для работы с матрицами научимся объявлять, вводить и выводить её.

Объявление, ввод, вывод матрицы

Пример 1

Создадим матрицу 4х5.

#ввод матрицы

a = [[1,2,3,4,7],

       [2,3,4,5, 8],

       [3,4,5,6, 5],

       [4,5,6,7, 4]]

# или так

a = [[1,2,3,4,7], [2,3,4,5, 8], [3,4,5,6, 5],[4,5,6,7, 4]]

# вывод матрицы

print(a)

#результат

[[1, 2, 3, 4, 7], [2, 3, 4, 5, 8], [3, 4, 5, 6, 5], [4, 5, 6, 7, 4]]

# вывод матрицы

print(*a)

# результат

[1, 2, 3, 4, 7] [2, 3, 4, 5, 8] [3, 4, 5, 6, 5] [4, 5, 6, 7, 4]

# вывод матрицы перебором элементов по индексам

for i in range(4):

    for j in range(5):

        print(a[i][j], end = " ")

    print()

#результат

1 2 3 4 7

2 3 4 5 8

3 4 5 6 5

4 5 6 7 4

# вывод матрицы перебором элементов по значениям

for row in a:

    for x in row:

        print(x, end = " ")   

    print()

# или

for row in a:

    print(*row)

#результат

1 2 3 4 7

2 3 4 5 8

3 4 5 6 5

4 5 6 7 4

Пример 2

Создать матрицу размером 6 x 7 и заполнить её случайными однозначными положительными числами.

#объявление и ввод матрицы

from random import *

n = 6

m = 7

a= [[0]*m for i in range(n)] #создание нулевой матрицы

for i in range(n): # заполнение матрицы случайными числами

    for j in range(m):

        a[i][j] = randint(0,9)

#вывод матрицы перебором элементов по  индексам

for i in range(n):

    for j in range(m):

        print(a[i][j], end = " ")

    print()

 

print()

#вывод матрицы перебором элементов по значениям

for row in a:

    for x in row:

        print(x, end = " ")

    print()

Пример 3

Ввод элементов матрицы по одному в строке

n = 4

m = 3

a = []

for i in range(n):

    a.append([0]*m)

for i in range(n):

    for j in range(m):

        a[i][j]=int(input())

print()

#код для вывода матрицы напишите самостоятельно

 

Пример 4

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

a = []

n =3

m = 4

for i in range(n):

    row = input().split()

    for i in range(m):

        row[i] = int(row[i])

    a.append(row)

 

print()

# запиши код вывода матрицы по индексам самостоятельно

 

# или так

a = []

n =3

m = 4

for i in range(n):
        row = input().split()
        row = list(map(int,row))
        a.append(row)

print()

 

# запиши код для вывода матрицы по значениям элементов

Пример 5

Формирование и вывод нулевой матрицы 5 х 3

n = 5
m = 3
a = [[0]*m]*n

print(a)   или print(*a)     Обрати внимание на отличие при выводе

for x in a:        #вывод матрицы перебором строк
    print(*x)

for i in range(n):        
#вывод матрицы перебором построчно каждого элемента
    for j in range(m):
            print(a[i][j], end = " ")
    print()
 

сформируй и выведи пустую матрицу

 

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

Отработать способы ввода и вывода матрицы.

Задание

Доработать программу ввода матрицы:

1.      При вводе матрицы по одному элементу в строке, должна быть подсказка, например:

Вводим матрицу по одному элементу в строке:

a[0][0]>

a[0][1]>

2.      При вводе матрицы построчно, должна появляться подсказка:

Вводим матрицу построчно

a[0]>

a[1]>

 

05.04.2024, пятница

Сортировка массива методом "пузырька"

Сортировка - это расположение массива по возрастанию/не убыванию или по убыванию/не возрастанию.

Метод пузырька заключается в попарном сравнении всех его элементов и обмене пар местами, если они не упорядочены.

 

Задача. Отсортировать  массив по не убыванию.

Задание. Объясните каждую строку программы в примерах 1 и 2.

Пример 1

n =10
a = [0]*n
for i in range(n):
            a[i] = int(input())
print(*a)

for i in range(len(a)):
            for j in range(len(a) - 1):
                            if a[i] < a[j]:
                                a[i], a[j] = a[j], a[i]
 

print()
for x in a:
        print(x, end = " ")

 

Пример 2

a = input().split()
a = list(map(int,a))
print(*a)

flag = 0
while flag == 0:
            flag = 1
            for i in range(1,len(a)):
                    if a[i] < a[i-1]:
                        a[i], a[i-1] = a[i-1], a[i]
                        flag = 0
print()
print(*a)

 

Вопросы

1. Какая из программ эффективнее? Почему?

2. Почему вначале flag = 0, а затем в цикле меняется на 1 в программе 2?

3. Как будет программа 2 работать, если последнее значение flag = 0 не использовать?

4. Будет ли при каком-нибудь наборе программа 2 давать верный результат, если последнее значение flag = 0 не использовать?

Задачи для самостоятельного решения

1. Напишите функцию сортировки массива методом пузырька.

2. Отсортировать по не убыванию первую половину массива и по не возрастанию вторую. В массиве 20 элементов.

3. Отсортировать по не возрастанию первую половину массива и по не убыванию вторую. В массиве 20 элементов.

4. Отсортировать по возрастанию элементы массива с чётными индексами.

5. Отсортировать по убыванию элементы массива с нечётными индексами.

6. Отсортировать по убыванию элементы массива, расположенные до первого максимального элемента массива, включая этот элемент.

7. Отсортировать по возрастанию элементы массива, расположенные после последнего максимального элемента, исключая сам последний максимальный элемент

8. Отсортировать элементы массива, расположенные между первым максимальным и последним минимальным элементами, исключая сами эти элементы.

9. Отсортировать по возрастанию только чётные элементы массива, оставив нечётные на своих местах.

10. Отсортировать элементы массива кратные 3, оставив остальные элементы на своих местах. Или вывести сообщение о том, что таких элементов в массиве нет.

11. Будем считать, что в массиве всегда есть одна пара равных максимальных элементов. Отсортировать по не возрастанию элементы до первого максимального из пары и по не убыванию после после второго максимального в паре. Пару оставить на месте.

12. При сортировке массива методом "пузырька" вычислить минимальное количество итераций, необходимых для сортировки массива по возрастанию.

13. При сортировке массива методом "пузырька" вычислить минимальное количество итераций, необходимых для сортировки массива по убыванию.

14. Отсортировать чётные элементы массива с чётными индексами по возрастанию, нечётные элементы с нечётными индексами по убыванию.

      Остальные элементы массива не сортировать.

15. В массиве 20 элементов. Отсортировать нечётные группы элементов по убыванию, чётные - по возрастанию. Каждая группа - это 5 соседних элементов.

16. Отсортировать элементы массива кратные 2 и 3 по не убыванию, остальные элементы оставить на своих местах. Или вывести сообщение о том, что такие элементы отсутствуют.

17. В массиве только трёхзначные натуральные числа. Отсортировать массив по убыванию по старшей цифре.

     Например. Для массива 123  432 567 332 ответом будет массив 567 432 332 123

18. Отсортировать элементы массива кратные 7 по убыванию, а остальные элементы заменить нулями.

     Позиции нулевых элементов в новом массиве соответствуют позициям не сортируемых элементов.

     Если в исходном массиве имеется 0, он тоже не сортируется.

19. В массиве только различные числа. Определить степень неотсортированности массива.

     Степенью неотсортированности массива назовём количество элементов массива, которые при сортировке изменят свой индекс.

20. В одномерном массиве найти пару элементов с наименьшей суммой и с наибольшей суммой.

    Также вывести индексы элементов таких пар.

 

Сортировка массива методом вставки  (методом максимумов, минимумов)

Метод вставки заключается в поиске минимального (максимального) элемента и вставки их в нужную позицию.

Пример

Отсортировать массив по не убыванию.

n =10
a = [0]*n
for i in range(n):
            a[i] = int(input())
print(*a)

for i in range(n):
             max = a[i]
             p = i
             for j in range(i+1,n):
                            if a[j] > max:
                            max = a[j]
                            p = j
            a[i],a[p] = a[p],a[i]
 

print()
print(*a)

Вопросы.

Как отсортировать массив по не убыванию?

Сравните сортировку методом "вставки" и методом "пузырька"

Задачи

1. Найти сумму двух элементов массива, которая является наименьшей (наибольшей), используя сортировку массива.

    Вывести индексы элементов в массиве до сортировки.

2. Найти наибольший элемент массива, который является отрицательным, используя сортировку массива.

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

3. Найти k-й наибольший элемент массива (тот элемент, который при сортировке окажется на k - м месте).

4. Напишите программу, которая сортирует элементы массива по возрастанию последней цифры десятичной записи чисел.

   Пример.

входные данные
6
219 234 890 81 73 96
выходные данные
890 81 73 234 96 219

Сортировка массива методами и функциями Python3

Для сортировки массива в Python3 используются:

1. метод sort() сортирует список по возрастанию;

2. метод reverse() - создаёт реверс списка, т.е., переставляет элементы списка в обратном порядке - "зеркально";

    для сортировки по убыванию метод reverse() надо использовать после применения метода sort()

3. функция sorted() позволяет сортировать массив по возрастанию, причём, отсортированный массив может быть новым, а прежний массив останется без изменений.

    ключ reverse = True позволяет сортировать массив по убыванию.

Пример 1

Отсортировать массив а по возрастанию.

a = [4, 2, 7, 4, 5]
a.sort()
print(*a)

Пример 2

Отсортировать массив а по убыванию.

a = [4, 2, 7, 4, 5]
a.sort()

a.reverse()
print(*a)

Пример 3

Отсортировать массив а по возрастанию.

a = [4, 2, 7, 4, 5]

a = sorted(a)

print(*a)

Пример 4

Отсортировать массив а по убыванию.

a = [4, 2, 7, 4, 5]

a = sorted(a, reverse = True)

print(*a)

Пример 5

Отсортировать массив а по убываниюсохранив первоначальный вид массива.

a = [4, 2, 7, 4, 5]

b = sorted(a, reverse = True)

print(*a)

print(*b)

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

Уметь решать все задачи.

 

 

02.04.2024, вторник

Практикум. Поиск экстремальных элементов в массиве

Вопросы

Как ввести массив:

    - по одному элементу в строке;

    - все элементы ввести в одной строке через пробел?

Как преобразовать элементы списка в числовые значения?

Как вывести массив?

Какие элементы массива называются экстремальными?

Какой алгоритм поиска экстремальных значений в массиве?

Какое начальное значение необходимо присваивать максимальному (минимальному)?

Почему не всегда верно присваивать начальное значение максимальному (минимальному) значение первого элемента массива?

Что значит первый и последний максимальный (минимальный) элемент массива? В чём их отличие?

Задачи

1. Найти сумму всех максимальных элементов массива.

2. Найти произведение всех минимальных элементов массива.

3. Найти модуль разности максимального и минимального элементов массива.

4. Вывести индексы всех максимальных и минимальных элементов массива.

5. Найти сумму всех элементов массива, расположенных до первого максимального элемента. Сам элемент не включать в сумму.

6. Найти произведение всех элементов массива, расположенных после последнего минимального элемента. Сам элемент не включать в произведение.

7. Найти максимальный чётный элемент массива и его индекс. Если чётные элементы в массиве отсутствуют, то вывести NO. Если в массиве несколько чётных максимальных элементов, то вывести индекс любого их них.

8. Найти максимальный элемент массива, среди элементов с нечётными индексами. Вывести значение такого элемента и его индекс.

9. Найти минимальный элемент массива, который кратен 3 или 5 и вывести его индекс. Если таких элементов в массиве нет, то вывести NO.

10. Поменять местами первый минимальный и последний максимальный элементы массива. Предполагается, что в массиве имеются такие элементы.

11. Определить, сколько максимальных элементов удовлетворяют правилу: "Максимальный элемент имеет чётный индекс, а предшествующий ему элемент является нечётным или максимальный элемент имеет нечётный индекс, а предшествующий ему элемент является чётным"? Или вывести сообщение, что максимальный элемент левый крайний и единственный. Значит предшествующий элемент отсутствует.

12. Заменить нулями все элементы массива, которые являются максимальными или минимальными. Также вывести количество таких элементов.

13. Найти количество таких элементов массива, которые являются максимальными или минимальными и кратны своему индексу. Также вывести индексы таких элементов.

14. Найти сумму и количество всех элементов массива, которые не являются ни максимальными, минимальными.

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

16. Вывести индексы элементов массива, которые являются соседними у максимального элемента или минимального элемента, исключая из этого правила рядом стоящие максимальные или минимальные в любом порядке. Если в массиве всего два различных элементе, то в нём отсутствуют искомые элементы.

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

18. Найти количество элементов массива, которые не менее, чем на модуль разности максимального и минимального элементов массива отличаются от значений максимального или минимального.

Практическая работа

Разработка программы для решения задач, включающих поиск экстремальных значений одномерного массива.

Решить вариант из трёх заданий по образцу. 3 задачи (по одной разного цвета). Вариант сообщит учитель на уроке.

В комментарии в начале программы разместить номер и текст задачи.

Закомментировать строки программы.

Образец.

"""В одномерном массиве целых чисел найти максимальный элемент
среди элементов, последняя цифра которого 2 или 5.
Вывести значение такого элемента и его индекс. Если таких элементов несколько,
то вывести любой из них. Если таких элементов нет, то вывести NO."""

Описание алгоритма

После ввода массива в цикле переберём элементы массива с целью определения, имеется ли в нём элемент, удовлетворяющий условию поиска.

Для этого переменной mx присвоим любое значение, не удовлетворяющее условию поиска. В примере mx = -1

Если после перебора элементов массива значение mx не изменилось, тогда в массиве нужных элементов нет. Выводим NO.

Если хотя бы один такой элемент найден, то переменной mx присваиваем его значение выходим из цикла.

Если значение mx изменилось, то определяем индекс найденного элемента, далее в цикле со следующего элемента за найденным и до конца массива ищем элемент, удовлетворяющий условия поиска.

После просмотра всего массива выводим значение максимального и его индекс."""


a = input().split()   
ввод списка данных через пробел в одной строке
a =list(map(int,a))  
преобразование списка в целочисленный массив
поиск начального значения максимального, удовлетворяющего заданному условию: оканчивается на 2 или 5
mx = -1    
присваивание начального значения максимальному - любое число не удовлетворяющее условию поиска
for x in a:    
перебор элементов массива по значениям
        if abs(x)% 10 == 2 or abs(x)% 10 == 5:    проверка: удовлетворят ли очередной элемент условию поиска
                                                mx = x           присваивание начального значения максимальному из первого элемента, удовлетворяющего условию поиска
                                                break            выход из цикла, так как найден первый элемент, удовлетворяющий условию поиска

if mx == -1:        
проверяем был ли в массиве элемент, удовлетворяющий условию поиска, если условие истинно, то не было
           print("NO") выводим результат, т.е., ни одного элемента, удовлетворяющего условию поиска в массиве нет
else:                   
если алгоритм идет по этой ветке, значит хотя бы один элемент массива, удовлетворяющий условию поиска, в массиве имеется
            p = a.index(mx)    запоминаем в переменной индекс начального значения максимального из массива
            for i in range(p+1,len(a)):    в цикле перебираем элементы от следующего за найденным и до конца массива
                                if a[i] > mx and (abs(a[i])% 10 == 2 or abs(a[i])% 10 == 5):    анализируем очередной элемент массива на соответствие условию поиска
                                                                                mx = a[i]       изменяем значение максимального
                                                                                p = i            #изменяем индекс изменённого максимального
            print("max = {}, index_max = {}".format(mx, p))""" Тестирование    # выводим значение максимального, удовлетворяющего условию поиска и его индекс

 

"""Тестирование

Тест 1

11 23 24 89 17 333
NO

Тест 2

12 32 45 455 1000 36 982 13
max = 982, index_max = 6

Тест 3

-455 23 900 -1022
max = -455, index_max = 0

Тест 4

-455 23 900 -1022
max = -455, index_max = 0

Тест 5

65 -385 122 874 12 562 7082
max = 7082, index_max = 6

"""

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

§64. Изучить сортировку массива методом "пузырька"

 

22.03.2024, пятница

Поиск экстремальных элементов в массиве

Функции max(), min()

Задание 1

1)      Найти номер первого из двух последовательных элементов в целочисленном массиве из 30 элементов,

сумма которых максимальна (если таких пар несколько, то можно выбрать любую из них).

    a = []
for i in range(30):
        a.append(i)
print(*a)
mx = a[0]+a[1]
imx = 0
for i in range(2,30):
        if a[i-1] + a[1] > mx:
                imx = i -1
print(imx)

Задание 2

    Найти количество максимальных элементов в целочисленном массиве из 20 элементов.

    a = []
    for i in range(20):
            a.append(int(input()))
    print(*a)
    print(a.count(max(a)))

Задание 3

    Найти количество максимальных элементов в целочисленном массиве из 20 элементов и вывести их индексы.

    from random import *
    n = 20
    a = [randint(0, 10) for i in range(n)]
    print(*a)
    mx =
max(a)
    k = 0
    print("Индексы максимальных: ", end = " ")
    for i in range(n):
   
        if a[i] == mx:
   
                k += 1
  
                 print(i, end = " ")
    print()
    print("Количество максимальных =",
a.count(mx))

Самостоятельная работа

4. Найти последний минимальный элемент массива и его индекс.

5. Найти минимальный элемент массива среди элементов с чётными индексами.

6. Найти минимальный элемент массива среди положительных элементов массива.

7. Найти максимальный, минимальный элементы массива и их индексы среди элементов массива кратных 2, но не кратным 3 или вывести сообщение о том, что такие элементы в массиве отсутствуют.

8. Найти минимальный элемент массива среди отрицательных элементов массива с нечётными индексами или вывести сообщение, что таких элементов нет в массиве.

9. Найти сумму элементов массива между первым максимальным и последним минимальным элементом массива, исключая эти элементы. Также вывести количество элементов в найденной сумме. Предполагается, что в массиве есть хотя бы два различных по значению элемента.

10*. Вставить после максимального элемента минимальный, а после минимального - максимальный.

11*. Найти среднее арифметическое между соседями максимальных элементов массива и вывести индекс того элемента массива, среднее арифметическое элементов, окружающих него, наибольшее. Окружающими элементами являются два ближайших соседа. Заметим, что у крайних элементов по одному соседу.

 

  C5 ЕГЭ-25(2020)
Вариант 1 7 7
Вариант 2 8 8
Вариант 3 9 9
Вариант 4 10 10
Вариант 5 11 11
Вариант 6 12 12
Вариант 7 13 13
Вариант 8 14 14
Вариант 9 15 15
Вариант 10 16 16
Вариант 11 17 17
Вариант 12 18 18
Вариант 13 19 19
Вариант 14 20 20
Вариант 15 21 21
Вариант 16 22 22
Вариант 17 23 23
Вариант 18 24 24
Вариант 19 25 25

 

19.03.2024, вторник

Массивы. Одномерный массив

Список - это набор элементов, каждый из которых имеет свой номер.

Нумерация элементов списка начинается с 0.

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

Элементы списка заключаются в квадратные скобки и разделяются запятой.

Примеры списков

1. Список целых чисел

a = [3, 5, 1, 43, 12, 6]

2. Cписок вещественных чисел

b = [4.54, 1.4, 9.0, 23.2]

3. Список данных разных типов

с = [1, 45, 5.3, "огонь", True, "весна"]

Список характеризуется типом данных list

В Python отсутствует такая структура как массив.

Для обработки массивов используют списки.

Массив - упорядоченный набор однотипных данных, объединённых общим именем.

Упорядоченных - значит пронумерованных.

Номер элемента массива называется индексом.

Массив, каждый элемент характеризуется общим именем и одним индексом, называют линейным или одномерным.

При обращении к элементу массива указывают имя массива и в квадратных скобках индекс. Например, a[3]; a[i]

Способы ввода и вывода массива

0. Объявление пустого массива

a = []

1. Перечисление элементов массива

a = [1, 4, 5, 3, 6, 7]  #формирование массива

 

print(a)     вывод массива в формате списка [1, 4, 5, 3, 6, 7]

 

print(*a)   вывод элементов массива в одной строке через пробел   1 4 5 3 6 7

 

for x in a:        # вывод массива в одной строке способом перебора его элементов переменной x
        print(x, end = " ")    # 1 4 5 3 6 7

 

for i in range(6):   вывод массива в одной строке перебором элементов по индексам
         print(a[i], end = " ")   # 1 4 5 3 6 7

 

for i in range(6):   вывод массива по одному в строке перебором элементов по индексам

         print(a[i])   # 1 4 5 3 6 7

 

2. Объединение нескольких списков в один

a = [1, 3, 5, 7] + [2, 4, 6]

print(*a)  Результат: 1 3 5 7 2 4 6

 

3. Повторение одного и того же списка несколько раз

a = [1, 4, 9]*3

print(*a)  Результат: 1 4 9 1 4 9 1 4 9

 

4. Использование генератора списков

a = [i for i in range(15)]

print(*a) Результат: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

 

5. Использование генератора случайных чисел

from random import *
a = [randint(10, 99) for i in range(15)]
print(*a)

 

6. Ввод элементов массива по одному (способ 1)

n = 10
a = [0]*n
for i in range(n):
            a[i] = int(input())
print(*a)

 

7. Ввод элементов массива по одному (способ 2)

n = 10
a = [int(input()) for i in range(n)]
print(*a)

 

8. Ввод элементов массива в одной строке через пробел

a = input().split() формирование строки
a = [int(x) for x in a] 
преобразование строки в целочисленный массив генератором
print(*a)

 

или

a = input().split() формирование строки
a = 
list(map(int, a)) преобразование строки в целочисленный массив с использованием функции map
print(*a)

 

9. Добавление и удаление элементов в массив

9.1 Добавление

#сформируем массив из 10 однозначных чисел
a = input().split()
a = list(map(int,a))
print(*a)
#добавим в массив число 
23
a.append(
23)
print(*a)

 

9.2 Вставка элемента массива в нужную позицию

#сформируем массив из 10 однозначных чисел
a = input().split()
a = list(map(int,a))
print(*a)
#вставим на место элемента с индексом 2 число 
23
a.
insert(2, 23)
print(*a)

 

9.3 Удаление элемента по индексу

#сформируем массив из 10 однозначных чисел
a = input().split()
a = list(map(int,a))
print(*a)
#удалим элемент с индексом 3
a.
pop(3)
print(*a)

 

9.4 Удаление элемента по значению

#сформируем массив из 10 однозначных чисел
a = input().split()
a = list(map(int,a))
print(*a)
#удалим первый элемент, значение которого равно 1. Если такого элемента в массиве нет, то возвращается исключение (сообщение об ошибке)
a.
remove(1)
print(*a)

 

Практическая работа.

1. Отработка навыков ввода и вывода одномерного массива.

2. Задачи

Дан массив целых чисел.

1. Найти сумму элементов массива.

2. Найти произведение элементов массива.

3. Найти количество элементов массива больших, чем первый элемент (элемент с индексом 0) .

4. Найти количество чётных и количество нечётных элементов массива, а также количество нулевых элементов.

5. Найти количество элементов массива, кратных своим индексам и вывести индексы таких элементов (кроме элемента с индексом 0).

6. Найти количество и сумму элементов массива, кратных 3, но не оканчивающихся на 6.

7. Найти количество соседних пар элементов массива, разность между которыми равна 1 по модулю.

8. Вывести индексы тех элементов массива, которые меньше своих индексов.

8. Вывести индексы элементов массива, если индекс меньше на 1 по модулю, чем сам элемент массива.

9. Найти сумму элементов массива, которые оканчиваются на 7 или 5.

10. Найти количество элементов массива, являющихся двузначными числами.

11. Найти количество трёхзначных элементов массива, являющихся перевёртышами.

12. Уменьшить каждый элемент массива на целую часть среднего арифметического первого и последнего элемента массива.

13. В массиве хранится температура каждого из 31 дня января. Известно, что температура в январе менялась от -24 до +2 градусов.

      Найти  количество дней, в которые была оттепель и среднюю температуру этих дней с точностью до сотых. (Оттепель: температура выше 0)

      Температуру каждого дня сгенерировать случайными числами.

14. Найти первый элемент массива, который равен или вывести сообщение, что такого элемента в массиве нет (вывести NO)

3. Задачи С5

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

§62, стр. 203-207

Отработать способы ввода и вывода одномерного массива.

Уметь решать задачи.

1. Выводить и вводить массив по одному в строке и все элементы массива в одной строке.

2. Формировать массив вводом данных по одному в троке и все элементы массива вводить в одной строке.

3. Уметь добавлять элементы в конец в массива.

4. Уметь вставлять новый элемент массива в нужную позицию

5. Уметь удалять элемент массива по индексу.

6. Уметь удалять элемент массива по значению.

7. Уметь формировать массив случайных чисел на заданном промежутке.

8. Уметь перебирать элементы массива по значениям и по индексам.

 

15.03.2024, пятница

Маршрутный лист Скачать

Рекурсия

Определение рекурсии.

Рекурсия - способ определения множества объектов через само это множество.

Пример 1. 1 - натуральное число, если n - натуральное число, то n + 1 - тоже натуральное число.

Рекурсивная функция - это функция, которая обращается многократно к самой себе для получения новых значений.

Для написания рекурсивной функции необходимо:

 1. Выяснить условие остановки вызова функции.

2. Рекуррентное соотношение (как очередное значение получить через предыдущие значение).

Пример 2. Написать рекурсивную функцию для вычисления факториала числа n. n - натуральное число

1. Условия остановки вызова функции: n == 0. Возврат значения: 1

2. Рекуррентное соотношение. (n - 1)! * n  (n! = 1*2*3* ... * (n - 1) * n)

рекурсивная процедура

def fact(n):
        if n == 1:
            return 1
        else:
            return n*fact(n - 1)
#основная программа
n = int(input())
print(fact(n))

 

Пример 3.

Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:

F(1) = 1                            Условие выхода из рекурсии

F(n) = F(n–1) * (n + 1)при n > 1  Рекуррентная формула

Чему равно значение функции F(5)? В ответе запишите только целое число.

Выполнить трассировкой алгоритма и написать рекурсивную процедуру.   

#рекурсивная процедура

def f(n):
        if n == 1:
                return 1
        else:
                return f(n - 1)*(n + 1)
#основная программа
n = int(input())
print(f(n))

 

Пример 4.

Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:

F(0) = 1, F(1) = 1

F(n) = F(n–1) + 2*F(n-2), при n > 1

Чему равно значение функции F(6)? В ответе запишите только целое число.

Выполнить трассировкой алгоритма и написать рекурсивную процедуру.

#рекурсивная процедура

def f(n):
        if n == 0 or n == 1:
                    return 1
        else:
                    return f(n - 1) + 2*f(n - 2)
#основная программа
n = int(input())
print(f(n))

Практическа работа

ЕГЭ-16 задания №№ 1, 10, 15, 19

 

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

§61

Написать программы с использованием рекурсивной процедуры, проверить ответ вручную трассировкой алгоритма

ЕГЭ-16, №№ 1 - 19 Решить 3 задания по выбору, исключая номера 1, 10, 15, 19. Записать решение и ответ в тетрадь

 

12.03.2024, вторник

Функции пользователя

Функции пользователя - это функции, которые создаёт сам программист, в отличие от стандартных функций, определённых в языке программирования.

Стандартные функции: int(), max(), min(), sum(), sin(), cos(), abs(), divmod() И другие.

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

Тело функции записывается с отступом.

Результат работы функции возвращается в программу служебным словом return <список возвращаемых результатов через запятую>.

В теле функции может быть использовано несколько слов return. После обращению к любому из них происходит выход из функции и возвращается результат.

Если после слова return ничего не указано, то просто происходит выход из функции без возвращения каких-либо результатов.

Вызов функции в основной программе происходит по имени функции и передаче её фактических параметров для обработки.

Результаты функции можно вывести или присвоить каким-то переменным. Число переменных, которые принимают результаты, должно быть не менее, чем количество возвращаемых результатовЕсли их всё же меньше, то переменной будет присвоено значение всех результатов в форме кортежа.

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

Элементы кортежа пронумерованы с 0. К элементу обращаются при помощи имени кортежа и индекса, который заключается в квадратные скобки.

Например, x[3] - обращение к элементу кортежа с индексом 3.

Задача 0

Вычислить сумму и произведение двух чисел с использованием функции.

def f(a,b):

        return a+b, a*b

 

x, y  = map(float, input().split())

print(f(x, y)) #результат суммы и произведения в виде кортежа

 

или так

def f(a,b):

        return a+b, a*b

 

x, y  = map(float, input().split())

answer = f(x, y)

print(answer) #результат суммы и произведения в виде кортежа

 

или так

def f(a,b):

        return a+b, a*b

 

x, y  = map(float, input().split())

summa, composition = f(x, y)

print(summa, composition ) результат суммы и произведения в виде двух чисел через пробел

 

Задача 1

Написать функцию, которая вычисляет среднее арифметическое трёх целых чисел, затем выводит сами числа и их среднее арифметическое.

def average(a,b,c):

            return (a + b + c)/3

 

x, y, z = map(int, input().split())

print(x, y, z, average(x, y, z)) #вывод результата: значения x, y, z, ср. арифметическое через пробел

 

или так

def average(a,b,c):

            return a, b, c, (a + b + c)/3

 

x, y, z = map(int, input().split())

print(average(x, y, z)) #вывод результата как кортежа из четырёх чисел

 

или так

def average(a,b,c):

            return a, b, c, (a + b + c)/3

 

x, y, z = map(int, input().split())

answer = average(x, y, z)

print(answer) #вывод результата как кортежа из четырёх чисел

 

Задача 2

Вычислить факториал числа.

def factorial(m):

        p = 1

        for i in range(1, m+1):

                    p *= i

        return p

 

n = int(input())

print(factorial(n))

 

Задача 3

Вычислить НОК двух чисел.

def nod(a,b):
        while a != b:
                if a > b:
                         a -= b
                else:
                         b -= a
        return a

def nok(a,b):
        return (a*b) / nod(a,b)

x, y = map(int, input().split())
print(int(nok(x, y)))

 

Практическая работа.

4. Дано три целых числа. Расположить числа в порядке невозрастания и неубывания.

   Оформить нахождение результата функцией именем za_az.

5. Написать функцию для определения является ли число простым.

6. Дано натуральное число. Напишите функцию, которая возвращает введённое число, его квадрат и куб через пробел в одной строке.

7. Дано целое число. Напишите функцию, которая определяет количество цифр в числе и их сумму.

8. Дано целое число. Напишите функцию, которая переворачивает трёхзначное число.

Примените данную функцию для получения перевёрнутых чисел, которые вводятся по одному с клавиатуры.

9. Напишите функцию, которая для целого трёхзначного числа определяет, является ли число перевёртышем.

Примените данную функцию для определения является ли трёхзначное число перевёртышем для чисел, вводимых с клавиатуры до тех пор, пока не будет введено число 1000.
10. Дано целое число. Определите чётность числа.

11. Дано целое число. Является ли число числом Фибоначчи? Если является, выведите номер числа, если не является, выведите NO.

12. Дано целое число. Найдите количество цифр в числе и определите чётность суммы цифр данного числа.

13. Дано трёхзначное число. Поменяёте местами крайние цифры, если цифра десятков не ноль, в противном случае вычеркните цифру десятков.

14*. Простое число называется гиперпростым, если любое число, получающееся из него откидыванием нескольких цифр, тоже является простым. Например, число 733 – гиперпростое, так как данное число, и числа 73 и 7 – простые.

    а) Напишите программу с использованием логической функции, которая определяет: верно ли, что переданное ей число – простое.

    б) Напишите программу с использованием логической функции, которая определяет: верно ли, что переданное ей число – простое и находит количество всех гиперпростых чисел из первых 10000 натуральных чисел.

 

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

§60, Вопросы и задания на стр. 187

Уметь использовать описание и вызов функции пользователя

Отработать все задания урока.

 

05.03.2024, вторник

1 урок

Контрольная работа. Программирование базовых алгоритмов

ЕГЭ-17:

2 урок

Процедуры

Процедура - это программа, которая является частью другой программы.

Процедура выполняет некоторые действия в основной программе.

Процедура может возвращать один или несколько результатов.

Данные, которые передаются в процедуру, называются фактическими параметрами.

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

Процедура описывается до точки вызова в любом месте программы.

Процедуры размещаются в начале программы.

Для использования процедуры, её вызывают из основной программы.

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

Процедура разбивает программу на части, каждая из которых является решением какой-то задачи (то есть, является подзадачей)

Локальные и глобальные переменные.

Локальные переменные доступны в пределах процедуры.

Глобальные переменные доступны как в основной программе, так и в процедурах, но если возникла изменить значение глобальной переменной в процедуре, необходимо в процедуре указать, что переменная глобальная. Например: global z, t 

Пример 1

Вывести на раз на экран текст; "Привет, мир!", используя процедуру hi.

процедура hi

def hi():

    print("Привет, мир!")

основная программа

hi()

 

Вывести 10 раз на экран текст; "Привет, мир!", используя процедуру hi.

# процедура hi
def hi():
    print("Привет, мир!")
# основная программа
for i in range(10):
      hi()
Пример 2

Найти количество цифр целого числа.

#процедура

def number(m):
        m = abs(m)
        k = 0

        if m == 0: k = 1
        while m > 0:
                k += 1
                m //= 10
        print(k)

#основная программа
n = int(input())
number(n)

 

# процедура, возвращающая значение с помощью глобальной переменной

def number(m):

        global k
        m = abs(m)
        if m == 0: k = 1
        while m > 0:
                k += 1
                m //= 10
#основная программа
n = int(input())
k = 0

number(n)

print(k)

 

Практическая работа.

Написать процедуры для решения задач.

1. Выполнения основных арифметических действий над двумя числамисложение, вычитание, умножение, деление.

2. Нахождения НОД двух целых чисел по алгоритму Евклида.

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

§59.Вопросы и задания на стр. 181

Задачи.

Написать процедуры:

1. Для решения квадратного уравнения ax2 + bx + c = 0, a ¹ 0
2. 
Найти большее и меньшее из трёцелых чисел. Для нахождения каждого из значений использовать свою процедуру.

3. Большее из трёх целых чисел увеличить на значение меньшего, а меньшее уменьшить на значение большего.

4Вывести все палиндромы трёхзначных чисел и их количество. Оформить решение  с использованием процедуры,

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

5. Написать процедуру, которая для четырёх введённых чисел, меняет местами крайние и внутренние числа.

6. Написать процедуру, которая решает линейное уравнение ax + b = 0.

7. Размеры таблиц задают две переменные: m - количество строк, n - количество столбцов.

    Получить таблицы, подобные образцам 1) - 6)

1)

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

2)

5 4 3 2 1

5 4 3 2 1

5 4 3 2 1

5 4 3 2 1

3)

1

2 2

1 1 1

2 2 2 2

1 1 1 1 1

4)

1 1 1 1 1 1

0 0 0 0 0

3 3 3 3

0 0 0

5 5

0

5)

5 1

4 4 2

3 3 3 3

2 2 2 2 4

1 1 1 1 1 5

6)

1 6 6 6 6 6 6

2 5 5 5 5 5

3 4 4 4 4

4 3 3 3

5 2 2

6 1

 

01.03.2024, пятница

Вложенные циклы

1. Определите, что будет напечатано в результате работы следующего фрагмента программы:

№ 1

   s = 0

   k = 1

   while k < 11:

       s = s + k

       k = k + 1

   print(s)

 

№ 2

s = 0

k = 0

while k < 30:

    k = k + 3

    s = s + k

print(s)

 

№ 3

s = 3

k = 1

while k < 25:

   s  = s + k

   k = k + 2

print(s)

 

№ 10

s =1

k =0

while k < 13:

    s = s + 2 * k

    k = k + 4

print(s+k)

 

2. Вложенные циклы

Цикл while

#задание а

i = 1
while i <= 4:                #начало внешнего цикла
        j = 1

        while j <= 10:      #начало внутреннего цикла
                print(i, end = " ")        
                j += 1
        i += 1
        print()

 

Цикл for

#задание а

for i in range(1,5):   #начало внешнего цикла
        for j in range(1,11):    #начало внутреннего цикла
                print(i, end = " ")
        print()

 

а)

1 1 1 1 1 1 1 1 1 1

2 2 2 2 2 2 2 2 2 2

3 3 3 3 3 3 3 3 3 3

4 4 4 4 4 4 4 4 4 4

б)

5 5 5 5 5

4 4 4 4 4

3 3 3 3 3

2 2 2 2 2

1 1 1 1 1

г)

1

2 2

3 3 3

4 4 4 4

5 5 5 5 5

д)

1 1 1 1 1 1

2 2 2 2 2

3 3 3 3

4 4 4

5 5

6

е)

5

4 4

3 3 3

2 2 2 2

1 1 1 1 1

ж)

6 6 6 6 6 6

5 5 5 5 5

4 4 4 4

3 3 3

2 2

1

Повторение

ЕГЭ-17: №№ 50-149, разбор заданий 50, 126

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

Подготовка к контрольной работе по теме: "Основы алгоритмизации и программирования. Программирование базовых структур алгоритмов".

§58, стр. 175 - 177

Записать программы в рабочей тетради.

з)

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

и)

5 4 3 2 1

5 4 3 2 1

5 4 3 2 1

5 4 3 2 1

к)

1

2 2

1 1 1

2 2 2 2

1 1 1 1 1

л)

1 1 1 1 1 1

0 0 0 0 0

3 3 3 3

0 0 0

5 5

0

м)

5 1

4 4 2

3 3 3 3

2 2 2 2 4

1 1 1 1 1 5

н)

1 6 6 6 6 6 6

2 5 5 5 5 5

3 4 4 4 4

4 3 3 3

5 2 2

6 1

Онлайн-тестирование Исполнение циклических алгоритмов

ЕГЭ-17: №№ 50-149, 2 задания из №№ 50-149, по одному из каждых 50

 

27.02.2024, вторник

Программирование циклических вычислительных процессов

1 урок

ЕГЭ-17: №№ 1-149, разбор заданий 48, 116

2 урок

Зачёт. Циклы

  1 - 48 C3 ЕГЭ-17
Вариант 1 12 30 46
Вариант 2 15 29 45
Вариант 3 17 28 44
Вариант 4 19 27 43
Вариант 5 21 26 42
Вариант 6 23 25 41
Вариант 7 25 24 40
Вариант 8 27 23 39
Вариант 9 29 22 38
Вариант 10 31 21 37
Вариант 11 33 20 36
Вариант 12 35 19 35
Вариант 13 37 18 34
Вариант 14 39 17 33
Вариант 15 41 16 32
Вариант 16 43 15 31
Вариант 17 45 14 30
Вариант 18 47 13 29
Вариант 19 46 12 28

 

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

На каждый урок оформить в тетради по 3 задачи разного уровня сложности (ориентироваться по цвету текста задачи)

 

20.02.2024, вторник

Программирование циклических вычислительных процессов

1 урок

Цикл for

Функция range(n1[[,n2],h])

Пример 1.

 for x in range(5):

            print(x, end = " ")

Результат:  0 1 2 3 4

 

Пример 2.

 for x in range(1, 5):

            print(x, end = " ")

Результат:  1 2 3 4

 

Пример 3.

 for x in range(0, 5, 2):

            print(x, end = " ")

Результат:  0 2 4

 

Пример 3.

 for x in range(5, 0, -1):

            print(x, end = " ")

Результат:  5 4 3 2 1

Пример 4.

Найти сумму чётных чисел первой сотни.

 

s = 0

for x in range(2, 101,2):

            s += x

print(s)

 

Пример 5.

Вывести квадраты натуральных чисел второго десятка в обратном порядке.

 

for x in range(20,10,-1):

        print(x**2, end = " ")

 

Самостоятельная работа.

12. Напишите программу, которая в последовательности натуральных чисел определяет максимальное число, оканчивающееся на 3. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, оканчивающееся на 3. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число – максимальное число, оканчивающееся на 3. Пример работы программы:
13. Напишите программу, которая в последовательности натуральных чисел определяет количество чисел, кратных 6 и оканчивающихся на 4. Программа получает на вход количество чисел в последовательности, а затем сами числа. Количество чисел не превышает 1000. Введённые числа по модулю не превышают 30 000. Программа должна вывести одно число: количество чисел, кратных 6 и оканчивающихся на 4.
Пример работы программы:
14Напишите программу, которая в последовательности целых чисел определяет количество двузначных чисел, кратных 8. Программа получает на вход целые числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность). Количество чисел не превышает 1000. Введённые числа по модулю не превышают 30 000. Программа должна вывести одно число: количество двузначных чисел, кратных 8.
Пример работы программы:

 

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

§58. Решение задач 15 и 16 записать в тетрадь

15. Напишите программу, которая в последовательности целых чисел определяет количество чисел, кратных 5 или 9. Программа получает на вход целые числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 – признак окончания ввода, не входит в последовательность). Количество чисел не превышает 1000. Введённые числа по модулю не превышают 30 000. Программа должна вывести одно число: количество чисел, кратных 5 или 9.
Пример работы программы:
16. Напишите программу, которая в последовательности натуральных чисел определяет минимальное число, оканчивающееся на 4. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, оканчивающееся на 4. Количество чисел не превышает 1000. Введённые числа не превышают 30 000. Программа должна вывести одно число – минимальное число, оканчивающееся на 4. Пример работы программы:

 

Практикум. Алгоритмизация и программирование циклических вычислительных процессов

Задачи

Часть 1

  1. Вывести на экран числа 1,3,5,7,…31

  2. Вывести на экран числа 2,4,6,8,…32

  3. Вывести на экран числа 40, 39, 38, … 1

  4. Вывести на экран числа 100, 90, 80, … 10

  5. Найти сумму чисел от 1 до 30

  6. Найти произведение чисел от 1 до 33

  7. Найти сумму модулей чисел от -5 до 5

  8. Получить кубы чисел второго десятка натуральных чисел, результаты вывести в одной строке через знак подчёркивания.

  9. Получить таблицу значений функции y = 5x2 - x3 +3 на отрезке [-5; 3] c шагом 0.5.

  10. Вычислить сумму чисел x1 + x2 + x3 + ... + xn

  11. Составить таблицу перевода байтов в биты на отрезке [1;20]. Формат вывода: 1 байт = 8 бит

  12. Получить таблицу умножения на заданное число и вывести ее в перевёрнутой форме. Формат первой строки для таблицы на 6:  10 * 6 = 60

  13. Дано натуральное число не превышающее 9. Вывести первые 10 степеней данного числа. Формат вывода для числа 3: 3 ** 1 = 3

  14. Получить последовательность первых десяти чётных положительных чисел, начиная с некоторого числа n. Значение может быть как чётным, так и нечётным.

  15. Найти сумму чётных чисел на отрезке [a,b]. Значения а и могут быть как чётными, так и нечётными.

  16. Выводить на экран случайные числа [0,10] до тех пор, пока не будет получено 5

  17. Выводить на экран случайные числа [0,10] до тех пор, пока их сумма не превысит 50

  18. Выводить на экран случайные числа [0,10] до тех пор, пока их сумма не превысит 50 или их количество не превысит 10

  19. Выводить на экран случайные числа [0,10] до тех пор, пока количество нулей не превысит 3 или количество всех — 30

  20. Выводить случайные числа, пока сумма четных не окажется равной сумме нечетных или количество не превысит 15

  21. Сформировать 25 случайных трёхзначных чисел. Сколько из данных чисел являются такими, что их цифры являются числами Пифагора?

  22. Сформировать 10 случайных трёхзначных чисел  получить из каждого числа двузначное вычёркиванием средней цифры. Формат вывода: Трёхзначное число 925 Двузначное число 95.

  23. Дано целое число N и набор из N ненулевых целых чисел. Найти сумму и количество чисел, не кратных 5.

  24. Дано целое число N и набор из N ненулевых целых чисел. Сравнить количество отрицательных и положительных чисел.

  25. Даны целые числа K, N и набор из N целых чисел. Если в наборе присутствует число, меньшее K, то вывести True; в противном случае вывести False. 

  26. Дан набор ненулевых целых чисел, признак его завершения — число 0. Вывести количество чисел в наборе. 

  27.  Дан набор ненулевых целых чисел. признак его завершения — число 0. Вывести сумму всех положительных четных чисел из данного набора. Если требуемые числа в наборе отсутствуют, то вывести 0. 

  28.  Дано целое число K и набор ненулевых целых чисел, признак его завершения — число 0. Вывести количество чисел в наборе, меньших K. 

  29.  Дано целое число K и набор ненулевых целых чисел, признак его завершения — число 0. Вывести номер первого числа в наборе, большего K. Если таких чисел в наборе нет, то вывести 0. 

  30.  Дано целое число K и набор ненулевых целых чисел, признак его завершения — число 0. Вывести номер последнего числа в наборе, меньшего K. Если таких чисел в наборе нет, то вывести 0. 

  31.  Дано целое число K и набор ненулевых целых чисел, признак его завершения — число 0. Вывести номер первого числа в наборе, меньшего K. Если таких чисел в наборе нет, то вывести 0.

  32. Вывести все палиндромы трёхзначных чисел и их количество.

  33. Вывести все двузначные числа, у которых цифра десятков не больше цифры единиц.

  34. С клавиатуры вводится целых трёхзначных чисел. Найти количество чисел, которые оканчиваются на 3, но перед этой цифрой нет цифры 7.

  35.  С клавиатуры вводится целых трёхзначных чисел. Найти количество чисел у которых нет повторяющихся цифр.

  36.  С клавиатуры вводится целых трёхзначных чисел. Найти количество чисел у которых цифры от старшей к младшей возрастают.

  37. С клавиатуры вводится целых трёхзначных чисел. Найти количество чисел у которых цифры от старшей к младшей не возрастают.

  38. С клавиатуры вводится целых трёхзначных чисел. Найти количество чисел у которых ровно 2 одинаковые цифры.

  39. Дано целое число N и набор из N целых чисел. Вывести номера тех чисел в наборе, которые меньше своего левого соседа, и количество K таких чисел. 

  40. Дано целое число N и набор из N целых чисел. Вывести номера тех чисел в наборе, которые больше своего правого соседа, и количество K таких чисел. 

  41. Дано целое число N и набор из N вещественных чисел. Проверить, образует ли данный набор возрастающую последовательность. Если образует, то вывести True, если нет — вывести False. 

  42. Дано целое число N и набор из N вещественных чисел. Если данный набор образует убывающую последовательность, то вывести 0; в противном случае вывести номер первого числа, нарушающего закономерность. 

  43. Дано целое число N и набор из N целых чисел, содержащий  ровно два нуля. Вывести сумму чисел из данного набора, расположенных между нулями (если нули идут подряд, то вывести 0). 

  44. Дано целое число N и набор из N целых чисел, содержащий по крайней мере два нуля. Вывести сумму чисел из данного набора, расположенных между последними двумя нулями (если последние нули идут подряд, то вывести 0).

  45. Дано целое число N и набор из N целых чисел, содержащий по крайней мере два нуля. Вывести сумму чисел из данного набора, расположенных между первыми двумя нулями (если первые нули идут подряд, то вывести 0).

  46. Проверить, является ли число а степенью числа b.

  47. Перевести число из системы счисления с основанием q в систему счисления с основанием 10.  a) q = 2..9; б) q = 2..16

  48. 100 абитуриентов сдавали по три экзамена. Максимальный балл за каждый экзамен - 10 баллов. Найти максимальное и минимальное количество баллов, которые получили абитуриенты за три экзамена.

Часть 2

Задачи С3

Часть 3

ЕГЭ-17: №№ 1-149

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

На каждый урок оформить в тетради по 3 задачи разного уровня сложности (ориентироваться по цвету текста задачи)

 

16.02.2024, пятница

Циклы

Цикл с предусловием, цикл с постусловием, цикл с параметрами.

Практическая работа. Разработка циклических алгоритмов.

Задачи типа С3

Программирование циклических вычислительных процессов

Цикл while предусловием

while <логическое выражение>:

            <тело цикла>

 

Цикл while c постусловием

while True:

            <тело цикла>

            if <логическое выражение>:

                        break

Практическая работа.

Задача 1

Найти квадраты натуральных чисел второго десятка.

Результат вывести в одной строке.

цикл с предусловием

x = 11

while x <= 20:

        print(x ** 2, end = " ")

        x += 1

 

цикл с постусловием

x = 11

while True:

        print(x ** 2, end = " ")

        x += 1

        if x == 21: break

 

Примечание.

print("{:2d} ^ 2 = {:3d}".format(x, x ** 2))  #форматный вывод, квадраты чисел выводятся по одному в строке с пояснением, например: 11 ^ 2 = 121

 

Задача 2. С клавиатуры вводится n целых чисел.

Найти сумму  чётных и произведение нечётных чисел. Число 0 отнести к чётным числам.

Задача 3. С клавиатуры вводится n целых чисел.

Найти количество отрицательных, положительных и равных нулю чисел.

Задача 4.  Выполнить табулирование функции y = 3x2 - 2x +1 на [- 5; 5] с шагом 0.5.

Задача 5. Получить таблицу умножения на заданное число. При выводе результата использовать форматный вывод.

Задача 6. Вычислить n! (n! = 1*2* ... *n).

Задача 7. Найти количество цифр натурального числа.

Задача 8. Найти количество чётных, нечётных и равных нулю цифр натурального числа.

Задача 9. Найти НОД двух целых чисел по алгоритму Евклида.

Задачи С3

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

§57

Разработать пограмму для решения задачи. 2 задачи по выбору. Задачи типа С3

Задача 10. Мишень.

Мишенью является круг с центром в начале координат, радиус круга равен r, который задаётся случайным целым числом из диапазона [0;100].

Играют пользователь и компьютер, поочерёдно производя "выстрелы". Пользователь вводит координаты произвольно, а компьютер - случайным образом выбирает координаты из промежутка [0;100]. Производится не более 100 выстрелов суммарно пользователя и компьютера. Определить победителя.

Вывести протокол игры для анализа.

Задача 11.

Дано два натуральных числа одинаковой разрядности. Выяснить, в каком числе раньше встречается нечётная цифра или вывести сообщение о том, что впервые нечётные цифры встречаются на одинаковых позициях или отсутствуют вовсе. Порядок цифр следует слева направо.

 

 

02-06.02.2024, пятница, вторник

Практическая работа. Ветвления

1. Дано три целых числа. Сколько из них являются чётными числами?

2. Даны два числа. Одно число вводится с клавиатуры, другое - случайное. Сравнить числа.

3. Найти большее из трёх различных чисел.

4. В трёхзначном числе поменять местами цифры десятков и сотен, если цифра десятков - чётное число, в противном случае поменять местами цифры сотен и единиц.

5. Дано четырёхзначное число. Найти количество нечётных цифр в нём.

6. Разработать программу для решения уравнения ax + b =0.

7. Дано два различных целых числа. Большее из них увеличить на 1, меньшее - уменьшить на 1.

8. Дано число. Принадлежит ли оно [a;b]?

9. По номеру дня недели вывести название дня. Если такого дня не обнаружено, вывести NO.

10. По названию месяца вывести название времени года.

11. В строке через пробел вводятся координаты точки плоскости.

      Вывести сообщение о расположении точки относительно прямой y = 3x - 1,5выше, ниже, на прямой.

12.Даны 3 вещественных числа. Существует ли треугольник со сторонами a, b, c?

13. Принадлежит ли точка A(x,y) кругу, ограниченному окружностью  (x - a)2 + (y - b)2 = 49?

14. Дано двузначное натуральное число. Верно ли, что квадрат суммы его цифр больше самого числа? Вывести YES или NO.

15. Даны коэффициенты прямой y = kx + b и координаты двух точек: A(x1, y1) и B(x2,y2) . Верно ли, что точки лежат по разные стороны прямой?

16. Верно ли точка A(x,y) не принадлежит кругу, ограниченному окружностью  (x - a)2 + (y - b)2 = 144?

17. Даны координаты центов и радиусы двух окружностей. Пересекаются ли они? Пересекающимися будем называть окружности, имеющие хотя бы одну общую точку.

18. Дано трёхзначное натуральное число. Верно ли, что удалив одну из его цифру десятков, можно получить число, делящееся на 3?

19. Дана дата в виде: день, месяц. Вывести дату следующего дня. Считать, что год не високосный.

20. Известна сторона квадрата и радиус круга. Поместится ли круг в квадрате?

21. Известна сторона квадрата и радиус круга. Поместится ли квадрат в круге?

22. Разработать программу для решения уравнения ax2 + bx + c = 0, a<>0.

Задачи типа С2

 

21. Задачи на составное условие.

Условие для всех задач. Вводятся координаты некоторой точки A(x,y).

                                        Выяснить, принадлежит ли точка фигуре, ограниченной линиями.

(задачи с графиками): №№ 11, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 24, 25, 26, 27, 28, 29, 30

                        31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43

Практическая работа. Зачёт

  1 - 21 C2 Срставное условие
Вариант 1 3 30 37
Вариант 2 4 29 36
Вариант 3 5 28 35
Вариант 4 6 27 34
Вариант 5 7 26 33
Вариант 6 8 25 31
Вариант 7 9 24 30
Вариант 8 10 23 29
Вариант 9 11 22 28
Вариант 10 12 21 26
Вариант 11 13 20 25
Вариант 12 14 19 24
Вариант 13 15 18 23
Вариант 14 16 17 21
Вариант 15 18 16 20
Вариант 16 22 15 19
Вариант 17 20 14 18
Вариант 18 21 13 17
Вариант 19 2 12 16

 

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

Уметь решать все задачи. Решить 5 задач по выбору. Исходный текст программ записать в тетрадь.

 

 

30.01.2024, вторник

1 урок

Практическая работа. Программирование линейных алгоритмов

0. Вычислить значение выражения с точностью до 4 знаков после запятой.

    2,3sin 2,32 - 0.5tg30º -  2,343·10-12 +e3,4 + cos243º - 75 + log317,23

1. Даны переменные a и b. Значение а заметить значением и наоборот.

2. Даны три стороны треугольника. Найти периметр и площадь треугольника.

3. Дано два трёхзначных числа. Найти сумму цифр старших разрядов и произведение цифр младших разрядов трёхзначных чисел.

 Дано трёхзначное число.

        4Найти цифры числа. Вывести цифры с пояснениями. Например: число 349. Результат: s = 3 d = 4 e = 9)

        5. Поменять местами крайние цифры.

        6. Получить перевёртыш числа.

        7. Получить новое число, соединив результаты квадратов цифр исходного трёхзначного числа.

            (Например. Дано: 465. Результат: 163625)

        8. Удалить среднюю цифру числа.

Получить случайное четырёхзначное число. В первой строке вывести полученное число.

        9. Найти сумму цифр числа.

        10. Переставить местами первую и последнюю пары цифр числа. Например, для числа 3645 результатом будет 4536.

        11. Поменять местами первую и последнюю цифры числа, средние оставить без изменений. Например, для числа 3547 результатом будет 7543.

        12. Получить перевёртыш числа. Для числа 2941 результатом будет число 1492

13.  Вычислите значение функции F(x,y) = -3y3 + sin(2x/6) с точностью до 2 знаков после запятой. x, y - вещественные числа.

14. Дано два целых трёхзначных числа. Поменять местами соответственные последние цифры чисел. Например, для чисел 456 и 304 результатом будут числа 454 и 306.

15. Дан квадрат со стороной a. Найти радиус равновеликого ему круга. (Равновеликие фигуры имеют одинаковые площади)

16. Дано трехзначное число из отрезка [-555; -333]. Найти сумму цифр числа.

В трёхзначном числе:

        17. найти сумму квадратов цифр числа;

        18. найти сумму цифр десятков и единиц, а также куб цифры сотен;

        19. получить шестизначное число, повторив каждую цифру исходного числа дважды; (Дано: 345. Результат: 334455)

        20. поменять местами цифры сотен и единиц;

        21. вычеркнуть из числа цифру десятков; (Дано: 386. Результат: 36)

        22. вычеркнуть из числа цифру сотен; (Дано: 123. Результат: 23)

        23. вычеркнуть из числа цифру единиц; (Дано: 835. Результат: 83)

24. В четырёхзначном числе вычеркнуть цифры сотен и единиц. (Дано: 4863. Результат: 46)

 

Самостоятельная работа

Задание 1

Вычислить значение выражения.

Вариант 1, 5, 9, 13, 17 Результат округлить до 3 знаков после запятой.

Вариант 2, 6, 10, 14, 18 Результат округлить до 6 знаков после запятой.

Вариант 3, 7, 11, 15, 19 Результат округлить до 2 знаков после запятой.

Вариант 4, 8, 12, 16 Результат округлить до 5 знаков после запятой.

Файл Фамилия_1_номер варианта.py (Иванов_1_1.py)

 

Задание 2

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

Разработать программу для решения задачи.

Записать комментарий в каждой строке программы.

Вначале программы комментарием записать условие задачи.

Файл Фамилия_2_номер варианта.py

 

Задание 3

С1

Разработать программу для решения задачи.

Записать комментарий в каждой строке программы

Вначале программы комментарием записать условие задачи.

Файл Фамилия_3_номер варианта.py

 

2 урок

Ветвления

Знаки отношений: >, <, >=, <=, ==, !=

Логические операции: not, and, or

 

Полная форма ветвления

if <логич. выражение>:

            <значение если истина>

else:

            <значение если ложь>

 

Неполная форма

if <логич. выражение>:

            <значение если истина>

 

Каскадное ветвление

if <логич. выражение 1>:

    <значение если истинно логич. выражение 1>

elif  <логич. выражение 2>:

    <значение если истинно логич. выражение 2>

    . . .

elif  <логич. выражение n>:

    <значение если истинно логич. выражение n>

else:

    <значение если не выполнилось ни одно из логических выражений 1 .. n>

 

Задача. Получить квадрат числа, если оно чётное, иначе получить куб числа.

 

a = int(input())

 

пример 1

if a % 2 == 0:

        print(a**2) 

else:

        print(a**3)

 

пример 2

if a % 2 == 0:

        print(a**2) 

if a % 2 != 0:

        print(a**3)

 

пример 3

if a % 2 == 0: print(a**2)

else: print(a**3)

 

пример 4

print(a**2) if a % 2 == 0 else print(a**3)

 

 

Практическая работа

1. Дано три целых числа. Сколько из них являются чётными числами?

2. Даны два числа. Одно число вводится с клавиатуры, другое - случайное. Сравнить числа.

3. Найти большее из трёх различных чисел.

4. В трёхзначном числе поменять местами цифры десятков и сотен, если цифра десятков - чётное число, в противном случае поменять местами цифры сотен и единиц.

5. Дано четырёхзначное число. Найти количество нечётных цифр в нём.

6. Разработать программы для решения уравнений: a) ax + b =0; б) ax2 + bx + c = 0, a<>0.

7. Дано два различных целых числа. Большее из них увеличить на 1, меньшее - уменьшить на 1.

8. Дано число. Принадлежит ли оно [a;b]?

9. По номеру дня недели вывести название дня. Если такого дня не обнаружено, вывести NO.

10. По названию месяца вывести название времени года.

11. В строке через пробел вводятся координаты точки плоскости.

      Вывести сообщение о расположении точки относительно прямой y = 3x - 1,5выше, ниже, на прямой.

12.Даны 3 вещественных числа. Существует ли треугольник со сторонами a, b, c?

13. Принадлежит ли точка A(x,y) кругу, ограниченному окружностью  (x - a)2 + (y - b)2 = 49?

14. Дано двузначное натуральное число. Верно ли, что квадрат суммы его цифр больше самого числа? Вывести YES или NO.

15. Даны коэффициенты прямой y = kx + b и координаты двух точек. Верно ли, что точки лежат по разные стороны прямой?

16. Даны координаты центов и радиусы двух окружностей. Пересекаются ли они? Пересекающимися будем называть окружности, имеющие хотя бы одну общую точку.

17. Дано трёхзначное натуральное число. Верно ли, что удалив одну из его цифру десятков, можно получить число, делящееся на 3?

18. Дана дата в виде: день, месяц. Вывести дату следующего дня. Считать, что год не високосный.

19. Известна сторона квадрата и радиус круга.

      а) Поместится ли круг в квадрате?

      б) Поместится ли квадрат в круге?

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

Уметь решать все задачи. Решить 5 задач по выбору. Исходный текст программ записать в тетрадь.

 

26.01.2024, пятница

Вычисление значений математических выражений

Программирование линейных алгоритмов

Форматный вывод.

>>>a, b = 23, 2.234

>>>a, b

(23, 2.234)

 

>>>print("Ответ: a = {:3d}, b = {:3.2f}".format(a, b))

Ответ: a = 23, b = 2.23

 

>>>print("Ответ: a = {:5d}, b = {:7.3e}".format(a, b))

Ответ: a = 23, b = 2.234e+00

 

>>>print("{:7.4g}".format(123.2501))

 123.2

Операции // (целая часть од деления одного числа на другое) и % (остаток от деления одного числа на другое)

Стандартные математические функции.

abs(x) - модуль числа

int(a) - преобразование к целому типу

round(x) - округление

bin(a) - перевод числа в двоичную систему счисления

oct(a) - перевод числа в восьмеричную систему счисления

hex(a) - перевод числа в шестнадцатеричную систему счисления

Модуль math.

import math

math.pi      — число «пи»

math.sqrt(x) — квадратный корень

math.sin(x)  — синус угла, заданного в радианах

math.cos(x)  — косинус угла, заданного в радианах

math.exp(x)  — экспонента ех

math.log(x)   — натуральный логарифм

math.log(a,b) - логарифм от a по основанию b

math.floor(x) — округление «вниз»

math.ceil(x)  — округление «вверх»

 

from math import *

pi      — число «пи»

sqrt(x) — квадратный корень

sin(x)  — синус угла, заданного в радианах

cos(x)  — косинус угла, заданного в радианах

exp(x)  — экспонента еx , е= 2.718281828459045

log(x)   — натуральный логарифм

log(a,b) - логарифм от a по основанию b

floor(x) — округление «вниз»

ceil(x)  — округление «вверх»

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

Подключение модуля случайных чисел

from random import *

Целые случайные числа на [a;b]

>>>randint(5,10)

Вещественные случайные числа на [0;1)

>>>random()

Вещественные случайные числа на [a;b]

>>>uniform(2.5, 4.8)

Практическая работа.

Образцы

""" Задание 1
Найти сумму трёх случайных двузначных целых чисел. """

from random import # подключение модуля random
a, b, c = randint(10,99), randint(10,99), randint(10,99) # присвваивание переменным значений случайных двузначных чисел
print(a, b, c) #вывод трёх случайных двузначных чисел
print(a,'+', b,'+', c, '=', a + b + c , "\n") #вывод результата с переводом курсора на новую строку

""" Задание 2
В трёхзначном целом числе, вводимом с клавиатуры, найти произведение цифр числа."""

x = int(input('Введите трёхзначное число > ')) #ввод трёхзначного числа
x = abs(x) #вычисление модуля числа x
s = x // 100 #нахождение цифры сотен
d = x //10 % 10 #нахождение цифры десятков
e = x % 10 #нахождение цифры единиц
print('Произведение цифр числа ', x, 'равно', s*d*e) #вывод результата

 

1. Вычисление значений сложных математических выражений в интерактивном режиме.

    2,3sin 2,32 - 0.5tg30º -  2,343·10-12 +e3,4 + cos243º+275

a) найти целую часть выраженияб) вывести результат с точностью до 3 цифр после запятой.

2. Ввести с клавиатуры три целых числа, найти их сумму, произведение и среднее арифметическое.

Пример:

Введите три целых числа:

5 7 8

5+7+8=20

5*7*8=280

(5+7+8)/3=6.667

3. Ввести с клавиатуры координаты двух точек (A и B) на плоскости (вещественные числа).

Вычислить длину отрезка AB.

Пример:

Введите координаты точки A:

5.5 3.5

Введите координаты точки B:

1.5 2

Длина отрезка AB = 4.272

4. Получить случайное трехзначное число и вывести через запятую его отдельные цифры.

Пример:

Получено число 423.

Его цифры 4, 2, 3.

Сумма цифр 4 + 2 + 3 = 9

Произведение цифр  4*2*3 = 24

 

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

§55

Задачи С1

 

 

23.01.2024, вторник

1 урок

Зачёт. Алгоритмы. Разработка и исполнение алгоритмов

  C5 C6 ЕГЭ-5 ЕГЭ-5 ЕГЭ-5
Вариант 1 10 10 3 28 50
Вариант 2 11 11 5 29 51
Вариант 3 12 12 6 30 52
Вариант 4 13 13 7 32 53
Вариант 5 14 14 8 33 54
Вариант 6 15 15 9 34 55
Вариант 7 17 17 10 36 56
Вариант 8 18 18 11 38 57
Вариант 9 19 19 12 39 59
Вариант 10 20 20 13 40 61
Вариант 11 22 22 15 41 62
Вариант 12 23 23 16 42 63
Вариант 13 24 24 17 43 64
Вариант 14 25 25 18 44 65
Вариант 15 26 26 19 45 66
Вариант 16 27 27 20 46 67
Вариант 17 28 28 21 47 68
Вариант 18 29 29 22 48 69
Вариант 19 30 30 23 49 72

 

2 урок

Введение в язык программирования Python3

Python - интерпретируемый язык высокого уровня, реализующий процедурное и объектно-ориентрованное программирование.

Режимы работы:

    - интерактивный;

    - программный.

Команды Python: операторы, функции.

Программа на Python.

Пустая программа.

Комментарии в программе.

Функция print.

Первая программа

print("Привет, мир!")

Практическая работа. Знакомство со средой программирования Python3

Тестирование первой программы: a) в интерактивном режиме; б) в программном режиме

 

Переменные. Основные типы данных. Функции ввода, вывода, оператор присваивания

Практическая работа. Функции print(), input(), оператор присваивания.

Переменные - величины, значения которых можно изменять в процессе выполнения программы.

    При обозначении переменных используется латиница, сочетание латинских букв с цифрами, некоторыми знаками: _, - и др.

    Переменная принимает тип в зависимости от присвоенного значения.

    Тип одной и той же переменной может меняться в процессе выполнения программы.

    Для присваивания значения переменной используют оператор = (Присвоить)

    Имя переменной чувствительно к регистру. и f - это различные переменные.

Типы переменных в Python (функции int, float, bool, str определяют/изменяют тип переменной):

    int(x) - целый тип;

    float(x) - вещественный тип;

    bool(x) - логический тип (Значения логического типа: True, False);

    str(x) - строковый (символьный) тип.

    Функция type(x) определяет класс типа.

Простейшие арифметические выражения и операции

Полная форма

Сокращённая запись

a = a + b

a += b

a = a - b

a -= b

a = a * b

a *= b

a = a/b

a /= b

a = a**b

a **=b

a = a // b a //= b
a = a % b a %= b

Выполнить задания в интерактивном режиме.

Открыть консоль. Shit + F4

Загрузить интерпретатор Python. python3

>>>   

Примеры.

    1. a = 6    присваивание переменной значения 6

       a = a + 3  увеличение значения а на 3

       a    выведет 9

       a += 4    увеличение значения а на 4

       a  выведет 13

    2. a = 3

        b = 5

        a **= b  вычисляет а в степени b, результат присваивает a

        a  выведет 243

Вывод данных. Функция print().

    print() - вывод результата. Формат:  print(<операнды>)

    Примеры.  

    1. print("Hello, World!")  выведет текст Hello, World!курсор переводится в следующую строку

    2. print(2, 3, 5)        # выведет 2 3 5

    3. print(2, 3, 5, sep = "_")  выведет 2_3_5   Функция sep указывает как разделить список

    4. print(2, 3, "\n", 5)  # 2 3 возвращает  2 3 в одной строке, а 5 - в следующей строке. "\n" - переход на следующую строку

    5. print(2); print(3); print(5) выведет каждое число в новой строке (Запись нескольких функций в одной строке разделяется точкой с запятой)

    6. print(2, end = " "); print(3, end = " "); print(5) выведет числа через пробел. end = " " - завершить вывод пробелом (в кавычках можно указать любой другой символ)

    7. a, b = 9, 17    # присваивание переменным и  значений целых чисел 9 и 17 соответственно

        print(a + b)    возвращение суммы чисел. Результат:  26

    8. print("a =", a, "b =", b)  вывод значений переменных с их именами

        print(a, "+", b, "=", a + b)  вывод   9 + 17 = 26

Ввод данных. Функция input().

    * Для ввода данных можно использовать присваивание.

        a = 72  # значению a присвоено значение 72

    * Функция input() всегда вводит строку.

    input() ввод данных. Формат: <переменная> = input(<строка>)

    Примеры.

    1. >>>a = input("Введите значение a >") ввод строки

        >>>a   

        вывод введённой строки

    2. >>>b = input()   ввод строки

        >>>b*3   

        повторение значения три раза

    3. >>>b = input()   ввод строки

       >>> b = int(b)  преобразование строки в число

        >>>b*3      

        вывод произведения введённого значения на 3

    4. >>>a, b = input().split() ввод значений двух строк через пробел

        >>>a

        вывод значения строки а

        >>>b

       вывод значения строки b

    5. >>>a, b = input().split() ввод значений двух строк через пробел

        >>>a =int(a); b = int(b)  преобразование введённых значений строк к целым числам

        >>>a*b

        вывод произведения чисел

    6. >>>a, b = map(int, input().split()) ввод значений двух целочисленных переменных через пробел

        >>>a*b

        вывод произведения значений и b

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

§54. Отработка практических навыков в использовании оператора присваивания и функций print() и input()

 

 

19.01.2024, пятница

Построение алгоритмов для обработки одномерных и двумерных  массивов

Задачи (С5, С6)

Исполнение алгоритмов

Разбор заданий №№ 2, 12, 31, 37, 60

2. Для составления цепочек разрешается использовать бусины 5 типов, обозначаемых буквами  А, Б, В, Е, И. Каждая цепочка должна состоять из трех бусин, при этом должны соблюдаться следующие правила:

а) на первом месте стоит одна из букв: А, Е, И,

б) после гласной буквы в цепочке не может снова идти гласная, а после согласной – согласная,

в) последней буквой не может быть А.

Какая из цепочек построена по этим правилам?

1)АИБ                     2) ЕВА                         3) БИВ                        4) ИБИ

Решение.

3) БИВ не подходит по правилу а

1)АИБ не подходит по правилу б

2) ЕВА не походит по правилу в

Ответ: 4

12.  Кассир забыл пароль к сейфу, но помнил алгоритм его получения из строки «AYY1YABC55»: если последовательно удалить из строки цепочки символов «YY» и «ABC», а затем поменять местами символы A и Y, то полученная последовательность и будет паролем. Определите пароль:

1) A1Y55                 2) A155                       3) A55Y1                    4) Y1A55

 

Решение.

Дана цепочка AYY1YABC55

Удалим из цепочки символов «YY» и «ABC», получим A1Y55

В цепочке A1Y55 поменяем местами А и Y. Получим Y1A55

Ответ: 4

31.  Предлагается некоторая операция над двумя произвольными трехзначными десятичными числами:

1)      Записывается результат сложения старших разрядов этих чисел.

2)       К нему дописывается результат сложения средних разрядов по такому правилу: если он меньше первой суммы, то полученное число приписывается к первому слева, иначе – справа.

3)      Итоговое число получают приписыванием справа к числу, полученному после второго шага, суммы значений младших разрядов исходных чисел.

Какое из перечисленных чисел могло быть построено по этому правилу?

1) 141310               2) 102113                         3) 101421                   4) 101413

Решение.

Заметим, что складываются по 2 цифры. Следовательно, их сумма не может быть больше 18.

 2) 102113 и  3) 101421 не подходит, так как имеется наличие суммы в 21, чего быть не может.

1) 141310   не подходит, т.к. если 14 - сумма средних разрядов, то она должна быть записана после 13, а если 10 - сумма средних разрядов, то она должна быть записана перед 13.

Ответ: 4

37.  Коля и Саша играют в игру с числами. Коля записывает четырехзначное десятичное число, в котором нет нечетных цифр, т.е. цифр 1, 3, 5, 7, 9. Саша строит из него новое число по следующим правилам.

a.       Вычисляются два числа – сумма крайних разрядов Колиного числа и сумма средних разрядов Колиного числа.

b.      Полученные два числа записываются друг за другом в порядке убывания (без разделителей).

Пример. Колино число: 2864. Поразрядные суммы: 6, 14. Сашин результат: 146.

Определите, какое из предложенных чисел может получиться у Саши при каком-то Колином числе.  

1) 112                      2) 121                                3) 124                          4) 222

Решение.

Заметим, что нечётных цифр нет в исходном числе, следовательно, сумма двух чётных цифр всегда чётна и не больше 16, т.к. самая большая нечётная цифра  - это 8.

Из следует, что в 1) 112 можно рассматривать суммы 11 и 2, но 11 нечётно, тогда 1) 112

Из следует, что в 2) 121 можно рассматривать суммы 12 и 1, но 1 нечётно, тогда 2) 121

Из следует, что в 4) 222 можно рассматривать суммы 22 и 2, но 22 больше 16, тогда 4) 222

Ответ: 3

60.  Автомат получает на вход четырёхзначное число. По этому числу строится новое число по следующим правилам.

1. Складываются первая и вторая, а также третья и четвёртая цифры исходного числа.

2. Полученные два числа записываются друг за другом в порядке возрастания (без разделителей).

Пример. Исходное число: 3165. Суммы: 3 + 1 = 4; 6 + 5 = 11. Результат: 411.

Укажите минимальное число, в результате обработки которого, автомат выдаст число 79.

Решение.

7 = 1 + 6, 9 = 0 + 9

Минимальное число будет тогда, когда в старшем разряде будет минимальная цифра.

Следовательно 7 - это сумма первых двух цифр, а 9 - сумма последних двух цифр четырёхзначного числа, тогда искомое число 1609

Ответ: 1609

 

ЕГЭ-5  Решение с объяснением №№ 4, 25, 35, 58, 71

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

Разработать блок-схемы алгоритмов. По 2 задачи по выбору Задачи (С5, С6)

ЕГЭ-5 №№ 1-83. Уметь решать все задачи

 

09/12.01.2024, вторник, пятница

Построение алгоритмов базовых структур

Практическая работа. Разработать блок-схемы алгоритмов для решения задач.

1. Материал в учебнике на стр. 126 - 127

Задачи (С1, С2, С3)

2. Образцы решения задач на примере задач С1, С2, С3 - № 21

3. Самостоятельная работа. Задания по вариантам.

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

Разработать блок-схемы алгоритмов, по одной из каждого типа

Задачи (С1, С2, С3)

 

29.12.2023, пятница

Этапы решения задач на компьютере

Презентации  1  2

Видеоролик 1

Видеоролик 2

Постановка задачи.

    Данные и величины.

    Постоянные и переменные величины.

    Входные, выходные, промежуточные данные.

    Основные характеристики величины.

Формализация.

Построение алгоритма.

    Понятие алгоритма.

    Свойства алгоритма.

        Понятность.

        Дискретность.

        Детерминированность.

        Результативность.

        Массовость.

    Базовые структуры алгоритмов.

        Линейные.

        Разветвляющиеся. (Виды ветвлений)

        Циклические (Виды циклов).

    Способы записи алгоритмов.

        Словесный - на естественном языке.

        Графический.

        На формальном языке.

    Запись базовых структур алгоритмов в виде блок-схемы.

Разработка (составление, написание) программы.

Тестирование и отладка программы.

Анализ полученных результатов.

Документирование программы.

Эксплуатация программы.

 

 

 

12.01.2024

Принципы устройства компьютеров

Магистрально-модульная организация компьютера

Процессор

Память

Процессор и память

Устройства ввода и вывода

Системное программное обеспечение

Файловая система. Маски для выбора файлов (ЕГЭ)

Программное обеспечение

 

Профессия "Оператор ЭВ и ВМ"

Инструкция по ОТ

Стандарт

 

19-26.01.2024

Командный режим операционной системы