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

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

.cpp
Скачиваний:
27
Добавлен:
04.11.2020
Размер:
3.77 Кб
Скачать
//  а Ў®в  б ўЁ¤Ґ®бЁб⥬®© ў Ја дЁзҐбЄ®¬ ०Ё¬Ґ
#include "conio.h"  // clrscr
#include "math.h"  // M_PI, sin, cos, sqrt, pow
#include "dos.h"    // delay
#include "graphics.h" // graph
#include "iostream.h"	// printf, scanf3

	

int Xmax, Ymax, X0, X1, Y0, Y1, DRIVER, MODE, NomedDots[1000];

float Result[1000], Rmax=0.;


// ”®а¬Ёа®ў ­ЁҐ ¬ ббЁў  §­ зҐ­Ё© ®в®Ўа ¦ Ґ¬®© дг­ЄжЁЁ

void counting(int N)
{	
	float x, dx=17.*M_PI/N;
	int i;
	for (i=0, x=3*M_PI/2.; i<N; i++, x+=dx)
	{
		Result[i]=(float)(pow(sin(x/4),2)+sqrt(x));  // б ¬  дг­ЄжЁп
		if(Rmax<Result[i]) {
			Rmax=Result[i];
		}
    }
}


void main()
{
	int N;
	clrscr();                         // ЋзЁбвЄ  нЄа ­ 
	detectgraph(&DRIVER,&MODE);        // ЋвЄал«Ё Ја дЁзҐбЁ© ०Ё¬
	/* 	зв® в Є®Ґ detectgraph(&DRIVER,&MODE);
		detectgraph	¤«п ®ЇаҐ¤Ґ«Ґ­Ёп вЁЇ  ўЁ¤Ґ® ¤ ЇвҐа , Ї®¤е®¤п饣® Ја дЁзҐбЄ®Ј® ¤а ©ўҐа  
		Ё Ја дЁзҐбЄ®Ј® ०Ё¬  ¬ ЄбЁ¬ «м­®Ј® а §аҐиҐ­Ёп (¬ ЄбЁ¬ «м­®Ј® ०Ё¬ )
		¤«п  ЄвЁў­®Ј® ўЁ¤Ґ® ¤ ЇвҐа  бЁб⥬л. ‡­ зҐ­Ёп ¤«п ¤а ©ўҐа  Ё 
		¬ ЄбЁ¬ «м­®Ј® ०Ё¬  ў®§ўа й овбп ў п祩Є е Ї ¬пвЁ, ­  Є®в®алҐ
		гЄ §лў ов DRIVER Ё MODE	
		
	*/
	initgraph(&DRIVER,&MODE,"..//BORLANDC//BGI");  // ђ бЇ®«®¦Ґ­ЁҐ ¤а ©ўҐа®ў BGI
	/*
	initgraph Ё­ЁжЁ «Ё§ЁагҐв Ја дЁзҐбЄго бЁб⥬г, § Јаг¦ п .BGI-¤а ©ўҐа, 
	®ЇаҐ¤Ґ«пҐ¬л© гЄ § вҐ«Ґ¬ DRIVER, Ё гбв ­ ў«Ёў п ўЁ¤Ґ® ¤ ЇвҐа 
	ў Ја дЁзҐбЄЁ© ०Ё¬, § ¤ ў Ґ¬л© гЄ § вҐ«Ґ¬ MODE
	*/
	
	Xmax=getmaxx(); 
	Ymax=getmaxy(); // “бв ­®ўЁ«Ё а §¬Ґал нЄа ­ 
	X0=40;          Y0=Ymax-30;     // ‹Ґўл© ­Ё¦­Ё© гЈ®« Ја дЁЄ 
	X1=Xmax-30;     Y1=30;          // Џа ўл© ўҐае­Ё© гЈ®« Ја дЁЄ   
	N = X1-X0;      // Љ®«ЁзҐбвў® в®зҐЄ Ї® ®бЁ X
	
	
	char Ox[9][6] = {"3Pi/2", "3Pi", "5Pi", "7Pi", "9Pi", "11Pi", "13Pi", "15Pi", "17Pi"};
	setlinestyle(0,1,1); 
	//setlinestyle(0,1,3);            // Ї а ¬Ґвал «Ё­Ё©
	
	outtextxy(200, 400, "f(x)=sin^2(x/4)+sqrt(x) on 3*P/2 to 17P");
	counting(N);                    // ‚лзЁб«Ё«Ё §­ зҐ­Ёп дг­ЄжЁЁ
	
	
	for (int i=0;i<N;i++) {          // Ќ®а¬Ёа㥬 ўбҐ §­ зҐ­Ёп дг­ЄжЁЁ
		NomedDots[i]=Y0-(int)(Result[i]/Rmax*(float)(Y0-Y1));
	}
	
	setlinestyle(0,1,2);
	//setlinestyle(0,1,1);            // ђЁб㥬 Є®®а¤Ё­ в­лҐ ®бЁ
	line(X0, Y0, X0, Y1-20);      	// y
	line(X0, Y0, X1+2, Y0);			// x 
	
	
	outtextxy(X0+5,Y1-20,"f(x)");    // Џ®¬Ґз Ґ¬ ®бЁ
	outtextxy(X1+3,Y0-10,"x");
	outtextxy(X0-10, Y0-10, "0");
	outtextxy(X0-10, Y1-20, "1");
		
	for (int j=0; j<10; j++)	//ђЁб㥬 ¬ҐвЄЁ Ё Ї®¤ЇЁбЁ ­  ®бЁ •
	{
		line(X0+(int)(N/8)*j+4, Y0-3, X0+(int)(N/8)*j+4, Y0+3); //ЊҐвЄЁ
		outtextxy(X0+(int)(N/8)*j-15, Y0+5, Ox[j]); 	//Џ®¤ЇЁбЁ
	};
	
	// зв® вў®аЁвмбп ў бва®ЄҐ ¬ҐвЄЁ? X0+(int)(N/8)*i -- ЎҐаҐ¬ ­ з «® Є®®а¤Ё­ в Ё Є ­Ґ¬г Ї«об㥬 ¤«Ё­г Є®®а¤Ё­ в е 
	// а §¤Ґ«Ґ­­го ­  8 з б⥩ (Ї®в®¬г зв® ¬Ґв®Є 8) г¬­®¦ Ґ¬ ­  ЁвҐа жЁо (Є ¦¤л© а § а®ў­® ­  ®¤­® Ё в® 
	// ¦Ґ ®в१®Є ¤ўЁЈ Ґ¬бп ўЇҐаҐ¤) в.Є i = 1,2,3,....9 //   (int) - нв® ®Єа㣫塞 зЁб«® ЇЁЄбҐ«Ґ© ¤® 楫®Ј®
	// ўбҐ нв® Ї®«г祬 Є®®а¤Ё­ вг Ї® е,   §  г ў§п«Ё га®ўҐ­м е Ё +-3 ЇЁЄбҐ«п ўўҐае Ё ў­Ё§
	// ў Ёв®ЈҐ г ­ б ¤ўҐ Ї ал Є®®а¤Ё­ в (е,г) Ї® Є®в®ал¬ зҐавЁ¬ «Ё­Ёо
	// Ё в Є 9 а § (­ зЁ­ Ґ¬ б 1, Ї®в®¬г зв® 0 - нв® ®бм г, Ё§ §  в®Ј® зв® ­ зЁ­ Ґ¬ б 1, § Є ­зЁў Ґ¬ ­  10   ­Ґ 9;
	
	// ў бва®ЄҐ Џ®¤ЇЁбЁ
	// ЎҐаҐ¬ вг ¦Ґ ¤«Ё­г (¤«Ё­г Є ¦¤®Ј® ®в१Є ), Ё¤Ґ¬ ®Ўа в­® 15 ЇЁЄбҐ«Ґ© Ї® е, бЇгбЄҐ¬бп ў­Ё§ ­  5 ЇЁЄбҐ«Ґ© Ї® г
	// Ё ўбв ў«пҐ¬ ®зҐаҐ¤­®© Ї®¤ЇЁбм Ё§ ¬ ббЁў  Ox //"3Pi/2",....,"17Pi" //
	
		
	// ђЁб㥬 Ја дЁЄ дг­ЄжЁЁ
	for (int k=0; k<N; k++)  
	{
		putpixel(k+X0,NomedDots[k],14);  // 12 - нв® жўEв «Ё­ЁЁ Ја дЁЄ 
		delay(20);
	}
	
	outtextxy (200, 50, "Maximum of F(x) is 0.92");
	getch();                        // Ћ¦Ё¤ Ґ¬ ­ ¦ вЁп Є« ўЁиЁ...
	closegraph();                   // ‡ Єалў Ґ¬ Ја дЁзҐбЁ© ०Ё¬
	getch();  
}
Соседние файлы в папке ЛАБ 3