- •Долинер л.И., Данилина и.И., Пашкова р.Р., Емельянов д.А. Языки и системы программирования
- •Содержание
- •Теоретическая работа а. Что такое «программирование»
- •1. Что такое «программа» и как ее исполняет компьютер
- •2. Что такое “Среда программирования Turbo Pascal”
- •Вопросы для контроля
- •Лабораторная работа 1. Знакомство со средой turbo pascal
- •1. Как начать работу со средой Turbo Pascal
- •1.1. Структура каталогов среды Turbo Pascal
- •1.2. Запуск среды программирования Turbo Pascal
- •1.3. Структура экрана после запуска среды
- •1.4. Вход в меню
- •1.5. Среда Turbo Pascal как рабочий стол программиста
- •1.6. Работа со страницами
- •1.7. Компиляция и исполнение программ
- •2. Резюме
- •Вопросы для контроля
- •Лабораторная работа 2. Простейшие программы на языке pascal, или как это делается...
- •1. Структура программы на языке Pascal
- •2. Простейшие операторы
- •2.1. Резервирование памяти для работы
- •2.2. Запись данных в память, или оператор присваивания
- •2.3. Вывод данных на экран дисплея
- •2.4. Форматированный вывод информации
- •Теоретическая работа б. Введеhие в язык пpогpаммиpоваhия pascal
- •1. Алфавит языка
- •1.1. Символы, используемые в идентификаторах
- •1.2. Разделители
- •1.3. Специальные символы
- •1.4. Неиспользуемые символы
- •2. Структура программы
- •3. Типы данных
- •3.1. Целый тип
- •3.2. Вещественный тип
- •3.3. Символьный тип
- •3.4. Логический тип
- •3.5. Строковый тип данных
- •3.5. Пример описания данных
- •4. Команда присваивания
- •4.1. Операции
- •4.2. Стандартные функции
- •4.3. Запись выражений
- •5. Простейшие команды ввода и вывода информации
- •5.1. Вывод информации
- •5.2. Ввод информации
- •Вопросы для контроля
- •Лабораторная работа 3. Как организовать диалог
- •1. Команда ввода данных
- •2. Библиотека Crt
- •2.1. Определение цвета символов
- •2.2. Определение цвета фона
- •2.3. Очистка экрана
- •Вопросы для контроля
- •Лабораторная работа 4. Графика в языке pascal (первое знакомство)
- •1. Включение графического режима
- •2. Библиотека Graph
- •Задачи для самостоятельной работы. Линейные алгоритмы
- •Лабораторная работа 5. Операции с целыми и вещественными числами
- •Теоретическая работа в. Алгоритмические конструкции: условный оператор
- •4.1. Составной оператор
- •4.2. Условные операторы
- •4.2.1. Команда ветвления
- •5. Сложные условия
- •5.1. Что такое True и False
- •5.2. Логический тип данных
- •5.3. Сложные условия
- •6. Оператор выбора case
- •Лабораторная работа 6. Операторы ветвления и выбора
- •1. Что такое ветвление и как оно организуется в языке Pascal?
- •2. Условный оператор if
- •2.1. Теория
- •2.2. Практика
- •Контрольное задание
- •3. Оператор выбора case
- •3.1. Теория
- •3.2. Практика
- •Теоретическая работа г. Введение в систему типов языка pascal
- •1. Стандартные типы данных
- •2. Перечислимый тип
- •3. Ограниченный тип данных
- •4. Множества
- •5. Вопросы для самоконтроля
- •Теоретическая работа д. Циклы с параметром: быстрое начало
- •1. Когда используется цикл с параметром
- •2. Форма записи цикла с параметром
- •3. Вычисление сумм
- •4. Выборки
- •5. Максимумы и минимумы
- •Лабораторная работа 7. Циклы с параметром
- •Лабораторная работа 8. Как нарисовать забор
- •Лабораторная работа 9. Звездное небо и прочие странности
- •1. Получение случайного числа
- •2. Рисование точек в графическом режиме
- •Лабораторная работа 10. Проектирование программ и процедуры
- •1. Зачем нужна технология программирования
- •2. Знакомство с технологией проектирования “сверху вниз”
- •Решение Часть 1. Уточнение постановки задачи (эскиз)
- •Часть 2. Первый вариант решения
- •Часть 3. Уточнение решения
- •Часть 4. Уточнение решения
- •Часть 5. Уточнение решения
- •Часть 6. Уточнение решения
- •Это вам пригодится
- •Теоретическая работа е. Конструкции цикла в языке pascal
- •Оператор цикла с параметром
- •2. Цикл с предусловием while
- •3. Цикл с постусловием repeat
- •4. Вопросы для самоконтроля
- •Лабораторная работа 11. Разные конструкции цикла
- •1. Теория
- •1.1. Цикл со счетчиком (for)
- •1.2. Цикл с предусловием (while)
- •1.3. Цикл с постусловием (repeat)
- •2. Практика
- •Вопросы для контроля
- •Лабораторная работа 12. Как управлять движением на экране дисплея, или след слона
- •Теоретическая работа ж. Построение графиков функций
- •Лабораторная работа 13. Построение графиков функций
- •Лабораторная работа 14. Дополнительные возможности при работе с графикой
- •Теоретическая работа г. Динамические объекты: считывание картинок в память и вывод их на экран
- •Лабораторная работа 15. Как делается движущееся изображение
- •Теоретическая работа д. Использование страниц памяти для организации движения объектов по экрану
- •Как рисовать сложные картинки
- •Лабораторная работа 16. Мультипликация с использованием страниц видеопамяти
- •Лабораторная работа 17. Технология представления картинок в виде числового массива
- •Лабораторная работа 18. Движение объектов по многоцветному фону
- •1. Как вывести на экран картинку формата pcx
- •2. Технология движения объектов по многоцветному фону
- •Лабораторная работа 19. Мыши и модули
- •I. Как работать с мышью
- •1.1. Как работает манипулятор "мышь"
- •1.2. Начинаем программировать управление мышью
- •2. Модули
- •Implementation {начало раздела реализации}
- •Лабораторная работа 20. Работа со строковыми переменными
- •1. Теория
- •1.1. Описание строковых переменных
- •1.2. Сравнение строк
- •1.3. Операции со строками
- •2. Практика
- •Вопросы для контроля
- •Лабораторная работа 21. Работа с символьными переменными -1
- •Лабораторная работа 22. Работа с символьными переменными - 2
- •Лабораторная работа 23. Процедуры - 1
- •1. Теория
- •2. Практика
- •Лабораторная работа 24. Процедуры - 2
- •Лабораторная работа 25. Строковый редактор
- •1. Что такое «строковый редактор»
- •2. Зачем писать строковый редактор
- •3. Несколько вспомогательных задач
- •4. Постановка задачи на разработку
- •5. Необходимая информация для написания процедуры
- •6. Подсказка: алгоритм работы строкового редактора
- •Лабораторная работа 26. Поиск среднего и другие неожиданности
- •Лабораторная работа 27. Как работать с массивами: первые шаги
- •1. Теория
- •2. Практика
- •Вопросы для контроля
- •Лабораторная работа 28. Массивы и деловая графика
- •Теоретическая работа е. Строковые массивы. Алгоритмы поиска
- •Лабораторная работа 29. Строковые массивы. Алгоритмы поиска
- •Лабораторная работа 30. Нечисловые индексы в массиве
- •Теоретическая работа ж. Сортировка массивов
- •Лабораторная работа 31. Сортировка массивов
- •Лабораторная работа 32. Программа обслуживания конькобежных соревнований
- •Теоретическая работа з. Двумерные и многомерные массивы
- •Вопросы для контроля
- •Лабораторная работа 33. Шахматный турнир
- •Лабораторная работа 34. Подпрограммы - функции
- •1. Теория
- •2. Практика
- •Лабораторная работа 35. Работа с текстовыми файлами -1
- •1. Теория
- •1.1. Что такое текстовый файл
- •1.2. Принцип работы с текстовыми файлами
- •2. Практика
- •Лабораторная работа 36. Работа с текстовыми файлами - 2
- •Вопросы для контроля
- •Лабораторная работа 37. Работа с типизированными файлами - 1
- •1. Теория
- •2. Практика
- •Лабораторная работа 38. Работа с типизированными файлами - 2
- •1. Теория : тип данных «запись»
- •2. Практика
- •Лабораторная работа 39. Работа с типизированными файлами как с файлами прямого доступа
- •1. Теория
- •2. Практика
- •Лабораторная работа 40. Дополнительные возможности, или что можно еще натворить...
- •1. Что можно делать с файлами и каталогами
- •2. Процедуры и функции библиотеки dos
- •2.1. Работа с часами и календарем
- •2.2. Работа с каталогами и файлами
- •2.3. Типы и константы модуля dos для работы с файлами
- •3. Практика
- •Приложение 1 Зарезервированные слова Turbo Pascal
- •Приложение 2 Знаки пунктуации в языке Pascal
- •Приложение 3 Операции в языке Pascal
- •3.1. Арифметические операции
- •3.2. Логические операции
- •3.3. Операции отношения
- •Приложение 4 Стандартные функции языка Pascal
- •4.1. Арифметические функции
- •4.2.Функции преобразования типов
- •4.3. Функции для величин порядкового типа
- •Приложение 5 Команды pедактоpа сpеды Turbo Pascal 7.0
- •5.1. Команды перемещения курсора
- •5.2. Команды поиска фрагментов
- •5.3. Команды вставки и удаления информации
- •5.4. Команды работы с блоками информации
- •5.5. Клавиши быстрого управления средой Turbo Pascal 7.0
- •Список рекомендуемой литературы
Вопросы для контроля
Для чего предназначена команда ввода?
Чем отличаются и что общего у команд ввода и присваивания?
В чем разница между командой присваивания и равенством в математике?
Поясните назначение процедуры GOTOXY(x,y).
Как в программе:
a) подключается библиотека Crt?
б) задается цвет символов?
в) задается цвет фона?
г) осуществляется задержка выполнения программы по времени?
Лабораторная работа 4. Графика в языке pascal (первое знакомство)
1. Включение графического режима
Дисплей Вашего компьютера может работать в двух режимах: алфавитно-цифровом и графическом. До сих пор Вы работали только в первом режиме. Пришло время познакомиться и с графическим. Для работы в графическом режиме будем использовать подпрограммы, включенные в стандартную библиотеку Graph и учебную библиотеку Graph0.
Сначала решим проблему включения графического режима. Для этого можно воспользоваться процедурой Init, имеющейся в учебной библиотеке Graph0.
Например:
Program Globus;
Uses Graph, Graph0; {Обратите внимание, что для работы в графике подключаются две библиотеки: Graph и Graph0! }
var x,y : word;
begin
Init(‘d:\TP70\BGI’); {Процедура включения графики. В скобках указывается путь к подкаталогу BGI.}
...
CloseGraph; {Процедура закрытия графики, т.е. возврат в алфавитно-цифровой режим.}
end.
Для Вас включение графического режима означает, что теперь простейшей выводимой единицей является не символ (как в алфавитно-цифровом режиме), а ТОЧКА. Таких точек на экране вмещается достаточно много.
На самом деле количество точек на экране зависит от типа терминала и от режима его работы. Так, например, терминал EGA обеспечивает максимальный размер экрана 640x350 точек, VGA - 640x480, CGA - 320x200 точек. ТЕРМИНАЛЫ БОЛЬШЕЙ РАЗРЕШИМОСТИ МОГУТ РАБОТАТЬ В РЕЖИМАХ ТЕРМИНАЛОВ МЕНЬШЕЙ РАЗРЕШИМОСТИ, т.е. терминал EGA может сделать вид, что он CGA, но не может превратиться в VGA и т. п.
2. Библиотека Graph
В среде Turbo Pascal имеется стандартная библиотека Graph, содержащая множество различных подпрограмм для рисования простейших примитивов (точек, линий, окружностей, эллипсов и т.д.). Подключив библиотеку Graph (Uses Graph;), Вы можете воспользоваться процедурами, перечисленными ниже.
PutPixel (x,y: integer; Color: byte) - рисование точки с координатами (x,y) и цветом Color.
SetColor (Color: byte) - задать цвет рисуемых линий.
ClearDevice; - очистка графического экрана6.
OutTextXY(x,y : integer; txt : string); - вывод строки текста txt на графический экран. Числа x,y указывают координаты левого верхнего угла первой буквы выводимого текста.
Line (x1,y1,x2,y2: integer); - рисует отрезок прямой с концами в точках (x1,y1) и (x2,y2).
Rectangle (x1,y1,x2,y2: integer); - рисует прямоугольную рамку с координатами диагонали (x1,y1) и (x2,y2).
Circle(x,y,R:integer); - рисует окружность с центром в точке с координатами (x,y) и радиусом R.
SetFillStyle (Pattern , Color: byte); - устанавливает вид (Pattern) и цвет (Color) штриховки, действует на все команды штриховки, пока не установлены новые параметры (так же, как и SetColor). Возможные типы штриховки:
EmptyFill = |
|
- штриховка цветом фона |
|
SolidFill = |
|
- сплошная штриховка |
|
LineFill = |
|
- штриховка горизонт. линиями |
|
LtSlashFill = |
|
- штриховка наклонными линиями |
|
SlashFill = |
|
- штриховка утолщенными линиями |
|
BkSlashFill= |
|
- штриховка утолщенными линиями |
|
LtBkSlashFill= |
|
- штриховка наклонными линиями |
|
HatchFill = |
|
- штриховка крестиками |
|
XHatchFill = |
|
- штриховка повернутыми крестиками |
|
InterleaveFill= |
|
- штриховка частыми крестиками |
|
WideDotFill = |
|
- штриховка точками |
|
CloseDotFill= |
|
- штриховка частыми точками |
|
UserFill = |
|
- штриховка, определяемая пользователем. |
FloodFill (x,y:integer;Color: byte); - команда закраски области внутри замкнутого контура, x и y - координаты произвольной точки ВНУТРИ контура, Color - ЦВЕТ ГРАНИЦЫ КОНТУРА.
Bar(x1,y1,x2,y2: integer); - рисуется закрашенный прямоугольник с координатами противоположных углов (x1,y1) и (x2,y2), цвет установлен командой SetFillStyle.
Задание 1
Считайте с диска файл с именем lab4_1.pas. Он представляет собой программу рисования линии на экране дисплея. Запустите эту программу - и вы увидите на экране зеленую горизонтальную прямую линию. Рисунок будет стоять на экране до тех пор, пока не будет нажата клавиша <Enter> (это обеспечивается командой ReadLn в программе после рисования линии). Модифицируйте программу так, чтобы:
а) линия располагалась вертикально;
б) линия располагалась по диагонали экрана;
в) на экране рисовались две диагонали - одна красного цвета, а другая - желтого;
г) один конец линии располагался в левом верхнем углу экрана - в точке с координатами (0,0), а координаты другого конца вводились с клавиатуры (ввод нужно произвести до включения графического режима).
Задание 2
Считайте с диска файл с именем lab4_2.pas. Перед вами появилась программа рисования на экране дисплея квадрата и окружности, размеры которых вводятся с клавиатуры (запустите программу и убедитесь в этом). Модифицируйте программу так, чтобы с клавиатуры вводился только размер стороны квадрата. При этом окружность должна быть:
а) вписана в квадрат;
б) описана около квадрата.
Задание 3
В файле lab4_3.pas записана программа рисования заштрихованного квадрата, меняющего цвет после нажатия клавиши <Enter>. Запустите ее и пронаблюдайте за ее работой. Модифицируйте программу так, чтобы цвет квадрата не менялся, а менялся тип штриховки.
Еще одна модификация: на экране, кроме квадрата, должен появляться еще и заштрихованный круг:
а) того же цвета в другом месте экрана;
б) другого цвета внутри квадрата.
Задание 4
Нарисуйте на экране дисплея:
а) российский флаг 150х150 пиксель (горизонтальные полосы: белая, синяя, красная - одинаковой ширины);
б) французский флаг 150х150 пиксель; (вертикальные полосы: синяя, белая, красная - одинаковой ширины);
б) японский флаг 300х150 пиксель (красный круг в центре белого прямоугольника).
Задание 5
Модифицируйте составленные программы рисования:
а) российского флага;
б) французского флага;
в) японского флага,
так, чтобы размеры и место на экране вводились с клавиатуры7.
Задание 6**
Нарисуйте на экране дисплея простейшую модель Солнечной системы, изобразив планеты кружками различного цвета и диаметра, а их орбиты - окружностями. Усложните модель, добавив Луну, спутники Марса и т.п.