- •Для школьников, студентов и начинающих 1999 с,н.Лукин __________________________________________________________ Все права защищены ©
- •Оглавление
- •Часть I. Необходимые сведения о компьютере и программе 8
- •Часть II. Программирование на Паскале – первый уровень 29
- •Часть III. Программирование на Паскале – второй уровень 102
- •Часть IV. Работа в Паскале на компьютере 158
- •От автора
- •Предисловие
- •Кому нужна эта книга?
- •Почему Паскаль?
- •Какой из Паскалей?
- •Краткое содержание с рекомендациями
- •Часть III. Программирование на Паскале – второй уровень. Цели этой части:
- •Часть I. Необходимые сведения о компьютере и программе
- •№Первое представление о компьютере и программе
- •Что умеет делать компьютер
- •Что такое компьютер. Первое представление о программе.
- •Как человек общается с компьютером
- •Программа и программирование
- •Список команд. Командный и программный режимы
- •Последовательность работы человека с роботом
- •Что важно знать о программе
- •Понятие о процедуре. Может ли робот поумнеть?
- •Программа для компьютера на машинном языке
- •Языки программирования
- •Пример настоящей программы для компьютера на языке Лого
- •А теперь напишем программу:
- •Последовательность работы программиста на компьютере
- •Основные приемы программирования
- •Устройство и работа компьютера
- •Как устроен и работает компьютер
- •Порядок обмена информацией между устройствами компьютера
- •Устройство и размеры оперативной памяти
- •Взаимодействие программ в памяти
- •Внешние устройства компьютера
- •Устройства ввода
- •Устройства вывода
- •Внешняя память
- •Кодирование информации в компьютере
- •Часть II. Программирование на Паскале – первый уровень
- •Простые (линейные) программы. Операторы ввода-вывода. Переменные величины
- •Процедура вывода Write
- •8 'Котят' 3*3 'щенят'
- •Первая программа на Паскале
- •Точкой с запятой необходимо отделять операторы друг от друга. Служебные слова begin и end от операторов точкой с запятой отделять не нужно.
- •Выполняем первую программу на компьютере
- •Процедура вывода WriteLn. Курсор
- •Переменные величины. Оператор присваивания
- •Описания переменных (var)
- •Что делает оператор присваивания с памятью
- •Оператор присваивания меняет значение переменной величины
- •Имена переменных
- •Математика. Запись арифметических выражений
- •Вещественные числа в Паскале
- •Три совета
- •Порядок составления простой программы Задача:
- •Порядок составления программы:
- •5. Теперь нужно задать компьютеру действия, которые нужно проделать с исходными данными, чтобы получить результат.
- •Операторы ввода данных ReadLn и Read.
- •Интерфейс пользователя
- •Строковые переменные
- •Диалог с компьютером
- •Константы
- •Разветвляющиеся программы
- •Условный оператор if или как компьютер делает выбор
- •Правила записи оператора if
- •Составной оператор
- •Ступенчатая запись программы
- •Вложенные операторы if. Сложное условие в операторе if. Логические операции
- •Символьный тип данных Char
- •Оператор варианта case
- •Циклические программы
- •Оператор перехода goto. Цикл. Метки
- •Выход из цикла с помощью if
- •Оператор цикла repeat
- •Оператор цикла while
- •Отличия операторов repeat и while
- •Оператор цикла for
- •Типичные маленькие программы
- •Вычислительная циклическая программа
- •Роль ошибок
- •Счетчики
- •Сумматоры
- •Вложение циклов в разветвления и наоборот
- •Вложенные циклы
- •Поиск максимального из чисел
- •Процедуры
- •Компьютер звучит
- •Простейшие процедуры
- •Программа 1
- •Программа 2
- •Программа 3
- •Процедуры и операторы
- •Стандартные процедуры Halt и Exit
- •Графика
- •Стандартные модули
- •Стандартный модуль Graph, текстовый и графический режимы
- •Текстовый и графический режимы
- •Переключение между текстовым и графическим режимами
- •Рисуем простейшие фигуры
- •Работа с цветом. Заливка. Стиль линий и заливки
- •Используем в рисовании переменные величины
- •Использование случайных величин при рисовании
- •Движение картинок по экрану
- •Создаем первую большую программу
- •Постановка задачи
- •Программирование по методу “сверху-вниз”
- •Сначала – работа над структурой программы
- •Зачем переменные вместо чисел
- •Записываем программу целиком
- •Порядок описания переменных, процедур и других конструкций Паскаля
- •Управление компьютером с клавиатуры. Функции ReadKey и KeyPressed
- •Буфер клавиатуры
- •Гетерархия. Задание на игру “Торпедная атака”
- •Часть III. Программирование на Паскале – второй уровень
- •Алфавит и ключевые слова Паскаля
- •Алфавит
- •Ключевые слова
- •Использование пробела
- •Работа с разными типами данных Паскаля
- •Список типов
- •Комментарии к списку типов
- •Числовые типы
- •Массивы
- •Переменные с индексами
- •Одномерные массивы
- •Двумерные массивы
- •Какие бывают массивы
- •Определения констант
- •Типизированные константы
- •Придумываем типы данных
- •Логический тип Boolean
- •Перечислимые типы
- •Ограниченный тип (диапазон)
- •Действия над порядковыми типами
- •Символьный тип Char. Работа с символами
- •Строковый тип String. Работа со строками
- •Множества
- •Расположение информации в оперативной памяти. Адреса
- •Процедуры и функции с параметрами
- •Процедуры с параметрами
- •Функции
- •Подпрограммы. Локальные и глобальные переменные
- •Массивы как параметры
- •Параметры-значения и параметры-переменные
- •Индукция. Рекурсия. Стек
- •Сортировка
- •Строгости Паскаля
- •Структура программы
- •Структура процедур и функций
- •Выражения
- •Совместимость типов
- •Форматы вывода данных
- •Переполнение ячеек памяти
- •Дерево типов
- •Синтаксисические диаграммы Паскаля
- •Другие возможности Паскаля
- •Работа с файлами данных
- •Вставка в программу фрагментов из других программных файлов
- •Модули программиста
- •Дополнительные процедуры и функции модуля Graph
- •Копирование и движение областей экрана
- •Вывод текста в графическом режиме
- •Управление цветом в текстовом режиме (модуль crt)
- •Работа с датами и временем (модуль dos)
- •Нерассмотренные возможности Паскаля
- •Миг между прошлым и будущим
- •Часть IV. Работа в Паскале на компьютере
- •Что нужно знать и уметь к моменту выполнения первой программы?
- •Порядок работы в Паскале
- •(1) Запуск Паскаля
- •(2) Начало работы. Ввод программы. Выход из Паскаля
- •(3) Сохранение программы на диске. Загрузка программы с диска
- •(4) Выполнение программы
- •(5) Исправление ошибок. Отладка программы.
- •Пошаговый режим
- •Работа с окнами пользователя и отладчика
- •Отладка больших программ
- •Работа с несколькими окнами.
- •Копирование и перемещение фрагментов текста
- •Обзор популярных команд меню
- •Создание исполнимых файлов (exe)
- •Приложения. Справочный материал п1. Как вводить программу в компьютер или работа с текстом в текстовом редакторе
- •Работа с одной строкой текста
- •Работа с несколькими строками
- •Собственно работа с несколькими строками.
- •П2. Файловая система магнитного диска
- •Имена файлов и каталогов
- •Пример структуры каталогов на диске
- •Логические диски. Путь (дорожка) к файлу
- •П3. Список некоторых операций, процедур и функций Паскаля
- •Математика
- •Модуль crt
- •Модуль Graph
- •П4. Произношение английских слов
- •П5. Решения заданий
- •П6. Список литературы
- •П7. Предметный указатель
П6. Список литературы
Д.Б.Поляков, И.Ю.Круглов «Программирование в среде Турбо Паскаль (версия 5.5)». Москва, Издательство МАИ, 1992 год. 576 страниц.
Это основная книжка, которую я вам рекомендую после изучения моей для расширения и углубления знаний по Паскалю. Как вводный курс ее читать, конечно, нельзя. Она толстая и в ней много полезного материала. Ничего, что версия – 5.5. Разницу с 7.0 вы почувствуете очень не скоро. Я не знаю, может быть эта книга и переиздана с 1992 года, может быть и под другим названием. Но авторы – хорошие.
В.В.Фаронов «Основы Турбо-Паскаля (6.0)». Москва, МВТУ-ФЕСТО ДИДАКТИК, 1992 год. 304 страницы.
Е.А.Зуев «Язык программирования Turbo Pascal 6.0» Москва, Унитех, 1992 год. 298 страниц.
О.Е.Перминов «Программирование на языке Паскаль» Москва, Радио и связь, 1988 год. 220 страниц.
П7. Предметный указатель
A
Abs 39
Add watch 166
Alt 171
AND 51
Append 147
Arc 151
array 107
Assembler 16
Assign 146
B
BackSpace 171
Bar 151
Bar3D 151
Basic 16
BEGIN 31
Boolean 112
Byte 106
C
C 16
CapsLock 170
Case 53
CD-ROM 27
Char 53, 115
Chr 115
Circle 79
ClearDevice 80
Close 146
CloseGraph 77
ClrScr 153
Comp 106
Compile 169
const 110
Copy 116, 168
CRT 76, 95, 153
Ctr 171
Cut 168
D
Debug 162, 165
Delay 70
Delete 116, 171
DirectVideo 88
div 38
do 60, 61, 62
DOS 154
Double 106
downto 62
E
Edit 168
Ellipse 80
else 46
END 31
EOF 147
exe 169
Exit 74, 160
Extended 106
F
false 112
File 160
FillEllipse 151
FloodFill 81
for 61
FORWARD 95
Frac 39
G
GetDate 154
GetImage 152
GetMaxX 151
GetMaxY 151
GetMem 152
GetPixel 151
GetTime 154
GOTO 56
Goto cursor 167
GotoXY 154
Graph 76, 150
H
Halt 74
I
if 46, 48, 50
ImageSize 152
IMPLEMENTATION 149
in 120
InitGraph 77
Insert 116, 171
Int 39
Integer 35, 106
INTERFACE 149
Internet 27
K
KeyPressed 95, 99
L
LABEL 56
Length 116
Line 79
LISP 16
Logo 16
LongInt 35, 106
M
mod 38
N
new 122
New 160
NormWidth 80
NoSound 70
NOT 52
O
of 107
Open 161, 167
OR 52
ORD 114
Output 165
OutTextXY 152
P
Pascal 16
Paste 168
PC Speaker 26
Pi 39
PieSlice 151
Pos 116
PRED 114
PROCEDURE 73
PROGRAM 134
Program reset 164
Prolog 16
PutImage 152
PutPixel 78
R
Random 39, 83
Randomize 84
Read 42
ReadKey 95, 99
ReadLn 42, 147
Real 40, 106
Record 118
Rectangle 78
Repeat 59
Reset( 147
Rewrite 146
Round 39
Run 162
S
Save 161
Save as 161
Sector 151
set of 119
SetColor 80
SetDate 154
SetFillStyle 81
SetLineStyle 80
SetTextStyle 152
SetTime 154
SetUserCharSize 153
Shift 170
ShortInt 106
Single 106
Sound 70
Sqr 39
Sqrt 39
str 153
Str 116
String 116
SUCC 114
T
Text 146
TextBackgrownd 153
TextColor 153
then 46
ThickWidth 80
to 62
TopOff 151
TopOn 151
Trace into 164
true 112
TYPE 111
U
Unit 149
until 59
User Screen 162
V
val 153
Val 116
var 35
W
Watch 165
While 60
Word 106
Write 30
WriteLn 36, 146
31
-
- 38, 119
.
. 31
(
( 38
)
) 38
*
* 38, 119
/
/ 38
^
^ 122
+
+ 38, 116, 119
=
= 34
а
абсолютная величина 39
адрес 121
адреса 122
алгоритмом 10
алфавит 103
А
Арифметические выражения 136
а
арифметическими 38
арифметических выражений 38
А
Ассемблер 16
б
базой данных 117
байт 23, 28, 103, 121
байтом 28
бит 28
Б
Бэйсик 16, 23
В
Ввод программы 160
Ветвление 19
Вещественные типы 106
Вещественные числа 39
Взаимодействие программ в памяти 23
в
видеоадаптер 25
видеокарту 25
винчестер 21
В
Винчестер 26
Вложение циклов в разветвления и наоборот 66
Вложенные операторы if 50
в
вложенные подпрограммы 135
В
Вложенные циклы 67
в
вложенными процедурами 135
В
Внешние устройства компьютера 24
Внешняя память 24, 26
в
возведение в квадрат 39
временем 154
В
Вставка в программу фрагментов из других программных файлов 148
в
выбор 19
вывод данных 137
В
Вывод текста в графическом режиме 152
в
вызовом процедуры 13, 73
вызывает 23
В
Выполнение программы 162
в
выражением 136
В
Выход из Паскаля 160
Выход из цикла с помощью if 58
Вычислительная циклическая программа 63
г
гетерархией 99
глобальной 27
глобальной переменной 128
Г
Графика 76
г
графическом режиме 76
д
данными 22
датой 154
Д
Движение картинок по экрану 84
Двумерные массивы 108
д
дерева 174
Д
Дерево типов 138
д
десятичных дробей 39
Д
Джойстик 24
Диалог с компьютером 44
д
диапазон 54
диапазонов 113
динамическим распределением памяти 122
Д
Директива компилятора 148
Дискета 26
д
дискеты 10, 21
дисковод 22, 26
дисплеем 9
дисплей 25
документами 173
дорожкой 175
дробная часть числа 39
е
если 46
ж
жесткий диск 26
з
заголовком процедуры 125
З
Заголовок модуля 149
з
загружают 23
З
Загрузка программы 161
Задание на игру “Торпедная атака 99
Заливка 80
з
заливки 81
записей 117
З
Запись 117
з
зарезервированными 103
звездное небо 83
звук 70
звуковая карта 26
знаком присвоения 34
значениями переменной величины 34
и
и 51
идентификатор 37
иерархией 87
иерархию 99
И
ИЛИ 52
Имена переменных 37
и
имена процедур 73
И
Имена файлов 173
и
именем модуля 149
имя 173
иначе 46
индексированные переменные 107
И
Индукция 130
и
инициализации графического режима 77
интерфейс 63
И
Интерфейс пользователя 43
и
исполнимых файлов 169
И
Исправление ошибок 163
и
истина 112
исходные данные 23
к
каталог 173
К
Клавиатура 24
к
клавиатуры 21
К
Ключевые слова 103
Ключи компиляции 156
Кодирование информации в компьютере 27
к
команд 10
команд меню 168
команда 16
командным режимом 12
комментарии 31
К
Компакт-диски 27
к
компиляцию 35
компьютер 9, 10
компьютерной сетью 27
константы 45, 110
К
Копирование 168
Копирование и движение областей экрана 151
к
корень квадратный 39
корневым каталогом 174
корнем 174
курсор 24, 33
К
Куча 121
к
куче 122
Л
Лазерный принтер 25
Лисп 16
Логические выражения 136
Логические операции 50
л
логический тип Boolean 112
логическим диском 175
логическими выражениями 111
логическими константами 112
Л
Лого 16
л
ложь 112
Л
Локальная переменная 127
л
локальной 27
м
максимальное 68
массив 107
массива 128
М
Массивы 106
Массивы как параметры 128
Математика 38
Матричный принтер 25
м
машинном языке 14
М
Метка 56
м
метод пузырька 132
методу “снизу вверх 87
М
Микрофон 25
м
минимальное 69
М
Множеством 119
Модем 27
м
модуле Graph 150
М
Модули программиста 149
м
модуль 39, 149
модуль CRT 153
модуль DOS 154
модуль Graph 76
М
Монитор 25
м
монитором 9
М
Мышь 24
н
не 52
Н
Нерассмотренные возможности Паскаля 155
о
обращением к процедуре 13, 73
О
Объект 156
о
ограниченных типов 113
О
Одномерные массивы 107
о
округление 39
окружность 79
операндом 136
оперативная память 21
О
Оперативная память 23
о
оперативной памяти 26
оператор 16
О
Оператор 74
Оператор варианта 53
Оператор перехода 56
о
оператор присваивания 137
оператор присвоения 36
оператор цикла 59
О
Оператор цикла For 61
Оператор цикла Repeat 59
Оператор цикла While 60
о
операторами 29
оператором присвоения 34
О
Операторы ввода данных 42
Операторы ввода-вывода 30
о
операционной системы 23
О
Описания переменных 35
о
описания процедуры 73
О
Определения констант 110
ОС 23
Основные приемы программирования 18
о
остаток от целочисленного деления 38
О
Отладка программы 163
о
отладкой 18
О
Отличия операторов Repeat и While 61
о
отрезок прямой 79
п
памяти 23
память 21
папка 173
параметр-значение 129
параметр-переменная 129
параметрами процедур 78
П
Паскаль 16
Первая программа на Паскале 32
п
первую большую программу 86
П
Переключение между текстовым и графическим режимами 77
п
переменной величины 34
переменной цикла 62
переменные 36
переменные величины 82
П
Переменные с индексами 107
Перемещение 168
Переполнение ячеек памяти 138
Перечислимые типы, создаваемые программистом 112
п
перечислимыми типами 114
периферийными 24
персональном компьютере 21
пи 39
пиксел 15, 28
П
Плоттер 26
п
побочным эффектом 132
подмножеством 120
подпрограмма 127
П
Пока 60
п
полей 117
пользователем 11
порядкового типа 54
порядковых типах 112
П
Порядок обмена информацией между устройствами компьютера 22
Порядок описания переменных, процедур и других конструкций Паскаля 94
Порядок работы в Паскале 158
Порядок составления программы 40
Последовательность работы человека на компьютере 17
п
постоянном запоминающем устройстве 23
П
Пошаговый режим 164, 167
Правила записи оператора IF 48
п
правила расстановки \ 31
приблизительность 106
П
Придумываем типы данных 111
Принтер 25
Пробелы 104
Программа 14
Программирование по методу “сверху-вниз 86
п
программистом 11
программным режимом 13
программой 10
П
Пролог 16
Простейшие процедуры 71
п
простейшие фигуры 77
простого типа 105
простой программы 40
П
Простые (линейныее) программы 30
п
процедур 72
процедура 74
П
Процедура вывода Write 30
Процедура вывода WriteLn 33
п
процедурой 13
процедуры 15, 19, 70
П
Процедуры с параметрами 124
п
процессор 21
прямоугольник 78
псевдографики 115
пустое множество 119
путем 175
Р
Работа с несколькими окнами 167
Работа с символами 115
Разветвляющиеся программы 46
Раздел ИНИЦИАЛИЗАЦИИ 149, 150
Раздел ИНТЕРФЕЙСА 149, 150
Раздел операторов 74
Раздел описаний 74
Раздел РЕАЛИЗАЦИИ 149, 150
р
разделить 38
Р
Расположение информации в оперативной памяти 121
р
расширением 173
расширенным кодом 115
результат 23
Р
Рекурсия 130
Роль ошибок 64
С
Связь компьютеров между собой 27
Сети 27
Си 16
с
символ 27, 53, 115
С
Символьный тип Char 115
Символьный тип данных 53
с
синтаксис 48
синтаксические диаграммы 139
системе координат 78
системный блок 21
С
Сканер 24
Скобки 38
с
сложного типа 106
С
Сложное условие в операторе if 50
с
служебные слова 31
служебными 103
служит буфер клавиатуры 96
случайное число 39
случайных величин 83
С
Собственные процедуры 19
Совместимость типов 136
с
сортировкой 131
С
Составной оператор 49
Сохранение программы 161
Список команд 12
Список типов 105
с
ссылки 122
С
Ссылки 106
с
стандартные процедуры 74, 76
стандартными модулями 76
С
Стек 121, 130
с
стиль заливки 81
С
Стиль линий 80
Строгости Паскаля 134
с
строка 116
С
Строковые выражения 136
Строковые переменные 44
Строковый тип String 116
с
строку 44
С
Струйный принтер 25
Структура программы 134
Структура процедур и функций 135
с
структурированные) типы 105
структуру программы 74
С
Ступенчатая запись программы 50
с
сумматор 66
С
Сумматоры 65
с
счетчик 64
С
Счетчики 64
с
счетчиком циклов 61
т
таблице ASCII 103
текст 153, 154
текстовом редакторе 170
текстовом режиме 154
Т
Текстовый режим 76
т
текстовым файлом 146
телом процедуры 73
телом цикла 57
Т
Тип выражения 136
т
типами данных 111
типизированные константы 110
Т
Типичные маленькие программы 63
т
типов 138
то 46
точкой 31
Т
Точкой с запятой 31
т
точку 78
трансляции 94
у
указатель 152
умножить 38
умолчанию 77
управление возвращается 24
У
Управление компьютером с клавиатуры 95
у
управление передается 23
У
Управление цветом в текстовом режиме 153
у
управления компьютером с клавиатуры 115
У
Условный оператор 46
Устройства ввода 24
Устройства вывода 24, 25
Устройство и работа компьютера 21
ф
файл 146
файлами данных 146
Ф
Файловая система магнитного диска 173
ф
файлом 173
фактические параметры 125
фактических параметров 137
формальные параметры 125
Ф
Формальные параметры 128
ф
формальных 137
Ф
Форматы вывода данных 137
Функции 126
ц
цвет 80
цвете 80
цветов 78
целая часть числа 39
целочисленное деление 38
Ц
Целочисленные типы 106
ц
центральный процессор 21
цикл 18
Ц
Цикл 56
Циклические программы 56
ч
чисел Фибоначчи 107
Ч
Числовые типы 106
ш
шина 21
шрифтом 153
э
экспоненциальном формате 40
экспоненциальном виде 137
эллипс 79
я
язык программирования 76
Я
Языки программирования 15
я
ячейке 138
ячейки 36
ячейкой 35
1 Имейте в виду, что я дал частное определение программы и алгоритма. В общем случае они определяются, как набор правил для получения нужного результата.
2 Конечно же, не только процедуры, но и функции, о которых мы будем говорить еще не скоро (2.2). А в языке Си вообще нет процедур, а только функции. Сейчас, когда вы еще практически ничего не знаете о программировании, я вынужден прибегать к упрощениям, чтобы вы не утонули в обилии преждевременных подробностей.
3 и функции (подчеркну еще раз)
4 Программа на машинном языке состоит не из символов
5 Опять же, числа в компьютере далеко не всегда состоят из символов-десятичных цифр. Когда компьютер производит над числами арифметические и другие операции, числа представлены совсем по-другому.
6 В скобки условия нужно брать потому, что «приоритет» операции AND выше, чем у операций сравнения «=» и «<», то есть она выполняется раньше них, точно так же, как, скажем, умножение выполняется раньше сложения. В Паскале все арифметические, логические и другие операции объединены в единую систему приоритетов. Рассмотрение этой системы выходит за рамки книги.
7 точнее, внутри стандартных модулей Паскаля, о которых вы узнаете позже
8 и функций, и других элементов
9 Тип Comp, несмотря на то, что является вещественным, принимает значения только целых чисел.
10 если это не типизированная константа (речь о них – в следующем параграфе)
11 Я приношу свои извинения за жаргон. Но что делать, если он широко распространен среди программистов. В конце концов, многие общепринятые слова раньше были жаргоном.
12 Здесь и в следующей процедуре A – так называемый бестиповой параметр-переменная, который мы с вами не проходили.