Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2009, 00:38   #1
FastDead
 
Аватар для FastDead
 
Регистрация: 12.12.2007
Сообщений: 9
Восклицание Графики в C++

Вообщем такая проблема есть 2 функции и нужно чтобы программа рисовала их графики.
Программа должная быть в консольном режиме, я так понимаю использовать нужно двумерную графику, а вот знаний по графики в си вообще нет, и функции сложные это не простые линии или квадраты...
Проблема в том что не знаю как подступиться... Можете дать какие нить статейки и подкинуть идеи в реализации?

Вот кстати функции если кому интересно:
f1 = 4*x log(x)^2 - 4*sqrt(1+x) + 5 = 0;
f2 = exp(-0.45*x) - sqrt(x-3) = 0;

PS использую Visual Studio 2008
FastDead вне форума Ответить с цитированием
Старый 29.12.2009, 09:19   #2
Дырдин
Пользователь
 
Аватар для Дырдин
 
Регистрация: 26.09.2009
Сообщений: 81
По умолчанию

Код:
# include<stdio.h>
# include<conio.h>
# include<stdlib.h>
# include<math.h>

const double shag = 0.3;
const float nachalo = -5;
const float konec = 10;
const int n = 50;
const int max = 80;
int tochki(float os_x[50], double shag, float nachalo, float konec);
void postroenie_grafika(float os_x[50], double shag,int max, int n);

void main (void) 
{
	float os_x[50];
	tochki(os_x,float(shag),nachalo,konec);
	postroenie_grafika(os_x,float(shag),max,n);	
}
int tochki(float os_x[50], double shag, float nachalo, float konec)
{
	int g;
	float i;
	for (i = nachalo, g = 0; i <= konec; i = i + float(shag), g++) 
	{
		os_x[g] = pow(i,2)/2+3*i;
	}
	return n;
}

void postroenie_grafika(float os_x[50], double shag,int max, int n)
{
	int j,r;
	float i;
	for (i = max; i > -3; i = i - float(shag)) // "-3" - минимальное значение по x (дальше аналогично)
	{
	j = n-1;		
        while (abs(i - os_x[j]) > 0.2 && j > -3)
		{
			j--;
		}
		if (i == max)
		{
			printf("%d  ",max);
		}
		if (i - float(shag) < -3)
		{
			printf("-3");
		}
		if (i < max && (i - float(shag) > -3))
		{
			printf("    ");
		}
		if (j != -3) 
		{
			for (r = 0; r < j; r++) 
			{
				printf(" ");
			}
			printf("*");
		}
		printf("\n");
	}
	printf("   -5");
	for (i = 0; i <= n - 2; i++)
	{
		printf(" ");
	}
	printf("10");	
	getch();
}
Вот программа строит график функции x^2/2+3x на интервале [-5;10]
Дырдин вне форума Ответить с цитированием
Старый 29.12.2009, 09:19   #3
Дырдин
Пользователь
 
Аватар для Дырдин
 
Регистрация: 26.09.2009
Сообщений: 81
По умолчанию

Дальше думай сам)))
Дырдин вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графики kr00t Общие вопросы Delphi 0 14.05.2009 17:29
Графики.... a_n_n_a Помощь студентам 4 08.03.2009 04:20
графики ZhekON Помощь студентам 6 10.04.2008 18:14
Графики delphin100 Общие вопросы Delphi 6 16.03.2008 10:40