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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2011, 19:13   #1
It is not me
 
Аватар для It is not me
 
Регистрация: 25.01.2011
Сообщений: 8
По умолчанию графика на C++(Devc++)

большая просьба описать способы устранения варнингов в этом коде
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<graphics.h>



double ChoiseStep( double vmin,double vmax )
{
double dv, exp, mnt, kf;


dv=fabs(vmax-vmin);


exp = pow(10,( floor(log10(dv))) );

mnt = dv/exp;

if ( mnt <= 1.5 ) kf = 0.25;
else if( mnt <= 3.0 ) kf = 0.5;
else if( mnt > 6.0 ) kf = 2.0;
else kf = 1.0;


return exp*kf;
}


int main()
{
int a,gd = 0, gmode = 0;
int screenSizeX, screenSizeY;
double wndSizeX, wndSizeY;
double left, bottom;
double Xscreen, Yscreen;
double scaleX, scaleY;

double x, p, f, y, stepX, stepY, fmin, fmax, minX, maxX, minY, maxY, xold, yold;

initgraph( &gd, &gmode, "" );

if ( graphresult()!=0 )
{
printf("oshibka v ystanovke graf rezhima");
getch();
return 0;
}

printf("vvedite fmin ");
scanf("%lf",&fmin);
printf("vvedite fmax ");
scanf("%lf",&fmax);

for (f=fmin; f<=fmax; f+=(fmax-fmin)/1000)
{
p=f*cos(f/2);
x=p*cos(f);
y=p*sin(f);
if(f==fmin)
{
minX=x;
maxX=x;
minY=y;
maxY=y;
}
else
{
if(minX>x)
minX=x;
if(maxX<x)
maxX=x;
if(minY>y)
minY=y;
if(maxY<y)
maxY=y;
}
}


cleardevice();


screenSizeX = getmaxx()+1;
screenSizeY = getmaxy()+1;


wndSizeX = screenSizeX*0.8; строка 77
wndSizeY = screenSizeY*0.8; строка 78


left = (screenSizeX-wndSizeX)/2;
bottom = (screenSizeY+wndSizeY)/2;


scaleX = wndSizeX/(maxX-minX);
scaleY = wndSizeY/(maxY-minY);

setcolor(LIGHTGRAY);
setlinestyle(DOTTED_LINE, 0, NORM_WIDTH);

stepX = ChoiseStep(minX, maxX);
for( x=ceil(minX/stepX)*stepX; x<=maxX; x=x+stepX )
{
Xscreen = left + (x-minX)*scaleX; строка 88
line( Xscreen, bottom-wndSizeY, Xscreen, bottom );
}


stepY = ChoiseStep(minY, maxY);
for( y=ceil(minY/stepY)*stepY; y<=maxY; y=y+stepY )
{
Yscreen = bottom - (y-minY)*scaleY; строка 97
line( left, Yscreen, left+wndSizeX, Yscreen );
}



for( f=fmin; f<=fmax; f=f+(fmax-fmin)/1000 )
{
p=f*cos(f/2);
x=p*cos(f);
y=p*sin(f);


Xscreen = left + (x-minX)*scaleX; строка 108
Yscreen = bottom - (y-minY)*scaleY; строка 109

if ( Yscreen<bottom-wndSizeY || Yscreen>bottom )
continue;

if (f!=fmin)
{
setcolor(WHITE);
setlinestyle(SOLID_LINE, 0, THICK_WIDTH );
line(xold,yold,Xscreen,Yscreen); строка 135
}

xold=Xscreen;
yold=Yscreen;
}



getch();


closegraph();
}




warnings:
106 [Warning] passing `double' for converting 1 of `void line(int, int, int, int)'
106 [Warning] passing `double' for converting 2 of `void line(int, int, int, int)'
106 [Warning] passing `double' for converting 3 of `void line(int, int, int, int)'
106 [Warning] passing `double' for converting 4 of `void line(int, int, int, int)'
114 [Warning] passing `double' for converting 1 of `void line(int, int, int, int)'
114 [Warning] passing `double' for converting 2 of `void line(int, int, int, int)'
114 [Warning] passing `double' for converting 3 of `void line(int, int, int, int)'
114 [Warning] passing `double' for converting 4 of `void line(int, int, int, int)'
135 [Warning] passing `double' for converting 1 of `void line(int, int, int, int)'
135 [Warning] passing `double' for converting 2 of `void line(int, int, int, int)'
135 [Warning] passing `double' for converting 3 of `void line(int, int, int, int)'
135 [Warning] passing `double' for converting 4 of `void line(int, int, int, int)'

Если поменять
left, Yscreen,xold,yold и тд на int то компилятор пишет подобные варнинги:
105 [Warning] converting to `int' from `double'

Последний раз редактировалось It is not me; 26.01.2011 в 10:39.
It is not me вне форума Ответить с цитированием
Старый 25.01.2011, 19:43   #2
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Всё же в варнинге написанно!
Цитата:
double wndSizeX, wndSizeY;
double left, bottom;
double Xscreen, Yscreen;
Это должны быть int. Вы себе представляете линию толщиной в два с половиной пиксела?
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 25.01.2011, 19:43   #3
Obey-Kun
Линуксоид
Участник клуба
 
Аватар для Obey-Kun
 
Регистрация: 31.07.2009
Сообщений: 1,403
По умолчанию

Даблпост..........................
Я схожу с ума или это глючит реальность?
Jabber ID: obey@obey.su
Obey-Kun вне форума Ответить с цитированием
Старый 26.01.2011, 10:32   #4
It is not me
 
Аватар для It is not me
 
Регистрация: 25.01.2011
Сообщений: 8
По умолчанию

поменял на int
компилятор выдает варнинги
76 converting to `int' from `double'
77 converting to `int' from `double'
88 converting to `int' from `double'
97 converting to `int' from `double'
108 converting to `int' from `double'
109 converting to `int' from `double'
118 [Warning] passing `double' for converting 1 of `void line(int, int, int, int)'
118 [Warning] passing `double' for converting 2 of `void line(int, int, int, int)'
line(xold,yold,Xscreen,Yscreen);} - 118 строк

Последний раз редактировалось It is not me; 26.01.2011 в 20:11.
It is not me вне форума Ответить с цитированием
Старый 26.01.2011, 20:11   #5
It is not me
 
Аватар для It is not me
 
Регистрация: 25.01.2011
Сообщений: 8
По умолчанию

Есть какие-нибудь предположения?
It is not me вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перебор значений (DevC++) InquisitorAles Помощь студентам 5 21.11.2010 23:26
DevC++ switch Диман56 Общие вопросы C/C++ 7 03.11.2010 11:08
графика Anty_F[R]eez Общие вопросы C/C++ 0 11.06.2010 00:17
Вопрос IDE DevC++ Pord Софт 3 03.11.2008 23:20