Алгоритмизация и программирование: подготовка к ЕГЭ по информатике
Покупка
Основная коллекция
Тематика:
Информатика
Издательство:
НИЦ ИНФРА-М
Автор:
Гуриков Сергей Ростиславович
Год издания: 2024
Кол-во страниц: 399
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
Среднее общее образование
ISBN: 978-5-16-016347-5
ISBN-онлайн: 978-5-16-108641-4
DOI:
10.12737/1102077
Артикул: 689795.01.01
В учебном пособии рассмотрены основы алгоритмизации и программирования на языках Pascal, C++ и Python применительно к заданиям Единого государственного экзамена (ЕГЭ) по дисциплине «Информатика и ИКТ». Рассматриваются уровни, непосредственно относящиеся к проверке испытуемого на владение навыками алгоритмического мышления, на знание основных конструкций языка программирования высокого уровня, на сформированность навыков разработки программ в среде программирования. Описано действие линейных, разветвляющихся и циклических структур; уделено внимание программированию на основе функций и процедур, обработке строк и символов.
Соответствует требованиям федеральных государственных образовательных стандартов среднего образования последнего поколения.
Для школьников и лиц, которые готовятся к ЕГЭ по дисциплине «Информатика и ИКТ», абитуриентов, которые собираются сдавать внутренние вступительные экзамены в вузы.
Тематика:
ББК:
УДК:
ОКСО:
- Среднее профессиональное образование
- 09.02.01: Компьютерные системы и комплексы
- 09.02.03: Программирование в компьютерных системах
- 09.02.04: Информационные системы (по отраслям)
- 09.02.05: Прикладная информатика (по отраслям)
- 09.02.06: Сетевое и системное администрирование
- 09.02.07: Информационные системы и программирование
- 10.02.02: Информационная безопасность телекоммуникационных систем
- 10.02.03: Информационная безопасность автоматизированных систем
- ВО - Бакалавриат
- 00.03.03: Информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ ПОДГОТОВКА К ЕГЭ ПО ИНФОРМАТИКЕ С.Р. ГУРИКОВ Москва ИНФРА-М 2024 УЧЕБНОЕ ПОСОБИЕ
УДК 004.4 ББК 16.2 Г95 Р е ц е н з е н т ы: А.И. Волков, кандидат технических наук, доцент, заведующий ка федрой «Информатика» ордена Трудового Красного Знамени федерального государственного бюджетного образовательного учреждения высшего образования «Московский технический университет связи и информатики»; В.В. Аляпкин, кандидат технических наук, начальник отдела спец проектов ООО «Разработка информационных систем» ISBN 978-5-16-016347-5 (print) ISBN 978-5-16-108641-4 (online) © Гуриков С.Р., 2023 Гуриков С.Р. Г95 Алгоритмизация и программирование: подготовка к ЕГЭ по ин форматике : учебное пособие / С.Р. Гуриков. — Москва : ИНФРА-М, 2024. — 399 с. — (ЕГЭ). — DOI 10.12737/1102077. ISBN 978-5-16-016347-5 (print) ISBN 978-5-16-108641-4 (online) В учебном пособии рассмотрены основы алгоритмизации и программи рования на языках Pascal, C++ и Python применительно к заданиям Единого государственного экзамена (ЕГЭ) по дисциплине «Информатика и ИКТ». Рассматриваются уровни, непосредственно относящиеся к проверке испытуемого на владение навыками алгоритмического мышления, на знание основных конструкций языка программирования высокого уровня, на сформированность навыков разработки программ в среде программирования. Описано действие линейных, разветвляющихся и циклических структур; уделено внимание программированию на основе функций и процедур, обработке строк и символов. Соответствует требованиям федеральных государственных образова тельных стандартов среднего образования последнего поколения. Для школьников и лиц, которые готовятся к ЕГЭ по дисциплине «Ин форматика и ИКТ», абитуриентов, которые собираются сдавать внутренние вступительные экзамены в вузы. УДК 004.4 ББК 16.2 Данная книга доступна в цветном исполнении в электронно-библиотечной системе Znanium
Предисловие В настоящее время востребованность специальностей, связанных с информационными технологиями, не вызывает сомнений. Впрочем, по данным Министерства науки и высшего образования Российской Федерации, количество абитуриентов, поступающих на инженерно-технические специальности, все-таки меньше, чем на направления, связанные с медициной, экономикой, сферой международных отношений, журналистикой. Тем не менее отметим, что отделения высших учебных заведений, связанные с информационными технологиями и программированием, очень популярны. Кроме того, следует учесть, что опубликованные обобщенные данные чаще всего отражают ситуацию по всей стране, в регионах показатели несколько иные и говорят о растущей популярности технических направлений. Также следует отметить, что в последнее время количество бюджетных мест на технические специальности увеличивается, а на гуманитарные — сокращается. При выборе профессии, в частности гуманитарных направлений, абитуриенты часто руководствуются соображениями своей текущей успеваемости, набором экзаменов, которые следует сдавать на итоговой аттестации. В частности, к Единому государственному экзамену (ЕГЭ) по дисциплине «Обществознание» подготовиться в короткие сроки гораздо проще, нежели к экзаменам по физике или информатике, ведь базовые знания по таким предметам могут быть недостаточно сформированы еще с седьмого или восьмого классов. Тем не менее по данным, опубликованным Федеральным институтом педагогических измерений (ФИПИ), в 2022 г. в основном периоде ЕГЭ по информатике и информационно-коммуникационным технологиям (ИКТ) приняли участие более 101 тыс. человек, что отражает наметившуюся в последние годы тенденцию роста числа участников ЕГЭ по информатике (в 2018 г. — более 70 тыс. человек, в 2019 и 2020 г. — более 80 тыс. человек, в 2021 г. — более 94 тыс. человек). С учетом постоянно растущего среднего балла абитуриентов, зачисленных на первый курс высших учебных заведений по итогам ЕГЭ, есть основания полагать, что если будущий абитуриент остановил свой выбор на подготовке к ЕГЭ по дисциплине «Информатика и ИКТ», то данный процесс должен быть осуществлен заблаговременно и качественно.
Между тем на основе анализа Федерального института педагогических измерений (ФИПИ) показано, что средний процент выполнения заданий по разделу курса «Алгоритмизация и программирование» равен 45,7 (данные 2020 г.). Это значительно меньше, чем результаты, показанные школьниками по другим разделам: «Кодирование информации и измерение ее количества» (50,7), «Информационное моделирование» (71,3), «Системы счисления» (62,7), «Основы информационно-коммуникационных технологий» (68,1), «Основы алгебры логики» (49,8). Начиная с 2021 г. коренным образом изменилась модель проведения экзамена. В отличие от прошлых лет, когда выпускники записывали ответы к заданиям на бумажный бланк, экзамен стал проводиться в компьютерной форме. Были переработаны уровни, связанные с программированием, акцент сделан именно на практической реализации подобных заданий с помощью симуляторов программного обеспечения, разрешено использовать электронные таблицы и информационный поиск. Отметим, что уровень подготовки участников ЕГЭ по информатике и ИКТ должен соответствовать требованиям государственных образовательных стандартов среднего (полного) общего образования. В частности, для базового уровня изучения необходимо: знать • стандартные приемы написания на алгоритмическом языке программы для решения стандартной задачи с использованием основных конструкций программирования и отладки таких программ; • основные конструкции программирования; уметь • понимать программы, написанные на выбранном для изучения универсальном алгоритмическом языке высокого уровня; • анализировать алгоритмы с использованием таблиц; владеть • навыками алгоритмического мышления и понимания необходимости формального описания алгоритмов. Для профильного уровня: знать • основные алгоритмы обработки числовой и текстовой информации, алгоритмы поиска и сортировки; • универсальный язык программирования высокого уровня (по выбору);
уметь • разрабатывать программы в выбранной среде программирования, включая тестирование и отладку программ; • использовать основные управляющие конструкции; владеть • понятием сложности алгоритма; • представлениями о базовых типах данных и структурах данных; • элементарными навыками формализации прикладной задачи и документирования программ. По результатам сказанного выше можно сделать вывод о том, что потребность в получении фундаментальных знаний по разделу «Алгоритмизация и программирование» для успешной сдачи ЕГЭ по дисциплине «Информатика и ИКТ» актуальна. В результате проведенного анализа контрольных измерительных материалов (КИМ) были определены уровни (6, 12, 16, 17, 22, 24, 25, 26, 27), решение которых можно получить, зная основы алгоритмизации и программирования хотя бы на одном из языков (Паскаль, С++, Python). Следует отметить, что контрольно-измерительные материалы (КИМ) ежегодно претерпевают изменения. Отдельные задания могут иметь другую формулировку, степень сложности, однако основы алгоритмизации и программирования остаются на неизменном уровне. Таким образом, задачей автора при написании настоящего издания была попытка не «угнаться» за всеми ежегодными нюансами изменения КИМ, а в простой и понятной форме изложить основы программирования применительно к сдаче экзамена. Цель настоящего издания — не рассмотреть как можно большее количество вариантов экзаменационных задач (для этих целей существуют уже изданные сборники экзаменационных заданий, тренировочные варианты, многочисленные стримы, например на видео хостинге YouTube, или сайты с соответствующим содержанием), а обеспечить прочное и сознательное освоение основ алгоритмизации и программирования, формирование алгоритмического мышления, которого так часто не хватает будущему участнику ЕГЭ по информатике. В то же время в учебном пособии приводится разбор примеров решения всех уровней задач государственного экзамена, связанных с программированием, и даны рекомендации по их решению. Учебное пособие имеет практикоориентированный характер. Изучив теоретическую составляющую, поработав в средах программирования по набору и отладке программ, представленных
в книге, а также следуя рекомендациям по решению задач, можно овладеть основами алгоритмизации сразу на трех языках программирования: Pascal, C++ и Python. В главе 1 учебного пособия приводятся теоретические основы алгоритмизации, характерные для изучения начальной стадии любого языка программирования: рассматривается алфавит языков, даны представление о типах данных каждого из них и сведения о роли оператора присваивания. В главе 2 описан процесс инсталляции программного обеспечения, необходимого для создания программ, описанных в учебном пособии, для совершенствования практических навыков, что должно в дальнейшем привести к успешному решению задач, приведенных в КИМ. Следует отметить, что в настоящее время существует несколько свободных реализаций языка Pascal, в частности PascalABC.NET, Free Pascal и др., редакторы и компиляторы языков С++, Python, по это му продвинутый пользователь может использовать для подготовки к экзамену привычное ему программное окружение, начинающий — среды программирования, описанные в книге. В главах 3–5 подробно рассматриваются операторы, относящиеся к трем китам программирования — линейному, разветвляющемуся и циклическому алгоритмам. Понимание работы каждого из операторов, реализующих подобные конструкции, является непременным условием решения алгоритмических задач различных уровней. В главе 6 изложен процесс работы с циклами с неизвестным количеством повторений, в частности с оператором while. Круг задач, в которых может использоваться данный оператор, довольно широк, но в первую очередь это 6-й, 12-й и 22-й уровни ЕГЭ. Материал главы 7 даст представление о работе подпрограмм в рассматриваемых языках программирования. На различных примерах показан механизм работы подпрограмм, возвращающих одно или несколько значений. Полученные знания участник ЕГЭ может использовать, например, при решении задач 16-го уровня. Глава 8 посвящена обработке символов и строк, работе с файлами. Описаны базовые алгоритмы обработки символов и строк в языках программирования Free Pascal, C++ и Python. Они могут быть востребованы при создании программ для обработки символьной информации (24-й уровень ЕГЭ). Принципы работы с файлами являются очень актуальными для новой модели компьютерного ЕГЭ, по это му те примеры и тот круг задач, которые
описаны в главе, обязательно будут востребованы для подготовки к решению задач 26-го и 27-го уровней. Глава 9 содержит информацию о работе с одномерными массивами в языках программирования C++ и Free Pascal, списками в Python. Объясняются приемы их инициализации, на большом количестве задач рассмотрены базовые алгоритмы обработки массивов, приемы разработки простых программ с их использованием. Приводятся рекомендации к решению задач 25-го, 26-го и 27-го уровней. В книге приведено более 170 листингов программ, снабженных комментариями. Их практическое воплощение в средах программирования — гарантия успешности на экзамене. Для удобства их чтения полужирным шрифтом выделены основные про граммные конструкции, служебные слова. Каждая глава, посвященная непосредственно программированию, содержит упражнения, примеры решения задач, рекомендации к решению различных уровней. Материал предлагаемого учебного пособия был подготовлен автором на основе многолетнего опыта преподавания курсов для подготовки к ЕГЭ по дисциплине «Информатика», организованных при Московском техническом университете связи и информатики, преподавания курса алгоритмизации и программирования абитуриентам, студентам, получающим среднее и высшее профессиональное образование, подготовки книг по программированию в различных средах.
Глава 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ 1.1. АЛГОРИТМ. СВОЙСТВА АЛГОРИТМА. СПОСОБЫ ОПИСАНИЯ АЛГОРИТМА Если мы хотим написать программу на каком-нибудь языке программирования, то сначала мы должны составить алгоритм решения задачи. Алгоритм — это точное и простое описание последовательности действий для решения данной задачи. Алгоритм содержит несколько шагов, которые должны выполняться в определенной последовательности. Каждый шаг алгоритма может состоять из одной или нескольких простых операций. Каждый из нас ежедневно использует различные алгоритмы: инструкции, правила, рецепты и т.д. Обычно мы это делаем не задумываясь. Например, открывая дверь ключом, никто не размышляет над тем, в какой последовательности выполнять действия. Однако, чтобы кого-нибудь научить открывать дверь, придется четко указать и сами действия, и порядок их выполнения. Например: 1) достать ключ; 2) вставить ключ в замочную скважину; 3) повернуть ключ два раза против часовой стрелки; 4) вынуть ключ. Представим, что мы поменяли местами второе и третье действия. Мы сможем выполнить и этот алгоритм, но дверь не откроется, т.е. алгоритм станет невыполнимым. Для алгоритма важен не только набор действий, но и то, в каком порядке они выполняются. Понятие алгоритма в информатике является фундаментальным, таким же, какими являются понятия точки, прямой и плоскости в геометрии, вещества в химии, пространства и времени в физике и т.д. Свойства алгоритма: • дискретность (прерывность, раздельность) — алгоритм должен представлять процесс решения задачи как последовательное выполнение простых шагов (этапов); • определенность — каждый шаг алгоритма должен быть четким и однозначным. Выполнение алгоритма носит механический ха
рактер и не требует никаких дополнительных сведений о решаемой задаче; • результативность — алгоритм должен приводить к решению задачи за конечное число шагов; • массовость — алгоритм решения разрабатывается в общем, виде, т.е. он должен быть применим для решения некоторого класса задач, различающихся лишь исходными данными. Способы описания алгоритмов: • словесный; • графический; • табличный; • формульный. Словесный способ каждый из нас использует ежедневно, пересказывая собеседнику, например, различные инструкции, правила, кулинарные рецепты, т.е. какую-то последовательность, приводящую к конечному результату. Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным. Нередко для лучшего понимания той или иной ситуации нам проще начертить какую-то схему, план, согласно которому мы будем действовать. В программировании данный способ предпочтительнее других, поскольку позволяет с помощью последовательности функцио нальных блоков, каждый из которых соответствует выполнению одного или нескольких действий, представить ход решения той или иной задачи. Такое представление алгоритма называется структурной схемой алгоритма, или блок-схемой. Табличный способ используется, например, в бухгалтерии при составлении ежегодных отчетов, сводок и т.д. Формульный способ находит свое применение при решении задач из области математики, физики и т.д. Например, при решении квадратного уравнения мы приступаем к нахождению дискриминанта уравнения, а затем, в зависимости от полученного результата, находим корни уравнения по известным всем формулам. 1.2. НАЗНАЧЕНИЕ ФУНКЦИОНАЛЬНЫХ БЛОКОВ На условные обозначения в схемах алгоритмов распространяется ГОСТ 19.701—90 «Единая система программной документации. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения». При рисовании блок-схем мы в основном будем использовать символы (блоки), представленные в табл. 1.1. Назначение других символов можно узнать не
посредственно из ГОСТа, скачав его в интернете. С учетом того, что данный стандарт был введен в действие в далеком 1992 г., некоторые термины могут показаться устаревшими, однако он до сих пор распространяется на условные обозначения в схемах алгоритмов и программ. Схемы отображают путь данных при решении задач и определяют этапы обработки и последовательность операций в программе. Таблица 1.1 Условные обозначения в схемах алгоритмов Терминатор Процесс Символ отображает выход во внешнюю среду и вход из внешней среды (начало или конец схемы программы, внешнее использование и источник или пункт назначения данных) Символ отображает функцию обработки данных любого вида (выполнение определенной операции или группы операций, приводящее к изменению значения, формы или размещения информации, или к определению, по которому из нескольких направлений потока следует двигаться) Данные Символ отображает данные, носитель данных не определен Решение Символ отображает решение или функцию переключательного типа, имеющую один вход и ряд альтернативных выходов, один и только один из которых может быть активизирован после вычисления условий, определенных внутри этого символа. Соответствующие результаты вычисления могут быть записаны по соседству с линиями, отображающими эти пути.