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

ЛАБ 2 / LAB-2-DOS-BOX-Borland_C++3

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

union type
{
	unsigned long long ll;
	long double d;
};

void printLongDouble(long double x)
{
	type m;
	m.d = x;
	for (int i = 16 * sizeof(m.ll) - 1; i > -1; i--)
	{
		cprintf("%d", m.ll >> i & 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;
	unsigned char text = colors & 15;
	
	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("—Ґа­л©\r");
			break;
		case 1:
			cprintf("‘Ё­Ё©\r");
			break;
		case 2:
			cprintf("‡Ґ«Ґ­л©\r");
			break;
		case 3:
			cprintf("–Ё ­®ўл©\r");
			break;
		case 4:
			cprintf("Ља б­л©\r");
			break;
		case 5:
			cprintf("ЏгаЇга­л©\r");
			break;
		case 6:
			cprintf("Љ®аЁз­Ґўл©\r");
			break;
		case 7:
			cprintf("‘ўҐв«®-бҐал©\r");
			break;
		case 8:
			cprintf("’Ґ¬­®-бҐал©\r");
			break;
		case 9:
			cprintf("‘ўҐв«®-Ј®«гЎ®©\r");
			break;
		case 10:
			cprintf("‘ўҐв«®-§Ґ«Ґ­л©\r");
			break;
		case 11:
			cprintf("‘ўҐв«®-жЁ ­®ўл©\r");
			break;
		case 12:
			cprintf("‘ўҐв«®-Єа б­л©\r");
			break;
		case 13:
			cprintf("‘ўҐв«®-Їга­л©\r");
			break;
		case 14:
			cprintf("†Ґ«вл©\r");
			break;
		case 15:
			cprintf("ЃҐ«л©\r");
			break;
	}
}

int main()
{
	char t;
	long double inputLongDouble;
	scroll(0, 0, 0, 0, 25, 80, 7);
	window(20, 10, 60, 20); // гбв ­®ўЄ  ®Є­  ўлў®¤  ў Є®­б®«Ґ
	textattr(112);  // гбв ­ ў«Ёў Ґв ®¤­®ўаҐ¬Ґ­­® Є Є жўҐв  ЇҐаҐ¤­ҐЈ® Ї« ­ , в Є Ё д®­ 
	scroll(0, 0, 9, 19, 19, 59, 7); // бЄа®««Ё­Ј б­Ё§г ўўҐае
	cprintf("\n\n\n\n\n\n\n\n\r");
	do{
		unsigned char i = 0;
		do
		{
			textattr(i);
			inputLongDouble = ((0.956358714)*(rand() % 12501));
			printLongDouble(inputLongDouble);
			GetPrintColor(i);
			i++;			
			delay(1500);  // § ¤Ґа¦Є  ў ¬Ё«ЁбҐЄг­¤ е
			scroll(6, 2, 9, 19, 19, 59, i); // бЄа®««Ё­Ј
		}while(i < 127); // в.Є. 16 梥⮢ д®­  + 16 梥⮢ ⥪бв , ўбҐЈ® 128 Є®¬ЎЁ­ жЁЁ©, ®вбзҐв б 0п
		cprintf("—⮠⥯Ґам? (y - б­®ў  б­ з «  / n - ўл室): ");
		do{
			cscanf("%c", &t);
		}while(t != 'y' && t  != 'n');
	}while(t == 'y');
	cprintf("\n\r ----- ‚‘…, 2-џ‹ЂЃЂ ѓЋ’Ћ‚Ђ! --------\n\r");
	getch();
	return 0;
}
Соседние файлы в папке ЛАБ 2