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

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

.cpp
Скачиваний:
27
Добавлен:
04.11.2020
Размер:
5.05 Кб
Скачать
//  а Ў®в  б ўЁ¤Ґ®бЁб⥬®© ў Ја дЁзҐбЄ®¬ ०Ё¬Ґ
#include "stdio.h"
#include "conio.h"
#include "math.h"
#include "dos.h"
#include "graphics.h"
#include "iostream.h"
#include "stdlib.h"
#include "windows.h"
#include "time.h" 

int Xmax, Ymax, X0, X1, Y0, Y1, GrDr, GrM, NormedResult[500]; // Ј«®Ў «м­лҐ ЇҐаҐ¬Ґ­­лҐ, б¬лб« Є®в®але ®ЇЁб ­ ­Ё¦Ґ
// Result[500]- ¬ ббЁў ¤«п еа ­Ґ­Ёп §­ зҐ­Ё© дг­ЄжЁЁ Ї® Є ¦¤®¬г  аЈг¬Ґ­вг е, (Є®Ј¤  ЏЁ2 <= x <= 8ЏЁ)
float Result[500], Rmax=0.; 

// ”®а¬Ёа®ў ­ЁҐ ¬ ббЁў  §­ зҐ­Ё© ®в®Ўа ¦ Ґ¬®© дг­ЄжЁЁ
void RESULTofFX(int N) // N- Є®«ЁзҐбвў® в®зҐЄ Ї® е-г, нв® ¤«Ё­  ®бЁ е ў ЇЁЄбҐ«пе
{	
	double x, dx=8.*M_PI/N;	// Їа®¬Ґ¦гв®з­ п ЇҐаҐ¬Ґ­­ п е Ё Є®­Ґз­л© ¤Ё Ї §®­ 8ЏЁ
	int i;	// ЁвҐа в®а жЁЄ«  for, ­Ґ«м§п ᤥ« вм ў­гваЁ в Є, Є Є Ё¤Ґв ЇҐаҐ®ЇаҐ¤Ґ«Ґ­ЁҐ е б double ­  int
	for (i=0, x=M_PI/2.; i<N; i++, x+=dx) // Ї®Є  ­Ґ ¤®и«Ё ¤® Є®­ж  ®бЁ е (е ¬ Єб) ў Є ¦¤®© ЁвҐа жЁЁ Ё¤Ґ¬ ­  ®¤Ё­ ЇЁЄбҐ«м ўЇҐаҐ¤
	{
		Result[i]=(float)(pow(sin(x),3)-pow(cos(x),2));  // б ¬  дг­ЄжЁп, §­ зҐ­ЁҐ дг­ЄжЁЁ ў Є ¦¤®© в®зЄҐ б®е࠭塞 ў ¬ ббЁў
		if(Rmax<Result[i]) Rmax=Result[i]; // ®ЇаҐ¤Ґ«пҐ¬ ¬ Єб §­ зҐ­ЁҐ дг­ЄжЁЁ ў 室Ґ а бзҐв  §­ зҐ­ЁЁ©. Џ®б«Ґ ®Є ­з ­Ёп жЁЄ« 
    }										// ў Rmax Ўг¤Ґв ¬ ЄбЁ¬г¬ дг­ЄжЁЁ
}


// Џа®Ја ¬¬  ўлў®¤  Ја дЁЄ  дг­ЄжЁЁ ­  нЄа ­
int main()
{
	int i, N;
	clrscr();                         // ЋзЁбвЄ  нЄа ­ 
	gotoxy(13,10);					// ЇҐаҐе®¤ ­  Є®­ЄаҐв­го в®зЄг ў ®Є­Ґ Ї® Є®®а¤Ё­ в ¬ е г
	cprintf("Press any key...");
	getch();                        // Ћ¦Ё¤ Ґ¬ ­ ¦ вЁп Є« ўЁиЁ...
	detectgraph(&GrDr,&GrM);        // ЋвЄал«Ё Ја дЁзҐбЁ© ०Ё¬
	initgraph(&GrDr,&GrM,"..//BORLANDC//BGI"); // ђ бЇ®«®¦Ґ­ЁҐ ¤а ©ўҐа®ў BGI
	//setcolor(0);	// 梥в ⥪бв  
	setbkcolor(0);  // 梥в д®­  Є®­б®«Ё
	
	/*
	Є®¤л 梥⮢
	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
	*/
	
	Xmax=getmaxx();  // Ї®«гз Ґ¬ а §¬Ґал нЄа ­ , Ё в Є Є Є ®взҐв Ї® 㬮«з ­Ёо Ё¤Ґв б «Ґў®Ј® ўҐае­ҐЈ® гЈ«  в.Ґ. в ¬ в®зЄ  0,0
	Ymax=getmaxy(); // Ї®«гзЁ«Ё а §¬Ґал нЄа ­ 
	// Ї®ў®а зЁў Ґ¬ в Є зв®Ўл •0, “0 Ўл«® ў «Ґў®¬ ­Ё¦­Ґ¬ гЈ«г, Ї®в®¬г зв® в Є ЇаЁўлз­ҐҐ Ё а бзҐвл ЇаЁЎ«Ё§ЁвҐ«м­® ЇаҐ¤бв ўЁ¬л
	
	X0=40;          Y0=Ymax-200;     // ‹Ґўл© ­Ё¦­Ё© гЈ®« Ја дЁЄ 
	X1=Xmax-200;     Y1=200;          // Џа ўл© ўҐае­Ё© гЈ®« Ја дЁЄ 
	
	N = X1-X0;      // Љ®«ЁзҐбвў® в®зҐЄ Ї® ®бЁ X
	
	char Ox[9][6] = {" ", "Pi",  "2Pi", "3Pi",  "4Pi",  "5Pi", "6Pi", "7Pi", "8Pi"}; // ¬ҐвЄЁ Є®®а¤Ё­ в­®© ®бЁ е
	setlinestyle(0,1,3);    // Ї а ¬Ґвал «Ё­Ё©, 0 - бвЁ«м, 1 - 梥в, 3 - в®«йЁ­   // ¤®Ї®«­ЁвҐ«м­® ў ¬Ґв®¤ЁЄҐ бва 43
	outtextxy(125, 30, "f(x)=sin^3(x)-cos^2(x) ­  ®в१ЄҐ ®в Pi/2 ¤® 8Pi");	// Ї
	outtextxy (200, 50, "Њ ЄбЁ¬ «м­®Ґ §­ зҐ­ЁҐ дг­ЄжЁЁ 1");
	RESULTofFX(N);                    // ‚лзЁб«Ё«Ё §­ зҐ­Ёп дг­ЄжЁЁ
	for (i=0;i<N;i++)                // Ќ®а¬Ёа㥬 ўбҐ §­ зҐ­Ёп дг­ЄжЁЁ
		NormedResult[i]=Y0-(int)(Result[i]/Rmax*(float)(Y0-Y1));
	setlinestyle(0,1,1);         // ђЁб㥬 Є®®а¤Ё­ в­лҐ ®бЁ // § ¤ Ґ¬ бвЁ«м «Ё­ЁЁ
	line(X0, Y0+130, X0, Y1);	// ®бм г
	line(X0, Y0, X1+2, Y0);     // ®бм е
	outtextxy(X0+3,Y1,"f(x)");    // Џ®¬Ґз Ґ¬ ®бЁ... y - Є Є дг­ЄжЁп f(x)
	outtextxy(X1+20,Y0+1,"x");	 // .. е
	outtextxy(X0-10, Y0-10, "0");	// ®в¬Ґз Ґ¬ 0
	outtextxy(X0-10, Y1, "1");		// ¬ ЄбЁ¬г¬ дг­ЄжЁЁ
	outtextxy(X0-18, Y0+125, "-1");		// ¬Ё­Ё¬г¬ дг­ЄжЁЁ
	
	for (i=1; i<9; i++)	//ђЁб㥬 ¬ҐвЄЁ Ё Ї®¤ЇЁбЁ ­  ®бЁ •
	{
		line(X0+(int)(N/8)*i, Y0-3, X0+(int)(N/8)*i, Y0+3); //ЊҐвЄЁ
		outtextxy(X0+(int)(N/8)*i-10, Y0+5, Ox[i]); 	//Џ®¤ЇЁбЁ
	};
	// зв® вў®аЁвмбп ў бва®ЄҐ ¬ҐвЄЁ? X0+(int)(N/8)*i -- ЎҐаҐ¬ ­ з «® Є®®а¤Ё­ в Ё Є ­Ґ¬г Ї«об㥬 ¤«Ё­г Є®®а¤Ё­ в е 
	// а §¤Ґ«Ґ­­го ­  8 з б⥩ (Ї®в®¬г зв® ¬Ґв®Є 8) г¬­®¦ Ґ¬ ­  ЁвҐа жЁо (Є ¦¤л© а § а®ў­® ­  ®¤­® Ё в® 
	// ¦Ґ ®в१®Є ¤ўЁЈ Ґ¬бп ўЇҐаҐ¤) в.Є i = 1,2,3,....8 //   (int) - нв® ®Єа㣫塞 зЁб«® ЇЁЄбҐ«Ґ© ¤® 楫®Ј®
	// ўбҐ нв® Ї®«г祬 Є®®а¤Ё­ вг Ї® е,   §  г ў§п«Ё га®ўҐ­м е Ё +-3 ЇЁЄбҐ«п ўўҐае Ё ў­Ё§
	// ў Ёв®ЈҐ г ­ б ¤ўҐ Ї ал Є®®а¤Ё­ в (е,г) Ї® Є®в®ал¬ зҐавЁ¬ «Ё­Ёо
	// Ё в Є 8 а § (­ зЁ­ Ґ¬ б 1, Ї®в®¬г зв® 0 - нв® ®бм г, Ё§ §  в®Ј® зв® ­ зЁ­ Ґ¬ б 1, § Є ­зЁў Ґ¬ ­  9   ­Ґ 8;
	
	// ў бва®ЄҐ Џ®¤ЇЁбЁ
	// ЎҐаҐ¬ вг ¦Ґ ¤«Ё­г (¤«Ё­г Є ¦¤®Ј® ®в१Є ), Ё¤Ґ¬ ®Ўа в­® 10 ЇЁЄбҐ«Ґ© Ї® е, бЇгбЄҐ¬бп ў­Ё§ ­  5 ЇЁЄбҐ«Ґ© Ї® г
	// Ё ўбв ў«пҐ¬ ®зҐаҐ¤­®© Ї®¤ЇЁбм Ё§ ¬ ббЁў  Ox //" ", "Pi",  "2Pi",....,"8Pi" // ЇҐаў п Їгбв  Ї®в®¬г зв® 0
	
		for (i=0;i<N;i++)  
	{
		// ђЁб㥬 Ја дЁЄ дг­ЄжЁЁ
		putpixel(i+X0,NormedResult[i],2); // 2 - нв® жўв «Ё­ЁЁ Ја дЁЄ 
		delay(10);	// § ¤Ґ¦Є  ¤«п Єа бЁў®Ј® ўлў®¤ 
	}
	
	getch();       // Ћ¦Ё¤ Ґ¬ ­ ¦ вЁп Є« ўЁиЁ...
	closegraph();    // ‡ Єалў Ґ¬ Ја дЁзҐбЁ© ०Ё¬
	getch();   // Ћ¦Ё¤ Ґ¬ ­ ¦ вЁп Є« ўЁиЁ...
	return 0;
}
Соседние файлы в папке ЛАБ 3