Загрузил Стас Харламов

ип по информаткие

реклама
Муниципальное автономное общеобразовательное учреждение
средняя школа №8
Исследовательская работа по
информатике
на тему: «Решение 22 задания ЕГЭ сравнения
способов: с использованием Microsoft Excel или
Python»
Руководитель: учитель информатики
Кустова Ю.Е.
Выполнил: ученик 10 «Б» класса
Харламов С.Д.
г. Бор
2023 г.
Содержание
Содержание
Содержание .............................................................................................................. 2
Введение ................................................................................................................... 3
Глава 1. Ознакомление с Microsoft Excel и Python. ............................................. 4
1.1. Знакомство с Microsoft Excel. ....................................................................... 4
1.2. Знакомство с Python. ..................................................................................... 4
1.3. Исторический аспект появления Microsoft Excel и Python ....................... 5
1.3.1. История создания Microsoft Excel............................................................. 5
1.3.2. История создания Python. .......................................................................... 6
Глава 2. Решение задач с помощью Microsoft Excel и Python. ........................... 8
1.1. Решение 22 задания через Microsoft Excel и Python. ................................. 8
Глава 3. Таблица Microsoft Excel. ........................................................................ 12
Заключение ............................................................................................................ 13
Список литературы ............................................................................................... 14
2
Харламов Станислав Денисович
Введение
Актуальность темы учебно-исследовательской работы
Задание под номером 22 в Едином государственном экзамене по
информатике обновилось в 2022 году и еще не все ученики и учителя
разобрались с этим заданием. Мне стало интересно каким способом решить
это задание проще: Microsoft Excel и Python.
Предмет исследования: способы решения 22 задания ЕГЭ по
информатике.
Цель работы: разобрать каждый из способов решения 22 задания ЕГЭ
и решить, какой способ проще.
Задачи:
1.
Познакомиться с историей Microsoft Excel и Python;
2.
Разобрать два способа решения задания: Microsoft Excel и с помощью
языка программирования Python;
3.
Выявить преимущества и недостатки Microsoft Excel и с помощью
Python;
4.
Составить таблицу в Microsoft Excel с помощью которой можно будет
наглядно показать преимущества и недостатки решение задач с помощью
Microsoft Excel и Python;
5.
Сделать вывод о проделанной работе;
Гипотеза
Решение 22 задания ЕГЭ по информатике лучше выполнять с помощью
Microsoft Excel.
3
Глава 1
Глава 1. Ознакомление с Microsoft Excel и Python.
Знакомство с Microsoft Excel.
1.1.
Microsoft Excel (также иногда называется Microsoft Office Excel)—программа
для работы с электронными таблицами, созданная корпорацией Microsoft для
Microsoft Windows, Windows NT и Mac OS, а также Android, iOS и Windows
Phone. Она предоставляет возможности экономико-статистических расчетов,
графические инструменты и, за исключением Excel 2008 под Mac OS X, язык
макропрограммирования VBA (Visual Basic for Application). Microsoft Excel
входит в состав Microsoft Office.
1.2.
Знакомство с Python.
Python ( в русском языке встречаются названия пито́н или па́йтон) —
высокоуровневый
язык
программирования
общего
назначения
с
динамической строгой типизацией и автоматическим управлением памятью,
ориентированный
на
повышение
производительности
разработчика,
читаемости кода и его качества, а также на обеспечение переносимости
написанных на нём программ. Язык является полностью объектноориентированным в том плане, что всё является объектами. Необычной
особенностью языка является выделение блоков кода пробельными
отступами. Синтаксис ядра языка минималистичен, за счёт чего на практике
редко возникает необходимость обращаться к документации. Сам же язык
известен как интерпретируемый и используется в том числе для написания
cкриптов. Недостатками языка являются зачастую более низкая скорость
работы и более высокое потребление памяти написанных на нём программ по
сравнению с аналогичным кодом, написанным на компилируемых языках,
таких
как
C
4
или
C++.
Харламов Станислав Денисович
1.3.
Исторический аспект появления Microsoft Excel и Python
1.3.1. История создания Microsoft Excel.
В 1982 году Microsoft запустила на рынок свой первый электронный
табличный процессор Multiplan, который был очень популярен на CP/M
системах, но на MS-DOS системах он уступал Lotus 1-2-3. Первая версия
Excel предназначалась для Mac и была выпущена в 1985 году, а первая
версия для Windows была выпущена в ноябре 1987 года. Lotus не торопилась
выпускать 1-2-3 под Windows, и Excel с 1988 года начала обходить по
продажам 1-2-3, что в конечном итоге помогло Microsoft достичь позиций
ведущего разработчика программного обеспечения. Microsoft укрепляла своё
преимущество с выпуском каждой новой версии, что имело место примерно
каждые два года. Текущая версия для платформы Windows — Excel 19, также
известная как Microsoft Office Excel 2019. Текущая версия для платформы
macOS — Microsoft Excel 2019.
В начале своего пути Excel стал причиной иска о товарном знаке от другой
компании, уже продававшей пакет программ под названием «Excel». В
результате спора Microsoft была обязана использовать название «Microsoft
Excel» во всех своих официальных пресс-релизах и юридических
документах. Однако со временем эта практика была позабыта, и Microsoft
окончательно устранила проблему, приобретя товарный знак другой
программы. Microsoft также решила использовать буквы XL как сокращённое
название программы: иконка Windows-программы состоит из стилизованного
изображения этих двух букв, а расширение файлов по умолчанию в Excel —
.xls.
В сравнении с первыми табличными процессорами Excel представляет
множество новых функций пользовательского интерфейса, но суть остается
прежней: как и в программе-родоначальнике, VisiCalc, организованные в
строки и столбцы клетки-ячейки могут содержать данные или формулы с
относительными или абсолютными ссылками на другие клетки.
Excel был первым табличным процессором, позволявшим пользователю
менять внешний вид таблицы на экране: шрифты, символы и внешний вид
ячеек. Он также первым представил метод умного пересчёта ячеек —
обновления только ячеек, зависящих от изменённых ячеек: раньше
табличные процессоры пересчитывали все ячейки; это делалось либо после
каждого
5
Глава 1
изменения (что на больших таблицах долго), либо по команде пользователя
(что могло вводить пользователя в заблуждение не пересчитанными
значениями).
Будучи впервые объединёнными в Microsoft Office в 1993 году, Microsoft
Word и Microsoft PowerPoint получили новый графический интерфейс для
соответствия Excel, главного стимула модернизации ПК в то время.
Начиная с 1993 года, в состав Excel входит Visual Basic для приложений
(VBA), язык программирования, основанный на Visual Basic, позволяющий
автоматизировать задачи Excel. VBA является мощным дополнением к
приложению
и
в
более
поздних
версиях
Excel
доступна
полнофункциональная интегрированная среда разработки. Можно создать
VBA-код, повторяющий действия пользователя и таким образом
автоматизировать простые задачи. VBA позволяет создавать формы для
общения с пользователем. Язык поддерживает использование (но не
создание) DLL от ActiveX; более поздние версии позволяют использовать
элементы объектно-ориентированного программирования.
1.3.2. История создания Python.
Задумка по реализации языка появилась в конце 1980-х годов, а разработка
его реализации началась в 1989 году сотрудником голландского института
CWI Гвидо ван Россумом. Для распределённой операционной системы
Amoeba требовался расширяемый скриптовый язык, и Гвидо начал
разрабатывать Python на досуге, позаимствовав некоторые наработки для
языка ABC (Гвидо участвовал в разработке этого языка, ориентированного на
обучение программированию). В феврале 1991 года Гвидо опубликовал
исходный текст в группе новостей alt.sources. С самого начала Python
проектировался как объектно-ориентированный язык.
Гвидо ван Россум назвал язык в честь популярного британского комедийного
телешоу 1970-х «Летающий цирк Монти Пайтона», поскольку автор был
поклонником этого телешоу, как и многие другие разработчики того
времени, а в самом шоу прослеживалась некая параллель с миром
компьютерной техники.
Наличие дружелюбного, отзывчивого сообщества пользователей считается,
наряду с дизайнерской интуицией Гвидо, одним из факторов успеха Python.
Развитие языка происходит согласно чётко регламентированному процессу
6
Харламов Станислав Денисович
создания, обсуждения, отбора и реализации документов PEP
(англ.PythonEnhancementProposal) — предложений по развитию Python.
3 декабря 2008 года, после длительного тестирования, вышла первая версия
Python 3000 (или Python 3.0, также используется сокращение Py3k). В Python
3000 устранены многие недостатки архитектуры с максимально возможным
(но не полным) сохранением совместимости со старыми версиями Python.
Дата окончания срока поддержки Python 2.7 первоначально была
установлена на 2015 год, а затем перенесена на 2020 год из опасения, что
большая часть существующего кода не может быть легко перенесена на
Python 3. Поддержка Python 2 была направлена лишь на уже существующие
проекты, новые проекты должны были использовать Python 3. Официально
Python 2.7 не поддерживается с 1 января 2020 года, хотя последнее
обновление вышло в апреле 2020. Больше никаких исправлений
безопасности или других улучшений для Python 2.7 не будет выпущено. С
окончанием срока службы Python 2.x поддерживаются только Python 3.6.x и
более поздние версии.
Python стал одним из самых популярных языков, он используется в анализе
данных, машинном обучении, DevOps и веб-разработке, а также в других
сферах, включая разработку игр. За счёт читабельности, простого синтаксиса
и отсутствия необходимости в компиляции язык хорошо подходит для
обучения программированию, позволяя концентрироваться на изучении
алгоритмов, концептов и парадигм. Отладка же и экспериментирование в
значительной степени облегчаются тем фактом, что язык является
интерпретируемым. Применяется язык многими крупными компаниями,
такими как Google или Facebook. По состоянию на сентябрь 2022 года Python
занимает первое место в рейтинге TIOBE популярности языков
программирования с показателем 15,74%. «Языком года» по версии TIOBE
Python объявлялся в 2007, 2010, 2018, 2020 и 2021 годах.
7
Глава 2
Глава 2. Решение задач с помощью Microsoft Excel и Python.
1.1.
Решение 22 задания через Microsoft Excel и Python.
Возьмём пример задачи с сайта sdamgia.ru.
Тип 22 № 47588
В файле 22_7.xlsx содержится информация о совокупности N
вычислительных процессов, которые могут выполняться параллельно или
последовательно. Будем говорить, что процесс B зависит от процесса A, если
для выполнения процесса B необходимы результаты выполнения процесса A.
В этом случае процессы могут выполняться только последовательно.
Информация о процессах представлена в файле в виде таблицы. В первой
строке таблицы указан идентификатор процесса (ID), во второй строке
таблицы — время его выполнения в миллисекундах, в третьей строке
перечислены с разделителем «;» ID процессов, от которых зависит данный
процесс. Если процесс является независимым, то в таблице указано значение
0.
Определите минимальное время, через которое завершится выполнение
всей совокупности процессов, при условии, что все независимые друг от
друга процессы могут выполняться параллельно.
Типовой пример организации данных в файле:
ID процесса B Время выполнения процесса B (мс) ID процесса(ов) A
1
4
0
2
3
0
3
1
1;2
4
7
3
В данном случае независимые процессы 1 и 2 могут выполняться
параллельно, при этом процесс 1 завершится через 4 мс, а процесс 2 — через
3 мс с момента старта. Процесс 3 может начаться только после завершения
обоих процессов 1 и 2, то есть, через 4 мс после старта. Он длится 1 мс и
закончится через 4 + 1 = 5 мс после старта. Выполнение процесса 4 может
начаться только после завершения процесса 3, то есть, через 5 мс. Он длится
7 мс, так что минимальное время завершения всех процессов равно 5 + 7 =
12 мс
8
Харламов Станислав Денисович
Решение через Microsoft Excel.
Отсортируем данные в таблице так, чтобы все независимые процессы
оказались в начале таблицы и любой процесс был расположен после всех
процессов, от которых он зависит. Также в таблицу добавим столбец «Время
окончания процесса» и запишем туда длительности независимых процессов.
Далее рассчитаем время выполнения оставшихся процессов и выбираем
самый большой результат:
f(3) = 3 + f(1) = 3 + 4 = 7;
f(4) = 7 + f(2) = 7 + 6 = 13;
f(6) = 8 + max(f(3), f(4)) = 8 + 13 = 21;
f(8) = 5 + f(5) = 5 + 4 = 9;
f(9) = 3 + f(5) = 3 + 4 = 7;
f(10) = 2 + f(3) = 2 + 7 = 9;
f(11) = 5 + max(f(3), f(7)) = 5 + 7 = 12;
f(12) = 3 + max(f(5), f(6)) = 3 + 21 = 24;
f(13) = 6 + max(f(3), f(9)) = 6 + 7 = 13;
f(15) = 7 + f(10) = 7 + 9 = 16.
9
Глава 2
Ответ:24.
10
Харламов Станислав Денисович
1.
2.
3.
4.
5.
6.
7.
8.
9.
Решение через Python
Алгоритм решения 22 задания из ЕГЭ по информатике 2023г. с
помощью Python.
Первоначально копируем данные из файла Excel в блокнот (файл txt)
Создаем массив:arr = [0] , в который будем записывать максимальное время
по процессам, а сами номера процессов будут индексами этого процесса
Открываем наш текстовый файл (путь к файлу прописываем):
f = open(C:\Users\я\Desktop\sdamgia 22 задание.txt)
Делаем цикл по строкам (когда мы копировали в текстовый файл, у нас
данные разделены табуляцией s.split('\t')):
for
s
in
f.readlines():
number, time, need = s.split('\t')
Добавим нулевой элемент в массиве:
arr.append(0)
Делаем цикл по номеру процесса, причем номер процесса (если их несколько
«6;5;7;4;3») у нас разделен «;», что мы и учитываем need.split(';'):
for j in need.split(';'):
Выбираем максимальный элемент нашего массива, причем мы из текста
делаем число int(number):
arr[int(number)] = max(arr[int(number)], arr[int(j)])
Когда выбрано максимальное значение процесса мы плюсуем к нему текущее
значение (потому что процессы связанные, один процесс может начаться
только тогда, когда предыдущий закончится):
arr[int(number)] += int(time)
Печатаем максимальный элемент созданного нами массива, это и будет
ответ:
print(max(arr))
А это наша программа целиком:
arr = [0]
f = open(C:\Users\я\Desktop\sdamgia 22 задание.txt)
for s in f.readlines():
number, time, need = s.split('\t')
arr.append(0)
for j in need.split(';'):
arr[int(number)] = max(arr[int(number)], arr[int(j)])
arr[int(number)] += int(time)
print(max(arr))
11
Глава 3
Глава 3. Таблица Microsoft Excel.
Способы
решения
Быстрота решения
Простота
решения
Качество
Python
-
-
+
Microsoft Excel
+
+
-
12
Харламов Станислав Денисович
Заключение
В результате моей работы я изучил историю появления программы
Microsoft Excel и язык программирования Python.
В ходе выполнения исследовательской работы я освоил базовый
функционал табличного редактора Microsoft Exсel, что позволило
подтвердить свою гипотезу о том, что выполнение задания №22 ЕГЭ по
информатике лучше выполнять с помощью Microsoft Excel.
13
Литература
Список литературы
1. https://ru.wikipedia.org/wiki/Python
2. https://ru.wikipedia.org/wiki/Microsoft_Excel
3. https://inf-ege.sdamgia.ru/
14
Скачать