- •Программирование на языке паскаль Учебное пособие
- •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. Текстовые файлы
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Типизированные файлы
- •Текстовые файлы
- •Программирование графики
- •Основные понятия компьютерной графики
- •Формирование изображения на экране
- •Инициализация графического режима
- •Простейшие графические операторы (процедуры)
- •Основные приемы работы с графикой
- •Работа с цветом
- •Заполнение (закрашивание) произвольной замкнутой фигуры
- •Построение простейших геометрических фигур
- •Контрольные вопросы
- •Задания для самостоятельной работы
- •Варианты заданий
- •Библиографический список
Контрольные вопросы
Что такое язык программирования?
Какие выделяют уровни языков программирования? Дайте краткую характеристику каждого уровня.
Как называется программа, осуществляющая перевод с языка высокого уровня на язык машинных кодов?
Назовите достоинства и недостатки компилятора и интерпретатора.
В чем важность структурного подхода при написании программ на языках высокого уровня?
Перечислите управляющие структуры языков программирования.
Какие бывают типы развилок и в чем их отличие?
Какие две части включает в себя структура «цикл»?
В чем состоит основное отличие структур «цикл-пока» и «цикл-до»?
Можно ли вкладывать одну управляющую структуру в другую или нужно располагать их только последовательно?
2. Описание языка паскаль
Как и любой язык программирования, язык Паскаль характеризуется своим алфавитом, набором операторов и списком структур обрабатываемых данных.
2.1. Основные объекты языка
Алфавит Паскаля состоит из лексем и разделителей. В лексемы входят специальные символы, символы-слова, имена, числа, строки символов и директивы. Ниже приведены стандартные или зарезервированные лексемы языка Паскаль.
Лексемы
Буквы: латинские от A до Z, от a до z и русские от А до Я, от а до я.
Цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Специальные символы: + – * / = ^ < > ( ) [ ] { } . , : ; ' # $
Зарезервированные слова:
absolute |
downto |
function |
nil |
record |
To |
and |
else |
goto |
not |
repeat |
Type |
array |
end |
if |
of |
set |
Until |
begin |
external |
in |
or |
shl |
Var |
case |
file |
inline |
packed |
shr |
While |
const |
for |
label |
procedure |
string |
With |
div |
forward |
mod |
program |
then |
Xor |
do |
|
|
|
|
|
Стандартные идентификаторы (имена):
Arctan
Assign
Aux
AuxInPrt
AuxOutPrt
BlockRead
BlockWrite
Boolean
BufLen
Byte
Chain
Char
Chr
Close
ClrEol
ClrScr
Concat
ConInPtr
ConOutPt
ConstPtr
Copy
Cos
CrtExit
CrtInit
Delay
Delete
DelLine
EOF
EOLN
Erase
Execute
Exp
FileChar
FilePos
FileSize
Flush
Frac
GetMem
GotoXY
HeapPtr
Hi
Input
Insert
InsLine
Int
Integer
IOresult
Kbd
Length
Ln
Lo
LowVideo
Lst
LstOutPtr
Mark
MaxInt
Mem
MemAvail
Move
New
NormVideo
Odd
Ord
Output
Port
Pos
Pred
Ptr
Random
Randomize
Read
Readln
Real
Release
Rename
Reset
Rewrite
Round
Seek
Sin
Sqr
Sqrt
Str
Succ
Swap
Text
Trm
True
Trunc
UpCase
Usr
UsrInPtr
UsrOutPtr
Val
Write
Writeln
Разделители
Символами-разделителями считаются пробелы, концы строк (разделители строк) и комментарии. Внутри лексем ни разделители, ни их части встречаться не могут. Между двумя следующими друг за другом лексемами должен обязательно следовать один или несколько разделителей.
Комментарии в Паскаль-программе заключаются в специальные скобки {..} или (* .. *). Сам комментарий может содержать любые символы, кроме } и *). Любой комментарий можно заменить в программе на пробел.
Символы-разделители применяются часто для улучшения читаемости программы, например:
program PRIMER;
{Программа сложения натуральных чисел}
var I, J, K: integer;
begin
readln (I, J); { Ввод двух слагаемых }
K := I + J;
Writeln (I, '+', J, '=', K); {Печать результата в форме 12 + 3 = 15}
end.