U E D R , A S I H C RSS

�차함수그리기/조현태

�낀�

요즘 들어 부� �� 늘어서 잠� 3-4시간씩 밖� 못잤�니..
코딩� 못하겠다는..
잠온다.. 졸고 한줄작성하고,, �작성했는지 까먹고.. 위�보고..다시한줄 작성하고..
그래서 소스가 엉��듯..
그런� 모니터가 ��한지 앞� 안보여서 어떻게 못하겠다는..
아우.. 잠온다.
그런� 어제 하루 그냥잤다공.. 왜 문제 답� 안올� 오는겨?ㅎ

소스 내용안� ���.
�단 그래프가 너무 길어서(y값� 25나 나오오. 세로 25면 �반 콘솔창� 넘어버리는.. 앞으로 조그맣게 하��..ㅎㅎ)tab� 넣어 줄�기로함.
ì›�래 모습ì�„ ë³´ê³ ì‹ìœ¼ë©´ TAB_Yì�˜ ê°’ì�„ 1로 해주면 ë�¨.
tabê°’ì�„ 1ì�´ì™¸ì�˜ 값으로 할때, ì�¼ë‹¨ 반올림ì�„ 하게 í•´ë‘�었으나, ì›�래 ì•소 ì—°ì‚°ì�„ 할때는 ì�¼ë¶€ ê°’ì�„ ì†�실시켜야 하는ë�°, 귀찮아서 놔ë‘�ì—ˆë�”니 1ì�´í•˜ë¡œ 내려갈때는 그래프ì—� ì �ì�´ 중복ë�˜ëŠ” 현ìƒ�ì�´ ìƒ�긴다는..
ì•소연산 가급ì � 금지!ã…Ž(특히 Xê°’..ã…Ž)

근� 그래프 그리는거 파��으로 하면 금방 ��너.;

소스

~cpp 
#include <iostream>
#include <windows.h>

using namespace std;

const int MIN_X=-5;
const int MAX_X=5;
const float TAB_X=1;
const float TAB_Y=0.5;

int banollim(float number)
{
	//반올림하는 함수
	float temp_sosu=number-(int)number;
	if (temp_sosu<=-0.5 || temp_sosu>=0.5)
		++number;
	return number;
}

void gotoxy(int x, int y) 
{ 
	COORD Pos = {x - 1, y - 1}; 
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos); 
}

float function_x_to_y(float x)
{
	//�번� 그림 함수
	float y=x*x;
	return y;
}

void make_image(int where_x, int where_y, float min_x, float max_x, float tab_x, float tab_y)
{
	//앞�서 부터 그리기 시작할 x좌표, y좌표, x최소값, x최대값, x간격, y간격
	////초기화.
	int max_y=0;
	int min_y=function_x_to_y(min_x);
	//y� 최대 최소 구함
	for (register float x=min_x; x<=max_x; x+=tab_x)
	{
		if (max_y<function_x_to_y(x))
			max_y=function_x_to_y(x);
		else if (min_y>function_x_to_y(x))
			min_y=function_x_to_y(x);
	}
	////x,yì• ìƒ�성
	for (register float x=min_x; x<=max_x; ++x)
	{
		gotoxy(banollim(x-min_x+1+where_x),(where_y+max_y*tab_y));
		printf (".");
	}
	for (register float y=min_y; y<=max_y; ++y)
	{
		gotoxy(banollim(-min_x+1+where_x),(where_y-banollim(y)*tab_y+max_y*tab_y));
		printf (".");
	}
	////그래프 작성
	for (register float x=min_x; x<=max_x; x+=tab_x)
	{
		gotoxy(banollim(x-min_x+1+where_x),(where_y-banollim(function_x_to_y(x))*tab_y+max_y*tab_y));
		printf ("*");//(%.1f,%.1f)",x,function_x_to_y(x));
	}
}

void main()
{
	system("CLS");
	cout << "2차함수 ìœë ¥ 프로그램.";
	make_image( 10 , 5 , MIN_X, MAX_X,TAB_X,TAB_Y);
	gotoxy(30,5);
	cout << "x      y";
	for (register int i=0; i<MAX_X-MIN_X+1;i+=1)
	{
		gotoxy(30,i+6);
		printf ("%3d  ->  %3.0f",i+MIN_X,function_x_to_y(i+MIN_X));
	}
}

나�게 할�

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:30:33
Processing time 0.0041 sec