- •Министерство образования и науки украины
- •Лабораторная работа № 1
- •Ход работы
- •Требования к отчетам
- •Отчёт должен содержать
- •Вопросы для контроля и самостоятельной работы
- •Лабораторная работа №2
- •Символы типа
- •Ход работы
- •Вопросы для контроля и самостоятельной работы
- •Лабораторная работа №3 Разработка программ со скалярными типами данных (2 часа)
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №4 Разработка программ с циклическими вычислительными процессами
- •Теоретические сведения
- •Алгоритм работы оператора цикла for ():
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №5 Разветвляющийся вычислительный процесс с различными логическими условиями: оператор if... Else, условная операция (?:), оператор switch, оператор break, оператор goto (2 часа)
- •Теоретические сведения
- •Условная тернарная операция (?:)
- •Оператор варианта switch
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №6 Операции с, их приоритеты и использование. Преобразование типов (4 часа)
- •Теоретические сведения
- •Приоритет операций и порядок выполнения (ассоциативность)
- •Преобразование типов
- •(Новый_тип) операнд
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №7
- •Синтаксис определения функций в с
- •Использование локальных и глобальных переменных в функциях. Вызов функции
- •Ход работы
- •Требования к содержанию отчёта приведены в лабораторной работе №1. Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №8 Разработка программ с указателями (2 часа)
- •Теоретические сведения
- •Основные операции с указателями
- •Указатели и целые величины
- •Динамическое размещение указателей в памяти
- •Ход работы
- •Требования к содержанию отчёта приведены в лабораторной работе №1. Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №9 Массивы. Селективная обработка массивов
- •Теоретические сведения
- •Ход работы
- •Требования к содержанию отчёта приведены в лабораторной работе №1
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №10
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №11
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа № 12
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа № 13
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа № 14
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа № 15 Использование указателей для работы с составными типами данных (2часа)
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа № 16
- •Указатели как параметры функции
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №17
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа № 18
- •Использование администратора проектов
- •Lab18.Cpp- Основной файл проекта
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа № 19
- •Доступ к пикселям
- •Графические примитивы
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №20 Разработка программ с использованием классов (2 часа)
- •Теоретические сведения
- •Объявление и определение класса
- •Тело класса
- •Использование класса
- •Инкапсуляция. Управление доступом к членам класса
- •Классы памяти для объектов
- •Использование данных-членов класса
- •Ход работы
- •Требования к содержанию отчёта приведены в лабораторной работе №1. Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №21
- •Инициализация объектов класса
- •Деструкторы
- •Вызов деструкторов
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №22 Использование наследования для создания иерархии классов (2 часа)
- •Теоретические сведения
- •"Друзья" классов (friend)
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №23 Использование виртуальных и указателей для работы с объектами классов (2 часа)
- •Теоретические сведения
- •Виртуальные базовые классы
- •Виртуальные деструкторы
- •Ход работы
- •Литература
- •Выходные данные
Графические примитивы
void far bar(int left, int top, int right, int botton);
void far bar3d(int left, int top, int right, int botton, int depth, int topflag);
void far fillpoly(int numpoints, int far *polypoints);
void far fillelipse(int x, int y, int xradius, int yradius);
void far pielipse(int x, int y, stangle, int endangle, int radius);
void far sector(int x, int y, int stangle, int endangle, int xradius, int yradius);
void far line(int x1, int y1, int x2, int y2);
void far linerel(int dx, int dy);
void far lineto(int x, int y);
void far rectangle(int left, int top, int right, int botton);
void far drawpoly(int numpoints, far *polypoints);
void far circle(int x, int y, int radiuces);
void far arc(int x, int y, int stangle, int endangle, int radius);
void far ellipse(int x, int y, int stangle, int endangle, int xradius, int yradius);
Пример
/* ЗАНЯТИЕ N 19
Разработал Гармаш В.Н.
Объявить массивы для вывода текста в графическом режиме,
выполнить их инициализацию. Инициализировать графический режим работы.
Выполнить расчеты и построить заданную геометрическую фигуру.
Вывести тексты на экран с применением необходимых функций. */
#include <graphics.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <DOS.H>
#define ANGLES 15
#define PIXEL_COUNT 1000
#define DELAY_TIME 100 /* in milliseconds */
char *str[]={"А","л","ь","ф","а"," ","Ц","е","н","т","а","в","р","а","."};
char st[]="_";
void demo(int x,int y,int size,int color);
void demo1(void);
void main()
{// Инициализация графического режима работы
int graphdriver=DETECT,graphmode,errorcode;
initgraph(&graphdriver,&graphmode,"");
errorcode = graphresult();
if (errorcode != grOk)
{ printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
}
//Рисование рамки по контуру экрана
setcolor(9); //Установка цвета
setlinestyle(0,0,3); //Установка типа линии
line(0,0,getmaxx(),0); // Рисование линии
line(0,0,0,getmaxy());
line(getmaxx(),0,getmaxx(),getmaxy());
line(0,getmaxy(),getmaxx(),getmaxy());
setcolor(10); // Вывод текста "ЗАДАНИЕ 19"
settextstyle(GOTHIC_FONT,HORIZ_DIR,4);
outtextxy(260,10,"ЗАДАНИЕ 19");
demo(320,250,125,11); // Функция вывода рисунка
demo1(); // Функция вывода текста "Альфа Центавра"
getch();
closegraph(); // Окончание графического режима работы
clrscr();
}
void demo(int x,int y,int size,int color)
{ setcolor(color);
setlinestyle(0,0,1);
int xx[ANGLES],yy[ANGLES],i,j;
for (i=0;i<=ANGLES-1;i++)
{ xx[i]=x+(int)(cos(i*2*M_PI/ANGLES)*size);
yy[i]=y-(int)(sin(i*2*M_PI/ANGLES)*size);
}
for (i=0;i<=ANGLES-1;i++)
{ for (j=0;j<=ANGLES-1;j++)
if (i!=j)
{ line(xx[i],yy[i],xx[j],yy[j]);
}
}
}
void demo1(void)
{ int f1 = installuserfont("rtri.CHR"); //Установка шрифта
unsigned int sz;
void far *ptr;
sz=imagesize(10,10,50,50);
ptr=malloc(sz);
getimage(10,10,50,50,ptr);
int size = 2,tt,ff,i;
while(!kbhit())
{ tt=0;
settextstyle(DEFAULT_FONT, HORIZ_DIR, size);
for(i=0; i<3; i++)
{ setcolor(3); outtextxy(260,60,st); delay(90);
setcolor(0); outtextxy(260,60,st); delay(90);
}
setcolor(3); ff=260;
for(i=0; i<15; i++)
{ setcolor(3);
settextstyle(f1, HORIZ_DIR, 4);
outtextxy(260+tt, 50, str[i]);
tt+=textwidth(str[i]);
sound(30); delay(20); nosound();
settextstyle(DEFAULT_FONT, HORIZ_DIR, 2);
outtextxy(260+tt+4, 60, st); delay(40);
setcolor(0);
outtextxy(260+tt+4, 60, st); delay(10);
}
settextstyle(DEFAULT_FONT, HORIZ_DIR, 2);
for(i=1;i<4;i++)
{ setcolor(3); outtextxy(260+tt+4, 60, st); delay(90);
setcolor(0); outtextxy(260+tt+4, 60, st); delay(90);
}
setcolor(3);
ff=tt+260; tt=0;
for(i=14;i>=0;i--)
{ settextstyle(f1, HORIZ_DIR, 4);
tt+=textwidth(str[i]);
sound(30); delay(20); nosound();
putimage(ff-tt, 50, ptr, COPY_PUT);
settextstyle(DEFAULT_FONT, HORIZ_DIR, 2);
setcolor(3); outtextxy(ff-tt-4, 60, st); delay(40);
setcolor(0); outtextxy(ff-tt-4, 60, st); delay(10);
}
}
}