Практикум по информатике: основы алгоритмизации и программирования
Покупка
Тематика:
Общая информатика
Издательство:
Директ-Медиа
Автор:
Колокольникова Алла Ивановна
Год издания: 2017
Кол-во страниц: 423
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Специалитет
ISBN: 978-5-4499-0097-5
Артикул: 801754.01.99
Практикум предназначен для получения навыков работы с языком программирования VBA (Visual Basic for Applications). Дано описание визуальной среды программирования. Изложены приемы разработки графического интерфейса проектов, интегрированных с офисным приложением Microsoft Excel. Сделан акцент на работу с основными алгоритмическими структурами, технологии обработки массивов данных, программирование графики. Представлены процедуры численных методов решения полиномов, нелинейных уравнений, нахождения экстремумов, вычисления интегралов и суммы ряда, приведены примеры применения VBA для программирования задач АВС-анализа. Рассмотрены основы двоичного кодирования в машинной арифметике, реализация базовых алгоритмов на диалектах языка Pascal и в интегрированной среде разработки Delphi 10.3. Учебное издание содержит более 200 примеров и более 350 заданий, вопросы для самопроверки усвоения изученного материала. Практикум можно рекомендовать студентам всех специальностей и форм обучения для аудиторной и самостоятельной работы. Целесообразно использовать издание тем, кто занимается обучением, а также всем желающим освоить навыки автоматизации работы в Excel и разработки Windows-приложений.
Тематика:
ББК:
УДК:
ОКСО:
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
А. И. Колокольникова ПРАКТИКУМ ПО ИНФОРМАТИКЕ: ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ Москва Берлин 2019
УДК 004.42(076) ББК 32.973я7 К61 Рецензенты: Богомолов А. Р. — доктор технических наук, профессор, заведующий кафедрой теплоэнергетики федерального государственного бюджетного образовательного учреждения высшего образования «Кузбасский государственный технический университет имени Т. Ф. Горбачева»; Чуешев А. В. — кандидат физико-математических наук, доцент кафедры фундаментальной математики федерального государственного бюджетного образовательного учреждения высшего образования «Кемеровский государственный университет» Колокольникова, А. И. К61 Практикум по информатике: основы алгоритмизации и программирования / А. И. Колокольникова — Москва ; Берлин : Директ-Медиа, 2017. — 423 с. ISBN 978-5-4499-0097-5 Практикум предназначен для получения навыков работы с языком программирования VBA (Visual Basic for Applications). Дано описание визуальной среды программирования. Изложены приемы разработки графического интерфейса проектов, интегрированных с офисным приложением Microsoft Excel. Сделан акцент на работу с основными алгоритмическими структурами, технологии обработки массивов данных, программирование графики. Представлены процедуры численных методов решения полиномов, нелинейных уравнений, нахождения экстремумов, вычисления интегралов и суммы ряда, приведены примеры применения VBA для программирования задач АВСанализа. Рассмотрены основы двоичного кодирования в машинной арифметике, реализация базовых алгоритмов на диалектах языка Pascal и в интегрированной среде разработки Delphi 10.3. Учебное издание содержит более 200 примеров и более 350 заданий, вопросы для самопроверки усвоения изученного материала. Практикум можно рекомендовать студентам всех специальностей и форм обучения для аудиторной и самостоятельной работы. Целесообразно использовать издание тем, кто занимается обучением, а также всем желающим освоить навыки автоматизации работы в Excel и разработки Windows-приложений. Текст приводится в авторской редакции УДК 004.42(076) ББК 32.973я7 ISBN 978-5-4499-0097-5 © Колокольникова А. И., текст, 2019 © Издательство «Директ-Медиа», оформление, 2019
Оглавление Введение ....................................................................................................................... 8 1. АЛГОРИТМИЗАЦИЯ И ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ ........... 10 1.1. Определение алгоритма и его свойства ............................................................ 10 1.2. Способы записи и средства описания алгоритма ............................................ 11 1.3. Рисование блок-схемы алгоритма в приложениях Microsoft Office .............. 14 1.4. Этапы решения прикладных задач на компьютере ......................................... 16 1.5. Жизненный цикл программного продукта ....................................................... 18 1.6. Технологии и языки программирования ........................................................... 20 1.7. Трансляция, компиляция и интерпретация программ ..................................... 26 1.8. Основные понятия языков программирования ................................................ 27 1.8.1. Линейная структура ...................................................................................... 29 1.8.2. Разветвляющаяся структура ........................................................................ 30 1.8.3. Циклическая структура ................................................................................ 32 2. ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ PASCAL .......................... 37 2.1. Представление информации в различных системах счисления ..................... 37 2.2. Основы двоичного кодирования в машинной арифметике ............................ 39 2.3. Организация программ линейной структуры. Ввод и вывод данных ........... 42 2.4. Организация программ разветвляющейся структуры ..................................... 46 2.5. Организация программ циклической структуры ............................................. 47 2.5.1. Алгоритмы обработки одномерных массивов ........................................... 49 2.5.2. Алгоритмы обработки двумерных массивов ............................................. 51 2.6. Записи в Pascal ..................................................................................................... 53 2.7. Алгоритмы обработки данных строкового типа .............................................. 55 2.8. Управление экраном и звуком компьютера в Turbo Pascal ............................ 57 2.9. Графика в Pascal .................................................................................................. 61 2.10. Работа с формами в Pascal ABC .................................................................. 63 3. ОСНОВЫ ПРОГРАММИРОВАНИЯ В СРЕДЕ VBA ..................................... 66 3.1. Основы объектно-ориентированного программирования .............................. 66 3.2. Интегрированная среда разработки VBA ......................................................... 69 3.3. Основные конструкции языка программирования VBA ................................ 76 3.3.1. Технологии ввода и вывода данных на VBA ............................................. 80 3.3.2. Использование объектов для работы с диапазонами ячеек ..................... 83 4. ПРАКТИКУМ ПО ОСНОВНЫМ АЛГОРИТМИЧЕСКИМ КОНСТРУКЦИЯМ VBA .......................................................................................... 86 4.1. Программирование линейного вычислительного процесса ........................... 86 4.2. Создание и редактирование макросов с помощью макрорекордера ............. 97 4.3. Работа с объектом Range: чтение и запись данных на рабочем листе ........ 103 4.3.1. Переменные объектов ................................................................................ 106 4.3.2. Использование оператора With ................................................................. 108 4.3.3. Методы и свойства объекта Range ............................................................ 109 4.4. Программирование разветвляющихся вычислительных процессов ............ 112 4.4.1. Оператор условия If .................................................................................... 112
4.4.2. Оператор выбора Select Case ..................................................................... 117 4.5. Разработка программ для циклического вычислительного процесса ......... 122 4.5.1. Вычисляемый цикл ..................................................................................... 122 4.5.2. Программирование табулирования функции .......................................... 124 4.5.3. Циклы с условием ....................................................................................... 127 4.5.4. Смешанные циклы ...................................................................................... 132 4.5.5. Вложенные циклы ....................................................................................... 133 4.6. Обработка массивов на языке VBA ................................................................. 134 4.6.1. Цикл объектного типа For Each…Next для массивов ............................. 136 4.6.2. Автоматизация обработки массивов с Range........................................... 137 4.6.3. Алгоритмы обработки одномерных массивов ......................................... 142 4.6.4. Программная обработки одномерных массивов на рабочем листе ....... 143 4.6.5. Проекты обработки одномерных массивов в циклах с условием ......... 148 4.6.6. Сравнение обработки массивов и данных пользовательского типа ...... 157 4.6.7. Алгоритмы обработки двумерных массивов ........................................... 160 4.6.8. Вывод массива в несколько колонок на окне MsgBox ........................... 165 4.7. Пользовательские процедуры и функции ....................................................... 165 4.8. Технологии вычислений в VBA ...................................................................... 173 4.8.1. Функция Array для обработки массивов .................................................. 173 4.8.2. Функция Split формирования массива из строковой переменной ......... 175 4.8.3. Запись двумерного массива с использованием вложенных литералов 176 4.8.4. Использование функций рабочего листа Excel в VBA ........................... 178 5. РАЗРАБОТКА ГРАФИЧЕСКОГО ИНТЕРФЕЙСА ПРОЕКТА В VBA ...... 181 5.1. Использование элементов управления на рабочем листе MS Excel ............ 181 5.1.1. Расчеты в Excel с помощью кнопки экранного интерфейса и клавишного макроса ............................................................................................ 182 5.1.2. Проект расчета стоимости заказа с элементами управления формы .... 188 5.1.3. Пример ввода/вывода данных с элементами управления формы ......... 193 5.2. Работа с элементами управления на форме пользователя UserForm ........... 196 5.3. Примеры проектов с управляющими элементами Label, TextBox, Image .. 201 5.3.1. Разработка проекта контроля веса ............................................................ 203 5.3.2. Проект выбора наименьшего числа из одномерного массива ............... 204 5.3.3. Имена констант в обмене данными между формой и таблицей ............ 205 5.3.4. Вычисление площади треугольника по формуле Герона ....................... 206 5.3.5. Численные методы решения нелинейных уравнений ............................. 208 5.3.6. Метод золотого сечения – численный метод поиска экстремума ......... 218 5.3.7. Схема Горнера для решения полиномиальных уравнений .................... 224 5.3.8. Численные методы вычисления интегралов ............................................ 228 5.4. Примеры применения элемента ListBox ......................................................... 232 5.4.1. Автоматизация обработки массивов данных в VBA .............................. 234 5.4.2. Проект создания корзины и расчета стоимости покупки ....................... 239 5.4.3. Создание списка ListBox из нескольких колонок ................................... 242 5.4.4. Нахождение суммы членов ряда в Microsoft Excel ................................. 243 5.5. Технологии оформления главной страницы приложения (проекта) ........... 251
5.5.1. Пример применения элементов Frame, OptionButton, CheckBox и ScrollBar для расчета стоимости покупки ............................................................. 251 5.5.2. Особенности работы элемента ToggleButton (выключатель) ................ 256 5.5.3. Расчет стоимости авиабилетов с применением элементов ScrollBar и OptionButton ............................................................................................................. 257 5.5.4. Расчет суммы чисел с применением элементов ScrollBar и SpinButton 259 5.5.5. Применение элемента SpinButton в задачах табулирования функции одной переменной ................................................................................................... 261 5.5.6. Обработка результатов тестирования ....................................................... 266 5.6. Управляющие элементы работы со вкладками MultiPage и TabStrip .......... 268 5.6.1. Пример проекта с элементами MultiPage, ListBox, TextBox и Label .... 268 5.6.2. Организация меню на листе Excel для примера работы с массивом .... 273 5.6.3. Работа с набором вкладок TabStrip ........................................................... 276 5.7. Управляющий элемент ComboBox (поле со списком) .................................. 278 5.7.1. Проект перевода чисел в выбранную систему счисления – пример заполнения ComboBox значениями из массива ................................................... 279 5.7.2. Проект «Сигналы светофоров» – пример заполнения ComboBox значениями из ячеек ................................................................................................ 280 5.7.3. Пример заполнения ComboBox методом AddItem .................................. 282 5.8. Применение технологий VBA для автоматизации задач АВС-анализа ............. 283 5.9. Примеры работы с несколькими листами книги Excel ....................................... 291 5.10. Пример разработки проектной документации ......................................... 295 5.11. Примеры дополнительных элементов управления VBA ........................ 300 5.12. Решение графических задач в Excel и VBA .............................................. 304 5.12.1. Построение линий в полярной системе координат .............................. 304 5.12.2. Применение ScrollBar для задач с построением диаграмм в Excel ....... 309 5.12.3. Построение диаграмм средствами VBA ................................................ 310 5.12.4. Работа с графическими объектами ........................................................ 317 5.13. Краткие рекомендации по приемам программирования в VВА ............ 319 6. ОСНОВЫ ПРОГРАММИРОВАНИЯ В СРЕДЕ DELPHI ............................. 332 6.1. Интегрированная среда разработки Delphi 10.3............................................. 332 6.1.1. Состав главного окна Delphi 10.3 .............................................................. 332 6.1.2. Особенности создания проектов в среде Delphi ...................................... 334 6.1.3. Способы ввода и вывода данных .............................................................. 339 6.2. Программирование алгоритмической структуры следования ..................... 341 6.2.1. Примеры разработки приложений в Delphi ............................................. 341 6.2.2. Технологии использования компонента Image ....................................... 347 6.3. Управляющие структуры языка Delphi ........................................................... 350 6.3.1. Программирование ветвлений на Delphi .................................................. 351 6.3.2. Переключатели Delphi для множественного выбора .............................. 355 6.4. Циклы и массивы в Delphi ................................................................................ 357 6.4.1. Табулирование функции в таблице StringGrid ........................................ 357 6.4.2. Основы работы с одномерными массивами ............................................ 361 6.4.3. Двумерные массивы в среде Delphi .......................................................... 366
6.5. Процедуры и функции Delphi: создание и вызов в программе .................... 367 6.6. Примеры графических приложений в Delphi ................................................. 370 6.6.1. Отображение графики на канве Canvas .................................................... 371 6.6.2. Построение диаграмм с помощью компонента Chart ............................. 375 6.7. Контрольные вопросы ...................................................................................... 381 7. ТЕМАТИКА ЗАДАНИЙ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ ............. 383 МОДУЛЬ «СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ» ................................... 383 7.1. Задачи по теме «Основы алгоритмизации» .................................................... 383 7.2. Задачи по теме «Линейный вычислительный процесс: технологии ввода и вывода данных» ....................................................................................................... 388 7.3. Задачи по теме «Программирование алгоритмов линейной структуры с применением управляющих элементов» .............................................................. 390 7.4. Задачи по теме «Разветвляющийся вычислительный процесс» ................... 392 7.5. Задачи по теме «Вычисляемый цикл»............................................................. 395 7.6. Задачи по теме «Циклы с условием» .............................................................. 395 7.7. Задачи по теме «Табулирование функции одной переменной» ................... 396 7.8. Задачи по теме «Одномерные массивы на листе Excel» ............................... 398 7.9. Задачи по теме «Одномерные массивы на пользовательской форме» ........ 398 7.10. Задачи с блок-схемами алгоритмов обработки массивов ...................... 400 7.11. Задания на массивы со смысловым содержанием................................... 404 7.12. Задачи по теме «Обработка двумерных массивов на листе Excel» ....... 406 7.13. Задачи по теме «Обработка двумерных массивов на пользовательской форме» ...................................................................................................................... 406 МОДУЛЬ «ЧИСЛЕННЫЕ МЕТОДЫ» ................................................................. 407 7.14. Задачи по теме «Решение нелинейных уравнений» ................................ 407 7.15. Задачи по теме «Метод золотого сечения для поиска экстремума» ..... 408 7.16. Задачи по теме «Вычисление значения определенного интеграла» ..... 408 7.17. Задачи по теме «Вычисление суммы членов ряда» ................................ 410 МОДУЛЬ «ИНЖЕНЕРНО-ЭКОНОМИЧЕСКИЕ РАСЧЕТЫ» .......................... 411 7.18. Задачи на обработку массивов с применением элемента ListBox ......... 411 7.19. Задание на разработку модели теста «Этика бизнеса» ........................... 411 7.20. Задачи по теме «Записи» ............................................................................ 413 МОДУЛЬ «РАБОТА С ТЕКСТОМ И ГРАФИКОЙ» .......................................... 413 7.21. Задачи по теме «Обработка строковых переменных» ............................ 413 7.22. Задачи по теме «Управление экраном и звуком» .................................... 414 7.23. Задачи по теме «Графика» ......................................................................... 416 Вопросы и задания для самопроверки .................................................................. 417 Заключение ............................................................................................................... 421 Список литературы.................................................................................................. 422
Введение Широкое распространение в настоящее время получили среды быстрой разработки приложений (RAD – Rapid Application Development), позволяющие пользователям сократить объем создаваемого вручную кода. Описанию примеров реализации базовых алгоритмов в трех средах визуальной разработки – на диалектах языка Pascal, выросших далее в Delphi, и в VBA посвящено данное издание. Вначале рассматриваются теоретические вопросы алгоритмизации и осо бенности программирования на известных реализациях языка Pascal. Значительный объем практикума отведен изучению VBA для Excel – прекрасной среды начального обучения программированию. VBA – это событийно-ориентированный язык программирования, позволяющий расширять приложения Office. Далее показана работа в среде быстрой разработки приложений Delphi, которая является одной из наиболее совершенных систем визуального программирования. Изучение основ офисного программирования в системе VBA Excel и знакомство с визуальной средой быстрой разработки Windows-приложений Borland Delphi – это возможность создания полнофункциональных профессиональных проектов на базе современной объектно-ориентированной концепции. В главе 1 «Алгоритмизация и технологии программирования» приведены определение, свойства и способы представления алгоритма, этапы решения задач на ЭВМ, технологии программирования, описаны эволюция и направления развития языков программирования, этапы работы с программами, базовые алгоритмические структуры. Глава 2 «Основы программирования на языке Pascal» посвящена вопросам представления информации и выполнения арифметических операций в различных системах счисления, изучению основ машинной арифметики, примерам реализации базовых структур алгоритмов в различных диалектах языка Pascal. Глава 3 «Основы программирования на VBA» содержит описание объект ной модели Excel, состава интегрированной среды разработки, основных конструкций языка, технологий ввода и вывода данных на VBA. Наибольший объем публикации занимают глава 4 «Практикум по основным алгоритмическим конструкциям VBA» и глава 5 «Разработка графического интерфейса проекта в VBA». Глава 4 предназначена для изучения методологии структурного программирования, сделан упор на создание макросов, работу с базовыми структурами, технологии обработки массивов и данных пользовательского типа, пользовательские процедуры и функции. Глава 5 демонстрирует примеры разработанных пользовательских приложений на языке VBA в Excel. Рассмотрено размещение на листе рабочей книги элементов управления формы и элементов управления ActiveX. Представлены процедуры численных методов решения нелинейных уравнений, полиномов, вычисления интегралов и суммы ряда, нахождения экстремумов. Подробно разо
браны примеры рекурсии – схема Горнера, вычисление факториала, приближенное нахождение суммы бесконечных рядов; методы численного интегрирования – методы прямоугольников, трапеций, парабол. Изложены приемы разработки графического интерфейса проекта, приемы построения диаграмм и объектов векторной графики VBA. Приведены примеры применения технологий VBA для автоматизации задач АВС-анализа. При работе с пользовательской формой показаны многочисленные примеры процедур, использующих стандартные элементы управления, включенные в VBA: CommandButton, Label, TextBox, ComboBox, ListBox, CheckBox, OptionButton, Image, Frame, ToggleButton, SpinButton, ScrollBar, TabStrip и MultiPage. В главе 6 «Основы программирования в среде Delphi» рассмотрены интегрированная среда разработки и особенности создания проектов в Delphi 10.3, примеры приложений табулирования функции, обработки массивов, использования графических возможностей Delphi, технологии использования процедур и функции, компонентов Image, StringGrid, Chart. Глава 7 «Тематика заданий для самостоятельной работы» содержит более 250 задач, сгруппированных в модули «Структурное программирование», «Численные методы», «Инженерно-экономические расчеты», «Работа с текстом и графикой». Структурированность данного издания, возможность изучения более 200 подробно разобранных примеров базовых алгоритмов в разных средах разработки способствуют усвоению и закреплению пройденного материала, проверке знаний. Практикум предназначен для тех, кто изучает языки программирования самостоятельно или занимается обучением в любой среде программирования. Он может быть полезен программистам, математикам, экономистам, студентам и преподавателям. В результате изучения данного издания и начинающие программисты, и пользователи, принявшие решение автоматизировать часть рутинной работы в Excel, смогут освоить технологии создания и редактирования макросов, визуального проектирования и событийного программирования – технологии конструирования диалоговых окон, проектирования графического пользовательского интерфейса, построения объектно-ориентированных конструкций и создания интегрированных с офисными программами приложений.
1. АЛГОРИТМИЗАЦИЯ И ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ 1.1. Определение алгоритма и его свойства Понятие алгоритма является фундаментальной категорией математики. В Толковом словаре по информатике (1991 г.) дано общепринятое понятие: алгоритм – точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату. Алгоритм позволяет посредством конечного числа шагов получить решение задачи, однозначно определяемое исходными данными. Алгоритм – это строгая, четкая конечная последовательность математических и логических операций, приводящая к решению задачи. Алгоритмизация процессов в широком смысле – это описание процессов на языке математических символов для получения алгоритма, отображающего элементарные акты процесса, их последовательность и взаимосвязь. В более узком смысле алгоритмизация – это процедура поиска, разработки и описания алгоритма решения задачи. Свойства алгоритма При составлении и записи алгоритма необходимо, чтобы он обладал сле дующими свойствами: детерминированность, массовость, результативность, дискретность, конечность, корректность. Детерминированность (определенность, точность, однозначность) заключается в том, что при задании одних и тех же исходных данных несколько раз алгоритм будет выполняться абсолютно одинаково, всегда будет получен один и тот же результат. На каждом шаге выполнения алгоритма всегда точно известно, что делать дальше, каждое действие однозначно понятно исполнителю и не может быть истолковано неопределенно. Благодаря этому свойству выполнение алгоритма носит механический характер. Массовость выражается в том, что с помощью алгоритма можно решать не одну конкретную задачу, а любую задачу из некоторого класса однотипных задач при всех допустимых значениях исходных данных. Результативность (направленность) означает, что выполнение алгоритма обязательно должно привести к решению поставленной задачи, либо к сообщению о том, что при заданных исходных величинах задачу решить невозможно. Алгоритмический процесс не может обрываться безрезультатно. Дискретность означает, что алгоритм состоит из последовательности отдельных шагов – элементарных действий, выполнение которых не представляет
сложности. Именно благодаря этому свойству алгоритм может быть реализован на ЭВМ. Конечность (финишность) заключается в том, что последовательность элементарных действий алгоритма не может быть бесконечной, неограниченной, хотя может быть очень большой, например, если требуется большая точность вычислений. Корректность означает, что если алгоритм создан для решения определенной задачи, то для всех допустимых значениях исходных данных он должен всегда давать правильный результат, ни для каких допустимых исходных данных не будет получен неправильный результат. Если разработанная последовательность действий не обладает хотя бы одним из перечисленных выше свойств, то она не может считаться алгоритмом. 1.2. Способы записи и средства описания алгоритма Описание алгоритма вполне допустимо на естественном языке, но в естественных языках не всегда форме конкретного предложения соответствует единственное содержание. Так, появилась идея построения искусственных формальных языков, в результате чего возникло множество алгоритмических языков. Алгоритмический язык – это система обозначений формальной записи алгоритмов, предназначенных для некоторого исполнителя. Алгоритмический язык довольно близок к обычному разговорному, но более точный, конкретный, лаконичный. В его состав входят операторы, команды, служебные слова и служебные символы. Алгоритмический язык имеет свой синтаксис и семантику. Графическое представление алгоритма в виде структурной схемы – блоксхема – помогает сделать описание алгоритма наглядным. Укрупненная схема позволяет видеть функциональные связи между отдельными фрагментами алгоритма, а более подробные схемы содержат детали, составляющие содержание этих фрагментов. Для реализации на ПК алгоритм необходимо описать на одном из языков программирования в виде программы. При вводе в ПК специальная программатранслятор "переводит" алгоритм на машинный алгоритмический язык, в котором все данные и все действия представляются, в конечном счете, в виде двоичных чисел. После команды на запуск программа выполняется автоматически. Способы представления алгоритма: словесно-формульный способ; табличный; графический способ; псевдокоды; программа на алгоритмическом языке. Первые способы представления алгоритма служат для понимания решения задачи самим человеком, последний способ – единственный «понятный» компьютеру как автоматическому исполнителю.