Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Теория и практика программирования на языке Pascal

Покупка
Артикул: 703978.02.99
Доступ онлайн
1 015 ₽
В корзину
В учебном пособии представлено последовательное изложение основ программирования на примере языка Pascal. Рассматриваются структурная, модульная и объектно-ориентированная технологии программирования, методы проектирования и отладки программ, управляющие операторы, основные структуры данных и методы их обработки. Полностью соответствует типовой программе «Методы программирования и информатика» для научно-педагогического направления. Для студентов, изучающих алгоритмический язык Pascal.
Расолько, Г. А. Теория и практика программирования на языке Pascal : учебное пособие / Г. А. Расолько, Ю. А. Кремень. - Минск : Вышэйшая школа, 2022. - 533 с. - ISBN 978-985-06-3437-5. - Текст : электронный. - URL: https://znanium.com/catalog/product/2130754 (дата обращения: 28.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
УДК 004.42/.43(075.8)
ББК 32.973.26-018я73
 
Р24

Р е ц е н з е н т ы: кафедра информатики и методики преподавания информатики учреждения 
образования «Белорусский государственный педагогический университет имени 
Максима Танка» (доцент кафедры кандидат педагогических наук, доцент С.И. Зенько); 
доцент кафедры программного обеспечения информационных технологий учреждения 
образования «Белорусский государственный университет информатики и радио электроники» 
кандидат технических наук, доцент Ю.О. Герман

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

ISBN 978-985-06-3437-5 
© Расолько Г.А., Кремень Ю.А., 2022
 
© Оформление. УП «Издательство “Вышэйшая 
 
 
школа”», 2022
ПРЕДИСЛОВИЕ

Новые языки и средства программирования появляются непрерывно, 
поэтому программист вынужден учиться всю жизнь. Очень важно это 
делать быстро и эффективно, а значит, к освоению каждого языка подходить 
системно: выделить составные части, понять их организацию и 
взаимосвязь, найти сходства и отличия от средств, изученных ранее.
Курс «Методы программирования и информатика» является базовым, 
в нем рассматривается общий подход к изучению языков программирования 
и современных объектно-ориентированных технологий.
В учебном пособии предлагается последовательное изложение основ 
программирования на примере языка Pascal, который, будучи достаточно 
простым (а следовательно, легко поддающимся изучению), содержит 
все типы данных и реализует все основные конструкции структурного, 
модульного и объектно-ориентированного программирования, присущие 
современным языкам высокого уровня. Строгий синтаксис обеспечивает 
хорошую диагностику ошибок, что очень важно не только для начинающих. 
Наиболее распространенные среды программирования 
обеспечивают удобные средства написания и отладки программ.
Авторы считают, что обучение должно вестись на основе:
y
y выделения элементарных операций при построении типовых алгоритмов 
обработки простых данных, структурированных статических 
и динамических данных;
y
y одинаковой формы записи алгоритма для решения задач с одинаковой 
структурой исходных данных;
y
y выделения вспомогательных алгоритмов, которые затем оформляются 
подпрограммами языка и могут объединяться в модули.
Учебное пособие разработано на основе учебных и методических материалов, 
используемых авторами в процессе обучения студентов алгоритмизации 
и программированию. Алгоритмизация и программирование – 
наиболее важные разделы учебной дисциплины «Методы программирования 
и информатика», которые позволяют формировать алгоритмическое 
мышление у обучающихся. Здесь рассматриваются 
структурная, модульная и объектно-ориентированная технологии программирования, 
методы проек тирования и отладки программ, управляющие 
операторы, основные структуры данных и методы их обработки. 

Авторы
ВВЕДЕНИЕ

Ключевые положения. В развитии компьютеров выделяют четыре 
поколения, каждое из которых характеризуется использованием своих 
базовых физических компонентов: электронно-лучевых трубок, транзисторов, 
интегральных схем и микропроцессоров.
В соответствии с размером, мощностью и стоимостью выделяют три 
типа компьютеров: универсальные машины, мини-компьютеры и персональные 
компьютеры. 
Дж. Нейманом предложены основные архитектурные решения и 
принципы, реализованные в цифровых электронных машинах (ЦЭМ): 
y
y память, в которой сохраняется программа, данные (числа) и результаты 
промежуточных вычислений (в двоичной системе счисления);
y
y программа, которая вводится в машину так же, как данные;
y
y адресный принцип: в команде указываются не сами числа, над которыми 
нужно выполнять действия, а адреса (т.е. номера ячеек памяти), 
где эти числа хранятся;
y
y автоматизм: после ввода программы и данных машина работает 
автоматически, выполняя указания программы без вмешательства человека; 
для этого машина всегда помнит адрес выполняемой команды, 
а каждая команда содержит (явное или нет) указание об адресе той команды, 
которую нужно выполнить следующей;
y
y переадресация: адреса ячеек памяти, указанные в команде, можно 
подсчитывать и преобразовывать как числа, значит, ЦЭМ может сама 
строить команды, которые выполняет.
Этих принципов придерживались при создании первых компьютеров, 
сейчас существуют и другие подходы.
Оборудование – это физические (аппаратные) компоненты компьютера. 
Схема типового персонального компьютера содержит компоненты, 
которые принадлежат центральному процессору, монитору (дисплею), 
устройству ввода (клавиатура, мышь, микрофоны, сканеры, цифровые 
видеокамеры и т.д.), устройству вывода (принтер, акустическая система 
и т.д.), памяти постоянной (ROM) и оперативной (RAM), устройству 
долговременного хранения или носителям (разнообразные диски).
Совокупность программ компьютера, позволяющих использовать 
его по назначению, называется программным обеспечением. Наиболее 
важная часть программного обеспечения – операционная система, которая 
управляет работой других программ и взаимодействием всех 
компонентов компьютера.
Центральный процессор персонального компьютера работает только 
с двоичными числами. В двоичной системе счисления есть только две 
цифры – 0 и 1. В электронных устройствах эти две цифры представляют 
два устойчивых состояния: включенное и выключенное. Каждый символ 
двоичного числа называется битом. Информация в компьютерах хранится 
группами по 8 бит – байтами. Объем памяти измеряют в байтах. 
На практике в качестве единиц измерения количества информации 
выступают килобайты, мегабайты, гигабайты и др. Для хранения данных 
используется конечное количество байтов, поэтому существуют ограничения 
на величину данных как целочисленных, так и вещественных. 
Два последовательных байта называют словом, четыре – двойным словом.
Физически центральный процессор представляет собой микропроцессор, 
размещенный на материнской плате компьютера. Микропроцессор – 
это интегральная микросхема, которая выполняет основные функции 
компьютера. В состав микропроцессора входят небольшая внутренняя 
оперативная память, элементы которой обычно называют регистрами – 
устройство управления, которое координирует взаимо действие 
различных частей компьютера, и арифметико-логическое устройство, 
которое выполняет арифметические и логические операции.
Развитие языков компьютерного программирования. Так как компьютер 
может обрабатывать информацию в системах счисления, отличных от 
десятичной (двоичная, троичная системы счисления), то для первых 
компьютеров программистам приходилось писать программы в кодах. 
Их называли программами на машинном языке. Позднее, чтобы облегчить 
создание программ, был разработан язык ассемблер. В ассемблере машинные 
команды представлялись мнемонически-символьными инструкциями. 
Когда программа на ассемблере написана, ее нужно преобразовать 
в программу на машинном языке. Для автоматического выполнения 
такого перевода создали специальную программу – транслятор ассемблера. 
Каждой команде ассемблера приблизительно соответствует одна 
команда машинного языка, поэтому ассемблер называют языком низкого 
уровня.
В зависимости от порядка выполнения программ языки высокого 
уровня делятся на компилируемые и интерпретируемые.
Компилятор – это программа, которая автоматически преобразовывает (
транслирует, компилирует) исходный код языка высокого уровня 
в машинный код и создает, таким образом, выполняемый файл (объектный 
код).
Интерпретатор – это программа, преобразующая (транслирующая, 
интерпретирующая) исходный код языка высокого уровня в машинный 
код шаг за шагом, т.е. каждая команда (оператор) исходной программы 
преобразовывается интерпретатором и тут же выполняется компьютером, 
и так до тех пор, пока не закончится исходная программа на языке высокого 
уровня.
В дальнейшем тенденция облегчения для человека процесса создания 
программ осталась доминирующей. В результате были разработаны 
языки высокого уровня, программные конструкции которых подобны 
предложениям английского языка. Примерами таких языков в наше 
время служат Fortran, Basic, Pascal, С, Java. Большинство языков высокого 
уровня универсальные, они предназначены для решения самого 
широкого круга задач. Количество используемых языков программирования 
сейчас достаточно большое.
В последнее время разрабатываются объектно-ориентированные 
языки высокого уровня: в них поддерживается создание и применение 
объектов. Концепция объектно-ориентированного программирования 
приближает компьютерные программы к реальной жизни. Здесь происходит 
визуализация программирования. Примерами объектно-ориентированных 
языков являются С++, Java, Visual Basic, Object Pascal. 
Эволюция Pascal. Язык программирования Pascal, созданный в 1970-е гг. 
швейцарским ученым и преподавателем Никлаусом Виртом в Цюрихе 
(Швейцария) как учебный язык компьютерного обучения программированию, 
назван в честь известного французского философа, математика, 
физика и писателя Блеза Паскаля. Хорошая структурированность 
языка помогает привить начинающим программистам правильные навыки 
программирования. В результате язык Pascal быстро приобрел 
широкую популярность и стал основным учебным языком во многих 
университетах мира. Благодаря богатым функциональным возможностям, 
легкости составления программ и высокой скорости компиляции 
язык Pascal стал интенсивно использоваться также для создания прикладных 
программ. 
Компанией «Borland» была разработана популярная версия языка – 
Turbo Pascal. По мере развития версий операционных систем Windows и 
распространения концепции объектно-ориентированного программирования 
язык Pascal был расширен до Turbo Pascal for Windows и Object 
Pascal for Windows.
Следующим шагом стало создание Delphi – среды разработки программ 
на Object Pascal. В систему Delphi входят компилятор с Object 
Pascal, визуальная среда разработки, инструменты взаимодействия с 
базами данных и библиотека VCL (Visual Components Library – библиотека 
визуальных компонент). Система Delphi создана в полном соответствии 
с концепцией RAD (Rapid Application Development – быстрая 
разработка приложений), ее использование значительно повышает 
скорость разработки приложений под Windows. 
Free Pascal. Free Pascal (полное название Free Pascal Compiler, часто 
используется сокращение FPC) – это свободно распространяемый компилятор 
языка Pascal с открытым исходным кодом.
Free Pascal – кроссплатформенный инструмент, поддерживающий 
большое количество платформ. Среди них – DOS, Linux, OS/2, 
MacOS(X), Win32.
Важной особенностью данного компилятора является ориентация 
на совместимость с распространенными коммерческими диалектами 
языка: Borland Pascal 7, Object Pascal и Delphi. Free Pascal поддерживает 
компиляцию в нескольких режимах, обеспечивающих совместимость с 
различными диалектами и реализациями языка:
y
y TP – режим совместимости с Turbo Pascal: совместимость практически 
полная, за исключением нескольких моментов, связанных с тем, 
что FPC компилирует программы для защищенного режима процессора, 
где невозможно прямое обращение к памяти, портам и т.д.;
y
y FPC – собственный диалект: соответствует предыдущему, расширенному 
дополнительными возможностями, такими как, например, 
перегрузка операций;
y
y Delphi – режим совместимости с Borland Delphi: включает поддержку 
классов и интерфейсов;
y
y OBJFPC – совмещает объектно-ориентированные возможности 
Delphi и собственные расширения языка;
y
y MacPas – режим совместимости с Mac Pascal.

Контрольные вопросы и задания

1. Расскажите о поколениях и типах компьютеров. 
2. Что такое машинный язык? Что такое ассемблер? С какой целью 
были разработаны языки низкого и высокого уровней? 
3. Чем языки высокого уровня отличаются от языков низкого уровня? 
4. Дайте определение следующим понятиям: транслятор, компилятор, 
интерпретатор. 
5. Перечислите основные этапы решения задач на ЭВМ.
6. Что такое псевдокод?
РАЗДЕЛ 1. СТРУКТУРНАЯ МЕТОДОЛОГИЯ 
РАЗРАБОТКИ ПРОГРАММ

1.1. АЛГОРИТМ

Слово «алгоритм» по сути является синонимом слов «способ, рецепт» 
и т.д. Возникло оно в Средние века, когда европейцы познакомились со 
способами выполнения арифметических действий (сложения и умножения) 
над числами, записанными в арабской системе счисления. Способы 
эти описаны в книге «Китаб аль-джебр ва-ль-мукабала» («Книга о сложении 
и вычитании») Абу Абдуллаха Мухаммеда ибн Муса аль-Хорезми 
(слово «алгоритм» возникло вследствие европеизированного произношения 
слов «аль Хорезм»).
В наше время интерес к алгоритмам связан с возможностью использования 
ПК в технике, науке, экономике, в повседневной жизни, ведь 
компьютер во время работы выполняет задаваемую программу, а программа 
является некоторым алгоритмом, записанным на языке, который 
переводится на язык ПК.
Язык программирования – совокупность средств и правил представления 
алгоритма в виде, приемлемом для компьютера. Основу языков 
программирования составляют алгоритмические языки.
Существует много определений понятия «алгоритм» (есть даже специальная 
дисциплина «Теория алгоритмов»). Мы остановимся на следующем 
определении.
Алгоритм – предписание исполнителю выполнить точно определенную 
последовательность действий, направленных на достижение заданной 
цели или решение поставленной задачи.
Существуют разнообразные методики и технологии разработки алгоритмов.

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

1.2. ОСНОВНЫЕ ЭТАПЫ РЕШЕНИЯ ЗАДАЧ НА ЭВМ

Какими бы разнообразными по своей сложности ни были задачи, 
например решение квадратного уравнения или управление космическим 
кораблем, их решение на ЭВМ имеет ряд общих этапов.
1. Постановка задачи.
2. Анализ, формализованное описание задачи, выбор математической 
модели. Разработка методов решения и определение ограничений 
на поставленную задачу.
3. Выбор или разработка алгоритма и запись его формальными 
средствами.
4. Программирование решения задачи на одном из языков программирования.

5. Тестирование и отладка программы.
6. Решение задачи на ЭВМ.
При решении конкретных задач некоторые этапы могут отсутствовать, 
а другие быть сложно разрешимыми.
Этап 1. Постановка задачи выполняется заказчиком, и на первых 
порах она может не быть явно алгоритмической.
Этап 2. Анализ задачи включает определение входных и выходных 
данных, выявление возможных ограничений на их значения и обычно 
завершается формализованным описанием задачи, которое зачастую 
предполагает ее математическую формулировку. 
Этап 3. Выбор или разработка алгоритма и метода решения задачи 
имеют огромное значение для успешной работы над программой. Точно 
продуманный алгоритм решения задачи – необходимое условие эффективного 
программирования.
Для формализации алгоритма существуют разные средства:
y
y запись на родном языке;
y
y запись на формализованном языке – псевдокоде;
y
y графические средства, используемые программистом (структурные 
схемы, структурограммы);
y
y графические средства, которые использует компьютер при создании 
р-схем.
Когда программирование происходит на языках высокого уровня, 
структурная схема используется как язык сверхвысокого уровня. Слишком 
подробная схема затрудняет работу, а вот принципиальная, которая 
задает последовательность действий, в том числе сложных, – наиболее 
приемлема.
В дальнейшем мы будем применять в основном структурные схемы 
и структурограммы. 
В структурных схемах (блок-схемах) используются графические 
символы схем алгоритмов и программ. В табл. 1.1 приведены некоторые 
блоки и свойственные им функции.
Таблица 1.1

Обозначение блока 
Функция

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

Выбор направления выполнения алгоритма в 
зависимости от некоторых условий

Выполнение операций, которые изменяют 
команды или группы команд

Начало или конец схемы программы

Использование ранее созданных и отдельно 
описанных алгоритмов

Указание связи между прерванными линиями 
потока, связывающими символами

Обмен данными между внешней и оперативной 
памятью

Ввод-вывод данных, носителем которых служит 
бумага

Связь между элементами схемы и толкованием

Очевидное (сверху вниз или слева направо без 
стрелок) и не очевидное (со стрелками) обозначение 
линий связи блоков

В блоках позволяется писать пояснительные действия. Например, 
=
: 1
x
 означает следующий процесс: переменной х присвоить значение 1. 

Знак «:=» – присвоить значение (вместо «=» – равно).
Доступ онлайн
1 015 ₽
В корзину