- •Программирование на языке паскаль Учебное пособие
- •1. Общая характеристика языков программирования
- •1.1. Языки программирования
- •1.2. Трансляторы
- •1.3. История создания языков
- •1.4. Базовые структуры языков программирования
- •Контрольные вопросы
- •2. Описание языка паскаль
- •2.1. Основные объекты языка
- •2.2. Структура Паскаль-программы
- •2.3. Типизация данных
- •2.4. Объявление данных
- •Контрольные вопросы
- •3. Простые операторы. Ввод/вывод данных
- •3.1. Оператор присваивания и выражения
- •3.2. Операторы вызова процедур. Ввод/вывод данных
- •3.2.1. Процедуры ввода read и readln
- •Общая форма записи оператора
- •3.2.2. Процедуры вывода write и writeln
- •Контрольные вопросы
- •Каково назначение процедуры writeln без параметров? Задания для самостоятельной работы
- •Варианты заданий
- •Дополнительные задания
- •4. Структурные операторы. Организация ветвлений и циклов
- •4.1. Составной и пустой операторы
- •4.2. Организация ветвлений. Операторы выбора
- •4.2.1. Оператор ветвления if
- •4.2.2. Оператор варианта case
- •Общая форма записи
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •Дополнительные задания
- •4.3. Организация циклов. Операторы повторения
- •4.3.1. Оператор while
- •4.3.2. Оператор repeat
- •4.3.3. Оператор for
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •5. Организация подпрограмм. Процедуры и функции
- •5.1. Процедуры и их типизация
- •5.1.1. Встроенные процедуры
- •5.1.2. Процедуры пользователя
- •5.1.3. Процедуры без параметров
- •5.1.4. Фактические и формальные параметры
- •5.1.5. Локальные и глобальные переменные
- •5.1.6. Процедуры с параметрами-значениями
- •5.1.7. Процедуры с параметрами-переменными
- •5.1.8. Комбинированные процедуры
- •5.2. Функции пользователя. Рекурсивные функции
- •5.2.1. Определение функции
- •О бщая форма записи заголовка функции
- •5.2.2. Функции пользователя
- •5.2.3. Рекурсивные функции
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •Дополнительные задания
- •6. Массивы. Данные типа array
- •Одномерные массивы
- •Общая форма записи
- •Общая форма записи
- •6.2. Многомерные массивы
- •6.3. Способы работы с массивами
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •Дополнительные задания
- •Обработка литерных величин. Данные типа char и string
- •7.1. Тип данных char
- •Работа программы
- •7.2. Массивы литер
- •7.3. Тип данных string
- •7.4. Строковые функции и процедуры
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •Дополнительные задания
- •8. Множества. Данные типа set
- •О бщий вид регулярного типа
- •8.1. Определение типа set
- •8.2. Операции над множествами
- •8.2.1. Принадлежность множеству
- •8.2.2. Сравнение множеств
- •8.2.3. Действия над множествами
- •8.3. Вывод множеств
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •9. Комбинированный тип. Данные типа record
- •9.1. Оператор типа record
- •9.2. Оператор with
- •9.3. Записи с вариантами
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •10. Файловый тип
- •10.1. Определение и описание типизированного файла
- •Общая форма записи
- •10.2. Типы файлов. Процедура работы с файлами
- •10.3. Основные приемы работы с файлами
- •10.4. Текстовые файлы
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Типизированные файлы
- •Текстовые файлы
- •Программирование графики
- •Основные понятия компьютерной графики
- •Формирование изображения на экране
- •Инициализация графического режима
- •Простейшие графические операторы (процедуры)
- •Основные приемы работы с графикой
- •Работа с цветом
- •Заполнение (закрашивание) произвольной замкнутой фигуры
- •Построение простейших геометрических фигур
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •Библиографический список
1. Общая характеристика языков программирования
ЭВМ – это устройство для автоматической обработки информации (данных). ЭВМ может выполнять только специальные, присущие ей команды. Чтобы машина сделала что-либо полезное, необходимо задать последовательность команд на том языке, который она понимает. Такая последовательность называется программой.
Известно, что центральный процессор (ЦП) имеет свою систему команд (систему команд процессора) и каждая команда внутри ЭВМ (в ее оперативной памяти) представляется в виде последовательности нулей и единиц – машинного кода. На этапе становления программирования программы для ЭВМ составлялись именно в машинных кодах, что стало довольно затруднительным при решении более сложных задач. Поэтому были разработаны языки программирования.
1.1. Языки программирования
Языки программирования – это формальные языки, применяемые для описания информации (данных) и алгоритма ее обработки на ЭВМ. Они подразделяются на языки низкого и высокого уровней.
Язык низкого уровня представляет собой систему двоичных или шестнадцатеричных команд, написанных в машинных кодах. Программист общается с машиной на «ее языке» – языке системы команд процессора. К таким языкам можно отнести АССЕМБЛЕР. Этот язык используется в основном программистами-профессионалами и обладает существенным недостатком – машинной зависимостью, т.е. невозможностью переноса программы на другой тип машин (процессоров).
Работа с языками высокого уровня в компьютере происходит более сложно. Специальная программа (транслятор) вначале преобразует команды (операторы) языка высокого уровня в шестнадцатеричные коды, затем расшифровывает их (ставит в соответствие каждому оператору одну или несколько своих команд) и только после этого выполняет программу. Примерами языков высокого уровня являются Паскаль, Бейсик, Си и др. В отличие от языков низкого уровня, на языках высокого уровня легче программировать. Однако часто с простотой общения теряются некоторые «тонкости программирования», поэтому практически в каждом языке высокого уровня есть возможность писать команды непосредственно на машинном языке (программировать в «кодах»).
1.2. Трансляторы
Процесс перевода программы с языка программирования высокого уровня на машинный язык называется трансляцией. Трансляция осуществляется с помощью специальной программы, называемой транслятором. Существует два вида трансляции: интерпретация и компиляция. Соответствующие им программы называются интерпретаторами и компиляторами. Трансляторы с языков являются составной частью самой системы программирования, поэтому запуск программы предполагает сначала ее трансляцию, а потом собственно выполнение.
Рассмотрим процесс выполнения программы, написанной на языках-интерпретаторах, а затем на компиляторах.
Интерпретатор
1. Машина считывает очередной оператор программы. 2. Машина переводит оператор в свои, ей понятные команды. 3. При обнаружении ошибки интерпретация прерывается, и машина указывает на это. 4. Машина выполняет переведенные команды. 5. Машина «забывает» считанный оператор. 6. Машина продолжает данный процесс, пока не выполнятся все операторы, т.е. пока не дойдет до указателя конца программы. 7. Машина «забывает» выполненную программу. |
Компилятор
1. Машина считывает очередной оператор, написанный на языке. 2. Машина переводит оператор в свои, ей понятные команды. 3. При попадании на ошибку процесс перевода прерывается, и машина указывает на это. 4. Машина продолжает данный процесс, пока не иссякнут все строки программы, т.е. пока не дойдет до указателя конца программы. 5. Машина выполняет переведенную программу целиком. |
Из указанного выше процесса выполнения программы следует, что интерпретаторы работают медленнее, при запуске не «вылавливают» всех ошибок (лишь при попадании на них машина указывает на ошибку). Компиляторы работают быстрее, однако расходуют больше оперативной памяти.