- •Министерство образования и науки российской федерации
- •Начальный курс программирования на основе алгоритмического языка Паскаль
- •Введение
- •Часть. Основы программирования на Паскале
- •1.1. Структура простейшей Паскаль-программы
- •1.2. Данные и операции над ними
- •1.2.1. Свойства ячейки памяти. Переменные и константы
- •1.2.2. Типы данных
- •1.2.3. Правила записи констант
- •1.2.4. Описание переменных и именованных констант в Паскале
- •1.2.5. Выражения
- •1.3. Операторы преобразования данных
- •1.3.1. Оператор присваивания
- •1.3.2. Понятие ввода и вывода
- •1.3.3. Оператор вывода
- •1.3.4. Оператор ввода
- •1.4. Разработка простейших программ
- •1.4.1. Понятие о качестве программы и основные технологические принципы разработки программ
- •1.4.2. Алгоритм и способы его записи.
- •1.4.3. Изображение алгоритмов в виде блок-схем
- •1.4.4. Базовые структуры алгоритмов и их кодирование на Паскале
- •1. Следование
- •2. Ветвление (развилка)
- •If условие then
- •If условие then
- •3. Цикл
- •1.4.5. Примеры разработки программ
- •1.5. Массивы
- •1.5.1. Понятие массива. Основные правила работы с массивами в Паскале
- •1.5.2. Примеры программ с массивами
- •1.614. Структура паскаль-программы
- •Часть.Подпрограммы
- •2.1. Общие сведения о подпрограммах
- •2.2. Процедуры в Паскале
- •2.2.1.Описание процедур
- •2.2.2. Обращение к процедуре
- •2.3. Функции Паскаля
- •2.3.1. Описание функций
- •2.3.2. Обращение к функции
- •2.4. Глобальные и локальные имена
- •2.5. Использование подпрограммы в качестве параметра другой подпрограммы
- •2.6. Модули
- •2.6.1. Общие сведения
- •2.6.2. Структура модуля
- •2.6.3. Использование модулей
- •2.6.4. Модули как средство программирования
- •Часть. Обработка символьной информации и документов сложной структуры
- •3.1. Обработка символьной информации
- •3.1.1. Символьный тип
- •3.1.2.Строковые типы
- •3.1.3. Подпрограммы, работающие со строками
- •Функции
- •Процедуры
- •3.2. Тип запись
- •3.3. Файлы
- •3.3.1. Общие понятия
- •3.3.2. Файлы в Турбо Паскале
- •3.3.3. Текстовые файлы
- •Пример 1
- •Пример 2
- •3.3.4. Типизированные файлы
- •3.3.5. Нетипизированные файлы
- •Часть IV. Работа с динамическими массивами
- •О статическом и динамическом распределении памяти
- •Указатели в Паскале
- •Динамические массивы
- •Формальные параметры-массивы без указания границ
- •Приложение 1. Краткая инструкция по работе в среде Turbo (Borland) Pascal.
- •Режимы компиляции программы, использующей модули
- •Приложение 2. Краткая инструкция по работе в режиме консольного приложения средыDelphi. Создание консольного приложения
- •Сохранение консольного приложения.
- •Отладка программы
- •Контрольные вопросы
- •Заключение
- •Библиографические ссылки
- •Содержание
- •Часть IV. Работа с динамическими массивами 98
Министерство образования и науки российской федерации
МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)
Батасова В.С.
Начальный курс программирования на основе алгоритмического языка Паскаль
Учебное пособие по курсу «Высокоуровневые методы информатики и программирования» для студентов Гуманитарно-прикладного института, обучающихся по специальностям «Прикладная информатика», «Математические методы в экономике»
Москва Издательство МЭИ 2006
УДК
621.398
Б28
Утверждено учебным управлением МЭИ
Подготовлено на кафедре экономики и управления Гуманитарно-прикладного института Московского энергетического института (технического университета)
Рецензенты:
канд. техн. наук, профессор А.А. Крюков (СТАНКИН),
канд. техн. наук, доцент К.Г. Меньшикова (МЭИ)
Батасова В.С.
Начальный курс программирования на основе алгоритмического языка Паскаль. Учебное пособие по курсу «Высокоуровневые методы информатики и программирования». – М.: Издательство МЭИ, 2006.–116 с.
Излагаются основы алгоритмизации и программирования. Главный акцент делается на анализ задачи и разработку принципиальной схемы алгоритма без привязки к алгоритмическому языку. Даются основные приемы кодирования алгоритмов на Паскале. Рассматриваются такие разделы программирования как типы и структуры данных, основные алгоритмические структуры, подпрограммы, модули, обработка текстов и документов сложной структуры, файлы.
Для студентов Гуманитарно-прикладного института, обучающихся по специальностям «Прикладная информатика», «Математические методы в экономике». Может быть полезно студентам всех технических и экономических специальностей МЭИ, обучающихся программированию.
© Московский энергетический институт, 2006
Введение
Настоящее пособие представляет собой попытку изложения общих основ программирования, независимых от алгоритмического языка. Конкретный язык программирования – в данном случае, Паскаль – используется для приобретения практических навыков кодирования алгоритмов и отладки программ. Это уже вторая попытка: настоящее пособие представляет собой результат переработки [1], как бы перевод его с СИ на Паскаль. Возможность такого перевода еще раз подтверждает тезис: «Не важно, на каком алгоритмическом языке программируешь, а важно, какие задачи решаешь».
Любая программа, независимо от алгоритмического языка, на котором она написана, состоит из описания данных и описания действий, выполняемых с этими данными. "Алгоритмы+структуры данных = программы" - это название книги [2] классика современного программирования Н. Вирта является важнейшим принципом разработки программ.
Существующие в настоящее время универсальные алгоритмические языки (т.е. языки, содержащие все основные средства современного программирования), такие как Паскаль, Си, Фортран, Бейсик, практически не отличаются по своим возможностям. Различия в правилах построения фраз языка не являются принципиальными, освоение этих правил - дело практики, а приверженность программиста к какому-то алгоритмическому языку обычно является следствием многолетней привычки. Выбор алгоритмического языка Паскаль для данного пособия объясняется тем, что в настоящее время он является признанным языком для обучения программированию, а пособие предназначено, прежде всего, для тех, кто учится программировать «с нуля». Автор надеется, что пособие поможет и при изучении Паскаля как второго (или следующего) языка.
Чтобы начать писать программы на каком-либо алгоритмическом языке, надо знать:
Какова структура простейшей (не использующей нестандартные подпрограммы) программы, в каком порядке в ней размещаются инструкции языка.
Какие типы и структуры данных приняты в языке и как они определяются (описываются), какие операции над данными различных типов допустимы в языке, как строятся с их помощью выражения и как они вычисляются. Заметим, что на начальном этапе овладения языком необязательно глубоко изучать все допустимые в нем типы и структуры, достаточно знать те, которые необходимы для решения интересующего вас класса задач.
Как записывать операторы преобразования данных: оператор присваивания, с помощью которого осуществляются все преобразования внутренних данных, операторы ввода (передачи данных с внешних устройств в память компьютера) и вывода (передачи данных из памяти компьютера на внешние устройства).
Как записать алгоритм (порядок, организацию обработки данных). Современные алгоритмические языки, как правило, имеют избыточный набор управляющих операторов для кодирования алгоритмов. На первом этапе изучения языка можно познакомиться с тремя-пятью из них, достаточными для программирования основных алгоритмических структур, с помощью которых можно записать любой алгоритм.
Изложению перечисленных сведений посвящена первая часть пособия. Дальнейшее изучение программирования связано с подпрограммами, организацией многомодульных программ (этот материал излагается во второй части), а также со сложными типами данных (третья часть). В четвертой части излагаются правила работы с динамическими массивами. Объектно-ориентированное и визуальное программирование не входит в данное пособие.
Следует заметить, что овладение конструкциями алгоритмического языка еще не означает умения программировать. Главную роль в создании программных средств играет умение анализировать задачу и разрабатывать принципиальную схему алгоритма без привязки к алгоритмическому языку. Однако обучение начальным навыкам алгоритмизации не укладывается в формальные рамки, и написать пособие по этой теме также трудно, как самоучитель по чтению и письму. Чтобы помочь начинающим программистам, в пособии, наряду с программами на Паскале, используются блок-схемы, которые, пожалуй, являются наиболее общим и наглядным способом описания алгоритмов.
Для читателей, впервые столкнувшихся с программированием, поясним, что программа, написанная на алгоритмическом языке, должна быть переведена в коды компьютера. Процесс такого перевода называется трансляцией, а специальная программа-переводчик -транслятором. Существует два способа трансляции: компиляция и интерпретация. Прикомпиляциипрограмма сначала полностью переводится в коды, а затем выполняется без участия компилятора. Приинтерпретациипоследовательно чередуются перевод группы инструкций языка в коды и их выполнение. Алгоритмический язык Паскаль (также как Си и Фортран) требует именно компиляции. Откомпилированная программа (так называемыйобъектный модуль) далее подвергаетсяредактированию связей(процесс подключения к программе подпрограмм) изагрузке в оперативную память. В результате такой обработки получается готовая к выполнению программа, которая называетсяисполняемой программойилизагрузочным модулем.
Трансляторы обычно входят в состав систем программирования, включающих в себя также редактор для набора и исправления текстов программ, редактор связей, загрузчик, средства для работы с файлами, программу-отладчик и среду, обеспечивающую удобную работу с этими программами.
Примеры пособия ориентированы на систему программирования Borland Pascal 7.0 и операционную систему MS DOS или на режим консольного приложения среды Delphi. Среда программирования Borland Pascal предполагает использование алгоритмического языка с тем же именем, являющегося расширением стандартного языка Паскаль; более ранняя среда (и язык) TurboPascal с точки зрения основ программирования мало отличается от Borland Pascal и может использоваться читателем для отладки программ. СредаDelphiимеет в своей основе языкObjectPascal. Краткое описание основных приемов работы в этих средах дано в Приложениях; подробнее с этими средами и соответствующими версиями языка можно ознакомиться, например, в [3-5].
Имея целью начальное обучение программированию, мы рассмотрим толькоподмножество языкаBorland Pascal (или Object Pascal в Delphi), позволяющее писать простые и практически важные программы. Пособие не имеет своей целью полное описание этих языков.