Паскаль для школьников
Покупка
Основная коллекция
Тематика:
Информатика
Издательство:
РИОР
Автор:
Попов Владимир Борисович
Год издания: 2021
Кол-во страниц: 374
Возрастное ограничение: 12+
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
Среднее общее образование
ISBN: 978-5-369-01038-9
ISBN-онлайн: 978-5-16-110459-0
Артикул: 172800.07.01
Пособие представляет собой курс по изучению популярного языка программирования — Паскаль. В нем последовательно излагаются основные принципы структурного программирования в интегрированной среде программирования Turbo Pascal и Pascal ABC.
Учебный материал разделен на 10 глав. Изложение материала ведется на основе примеров рабочих программ. Для проверки усвоения теоретического материала в конце каждой главы имеются контрольные вопросы. Выполнение заданий по разработке приложений поможет сформировать прочные навыки программирования.
Книга предназначена для учащихся и студентов общеобразовательных, высших и средних учебных заведений и благодаря наличию большого количества детально рассмотренных примеров, вопросов и заданий может быть использована для самообразования.
Тематика:
ББК:
УДК:
ОКСО:
- Среднее профессиональное образование
- 09.02.03: Программирование в компьютерных системах
- 09.02.05: Прикладная информатика (по отраслям)
- ВО - Бакалавриат
- 03.03.02: Прикладная математика и информатика
- 09.03.01: Информатика и вычислительная техника
- 09.03.03: Прикладная информатика
- ВО - Магистратура
- 09.04.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
ПАСКАЛЬ ДЛЯ ШКОЛЬНИКОВ УЧЕБНОЕ ПОСОБИЕ Москва РИОР ИНФРА-М В.Б. ПОПОВ
УДК 004.438(075) ББК 32.973.26-018.1я73 П57 Попов В.Б. Паскаль для школьников : учебное пособие / В.Б. Попов. — Москва : РИОР : ИНФРА-М, 2021. — 374 с. ISBN 978-5-369-01038-9 (РИОР) ISBN 978-5-16-005409-4 (ИНФРА-М, print) ISBN 978-5-16-103198-8 (ИНФРА-М, online) Пособие представляет собой курс по изучению популярного языка про граммирования — Паскаль. В нем последовательно излагаются основные принципы структурного программирования в интегрированной среде программирования Turbo Pascal и Pascal ABC. Учебный материал разделен на 10 глав. Изложение материала ведется на основе примеров рабочих программ. Для проверки усвоения теоретического материала в конце каждой главы имеются контрольные вопросы. Выполнение заданий по разработке приложений поможет сформировать прочные навыки программирования. Книга предназначена для учащихся и студентов общеобразовательных, высших и средних учебных заведений и благодаря наличию большого количества детально рассмотренных примеров, вопросов и заданий может быть использована для самообразования. УДК 004.438(075) ББК 32.973.26-018.1я73 П57 © Попов В.Б. ISBN 978-5-369-01038-9 (РИОР) ISBN 978-5-16-005409-4 (ИНФРА-М, print) ISBN 978-5-16-103198-8 (ИНФРА-М, online) Автор: Попов В.Б. — кандидат технических наук, доцент. Является автором более 120 печатных работ, в том числе 21 учебнометодического пособия, по содержанию и методике обучения информационно-коммуникационным технологиям, управлению в социальных и экономических системах Рецензент: Грибанов В.П. — кандидат экономических наук, доцент, профессор кафедры «Математическое обеспечение и администрирование информационных систем» Московского государственного университета экономики, статистики, информатики (МЭСИ) ФЗ № 436-ФЗ Издание не подлежит маркировке в соответствии с п. 1 ч. 2 ст. 1
ПРЕДИСЛОВИЕ Уважаемый читатель, формирование информационной и алгоритмической культуры, развитие алгоритмического мышления, необходимого для профессиональной деятельности в современном обществе, развитие умений составить и записать алгоритм для конкретного исполнителя, формирование знаний об алгоритмических конструкциях, логических значениях и операциях являются одними из важнейших результатов освоения образовательной программы общего образова- ния. Чтобы достичь вышеуказанных результатов, нужно заниматься программированием. Эта книга представляет собой курс по изучению одного из популярных языков программирования — Pascal. В ней последовательно излагаются основные принципы структурного программирования, языка программирования Pascal, объектно-ориентированного программирования. Большое внимание в книге уделено изучению использованию при разработке программ интегрированной среды программирования Turbo Pascal. В первой главе вы узнаете, что такое компьютерная программа, каково назначение языков программирования, а также научитесь использовать интегрированную среду программирования Turbo Pascal для редактирования, компиляции и отладки программы. Во второй главе книги вы узнаете алфавит и словарь языка Pascal, методы описания синтаксических конструкций языка программирования, структуру Pascal-программы. В третьей главе вы познакомитесь с типами данных в Паскале, узнаете, как правильно записывать различные выражения, организовать ввод данных и вывод результатов работы. В четвертой главе вы научитесь использовать операторы языка Pascal для записи линейных, разветвляющихся и циклических алгоритмов, а также узнаете порядок тестирования и отладки программ. Материал пятой главы посвящен изучению структурного подхода к разработке алгоритмов и программ. В этой главе вы практически научитесь использовать процедуры и функции языка Паскаль. С шестой по девятой главы вы познакомитесь со структурированными типами данных: строками, массивами, множествами, записями и файлами и практически научитесь использовать процедуры и функции их обработки. В десятой главе вы познакомитесь с динамическими структурами данных, средствами их обработки и научитесь рационально использовать память компьютера, используя динамические переменные. В приложении 1 представлен словарь терминов. Материалы, представленные в приложении 2, познакомят вас c меню интегрированной среды программирования Турбо Pascal 7.0. В приложении 3 детально описан интерфейс системы программирования Pascal ABC. Материал каждой главы содержит большое количество подробно разобранных примеров программ. Все приведенные примеры программ можно найти в Интернете по адресу: http://www.vb-popov.narod.ru.
Интегрированная среда разработки приложений Turbo Pascal 7 поставлена во все общеобразовательные учебные заведения России в рамках проекта «Обеспечение лицензионной поддержки стандартного базового пакета программного обеспечения для использования в общеобразовательных учреждениях Российской Федерации». Как пользоваться этой книгой Уважаемый читатель, каждая часть книги является самостоятельным разделом, поэтому при изучении учебного материала книги возможны различные подходы. В конце каждой главы подводятся итоги, чему мы научились, а также приводятся вопросы, которые вы можете использовать для проверки успешности усвоения теоретического материала, и задания для самостоятельной работы. Начинающим программистам рекомендуем последовательно изучать теоретический материал каждой главы и только затем переходить к выполнению практических упражнений. Читателям, которые знают теоретический материал, рекомендуется повторить синтаксические описания (структур данных, операторов, процедур и функций), проверить прочность знаний, ответив на контрольные вопросы, а затем перейти к выполнению заданий практической части. Очевидно, что данное пособие не может охватить все детали использования среды программирования Turbo Pascal 7.0, поэтому в конце книги приводится список литературы и ссылок на информационные ресурсы в Интернете, которые могут расширить ваши знания по программированию. Выражаю глубокую признательность всем коллегам, которые помогли выходу этой книги. Все замечания и пожелания по поводу данной книги будут приняты автором с благодарностью по адресу: vb-popov@yandex.ru.
ВВЕДЕнИЕ Эволюция языков программирования Языки программирования претерпели большие изменения с тех пор, как в сороковых годах XX века началось их использование. Первые языки программирования были очень примитивными и мало чем отличались от формализованных упорядочений двоичных чисел (единиц и нулей), понятных компьютеру. Их называют языками программирования низкого уровня. Использование таких языков было крайне неудобно с точки зрения программиста, так как он должен был знать числовые коды всех машинных команд и собственноручно распределять память под команды программы и данные. Чтобы упростить общение человека с компьютером, были разработаны языки программирования типа Ассемблер, в которых переменные величины стали изображаться символическими именами, а числовые коды операций были заменены на мнемонические (словесные) обозначения, которые легче запомнить. Язык программирования приблизился к человеческому языку, но удалился от языка машинных команд. Поэтому, чтобы компьютер мог работать на языке Ассемблера, понадобился транслятор — программа, переводящая текст программы на Ассемблере в эквивалентные машинные команды. Языки типа Ассемблер являются машино-ориентированными, потому что они настроены на структуру машинных команд конкретного компьютера. Разные компьютеры с разными типами процессоров имеют разный Ассемблер. В пятидесятых годах XX века, в связи с широким применением компьютеров в различных областях науки и техники возникла серьезная проблема: простые пользователи не могли работать с компьютером из-за сложности языков программирования, а профессиональные программисты были не в состоянии обслужить огромное количество пользователей. Решением данной проблемы явилось создание языков программирования высокого уровня, форма записи программ на которых по сравнению с Ассемблером и машинными языками ближе к традиционной математической форме и разговорному языку. Важным преимуществом языков программирования высокого уровня является машинная независимость, поэтому одна и та же программа на таком языке может быть выполнена на компьютерах различных типов, оснащенных соответствующим транслятором. К недостаткам программ, написанных на языках высокого уровня, относятся большой объем занимаемой памяти и более медленное выполнение, чем у программ на машинных языках или языках Ассемблера. Первыми популярными языками высокого уровня, появившимися в 50-х годах XX века, были Фортран, Кобол и Алгол. В 60-70-х годах XX века появилось огромное количество новых языков программирования. В 1965 году появились два новых важных языка. Для обучения программированию был разработан язык, который являлся упрощенной версией Фортрана и получил название Бейсик (Beginner’s All-purpose Simbolic Instruction Code, многоцелевой код
символических команд для начинающих). Бейсик предоставил пользователю разнообразные средства для диалога с компьютером во время выполнения программы. Вторым языком, появившемся в 1965 году, был ПЛ/1 (Programming Language 1, язык программирования 1). При его создании преследовалась цель создать язык, сочетающий в себе лучшие свойства Алгола, Кобола и Фортрана, и в конечном итоге заменяющий своих предшественников. Однако этого не произошло, в связи с тем, что ПЛ/1 не проявил тех преимуществ, которые оправдали бы переход к нему. К тому же, большое количество средств и разнообразие операторов ПЛ/1 привели к сложности в его изучении. В 1971 году профессор Н. Вирт из института информатики Швейцарской высшей политехнической школы в Цюрихе разработал новый язык, получивший название «Паскаль» (в честь математика XVII-го века Блеза Паскаля). Язык Паскаль основан на Алголе, и создавался как учебный язык, в нем строго соблюдена структурная линия программирования. В силу своих достоинств Паскаль, послужил источником для создания многих современных языков программирования, таких как Ада, Си и Модула-2. Язык Си первоначально был разработан для компьютеров, использующих операционную систему UNIX. Он является относительно простым языком, в нем нет операций над символьными строками и списками, но, в отличие от Паскаля, в нем заложены возможности непосредственного обращения к некоторым машинным командам, к определенным участкам памяти компьютера. Си широко используется как инструментальный язык для разработки операционных систем, трансляторов, баз данных, а также других системных и прикладных программ. направления развития языков программирования В развитии языков программирования выделяются два основных направления: процедурное и непроцедурное. В процедурных языках программа явно описывает действия, которые необходимо выполнить, а результат задается способом получения его при помощи некоторой процедуры — определенной последовательности действий. Основными средствами, применяемыми в этих языках, являются величины (в том числе и табличные), присваивания, циклы, процедуры. При построении процедурной программы необходимо ясно представлять, какие действия и в какой последовательности будут производиться при ее выполнении. Среди процедурных языков можно, в свою очередь, выделить структурные и операционные языки. В структурных языках одним оператором записываются целые алгоритмические структуры: ветвления, циклы. В операционных языках для этого используются несколько операций. Широкое распространение получили структурные языки Паскаль, Си, Ада, ПЛ/1 и операционные языки Фортран, Бейсик, Фокал. Непроцедурное (декларативное) программирование появилось в начале 70-х годов, но его развитие началось в 80-е годы в связи с проектом по созданию компьютеров пятого поколения, целью которого явилась подготовка почвы для создания интеллектуальных машин. К непроцедурному программированию относятся функциональные и
логические языки. В функциональных языках программа описывает вычисление некоторой функции. Обычно эта функция задается как композиция других, более простых, те в свою очередь разбиваются на еще более простые, и т. д. Один из основных элементов в функциональных языках — рекурсия, то есть вычисление значения функции через значение этой же функции от других элементов. Наиболее распространенными среди функциональных языков являются Лисп и Рефал. Лисп, являющийся языком обработки списков, давно и активно применяется в системах искусственного интеллекта. Рефал, построенный на алгоритмах Маркова, удобен для обработки текстов и является единственным из распространенных в мире языков программирования, разработанным в нашей стране. Промежуточное положение занимает язык Лого, который содержит средства и процедурного, и функционального программирования. На начальном уровне он похож на классический процедурный язык, а при решении сложных задач обработки данных на первый план выходят функциональные методы. Функциональная программа, как и процедурная, описывает действия, которые надо совершить для достижения результата (вызов функции — это тоже действие), но ее построение требует скорее математического, чем алгоритмического мышления. В логической традиции программа вообще не описывает действий. Она задает данные и соотношения между ними. После этого можно задавать вопросы. Машина перебирает известные (заданные в программе) данные и находит ответ на вопрос. Порядок перебора не описывается в программе, а неявно задается самим языком. Классическим языком логического программирования считается Пролог, хотя он и содержит некоторые средства управления перебором, т. е., процедурные элементы. Построение логической программы вообще не требует алгоритмического мышления. Здесь нет динамики, нет описания действий, программа описывает статические отношения объектов, а динамика находится в механизме перебора и скрыта от программиста. Можно выделить еще один класс языков программирования — объектно-ориентированные языки сверхвысокого уровня. На таких языках не описывают подробной последовательности действий для решения задачи, хотя они содержат элементы процедурного программирования. Объектно-ориентированные языки, благодаря богатому пользовательскому интерфейсу, предлагают человеку решить задачу в удобной для него форме. Примером такого языка может служить язык программирования визуального общения Smalltak. Трудно провести четкую границу между системами программирования сверхвысокого уровня и прикладным программным обеспечением. Как те, так и другие системы позволяют работать с ними неквалифицированному пользователю, не являющемуся программистом. Интегрированные среды разработки программ Трудоемкость создания сложных компьютерных программ и разнообразие средств, используемых в процессе разработки программы для написания кода, компиляции и отладки, привело в 80-х годах XX века к осознанию необходимости интеграции этих средств. В те годы фирма Borland International, Inc (США) разработала систему Турбо Паскаль, которую называют интегрированной (integration — объединение отдель
ных элементов в единое целое) средой программирования, так как она объединяет в себе возможности ранее разрозненных средств, используемых при разработке программ: редактора текстов, компилятора, компоновщика и отладчика. Часто ее кратко называют IDE (Integrated Development Environment, интегрированная среда разработки). Язык Паскаль признан многими российскими преподавателями как один из лучших именно для начального обучения, а среда Турбо Паскаль имеет замечательные дидактические возможности для обучения начинающих программистов (проста и интуитивно понятна, с хорошо организованным меню, с пошаговой отладкой и просмотром значений выражений и переменных, с контекстной системой помощи). В приложении 2 детально описано меню интегрированной системы программирования Turbo Pascal 7.0. В связи с тем, что разработка среды Turbo Pascal в компании Borland с 1995 года прекращена, а также в связи с тем, что среда Turbo Pascal не работает в Windows 7, Linux, в России для обучения программированию школьников и студентов младших курсов высших и средних специальных учебных заведений все более популярной становится система Pascal ABC. Автор этой системы – доцент механико-математического факультета Ростовского государственного университета С.С. Михалкович. В среду программирования Pascal ABC интегрирован электронный задачник, разработанный М.Э. Абрамян. Система Pascal ABC основана на языке Delphi Pascal и призвана осуществить постепенный переход от простейших программ к модульному, объектно-ориентированному, событийному и компонентному программированию. Многие концепции в Pascal ABC сознательно упрощены, что позволяет использовать их на более ранних этапах обучения. Например, модуль графики обходится без объектов, хотя его возможности практически совпадают с графическими возможностями Borland Delphi. Простейшие событийные программы также можно писать без объектов, пользуясь лишь процедурными переменными. Даже в консольных программах можно создавать таймеры и звуки, которые реализованы без использования объектов. Модули устроены практически так же, как и основная программа: отсутствует разделение на секцию интерфейса и секцию реализации. Тела методов можно определять непосредственно внутри классов, что позволяет создавать классы практически сразу после изучения записей, процедур и функций. Имеется модуль контейнерных классов (динамические массивы, стеки, очереди, множества), а также библиотека визуальных компонентов. Компилятор Pascal ABC не генерирует исполняемый код в виде .exe-файла, а создает в результате компиляции дерево программы в памяти, которое затем выполняется с помощью встроенного интерпретатора. Все примеры, разобранные в данной книге, за исключением процедур и функций пользователя, размещаемых в отдельном файле, будут без проблем исполняться в среде Pascal ABC. В приложении 3 детально описан интерфейс системы программирования Pascal ABC.
Переход к визуальному программированию В конце XX века стандартом интерфейса пользователя компьютерных программ становится графический интерфейс (GUI). Примечание. GUI (graphical user interface) — графический интерфейс пользователя, использующий окна (windows), значки (icons) и мышь (mouse). Взаимодействие пользователя с программой средствами GUI основано на интуитивно понятных принципах, что обеспечивает продуктивное использование компьютера даже неподготовленным пользователем. GUI предлагает более сложное и дружелюбное окружение пользователя, чем командно-управляемый интерфейс DOS. Однако при разработке приложений c GUI возникали большие трудности программирования, потому что для отображения объектов интерфейса пользователя (меню, окон, кнопок, и т. п.) требовалось написание фрагмента кода программы, создающего и настраивающего объект «по месту». Увидеть же закодированные объекты можно было только в ходе исполнения программы. При таком подходе достижение того, чтобы объекты выглядели и вели себя заданным образом, было утомительным процессом, требующим неоднократных исправлений кода с последующим запуском программы и просмотром полученного результата. С целью преодоления трудностей на этапе создания интерфейса пользователя в конце XX века широкое распространение получило визуальное программирование. Средства визуального программирования предоставляют программисту возможность наглядным образом конструировать интерфейс, изображая объекты интерфейса на экране на этапе конструирования элементов интерфейса программы с автоматической генерацией соответствующего кода. После того, как объект помещен в форму среды визуального программирования, все его атрибуты сразу отображаются в виде кода, который соответствует объекту как единице, исполняемой в ходе работы программы. Благодаря средствам визуальной разработки можно работать с объектами, держа их перед глазами и получая результаты практически сразу. Способность видеть объекты такими, какими они появляются в ходе исполнения программы, снимает необходимость проведения множества операций вручную. Одним из популярных средств разработки приложений с использованием методов визуального программирования является среда программирования Delphi. Язык, на котором разрабатываются приложения в Delphi, — это Object Pascal. С одной стороны, это прежний Паскаль, поскольку все его основные конструкции сохранены. С другой стороны, важнейшая составная часть языка, модель объектов, подверглась коренному преобразованию. Причем Delphi, начиная с 4-й версии, наряду с приложениями, использующими графический пользовательский интерфейс, позволяет создавать консольные приложения. Примечание. Консольные приложения — это особый вид Windowsприложений. С одной стороны, такое приложение имеет полный доступ к функциям Win API, с другой — не имеет графического интерфейса и выполняется в текстовом режиме.
ГЛаВа 1. СРЕДа ПРОГРаммИРОВанИя Turbo Pascal В этой главе книги вы узнаете, что такое компьютерная программа, каково назначение языков программирования, а также научитесь использовать интегрированную среду программирования Turbo Pascal для редактирования, компиляции и отладки программы. После изучения главы вы должны знать: ● Что такое компьютерная программа. ● Назначение языков программирования. ● Назначение и виды трансляторов. ● Порядок использования интегрированной среды Turbo Pascal при создании и отладки программ. ● Порядок использования справочной системы Turbo Pascal. Компьютерная программа Для того чтобы компьютер выполнил какую-либо работу необходимо составить для него упорядоченную последовательность команд (инструкций) — компьютерную программу. Для записи компьютерных программ используются языки программирования. язык программирования Pascal Язык программирования Pascal был разработан в 1968—1971 гг. Никлаусом Виртом. Он был назван в честь выдающегося французского математика и философа Блеза Паскаля (1623—1662) и первоначально создавался для обучения программированию как систематической дисциплине, однако вскоре стал широко использоваться в профессиональном программировании. Популярности языка Pascal у программистов способствовали следующие факторы: Благодаря своей компактности и удачному первоначальному описанию Pascal оказался довольно легким для изучения. Pascal отражает фундаментальные и наиболее важные концепции (идеи) алгоритмов в очевидной и легко воспринимаемой форме, что предоставляет программисту средства, помогающие проектировать программы. Язык позволяет четко реализовать идеи структурного программирования и структурной организации данных. Pascal сыграл большую роль в развитии методов аналитического доказательства правильности программ и позволил реально перейти от методов отладки программ к системам автоматической проверки правильности программ. Применение языка Pascal позволило значительно поднять планку надежности разрабатываемых программ за счет требований языка к описанию используемых в программе переменных, проверки согласованности программы при компиляции без ее выполнения. Использование в Pascal простых и гибких структур управления: ветвлений и циклов.