- •Некоммерческое акционерное общество
- •Технологии программирования
- •1 Расчетно-графическая работа. Использование функций при работе с массивами
- •1.1 Задания к расчетно-графической работе
- •1.2 Общие рекомендации к выполнению работы
- •1.3 Контрольные вопросы
- •2 Расчетно-графическая работа. Использование файлов и структур
- •2.1 Задания к расчетно-графической работе
- •2.2 Общие рекомендации к выполнению работы
- •2.3 Контрольные вопросы
- •3 Расчетно-графическая работа. Использование графики
- •3.1 Задания к расчетно-графической работе
- •3.2 Общие рекомендации к выполнению работы
- •3.3 Контрольные вопросы
- •Приложение а
- •Приложение б
- •Приложение в
- •Приложение г
- •Список литературы
- •Содержание
- •0 50013, Алматы, ул. Байтурсынова, 126
Приложение в
Примеры использования файлов при работе со структурами
Пример В.1. Запись структуры в файл:
#include<fstream.h>
void main(void)
{
struct date
{
int day; char month[9]; int year;
}d={25,"ноября",1991};
ofstream out_file("file3.dat") ;
out_file.write((char *) &d, sizeof(date));
out_file.close (); }
Пример В.2. Чтение структуры из файла и вывод ее элементов на экран:
#include<iostream.h>
#include<fstream.h>
void main(void)
{
struct date
{
int day; char month[9]; int year;
}d;
ofstream in_file("file3.dat");
in_file.read((char *) &d, sizeof(date));
cout<<d.day<<" "<<d.month<<" "<<d.year<<endl;
in_file.close () ; }
В результате последовательного выполнения этих двух программ на экран дисплея будет выведено: 25 ноября 1991.
Приложение г
Справочник графических функций
Таблица Г.1 - Именованные константы цветов
Цвет |
Const |
Значение |
Черный |
Black |
0 |
Синий |
Blue |
1 |
Зеленый |
Green |
2 |
Бирюзовый |
Cyan |
3 |
Красный |
Red |
4 |
Сиреневый |
Magenta |
5 |
Коричневый |
Brown |
6 |
Светло-серый |
LightGray |
7 |
Серый |
DarkGray |
8 |
Голубой |
LightBlue |
9 |
Светло-зеленый |
LightGreen |
10 |
Светло-бирюзовый |
LightCyan |
11 |
Светло-красный |
LightRed |
12 |
Светло-сиреневый |
LightMagenta |
13 |
Желтый |
Yellow |
14 |
Белый |
White |
15 |
Таблица Г.2 – Прототипы графических функций для работы с объектами
Функция |
Описание |
void arc (int x, int y, int stangle, int endangle, int radius); |
дуга с центром в (x, y) и радиусом radius. Параметры stangle и endangle задают круговые координаты начальной и конечной точки. Угол измеряется в градусах и отсчитывается против часовой стрелки, где 0 градусов соответствует трем часам на циферблате. Если stangle равен 0, а endangle равен 360, функция arc() рисует полную окружность. |
void bar (int left, int top, int right, int bottom); |
рисует закрашенный прямоугольник. Прямоугольник закрашивается текущим цветом и с использованием текущего шаблона заполнения. Верхний левый и нижний правый углы прямоугольника заданы параметрами (left, top) и (right, bottom) соответственно. |
void drawpoly (int numpoints, int *polypoints) |
рисует многоугольник. |
void circle (int x, int y, int radius); |
окружность с центром в точке (x, y) и радиусом radius (единица измерения – пиксель). |
void bar3d (int left, int top, int right, int bottom, int depth); |
рисует “трёхмерный прямоугольник” (подобие параллелепипеда), начиная от верхнего левого угла до правого нижнего угла и с указанием глубины depth. |
void ellipse (int x, int y, int stangle, int endangle, int xradius, int yradius); |
рисует эллипс с координатами в точке (x, y), начальным и конечным углами stangle, endangle, и радиусами xradius, yradius по осям x и y. |
void fillellipse (int x, int y, int rx, int ry); |
рисует эллипс с центром в точке (x, y), горизонтальной и вертикальной осями rx и ry соответственно, и закрашивает его текущим цветом, используя текущий шаблон. |
void fillepoly (int numpoints, int *polipoints); |
рисует контур многоугольника, имеющий numpoints точек, а затем закрашивает его. Polipoints – указатель на последовательность из (numpoints*2) целых чисел. Каждая пара чисел (x, y) является координатами вершины многоугольника. |
void line (int x1, int y1, int x2, int y2); |
чертит на экране прямую линию от точки с координатами (x1, y1) до точки с координатами (x2, y2). |
void pieslice (int x, int y, int stangle, int endangle, int radius); |
рисует и закрашивает сектор круга с центром в точке (x, y) и радиусом radius. Сектор рисуется от угла stangle до угла endangle. Угол измеряется в градусах и отсчитывается против часовой стрелки, где 0 градусов соответствует трем часам на циферблате. |
void rectangle (int left, int top, int right, int bottom); |
чертит прямоугольник, расположенный на экране горизонтально (вертикально), координатой левого верхнего угла (left, top) и правого нижнего – (right, bottom). |
void floodfill (int x, int y, int border); |
область, ограниченная цветной границей, закрашивается установленным образцом и цветом. |
void getbkcolor(); |
возвращает значение типа int текущего цвета фона. |
unsigned getpixel (int x, int y); |
обратная функция, которая определяет цвет точки с координатами (x, y). |
void getcolor(); |
возвращает значение типа int установленного на данный момент цвета. |
void cleardevice(); |
очищает экран в графическом режиме и возвращает текущую позицию указателя в точку с координатами (0, 0). |
void getimage (int left, int top, int right, int bottom, void far *bitmap); |
сохраняет картинку в специально отведённой области памяти, где left, top, right, bottom координаты картинки, *bitmap - указатель на область памяти. |
void getpixel (int x, int y); |
возвращает номер цвета точки, находящейся по координатам (x, y). |
void clearviewport(); |
стирает область просмотра и перемещает текущую позицию в точку с координатами (0, 0) относительно области просмотра. |
void linerel (int dx, int dy); |
рисует линию от текущей позиции до точки, находящейся на относительном расстоянии от текущей позиции, затем передвигает текущую позицию. |
void lineto (int x, int y); |
рисует линию от текущей позиции до точки с координатами (x, y), затем переносит текущую позицию в (x, y). |
void putpixel (int x, int y, int color); |
рисует точку с координатами (x, y) и цветом color. |
void sector (int x, int y, int stangle, int endangle, int xradius, int yradius); |
рисует сектор круга установленным цветом, затем заполняет его, используя образец и цвет, установленные функциями setfillstyle или setfillpattern. |
void setbkcolor (int color); |
устанавливает цвет фона по его номеру, заданному переменной color. |
void setcolor (int color); |
устанавливает цвет по его номеру, заданному переменной color. |
void setfillstyle (int pattern, int color); |
устанавливает образец и цвет заливки. |
void setlinestyle (int linestyle, unsigned upattern, int thickness); |
устанавливает стиль рисуемых линий для функций рисования line, lineto, rectangle, drawpoly. |
Таблица Г.3 – Типы линий
Название |
Описание |
Значение |
SOLID_LINE |
сплошная |
0 |
DOTTED_LINE |
пунктирная |
1 |
CENTER_LINE |
штрих-пунктирная |
2 |
DASHED_LINE |
штриховая |
3 |
USERBIT_LINE |
Тип, определяемый пользователем (параметр upattern) |
4 |
Таблица Г.4 – Прототипы графических функций для работы с текстом
Функция |
Описание |
void moverel (int dx, int dy); |
перемещает текущую позицию на относительное расстояние. |
void moveto (int x, int y); |
перемещает текущую позицию в точку с координатами (x, y). |
void outtext (char far *textstring); |
выводит строку в графическом режиме. Строка должна быть заключена в кавычки. |
void outtextxy (int x, int y, char far *textstring); |
выводит строку в графическом режиме, предварительно перейдя в точку с координатами (x, y). |
void settextjustify (int horiz, int vert); |
устанавливает выравнивание текста для графического режима. По умолчанию стоит выравнивание по верхнему левому углу. |
void settextstyle (int font, int direction, int charsize); |
устанавливает характеристики текста: стиль, положение (горизонтальное или вертикальное), размер шрифта. |
void setusercharsize (int multx, int divx, int multy, int divy); |
устанавливает определённый пользователем «коэффициент сжатия» шрифта. По умолчанию ширина шрифта определена как multx:divx, высота как multy:divy. |
void textheight (char far *textstring); |
возвращает высоту строки в количестве точек. |
void textwidth (char far *textstring); |
возвращает ширину строки в количестве точек. |
Таблица Г.5 - Типы шрифтов
Шрифт |
Константа |
Значение |
Точечный шрифт 8x8 пикселей |
DefaultFont |
0 |
Утроенный шрифт TRIP.CHR |
TriplexFont |
1 |
Уменьшенный шрифт LITT.CHR |
SmallFont |
2 |
Прямой шрифт SANS.CHR |
SansSerifFont |
3 |
Готический шрифт GOTH.CHR |
GothicFont |
4 |
Таблица Г.6 - Особые шрифты
Шрифт |
Значение |
Файл |
«Рукописный» шрифт |
5 |
scri.chr |
Одноштриховый шрифт типа Courier |
6 |
simp.chr |
Красивый наклонный шрифт типа Times Italic |
7 |
tscr.chr |
Шрифт типа Times Roman |
8 |
Icom.chr |
Шрифт типа Courier увеличенного размера |
9 |
euro.chr |
Крупный двухштриховый шрифт |
10 |
bold.chr |
