- •2. Методические указания к выполнению лабораторных работ
- •Лабораторная работа №1 Следование
- •Варианты индивидуальных заданий Выполнить поразрядные логические операции над машинными кодами
- •Пример программы
- •Лабораторная работа №2 Операторы ветвления
- •Варианты индивидуальных заданий
- •Пример разработки математической модели и схемы алгоритма решения задачи для варианта задания вида:
- •Текст программы
- •Варианты индивидуальных заданий
- •Лабораторная работа №3 Операторы цикла
- •Пример программы
- •Лабораторная работа №4 Статические массивы
- •Варианты индивидуальных заданий
- •Пример программы на обработку одномерного массива
- •Пример программы на обработку двумерного массива (матрицы)
- •Лабораторная работа №5 Динамические массивы
- •Варианты индивидуальных заданий
- •Пример программы на обработку одномерного массива
- •Пример программы на обработку двумерного массива (матрицы)
- •Лабораторная работа №6 Методы сортировки
- •Варианты индивидуальных заданий Методы сортировки
- •Области сортировки элементов матриц
- •Примеры программ
- •Лабораторная работа №7 Передача имён функций в качестве параметров
- •Текст программы
- •Лабораторная работа №8 Строки и текстовые файлы
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №9 Структуры и файлы структур
- •Пример программы
- •Лабораторная работа №10 Линейные списки
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №11 Стек, дек, очередь
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №12 Классы
- •Варианты индивидуальных заданий
- •Примеры программ
- •Литература
Примеры программ
//Движение прямоугольника по треугольному контуру.
//Динамические объекты.
#include <conio.h>
#include <graphics.h>
#include <iostream.h>
#include <process.h>
#include <string.h>
#include <dos.h>
class graphworld
{int driver,mode,grerror,colb,bkcl;
char path[80];
public:
graphworld();
void closegraphworld();
};
graphworld::graphworld()
{strcpy(path,"c:\\turboc30\\bgi");
driver=0;
initgraph(&driver,&mode,path);
grerror=graphresult();
if(grerror!=grOk)
{cout<<"\nОшибка открытия графического режима";
abort;
}
setcolor(RED);
setbkcolor(BLACK);
cleardevice();
}
void graphworld::closegraphworld()
{cleardevice();
closegraph();
}
class location
{protected:
int x,y;
public:
location(int initx,int inity);
int getx();
int gety();
};
location::location(int initx, int inity)
{x=initx;
y=inity;
}
int location::getx()
{return x;
}
int location::gety()
{return y;
}
class point:public location
{protected:
int visible;
void setvisible(int pr);
public:
point(int initx,int inity);
~point();
virtual void show();
virtual void hide();
int getvisible();
void moveto(int nx,int ny);
};
point::point(int initx,int inity):location(initx,inity)
{
}
point::~point()
{hide();
}
void point::moveto(int nx,int ny)
{hide();
x=nx;
y=ny;
show();
}
void point::setvisible(int pr)
{visible=pr;
}
void point::show()
{putpixel(x,y,getcolor());
setvisible(1);
}
void point::hide()
{putpixel(x,y,getbkcolor());
setvisible(0);
}
class pramoug:public point
{int dx,dy;
public:
pramoug(int initx,int inity,int initdx,int initdy);
~pramoug();
void show();
void hide();
};
pramoug::pramoug(int initx,int inity,int initdx,int initdy): point(initx,inity)
{dx=initdx;
dy=initdy;
}
void pramoug::show()
{line(x,y,x,y+dy);
line(x,y+dy,x+dx,y+dy);
line(x+dx,y+dy,x+dx,y);
line(x,y,x+dx,y);
}
void pramoug::hide()
{int r;
r=getcolor();
setcolor(getbkcolor());
line(x,y,x,y+dy);
line(x,y+dy,x+dx,y+dy);
line(x+dx,y+dy,x+dx,y);
line(x,y,x+dx,y);
setcolor(r);
}
pramoug::~pramoug()
{hide();
}
void main(void)
{graphworld world;
pramoug *pt;
int x,y;
getch();
cleardevice();
x = 150;
y = 100;
pt = new pramoug(x,y,200,100);
delay(750);
pt -> show();
do
{do
{x += 3; y++;
pt -> moveto(x,y);
delay(5);
}
while(!(y >= 200));
do
{x--; y++;
pt -> moveto(x,y);
delay(5);
}
while(!(y >= 400));
do
{x--; y -= 3;
pt -> moveto(x,y);
delay(5);
}
while(!(y <= 100));
}
while(!(kbhit()));
delete pt;
getch();
world.closegraphworld();
}
//Движение прямоугольника по треугольному контуру.
//Статические объекты.
#include <conio.h>
#include <graphics.h>
#include <iostream.h>
#include <process.h>
#include <string.h>
#include <dos.h>
class graphworld
{int driver,mode,grerror,colb,bkcl;
char path[80];
public:
graphworld();
void closegraphworld();
};
graphworld::graphworld()
{strcpy(path,"c:\\turboc30\\bgi");
driver=0;
initgraph(&driver,&mode,path);
grerror=graphresult();
if(grerror!=grOk)
{cout<<"\nОшибка открытия графического режима";
abort;
}
setcolor(RED);
setbkcolor(BLACK);
cleardevice();
}
void graphworld::closegraphworld()
{cleardevice();
closegraph();
}
class location
{protected:
int x,y;
public:
location(int initx,int inity);
int getx();
int gety();
};
location::location(int initx, int inity)
{x=initx;
y=inity;
}
int location::getx()
{return x;
}
int location::gety()
{return y;
}
class point:public location
{protected:
int visible;
void setvisible(int pr);
public:
point(int initx,int inity);
~point();
virtual void show();
virtual void hide();
int getvisible();
void moveto(int nx,int ny);
};
point::point(int initx,int inity):location(initx,inity)
{
}
point::~point()
{hide();
}
void point::moveto(int nx,int ny)
{hide();
x=nx;
y=ny;
show();
}
void point::setvisible(int pr)
{visible=pr;
}
void point::show()
{putpixel(x,y,getcolor());
setvisible(1);
}
void point::hide()
{putpixel(x,y,getbkcolor());
setvisible(0);
}
class pramoug:public point
{int dx,dy;
public:
pramoug(int initx,int inity,int initdx,int initdy);
~pramoug();
void show();
void hide();
};
pramoug::pramoug(int initx,int inity,int initdx,int initdy): point(initx,inity)
{dx=initdx;
dy=initdy;
}
void pramoug::show()
{line(x,y,x,y+dy);
line(x,y+dy,x+dx,y+dy);
line(x+dx,y+dy,x+dx,y);
line(x,y,x+dx,y);
}
void pramoug::hide()
{int r;
r=getcolor();
setcolor(getbkcolor());
line(x,y,x,y+dy);
line(x,y+dy,x+dx,y+dy);
line(x+dx,y+dy,x+dx,y);
line(x,y,x+dx,y);
setcolor(r);
}
pramoug::~pramoug()
{hide();
}
void main(void)
{graphworld world;
int x = 150,
y = 100;
getch();
cleardevice();
pramoug pt(x,y,200,100);
delay(750);
pt.show();
do
{do
{x += 3; y++;
pt.moveto(x,y);
delay(5);
}
while(!(y >= 200));
do
{x--; y++;
pt.moveto(x,y);
delay(5);
}
while(!(y >= 400));
do
{x--; y -= 3;
pt.moveto(x,y);
delay(5);
}
while(!(y <= 100));
}
while(!(kbhit()));
getch();
world.closegraphworld();
}
