- •Учебно-методический комплекс дисциплины «Информатика» Календарно-тематический план.
- •2. Тезисы лекций Тема 1. Понятие алгоритма, свойства, типы, исполнители
- •Тема 2. Система программирования TurboPascal. Исполняемые операторы. Словарь языка. Структура программы.
- •Имена, ключевые слова и знаки операций
- •Тема 3. Предопределенные типы переменных (простые), стандартные функции
- •Операции и выражения
- •Тема 4. Операторы Ввода-вывода Оператор вывода writeln
- •Тема 5. Операторы условий, выбора и безусловного перехода
- •Тема 6. Операторы циклов
- •Тема 7. Символьные типы данных. Обработка символьных данных.
- •Тема 8. Массивы
- •8.1. Одномерные массивы
- •8.2. Двумерные массивы (матрицы)
- •Обращение к компонентам массива
- •Тема 9. Строки. Строковые процедуры.
- •Неименованные константы
- •Действия с символами
- •Тема 10. Процедуры и функции Подпрограммы
- •Объявление и описание
- •Возвращаемые значения
- •Вызов подпрограмм
- •Параметр-константа
- •Функции
- •Параметр-значение
- •Тема 11. Множества (Set)
- •Тема 12. Файлы. Файловые переменные.
- •Разновидности файлов
- •Работа с текстовыми файлами
- •Тема 13. Записи
- •Описание записей
- •Задание записей константой
- •Доступ к полям
- •Оперирование несколькими полями
- •Вложенные операторы with
- •Запись с вариантной частью
- •Описание записи с вариантной частью
- •Тема 14. Построение изображений на экране Система координат
- •Управление текущим указателем
- •Отображение точки на экране
- •Отображение линий на экране
- •Построение прямоугольников на экране
- •Построение многоугольников
- •Построение дуг, эллипсов и окружностей
- •Тематика и краткое описание лабораторных и студийных работ
- •2. Связь функция-клавиатура в интегрированной среде Turbo Pascal
- •3. Команды экранного редактора:
- •3.1 Команды перемещения курсора
- •3.2 Команды вставки/удаления
- •3.3 Команды работы с блоками
- •4. Технология компиляции
- •5. Технология отладки программы
- •6. Программирование линейных алгоритмов
- •Лабораторная работа 2 программирование разветвляющихся вычислительных процессов
- •Краткие сведения из теории
- •Составить блок-схему и программу алгоритмов нахождения функции с выбором по расчетной формуле.
- •Лабораторная работа 3 программирование циклов с параметром
- •Краткие сведения из теории
- •П р о г р а м м а
- •П р о г р а м м а
- •Лабораторная работа 4
- •Лабораторная работа 5 программирование циклов с условием
- •Краткие сведения из теории
- •П р о г р а м м а
- •П р о г р а м м а
- •Лабораторная работа 6
- •Краткие сведения из теории
- •П р о г р а м м а
- •П р о г р а м м а
- •Лабораторная работа 7 работа с матрицами
- •Краткие сведения из теории
- •П р о г р а м м а
- •П р о г р а м м а
- •Лабораторная работа 8 обработка символьных строк
- •Краткие сведения из теории
- •П р о г р а м м а
- •П р о г р а м м а
- •Лабораторная работа 9 записи. Файлы
- •Краткие сведения из теории
- •Лабораторная работа 10 процедуры
- •Краткие сведения из теории
- •П р о г р а м м а
- •Лабораторная работа 11 функции
- •Краткие сведения из теории
- •П р о г р а м м а
- •П р о г р а м м а
- •Порядок работы
- •Содержание отчета
- •Лабораторная работа 12 графические средства паскаля
- •Краткие сведения из теории
- •Порядок работы
- •Лабораторная работа №14 Динамические структуры данных. Организация данных в списковые структуры
- •Кратное содержание теории
- •Краткое описание семинарских и практических занятий (планы, задания для проведения семинарских и практических занятий, срсп, срс)
- •Тема 1. Структура программы на паскале. Заголовок программы. Блок. Типы данных, их классификация. Переменные и константы. Синтаксис выражений. Порядок работы
- •Содержание отчета
- •Тема 2 конструкция операторов разветвления Порядок работы
- •Содержание отчета
- •Тема 3. Конструкция операторов цикла Порядок работы
- •Содержание отчета
- •Тема 4. Конструкция циклов с предусловием и постусловием Порядок работы
- •Содержание отчета
- •Тема 6. Составные типы данных. Создание одномерных массивов и стандартных процедур. Порядок работы
- •Содержание отчета
- •Тема 7. Создание двумерных массивов и стандартных процедур Порядок работы
- •Содержание отчета
- •Тема 8. Методы работы со строками и отдельными символами Порядок работы
- •Содержание отчета
- •Тема 9. Задачи классической комбинаторики. Записи и файлы. Порядок работы
- •Содержание отчета
- •Тема 10. Процедуры и функции Порядок работы
- •Содержание отчета
- •Тема 13. Динамические переменные. Структуры данных
- •5. Задания для самопроверки и подготовки к экзамену, в том числе тесты
- •5.1 Вопросы для самоконтроля по данному модулю/разделу (коллоквиума);
- •5.2. Контрольные работы по данному модулю/разделу;
- •Тема «Строки»
- •Тема «Множества»
- •6. Учебно-методические материалы по дисциплине
- •6.1.Список рекомендуемой литературы Основная литература
- •Дополнительная литература
Лабораторная работа 12 графические средства паскаля
Цель работы: Научиться использовать графические средства Паскаля на примере построения графика функции
Краткие сведения из теории
Инициализация графического режима производится с помощью процедуры InitGraph (<драйвер>,<режим>,<путь>),
где <драйвер> - переменная типа INTEGER - указывает тип (номер)
графического драйвера. Например:
0 - Detect (тип установленного драйвера
распознается автоматически компьютером);
1 - CGA;
2 - EGA;
9 - VGA.
<режим> - переменная типа INTEGER - если тип драйвера не
0, то указывается графический режим работы
драйвера, т.е. размер экрана в пикселях, число
цветов и число страниц (экранов).
<путь> - выражение типа STRING - если тип драйвера не 0,
то необходимо указать путь к файлу с графическим
драйвером.
Основные графические процедуры
Цвет является выражением целого типа со значением из интервала 0..15, в частности, может быть константой из таблицы:
Black = 0 (черный) |
Darkgray = 8 (темно-серый) |
Blue =1 (синий) |
Lightblue = 9 (светло-синий) |
Green =2 (зеленый) |
Lightgreen =10 (светло-зеленый) |
Cyan =3 (голубой) |
Lightcyan =11 (светло- голубой) |
Red =4 (красный) |
Lightred =12 (светло-красный) |
Magenta =5 (фиолетовый) |
Lightmagenta=13(светло-фиолетовый) |
Brown =6 (коричневый) |
Yellow =14 (желтый) |
Lightgray =7 (светло-серый) |
White =15 (белый). |
Процедуры setcolor(цвет) и setbkcolor(цвет) устанавливают цвет рисунка и цвет фона. При инициализации графики по умолчанию устанавливается черный фон и белый цвет рисунка.
В следующей таблице указаны основные процедуры для модуля Graph, применяющиеся для построения точек, отрезков, дуг, прямоугольников, закрашивания замкнутых областей и вывода текста на графический экран.
Заголовок процедуры |
Геометрический смысл |
putpixel(x,y,c) |
построить точку (x,y) цветом c |
setlinestyle(a,b,t) |
установить стиль, образец и толщину линий |
line(x1,y1,x2,y2) |
соединить две точки отрезком |
rectangle(x1,y1,x2,y2) |
построить прямоугольник с заданными концами диагонали и сторонами, парал- лельными осям координат |
circle(x,y,r) |
построить окружность с центром (x,y) и радиусом R |
arc(x,y,a,b,r) |
построить дугу окружности: a,b -начальный и конечный углы в градусах |
ellipse(x,y,a,b,rx,ry) |
построить эллиптическую дугу: rx, ry - полуоси эллипса |
setfillstyle(t,c) |
установить стиль закраски и ее цвет |
fillellipse(x,y,rx,ry) |
построить закрашенный эллипс, используя цвет рисунка, |
floodfill(x,y,cg) |
закрасить фигуру до границы с цветом cg; (x,y) - внутренняя точка фигуры |
bar(x1,y1,x2,y2) |
построить столбец, используя тип и цвет закраски |
pieslice(x,y,a,b,r) |
построить и закрасить сектор круга: a,b - начальный и конечный углы дуги в градусах |
sector(x,y,a,b,rx,ry) |
построить и закрасить эллиптический сектор |
settextstyle(f,n,d) |
установить шрифт, направление вывода и размер символов текста |
outtextxy(x,y,st) |
вывести строку st, начиная с точки (x,y) |
outtext(st) |
вывести строку, начиная с точки рас- положения текущего указателя |
Первый аргумент процедуры setlinestyle(a,b,t) - стиль линии a - принимает значения из таблицы:
Значение стиля |
Смысл |
0 solidln |
непрерывная линия |
1 dotteln |
пунктирная линия |
2 centerln |
штрихпунктирная линия |
3 dashedln |
штриховая линия |
4 userbitln |
определенная пользователем |
Второй параметр b, "образец", имеет значение 4, если a=4, в оста- льных случаях b=0. Третий параметр t, толщина линии, может иметь значение 1 (нормальная толщина) или 3 (жирная линия).
Первый аргумент процедуры setfillstyle(t,c) - тип закраски t - принимает значения из интервала 0..12. Наиболее употребителен тип t=1 - заполнение фигуры текущим цветом. Другие типы закраски приведены ниже.
Для вывода текста на графический экран сначала выполняется процедура settextstyle(f,n,d), устанавливающая шрифт f, направление вывода n и размер символов (параметр d). При f=0 используется стандартный точечный шрифт, встроенный в систему Турбо- Паскаль.
Направление вывода принимает значения 0 (горизонтальный вывод) и 1 (вертикальный вывод).
Размер букв определяется параметром d, принимающим значения из интервала 1..10. Если d=1 и f=0, то каждый символ занимает квадрат 8*8 точек, при d>1 сторона квадрата умножается на d.
Далее с помощью процедуры outtextxy(x,y,st) строка st выводится на экран, начиная с точки (x,y), например:
settextstyle(0,0,2);
outtextxy(100,200,'горизонтальная строка');
outtextxy(100,230,'размер увеличен вдвое');
Константы модуля GRAPH
В работе с графическими средствами часто используются конс- танты модуля Graph. Ниже приводится список наиболее употреби-тельных констант этого модуля:
(коды ошибок при инициализации)
grOk = 0 (нет ошибок);
grNoInitGraph = -1 (графика не инициализирована);
grNotDetected = -2 (графическое устройство не обнаружено);
grFileNotFound = -3 (файл драйвера не найден);
grInvalidDriver = -4 (неправильный файл драйвера);
grNoLoadMem = -5 (нет памяти для драйвера);
grNoScanMem = -6 (нет памяти для просмотра областей);
grNoFloodMem = -7 (нет памяти для закраски областей);
grFontNotFound = -8 (фаты шрифта не найдены);
grNoFontMem = -9 (нет памяти для загрузки шрифта);
grInvalidMode = -10 (недопустимый графический режим);
grError = -11 (общая ошибка);
grIOError = -12 (ошибка ввода/вывода);
grInvalidFont = -13 (неверный файл шрифта);
grinvalidfontnum = - 14 (неверный номер шрифта);
(поддерживаемые графические драйверы) Detect = 0 (автоматическое распознавание); CGA = 1; MCGA = 2; EGA = 3; EGA64 = 4; EGAMono = 5; IBM8514 = 6 (зарезервировано); HercMono = 7; ATT400 = 8; VGA = 9; PC3270 = 10; |
(стиль и толщина линий) SolidLn = 0 (сплошная); DottedLn = 1 (пунктирная); CenterLn = 2 (осевая); DashedLn = 3 (штриховая); UserBitLn = 4 (определенная пользователем) NormWidth = 1 (нормальная толщина); ThickWidth = 3 (жирная); |
(константы закраски) EmptyFill = 0 ( нет закраски ); SolidFill = 1 ( сплошная закраска); LineFill = 2 ( --- штриховка); LtSlashFill = 3 ( /// штриховка); SlashFill = 4 ( /// толстая штриховка); BkSlashFill = 5 ( \\\ толстая штриховка); LtBkSlashFill = 6 ( \\\ штриховка); HatchFill = 7 ( +++ штриховка ); XHatchFill = 8 ( xxx штриховка); InterleaveFill = 9 ( штриховка в клетку); WideDotFill = 10 ( штриховка редкими точками ); CloseDotFill = 11 ( штриховка частыми точками ); UserFill = 12 ( штриховка пользователя ); |
(константы для Putimage) NormalPut = 0 ( MOV ); XORPut = 1 ( XOR ); OrPut = 2 ( OR ); AndPut = 3 ( AND ); NotPut = 4 ( NOT ); |
ПРИМЕР: Построить график функции
program grafiki_funk;
Uses Graph;
var
a,b,c,d,h,x,y:real;
de,re,n,k,u,v:integer;
const um=639;vm=469;
function f(x:real):real;
begin
f:=SQR(x);
end;
procedure vvod_dan(var a,b,c,d:real;
var n:integer);
begin
writeln('Параметры графика');
write('Слева:a='); readln(a);
write('Справа:b=');readln(b);
write('Снизу:c=');readln(c);
write('Сверху:d=');readln(d);
write('n=');readln(n); {количество точек на графике}
end;
begin
vvod_dan(a,b,c,d,n);
de:=detect;Initgraph(de,re,' ');
h:=(b-a)/n; {шаг}
for k:=0 to n do
begin
x:=a+h*k;
y:=f(x);
u:=round((x-a)*um/(b-a)); {для вывода точки координаты}
v:=round((d-y)*vm/(d-c)); {преобразуются к типу "integer"}
putpixel(u,v,7);
end;
readln {график сохраняется на экране до нажатия клавиши}
end.