Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛАБ 2 / LAB-2(var 12)

.cpp
Скачиваний:
49
Добавлен:
04.11.2020
Размер:
4.65 Кб
Скачать
#include "conio.h"
#include "iostream.h"
#include "stdio.h"
#include "stdlib.h"
#include "dos.h"
#include "windows.h"
#include "time.h"  // ¤«п delay();

union supertype  // Ї®¤а®Ў­®Ґ ®ЇЁб ­ЁҐ union Ё print ў ¤®Єг¬Ґ­вҐ
{
	unsigned long long llong;
	double dub;
};

void print(double input)
{
	supertype newType; // supertype - нв® вЁЇ ¤ ­­ле ў Є®в®а®¬ ¤ў  Ї®«п 
	newType.dub = input; // Ё в ¬ Ј¤Ґ Ї®«Ґ double, ЇаЁбў Ёў Ґ¬ § зҐ­ЁҐ input // ®Ўа йҐ­ЁҐ Є Ї®«п¬ llong Ё dou зҐаҐ§ в®зЄг
	for (int i = 16 * sizeof(newType.llong) - 1; i > -1; i--) // 64 а §  (®в 63 ¤® 0) ¤Ґ« Ґ¬
	{
		cprintf("%d", newType.llong >> i & 1); // Ї®ЎЁв®ў®Ґ € б 1, ў Ёв®ЈҐ ­ Ў®а Ё§ 0-Ґ© Ё 1-Ёж
	}
	cprintf("\n\r"); // Є®Ј¤  ўлўҐ«Ё ўбҐ ЎЁвл, ЇҐаҐў®Ј бва®ЄЁ ў § ¤ ­­®© ®Є­Ґ
}

void scroll(int direction, int lines, char l_row, char l_col, char r_row, char r_col, char attr)
{
	union REGS r;
	if(direction)
	{
		r.h.al = lines;
		r.h.ah = direction; 
	}
	else
	{
		r.h.al = lines;
		r.h.ah = 6;
	}
	r.h.ch = l_row;
	r.h.cl = l_col;
	r.h.dh = r_row;
	r.h.dl = r_col;
	r.h.bh = attr;
	int86(0x10, &r, &r);
}

void GetPrintColor(unsigned char colors)
{
	unsigned char bg = colors >> 4;	// Є ¦¤л© а § Ї®«гз п зЁб«® i б¤ўЁЈ Ґ¬ Ї®ЎЁв®ў® ­  4 /в ¬ ¦Ґ 16 梥⮢/
	unsigned char text = colors & 15; // зҐаҐ§ Ї®ЎЁв®ў®Ґ € б 15, Ї®«гз Ґ¬ зЁб«® x Є®в®а®Ґ ўбҐЈ¤  Ўг¤Ґв 0 <= x <= 15
	
	/*
	
	************Є ав  жўҐв®ў************** // ¤«п бЇа ўЄЁ
	
	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
	
	*/
	
	// Їа®бв® Є ¦¤л© а § Ї®Ї ¤ Ґ¬ ў ®¤Ё­ Ё§ case-®ў Ё ЇҐз в Ґ¬ зЁб«® жўҐв  д®­  Ё ⥪бв 
	switch(bg)
	{
		case 0:
			cprintf("1 ");
			break;
		case 1:
			cprintf("2 ");
			break;
		case 2:
			cprintf("3 ");
			break;
		case 3:
			cprintf("4 ");
			break;
		case 4:
			cprintf("5 ");
			break;
		case 5:
			cprintf("6 ");
			break;
		case 6:
			cprintf("7 ");
			break;
		case 7:
			cprintf("8 ");
			break;
		case 8:
			cprintf("9 ");
			break;
		case 9:
			cprintf("10 ");
			break;
		case 10:
			cprintf("11 ");
			break;
		case 11:
			cprintf("12 ");
			break;
		case 12:
			cprintf("13 ");
			break;
		case 13:
			cprintf("14 ");
			break;
		case 14:
			cprintf("15 ");
			break;
		case 15:
			cprintf("16 ");
			break;
	}
	switch(text)
	{
		case 0:
			cprintf("1 ");
			break;
		case 1:
			cprintf("2 ");
			break;
		case 2:
			cprintf("3 ");
			break;
		case 3:
			cprintf("4 ");
			break;
		case 4:
			cprintf("5 ");
			break;
		case 5:
			cprintf("6 ");
			break;
		case 6:
			cprintf("7 ");
			break;
		case 7:
			cprintf("8 ");
			break;
		case 8:
			cprintf("9 ");
			break;
		case 9:
			cprintf("10 ");
			break;
		case 10:
			cprintf("11 ");
			break;
		case 11:
			cprintf("12 ");
			break;
		case 12:
			cprintf("13 ");
			break;
		case 13:
			cprintf("14 ");
			break;
		case 14:
			cprintf("15 ");
			break;
		case 15:
			cprintf("16 ");
			break;
	}
}

int main()
{
	double input = 3.14;	// зЁб«® Є®в®а®Ґ Ўг¤Ґв ЇаҐ¤бв ў«Ґ­  ў ¤ў®Ёз­®¬ Ё­вҐаЇаҐв жЁЁ, ¬®¦Ґйм Ё§¬Ґ­Ёвм, бв ўм зв® Ї®¦Ґ« Ґим
	clrscr();  //Їа®бв® ®зЁбвЄ  нЄа ­ 
	window(25, 10, 55, 20); // гбв ­®ўЄ  ®Є­  ўлў®¤  ў Є®­б®«Ґ
	textattr(112);  // гбв ­ ў«Ёў Ґв ®¤­®ўаҐ¬Ґ­­® Є Є жўҐв  ЇҐаҐ¤­ҐЈ® Ї« ­ , в Є Ё д®­ 
	scroll(0, 0, 9, 24, 19, 54, 6); // бЄа®««Ё­Ј ᢥаег ў­Ё§
	for (int i=0; i<127; i++)  // в.Є. 16 梥⮢ д®­  + 16 梥⮢ ⥪бв , ўбҐЈ® 128 Є®¬ЎЁ­ жЁЁ©, ®вбзҐв б 0п ¤® 127
	{
		textattr(i);			// § ¤ Ґ¬ 梥в ⥪бв 
		print(input);	// ЇҐ в Ґ¬ ¤ў®Ёз­®Ґ ЇаҐ¤бв ў«Ґ­ЁҐ зЁб«  вЁЇ  Double (64 ЎЁв )
		GetPrintColor(i);		// § ¤ Ґ¬ 梥в д®­  Ё ⥪бв  ¤«п б«Ґ¤го饩 ЁвҐа жЁЁ жЁЄ« 	
		delay(200);  // § ¤Ґа¦Є  ў ¬Ё«ЁбҐЄг­¤ е 0.2 ᥪ = 200 ¬бҐЄ  Ё­вҐаў « T ᥪ
		scroll(6, 3, 9, 24, 19, 54, i); // бЄа®««Ё­Ј // ЇҐаў®Ґ зЁб«® - 6- ­ Їа ў«Ґ­ЁҐ бЄа®««Ё­Ј  (7 ®Ўа в­®) 
		//ўв®а®Ґ зЁб«® Ё­вҐаў « S бва®Є, ўбҐ ®бв «м­®Ґ ­  ®¤Ё­ ¬Ґ­миҐ Ё§­ з «м­® § ¤­­®Ј® ®Є­ ,
		//Ї® бгвЁ ¬л ЎҐаҐ¬ ®Є­®, ­  бва®зЄг ­Ё¦Ґбв®пйго ⥪г饣® ®Є­ , б ⥬Ё ¦Ґ а §¬Ґа ¬Ё Ё Ї®¤­Ё¬ Ґ¬ ­  ¬Ґб⮠⥪г饩 
	} 
	cprintf("\n\r The program has been ends... --------\n\r");
	getch();	// ®¦Ё¤ Ґ¬ ­ ¦ вЁп Є Є®© в® «оЎ®© Є­®ЇЄЁ зв®Ўл ўл©вЁ Ё§ Їа®Ја ¬¬л
	return 0;
}
Соседние файлы в папке ЛАБ 2