- •Для школьников,студентовИ начинающих 1999 с,н.Лукин __________________________________________________________ Все права защищены ©
- •Оглавление
- •Часть I. Необходимые сведения о компьютере и программе 8
- •Часть II. Программирование на Паскале – первый уровень 29
- •Часть III. Программирование на Паскале – второй уровень 102
- •Часть IV. Работа в Паскале на компьютере 158
- •От автора
- •Предисловие
- •Кому нужна эта книга?
- •Почему Паскаль?
- •Какой из Паскалей?
- •Краткое содержание с рекомендациями
- •Часть III.Программирование на Паскале – второй уровень. Цели этой части:
- •Часть I. Необходимые сведения о компьютере ипрограмме
- •Первое представление о компьютере и программе
- •Что умеет делать компьютер
- •Что такое компьютер. Первое представление о программе.
- •Как человек общается с компьютером
- •Программа и программирование
- •Список команд. Командный и программный режимы
- •Последовательность работы человека с роботом
- •Что важно знать о программе
- •Понятие о процедуре. Может ли робот поумнеть?
- •Программа для компьютера на машинном языке
- •Языки программирования
- •Пример настоящей программы для компьютера на языке Лого
- •А теперь напишем программу:
- •Последовательность работы программиста на компьютере
- •Основные приемы программирования
- •Устройство и работа компьютера
- •Как устроен и работает компьютер
- •Порядок обмена информацией между устройствами компьютера
- •Устройство и размеры оперативной памяти
- •Взаимодействие программ в памяти
- •Внешние устройства компьютера
- •Устройства ввода
- •Устройства вывода
- •Внешняя память
- •Кодирование информации в компьютере
- •Часть II. Программирование на Паскале – первый уровень
- •Простые (линейные) программы. Операторы ввода-вывода. Переменные величины
- •Процедура вывода Write
- •8 'Котят' 3*3 'щенят'
- •Первая программа на Паскале
- •Выполняем первую программу на компьютере
- •Процедура вывода 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
- •Модуль dos
- •П5. Решения заданий
- •П6. Список литературы
- •П7. Предметный указатель
Текстовый и графический режимы
Существуют два режима (способа) работы компьютера с монитором - текстовый и графический. В любом месте программы вы можете приказать компьютеру переключиться из одного режима в другой.
Текстовый режимиспользуется для вывода на экран текстовой и числовой информации. Работая в текстовом режиме, компьютер считает экран разбитым на 25 строк и 80 столбцов, иногда на другое количество. В каждой из получившихся клеточек умещается ровно одна буква или цифра или знак препинания или любой другой символ. Какой именно символ будет находиться в клеточке, диктуете вы в вашей программе. Рисовать и показывать картинки компьютер в текстовом режиме не может.
Работая в графическом режимекомпьютер считает экран разбитым на множество мельчайших пикселов, каждый из них - гораздо мельче клеточки текстового режима. Принцип построения изображения из пикселов описан в 2.4. В этом режиме компьютер может и рисовать картинки и печатать символы, причем если в текстовом режиме величина и форма всех букв более-менее одинакова, то в графическом режиме мы можем печатать символы самой разной формы и размеров.
Получается, что графический режим лучше текстового? В общем, да, конечно. Но у графического режима есть один недостаток - он требует от компьютера значительных усилий и поэтому на маломощных компьютерах часто работает раздражающе медленно.
Во всех написанных ранее программах мы ничего не говорили об этих режимах, мы молчали о них. Если мы в программе специально не просим, то Паскаль всегда выбирает текстовый режим. Говорят, что текстовый режим в Паскале используется по умолчанию.
Переключение между текстовым и графическим режимами
Итак, если вы собираетесь работать с изображениями, то должны переключиться в графический режим и для этого пишете первой строкой программы USES Graph. Но сама по себе эта строка не является указанием компьютеру переключиться в графический режим, хотя бы потому, что находится в разделе описаний, а не в разделе операторов. Для переключения в графический режим (или, как говорят, для инициализацииграфического режима) служит стандартная процедура InitGraph. Для того, чтобы закрыть графический режим и снова переключиться в текстовый, служит стандартная процедура CloseGraph.
(Начиная с этого момента я не буду приводить переводы и произношение английских слов. Многие из них приведены в приложении П3 и П4.)
Вот пример программы, которая сначала в текстовом режиме пишет на экране текст “Это текстовый режим”, затем переключается в графический режим, рисует окружность, а затем снова переключается в текстовый режим и пишет “Это снова текстовый режим”:
USESGraph;
VARDevice, Mode : Integer;
BEGIN
WriteLn(‘Это текстовый режим’);
{Инициализируем графический режим:}
ReadLn;
Device:=0;
InitGraph(Device, Mode, ’<путь к графическим драйверам>’);
Circle(100,80,50); {Обращение к процедуре рисования окружности. Пока без пояснений}
ReadLn;
{Закрываем графический режим, что рекомендую:}
CloseGraph;
WriteLn(‘Это снова текстовый режим’);
ReadLn
END.
Пояснения:Перед использованием процедурыInitGraphнеобходимо создать две переменные величины типа Integer с произвольными именами (я использовал именаDeviceиMode). Обе эти переменные при обращении к процедуреInitGraphдолжны быть записаны внутри круглых скобок. Вам на первых порах совершенно не обязательно это знать, но поясню, чтоDeviceозначает тип вашего видеоадаптера (CGA, EGA, VGA или другой), аModeозначает номер графического режима. Если вы ничего не знаете ни о том, ни о другом, смело пишитеDevice := 0и Паскаль сам определит тип вашего видеоадаптера и установит самый мощный из допустимых графический режим.
Третий элемент - не что иное, как путь к графическим драйверам Паскаля. Я использовал угловые скобки <>, чтобы подчеркнуть, что в вашей программе нужно писать не те четыре русских слова, что внутри угловых скобок, а то, на что они указывают. Почти наверняка для вас графический драйвер представлен файлом egavga.bgi, расположенном в каталогеBGI. Если сам Паскаль расположен в каталогеTPдискаc, то строка вашей программы будет выглядеть так:
InitGraph(Device, Mode, ‘c:\TP\BGI’)
Если вы ее записали верно, то можете попытаться запустить программу, и при правильной настройке Паскаля у вас все получится. Тех, кто не знает, что такое каталоги и файлы, отсылаю к приложению.
Если Паскаль при запуске графического режима жалуется (File not found (GRAPH.TPU)), то прочтите «Обзор популярных команд меню» из частиIV. Там сказано, что делать.
Учтите, что при переключении режимов все содержимое экрана стирается.