Инфоурок Информатика Научные работыОптимизационные алгоритмы в языке программирования Python в решении задач компьютерного ЕГЭ по информатике

Оптимизационные алгоритмы в языке программирования Python в решении задач компьютерного ЕГЭ по информатике

Скачать материал

                                                                                                                                                                                                                                                                                                                          Комитет по образованию Администрации Поспелихинского района

Алтайского края

МБОУ «Поспелихинская СОШ№1»

 

 

Оптимизационные алгоритмы в языке программирования Python в решении задач компьютерного ЕГЭ по информатике

 

 

Автор: Кусточкин Александр Валерьевич,

 учитель информатики

МБОУ «Поспелихинская СОШ №1»

 

 

 

 

2023 г.

Оглавление

Введение. 3

1. Основы языка программирования Python. 5

2. Обзор задач компьютерного ЕГЭ по информатике и их решение на языке Python  8

3. Практическая часть – решение задачи 25. 20

Заключение. 24

 


 

Введение

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

Единый государственный экзамен по информатике проходит на компьютерах уже с 2021 года. Новая модель реализована в виде компьютерной системы тестирования. Смысл новой модели состоит в том, что все задания выпускники будут выполнять при помощи компьютеров и с применением различных языков программирования и программного обеспечения.

В настоящее время все большую популярность приобретает язык Python. Одна из причин популярности Python  – более простое и компактное оформление, чем в других языках. Это самый популярный язык общего назначения: он используется для машинного обучения, аналитике, разработке игр и в науке о данных. В данной работе будет применение языка Python в решении задач компьютерного ЕГЭ по информатике, где особое внимание я уделила решению задачи 25 на поиск делителей, простых чисел, а также соответствия маскам чисел. Данное задание необходимо выполнять с помо

Объект работы – оптимизированные алгоритмы  в процессе решения задач компьютерного ЕГЭ по информатике.

Предмет работы – средства решения задач компьютерного ЕГЭ по информатике.

Цель работы – провести обзор возможностей языка программирования Python при решении задач компьютерного ЕГЭ по информатике, с помощью оптимизированных алгоритмов.

Задачи:

-     рассмотреть основы языка программирования Python;

-     выделить типы задач компьютерного ЕГЭ по информатике и, по возможности, решить их с помощью оптимизированных алгоритмов средствами языка программирования Python.


-      

1. Основы языка программирования Python

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

Физические строки разделяются самим символом конца строки. Для выделения блоков кода используются исключительно отступы. Логические строки с одинаковым размером отступа формируют блок, и заканчивается блок в том случае, когда появляется логическая строка с отступом меньшего размера. Именно поэтому первая строка в сценарии Python не должна иметь отступа.

Других радикальных отличий от других языков программирования в синтаксисе Python нет. Также используются стандартные правила для заданий идентификаторов переменных, методов и классов – имя должно начинаться с подчеркивания или латинского символа любого регистра и не может содержать символов @, $, %. Также не может использоваться в качестве идентификатора только один символ подчеркивания.

Типы данных, используемых в Python, совпадают с другими языками – целые и вещественные типы данных; дополнительно поддерживается комплексный тип данных – с вещественной и мнимой частью. Python поддерживает строки, которые могут быть заключены в одинарные, двойные или тройные кавычки, при этом строки являются immutable-объектами, т.е. не могут изменять свое значение после создания.

Есть в Python и логический тип данных bool c двумя вариантами значения – True и False. Для повышения читаемости кода рекомендуется использовать для логических переменных тип bool.

В Python определены три типа коллекций для хранения наборов данных:

-      кортеж (tuple);

-      список (list);

-      словарь (dictionary).

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

Список – это изменяемая упорядоченная последовательность элементов. Элементы списка также разделяются запятыми, но задаются уже в квадратных скобках. Для создания списков предлагается функция list().

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

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

Листинг 1. Виды коллекций, доступные в Python

 

 

 

 

 

(‘w’,‘o’,‘r’,‘l’,‘d’)     # кортеж из пяти элементов

(2.62,)                   # кортеж из одного элемента

[“test”,'me']             # список из двух элементов

[  ]                      # пустой список

{ 5:‘a’, 6:‘b’, 7:‘c’ }   # словарь из трех элементов с ключами типа int

 

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

Синтаксис определения функций в Python крайне простой; с учетом изложенных выше требований (листинг 2).

 

 

Листинг 2. Виды коллекций, доступные в Python

 

 

 

 

def ИМЯ_ФУНКЦИИ(параметры):

    выражение № 1

    выражение № 2

    ...

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

ИМЯ_ФУНКЦИИ(параметры)

Есть только несколько моментов, специфичных для Python, которые стоит учитывать. Параметры могут передаваться как просто по порядку перечисления, так и по именам, в этом случае не нужно указывать при вызове те параметры, для которых есть значения по умолчанию, а передавать только обязательные или менять порядок параметров при вызове функции (листинг 3).

Листинг 3. Виды коллекций, доступные в Python

 

 

 

 

 

 

#функция, выполняющая деление нацело – с помощью оператора //

def foo(delimoe, delitel):

    return delimoe // delitel

 

print divide(50,5)                         # результатработы: 10

print divide(delitel=5, delimoe=50)      # результатработы: 10

 

Функция в Python обязательно возвращает значение – это делается либо явно с помощью оператора return, за которым следует возвращаемое значение, либо, в случае отсутствия оператора return, возвращается константа None, когда достигается конец функции. Как видно из примеров объявлений функций, в Python нет необходимости указывать, возвращается что-либо из функции или нет, однако если в функции имеется один оператор return, возвращающей значение, то и другие операторы return в этой функции должны возвращать значения, а если такого значения нет, то необходимо явно прописывать return None.

Если функция очень простая и состоит из одной строки, то ее можно определить прямо на месте использования, в Python подобная конструкция называется лямбда-функцией (lambda). lambda-функция – это анонимная функция (без собственного имени), телом которой является оператор return, возвращающий значение некоторого выражения. Такой подход может оказаться удобным в некоторых ситуациях, однако стоит заметить, что повторное использование подобных функций невозможно.

Еще стоит описать отношение Python к использованию рекурсии. По умолчанию глубина рекурсии ограничена 1000 уровней, и когда этот уровень будет пройден, возникнет исключительная ситуация, и работа программы будет остановлена. Однако при необходимости величину этого предела можно изменить.

2. Обзор задач компьютерного ЕГЭ по информатике и их решение на языке Python

В компьютерного ЕГЭ (далее КЕГЭ) по информатике предлагаются десять типов заданий на следующие темы.

1.     Вычисления

2.     Решение уравнений численными методами

3.     Перебор целых чисел. (Разбиение числа на цифры)

4.     Перебор чисел. Проверка делимости

5.     Перебор целых чисел. Количество делителей

6.     Символьные строки. Цепочки символов

7.     Функции двух аргументов. Таблицы значений

8.     Электронные таблицы. Встроенные функции (не решается средства Python)

9.     Рекурсия. Рекурсивные функции

10. Исследование моделей. Оптимизация

1.     Пример задания на вычисление

С помощью программы Калькулятор или электронных таблиц вычислите значение выражения. В ответе запишите только целую часть результата. Можно также написать программу.

Программа на языке Python

print( ((1 + cos(3.53*pi)*10)*310) ** 2 )

Ответ: 431.

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

Основные математические функции языка Python представлены в таблице 1. Прежде чем использовать математические функции, необходимо в начале программы написать инструкцию import math, однако тогда перед упоминанием каждой функции необходимо будет добавлять имя модуля - math, например, y=math.sin(x). Другой способ, который позволит избежать многократного вызова модуля math, - сделать следующую запись в начале программы: from math import *.

Таблица 1. Общие математические функции модуля Math

Запись на Python

Действие

math.sin (x)

Возвращает значение функции Sin от числа х

math.cos (x)

Возвращает значение функции Cos от числа х

math.tan (x) или math.sin (x)

/ math.cos (x)

Возвращает значение функции Tg от числа х

math.cos (x) / math.sin (x)

Возвращает значение функции Ctg от числа х

math.abs (x)

Возвращает абсолютную величину числа х

math.exp (x)

Возвращает результат возведения числа е в степень X

math.Log lp (x)

Возвращает натуральный логарифм от х+1

math.sqrt (x)

Возвращает результат извлечения квадратного корня числа х

math.log (x)

Возвращает логарифм числа х по основанию

10

math.cos (x) * math.cos (x)

Возвращает результат возведения функции

Cos х в квадрат

math.acos (x)

Возвращает значение функции арккосинус от числа х

math.asin (x)

Возвращает значение функции арксинус от числа х

math.atan (x)

Возвращает значение функции арктангенс от числа х

Pi

Возвращает 3.141592653589793

math.degrees(x)

Преобразует радианы в градусы

math.radians(x)

Преобразует градусы в радианы

math.floor(x)

Возвращает значение, округленное до ближайшего меньшего целого

math.ccil(x)

Возвращает значение, округленное до ближайшего большего целого

math.factorial(x)

Возвращает факториал числа. 3 != 1 *2*3

 

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

Таблица 2. Функции для работы с числами

Запись на Python

Описание

round(x)

Возвращает результат округления числа х до ближайшего меньшего целого значения для чисел с дробной частью меньше 0.5 или результат округления числа х до ближайшего большего целого значения для чисел с дробной частью больше 0.5

pow(x,y)

другой вариант х**у

Возвращает результат возведения числа х в степень у

mах(список чисел через запятую)

Возвращает большее значение из списка чисел

min(список чисел через запятую)

Возвращает меньшее значение из списка чисел

sum(список K чисел через запятую)

Возвращает сумму значений элементов последовательности

float(число)

Преобразует объект (например, строковое значение, целое значение) в вещественное число

 

2. Пример задания на решение уравнения численным методом

Известно, что уравнение  на отрезке [0; 1,5] имеет единственный корень. Найдите его приблизительное значение с точностью не менее 0,00001 и запишите в ответе найденное значение ровно с пятью значащими цифрами после запятой.

Программа на языке Python:

from math import cos, exp       # подключить функции cos, exp

def f(x):                       # это функция f(x)

return 0.01*exp(x) - cos(3*x)

 

a, b = 0, 1.5                   # границыотрезка

 

while b-a > 1e-6:               # пока ширина отрезка >= 10^(-6)   

  c = (a + b) / 2               # середина отрезка

  if f(a)*f(c) <= 0:            # сдвигаем правую или левую границу

        b = c

  else: a = c

 

# вывод с 5 знаками в дробной части

print( "{:.5f}".format((a + b) / 2) )

Ответ: 0.51800

3. Пример задания на перебор целых чисел. Разбиение числа на цифры

Назовём натуральное четырёхзначное число N (1000 £N£ 9999) счастливым, если суммы двух его первых и двух последних цифр различаются не более, чем на 3. Найдите количество таких чисел.

Программа на языке Python

count = 0

for n in range(1000, 10000):

  d0 = n % 10; n //= 10

  d1 = n % 10; n //= 10

  d2 = n % 10

  d3 = n // 10

  if abs(d3+d2-d1-d0) <= 3:

    count += 1

print(count)

Поскольку заданный отрезок [1000; 9999] содержит всего 9000 чисел, можно решать задачу простым перебором. Для этого сначала нужно разбить число на цифры с помощью операций деления нацело и остатка от деления; цифры помещаем в переменные d0, d1, d2, d3. Затем проверяем «счастливость» числа: число счастливое при выполнении условияв этом случае увеличиваем счётчик найденных счастливых чисел.

Ответ: 4071.

4. Пример задания на перебор целых чисел. Проверка делимости

Рассматривается множество целых чисел, принадлежащих отрезку [1033; 7737], которые делятся на 5 и не делятся на 11, 17, 19 и 23. Найдите количество таких чисел и максимальное из них. В ответе запишите два числа через пробел: сначала количество, затем максимальное число.

Программа на языке Python

count = 0

maxGood = 0

for n in range(1033, 7737+1):

  if (n % 5 == 0) and (n % 11 != 0) and \

     (n % 17 != 0) and (n % 19 != 0) and (n % 23 != 0):

    maxGood = n

count += 1

print(count, maxGood)

 

Поскольку заданный отрезок [1033; 7737] содержит не так много чисел, можно решать задачу простым перебором. Условие будем понимать так: интересующие нас числа делятся на 5 и не делятся ни на одно из чисел 11, 17, 19 и 23. Нам выгоднее перебирать числа в порядке возрастания, тогда последнее найдённое число – это и есть искомое максимальное подходящее число (если требуется найти наименьшее подходящее число, удобнее перебирать числа в порядке убывания)

Ответ: 1040 7730

Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [194455; 194500], числа, имеющие ровно 4 различных делителя. Выведите эти четыре делителя для каждого найденного числа в порядке возрастания.

Программа на языке Python

for n in range(194455, 194500+1):

  divs = []

  for d in range(1,n+1):

    if n % d == 0:

      divs.append(d)

  if len(divs) == 4:

print( *divs )

 

При написании программы на языке Python можно поступить так

for для всех чисел n в интервале:

  divs = массив всех делителей n

  if len(divs) == 4:

    вывести массив делителей

 

5. Пример задания на работу с простыми числами

Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [3532000; 3532160], простые числа. Выведите все найденные простые числа в порядке возрастания, слева от каждого числа выведите его номер по порядку.

 

Программа на языкеPython

from math import sqrt

count = 0

for n in range(3532000, 3532160+1):

  prime = True

  for d in range(2, round(sqrt(n))):

    if n % d == 0:

      prime = False

      break

  ifprime:

count += 1

print( count, n )

 

6. Пример задания на работу с символьными строками

В текстовом файле k7.txt находится цепочка из символов латинского алфавита A, B, C, D, E. Найдите количество цепочек длины 3, удовлетворяющих следующим условиям:

·         1-й символ – один из символов B, C или D;

·         2-й символ – один из символов B, D, E, который не совпадает с первым;

·         3-й символ – один из символов B, C, E, который не совпадает со вторым.

Программа на языке Python

s = open('k7.txt').read()

count = 0

for i in range(len(s)-2):

    if s[i] in 'BCD' and s[i+1] in 'BDE' \

      and s[i+2] in 'BCE' and s[i]!=s[i+1] \

      and s[i+1]!=s[i+2]:

      count += 1

print(count)

Решение:

1)  Считываем из файла и перебираем символы.

2)  Перебираем все тройки символов. Примем, что переменная i будет хранить номер первого элемента в тройке, то есть, будем рассматривать тройки (s[i], s[i+1], s[i+2]).

3)  Организуем цикл который перебирает значения i от 1 до len(s)-2

for i in range(len(s)-2):

  ...

4)  Проверяем символы в каждой тройке на соответствие условию. Проверка принадлежности символов набору аналогична заданию 1. Дополнительно необходимо указать условия неравенства символов, указанных в условии задачи. Если условия выполняются, то к переменной количества прибавляется единица.

 

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

С помощью редактора электронных таблиц создайте таблицу вещественных значений выражения  для следующих вещественных значений x и y:

x  = 5,5; 6,0; …; 8,5;  y  = 10,0; 10,3; …; 13,0.

Вычислите сумму получившихся значений и запишите её целую часть в ответе.

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

 

Решение:

1)                 Чтобы написать программу, нужно использовать вложенный цикл: в одном цикле будем перебирать значения x, а во втором (вложенном) – значения y; учитывая, что цикл с переменной (for ... in ...) работает только с целыми последовательностями чисел, придётся использовать циклы с условием:

s = 0                # это неправильная программа

x = 5.5              # это неправильная программа

while x <= 8.5:      # это неправильная программа  

  y = 10

  while y <= 13:

    # print(x, y) # отладочная печать, см. обсуждение ниже

s += 2*x**3/(y+1)

    y += 0.3

  x += 0.5

print( s )

сумма значений функции накапливается в переменной s

2)                 однако эта программа выводит неверный ответ.

3)                 Дело в том, что вещественные числа, которые нельзя представить в виде суммы целых (в том числе и отрицательных) степеней числа 2, в двоичной системе счисления представляют собой бесконечную дробь и поэтому не могут быть точно записаны в памяти двоичного компьютера; при выполнении вычислений с такими числами ошибка накапливается, и к последнему шагу (это можно проверить с помощью отладочной печати) значение y равно не 12,7, а чуть больше:

12.700000000000006

из-за этого следующее значение, равное 13,000000000000006, уже больше, чем 13, и не удовлетворяет условию работы цикла; таким образом, на каждом шаге цикла по x мы теряем одно значение y, и соответствующее значение функции не включается в сумму.

4)                 с переменной x подобных проблем нет, так как шаг изменения x равен 0,5 = 2–1

5)                 исправить ситуацию можно так: организовать перебор только целых значений, используя вспомогательные целочисленные переменные x10 = x× 10 и y10 = y× 10:

s = 0

for x10 in range(55, 86, 5):

  for y10 in range(100, 131, 3):

s += 2*(x10/10)**3/(y10/10+1)

print(s)

 

8. Пример задания на вычисление значения рекурсивной функции

Определите наименьшее значение n, при котором сумма чисел, которые будут выведены при вызове F(n), будет больше 500000. Запишите в ответе сначала найденное значение n, а затем через пробел – соответствующую сумму выведенных чисел.

 

def F( n ):

  print(2*n)

  if n > 1:

    print(n-5)

    F(n-1)

    F(n-2)

 

Решение:

Первое, что может прийти в голову – вызывать приведённую процедуру при разных значениях параметра и увеличивать это значение до тех пор, пока сумма выведенных чисел не превысит заданное значение 500000; это тупиковый подход, поскольку чисел очень много и сложение займет очень много времени при низкой вероятности правильного ответа

Можно попробовать изменить программу так, чтобы сумма выводимых чисел считалась автоматически: добавим в программу глобальную переменную s и будем увеличивать её при выводе каждого числа на значение этого числа; при этом для ускорения (значительного!) работы программы сразу закомментируем вывод чисел на экран:

def F( n ):

  global s    # если не объявить s глобальной – ошибка!

# print(2*n)

  s += 2*n

  if n > 1:

    # print(n-5)

s += n - 5

    F(n-1)

F(n-2)

Дальше можно написать такую программу и запускать её при различных значениях переменной n:

n = 15

s = 0

F(n)

print( n, s )

Увеличивая каждый раз значение n на 1, мы в конце концов найдём первое (минимальное) значение n, при котором сумма чисел, которые будут выведены при вызове F(n), будет больше 500000 – это F(24) = 531864

Ответ: 24  531864.

9. Пример задания на оптимизацию

На покупку мебели выделено 500 тыс. рублей. Стоимость одного комплекта составляет 18 тыс. рублей. Запишите наборы вариантов покупки максимального количества комплектов мебели, при условии, что производитель М продает мебель упаковками по 6 комплектов в упаковке, а производитель N – по 4 комплекта в упаковке.

Запишите в ответ пары чисел: количество упаковок производителя М далее через пробел количество упаковок производителя N. Каждую пару записывайте с новой строки. Пары должны быть отсортированы по возрастанию значений в первом столбце.

Решение:

В простейшем варианте можно просто вывести на экран все варианты сочетаний  a и b с соответствующими значениями K, в конце программы вывести макcимальное значение K; затем вручную найти все строки, где значение K равно максимальному.

S0 = 500000 # доступная сумма

cost1 = 18000  # стоимость одного комплекта

packM = 6     # количество комплектов в упаковке M

packN = 4     # количество комплектов в упаковке N

   # максимальное значение a

aMax = int(S0 / (packM*cost1))

# поиск максимального K по всем вариантам

maxK = 0

for a in range(aMax+1):

  Sb = S0 - a*packM*cost1  # сумманазакупкуу N

  b = int(Sb / (packN*cost1))

K = packM*a + packN*b    # общее количество

print(a, b, K)

  if K > maxK:

    maxK = K               # новыймаксимум

print(maxK, maxK*cost1)


 

3. Практическая часть – решение задачи 25.

Изучив базовые навыки работы в языке программирования Python в 8-9 классах, в дальнейшем данный язык стал основным инструментом работы на уроках информатики по теме: «Алгоритмизация и программирование». Мне повезло, я учусь в классе, где информатика является профильной дисциплиной и у меня есть возможность изуить Python углубленно.

На уроках стало заметно, что мы обрабатываем очень большие числа и в достаточно больших объемах. Это стало сказываться на быстроте выполнения программы, некоторые алгоритмы с помощью языка программирования выполнялись минуты, что неприемлемо долго.

Я вместе с учителем задалась вопросом, а реально ли ускорить, или оптимизировать быстроту выполнения программы. Тем более, скорее всего для меня эта проблема станет актуальной при сдае КЕГЭ по информатике.

Свой практический эксперимент я проводила над решением задачи 25, а именно обработкой целочисленной информации болших размеров.

Первая задача: Нахождение делителей числа.

В принципе алгоритм несложныйи вполне изучен – это переборный алгоритм с помощью цикла for:

blob:https://web.whatsapp.com/5597cd7e-ab9d-4630-82ea-e193d99f60cb

Обратите внимание на число -  это 1_000_000_000, так вот при нахождении всех делителей этого числа, программа выполнялась 7 минут. Здесь проблема заключается в том, что чем длинее число, тем дольше время на обработку. То есть здесь прослеживается линейная зависимость О(х), где О – сложность процесса, x – объем данных.

Поэтому необходимо убрать из алгоритма переборный цикл и заменить его вспомогательным алгоритмом – функцией def, где по правилам математики с помощью цикла for делители находятся на промежутке от 1 до целой части от квадратного корня из числа, а не до конца числа, что ускоряет перебор поиска.

Проделав это, а также введя в программу новый тип данных: множество, то есть еще заменила массив целых чисел (список). Множество, как известно это объект без дублей.

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

И для закрепления своих рассуждений мною была выполнена задача, взятая из сборников заданий на сайте kpolyakov.spb.ru:

Мои предположения подтвердились, задача выполнена успешна и очень быстро – за доли секунд.

Вторая задача: Простые числа.

Простое число – это целое число, строго больше единицы и имеет всего два делителя 1 и само число, то есть у него нет делителей на промежутке от 2 до целой части от квадратного корня из числа.

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

Пример программы:

 

 


 


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


 

Заключение

Девяносто процентов задач компьютерного ЕГЭ по информатике решается с помощью программирования.

В процессе выполнения работы были решены следующие задачи:

-     рассмотрены основы языка программирования Python;

-     выделены типы задач компьютерного ЕГЭ по информатике. Задачи решены средствами языка программирования Python;

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

Это только начало моей работы. В дальнейшем планирую достаточно подробно заняться самой сложной задачей КЕГЭ по информатике – это задача 27. Где обрабатываются текстовые файлы с большим массивом целых чисел.


 

Список литературы

1.   Сайт К. Ю. Полякова. Методические материалы и программное обеспечение [Электронный ресурс]. Режим доступа:http://kpolyakov.spb.ru

2.   Прохоренок Н. А. Python 3. Самое необходимое [Текст]. – Спб.: БХВ-Петербург, 2019. – 608 с.

3.        Основы Python [Электронный ресурс]. Режим доступа: https://pythonworld.ru/osnovy/skachat-python.html

4.        Применение и основы Python [Электронный ресурс]. Режим доступа: https://stepik.org/course/512/promo

5.        Дистанционная подготовка к информатике [Электронный ресурс]. Режим доступа https://informatics.mccme.ru

 

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Оптимизационные алгоритмы в языке программирования Python в решении задач компьютерного ЕГЭ по информатике"

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Психолог в социальной сфере

Получите профессию

Интернет-маркетолог

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 671 767 материалов в базе

Материал подходит для УМК

  • «Информатика (базовый и углублённый уровни) (в 2 частях)», Поляков К.Ю., Еремин Е.А.

    «Информатика (базовый и углублённый уровни) (в 2 частях)», Поляков К.Ю., Еремин Е.А.

    Тема

    Глава 7. Объектно-ориентированное программирование

    Больше материалов по этой теме
Скачать материал

Другие материалы

Практическая работа «Дополнительные возможности текстового процессора»
  • Учебник: «Информатика», Семакин И.Г., Залогова Л.А., Русаков С.В., Шестакова Л.В.
  • Тема: § 16. Дополнительные возможности текстовых процессоров
  • 14.06.2023
  • 108
  • 5
«Информатика», Семакин И.Г., Залогова Л.А., Русаков С.В., Шестакова Л.В.
Практическая итоговая работа «Создание и обработка текстовых документов»
  • Учебник: «Информатика», Семакин И.Г., Залогова Л.А., Русаков С.В., Шестакова Л.В.
  • Тема: § 16. Дополнительные возможности текстовых процессоров
  • 14.06.2023
  • 305
  • 14
«Информатика», Семакин И.Г., Залогова Л.А., Русаков С.В., Шестакова Л.В.

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 15.06.2023 329
    • DOCX 303.2 кбайт
    • 10 скачиваний
    • Оцените материал:
  • Настоящий материал опубликован пользователем Кусточкин Александр Валерьевич. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    • На сайте: 7 лет и 1 месяц
    • Подписчики: 0
    • Всего просмотров: 7614
    • Всего материалов: 7

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Няня

Няня

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Информационные технологии в профессиональной деятельности: теория и методика преподавания в образовательной организации

Преподаватель информационных технологий

300/600 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Сейчас обучается 192 человека из 56 регионов
  • Этот курс уже прошли 977 человек

Курс повышения квалификации

Организация преподавания информационных систем и технологий в профессиональном образовании

36 ч. — 180 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Сейчас обучается 21 человек из 14 регионов
  • Этот курс уже прошли 76 человек

Курс повышения квалификации

Методика преподавания информатики в начальных классах

72 ч. — 180 ч.

от 2200 руб. от 1100 руб.
Подать заявку О курсе
  • Этот курс уже прошли 67 человек

Мини-курс

Эффективное управление запасами

4 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Управление техническими ресурсами и экономикой предприятия

4 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Основы управления проектами

6 ч.

780 руб. 390 руб.
Подать заявку О курсе