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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2013, 00:34   #1
maxick96
Пользователь
 
Регистрация: 18.02.2012
Сообщений: 45
По умолчанию возникла трабла в программе

может подскажите как исправить:
ввожу h=0.1 в edit control
а выводит мне h=0
как исправить?

вот кусочек кода:
Код:
case ID_OK:
                i.a=GetDlgItemInt(hDlg,IDC_EDIT9,0,FALSE);
        i.b=GetDlgItemInt(hDlg,IDC_EDIT4,0,FALSE);
        i.x0=GetDlgItemInt(hDlg,IDC_EDIT10,0,FALSE);
        i.y0=GetDlgItemInt(hDlg,IDC_EDIT6,0,FALSE);
            SetDlgItemInt(hDlg,IDC_EDIT7,i.a,FALSE);
            SetDlgItemInt(hDlg,IDC_EDIT1,i.b,FALSE);
        i.h=GetDlgItemText(hDlg,IDC_EDIT5,0,FALSE);
        char T[9];
        sprintf(T,TEXT("%1f"),i.h);
        SetDlgItemText(hDlg,IDC_EDIT2,T);
            SetDlgItemInt(hDlg,IDC_EDIT8,i.x0,FALSE);
        SetDlgItemInt(hDlg,IDC_EDIT3,i.y0,FALSE);
            return TRUE;
Изображения
Тип файла: png Безымянный.png (10.0 Кб, 57 просмотров)
maxick96 вне форума Ответить с цитированием
Старый 17.11.2013, 00:56   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Попробуйте ввести через запятую, а не точку.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 17.11.2013 в 01:03.
BDA вне форума Ответить с цитированием
Старый 17.11.2013, 01:03   #3
maxick96
Пользователь
 
Регистрация: 18.02.2012
Сообщений: 45
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Попробуйте ввести через запятую, а не точку.
всё то же самое(
сразу заранее скажу что переменная h - у неё тип long double

а по поводу неправильного:
у меня есть структура StudBeg, я завёл переменную i типа StudBeg
в структуре я описал a,b,h,x0,y0
и всё выводится нормально, кроме h

P.S. исправил немного, но всё равно эффект такой же
Код:
switch(LOWORD(wParam))
		{
			case ID_OK:
				i.a=GetDlgItemInt(hDlg,IDC_EDIT9,0,FALSE);
				i.b=GetDlgItemInt(hDlg,IDC_EDIT4,0,FALSE);
				i.x0=GetDlgItemInt(hDlg,IDC_EDIT10,0,FALSE);
				i.y0=GetDlgItemInt(hDlg,IDC_EDIT6,0,FALSE);
				SetDlgItemInt(hDlg,IDC_EDIT7,i.a,FALSE);
				SetDlgItemInt(hDlg,IDC_EDIT1,i.b,FALSE);
				char T[7];
				i.h=GetDlgItemText(hDlg,IDC_EDIT5,T,3);
				sprintf(T,TEXT("%.1f"),i.h);
				SetDlgItemText(hDlg,IDC_EDIT2,T);
				SetDlgItemInt(hDlg,IDC_EDIT8,i.x0,FALSE);
				SetDlgItemInt(hDlg,IDC_EDIT3,i.y0,FALSE);
				SetDlgItemInt(hDlg,IDC_EDIT35,i.x0,FALSE);
				SetDlgItemInt(hDlg,IDC_EDIT48,i.y0,FALSE);
				return TRUE;
			break;

Последний раз редактировалось maxick96; 17.11.2013 в 01:06.
maxick96 вне форума Ответить с цитированием
Старый 17.11.2013, 01:03   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Честно говоря, не очень понимаю Ваши преобразования:
i.h=GetDlgItemText(hDlg,IDC_EDIT5,0 ,FALSE);
Не писал на Visual C++, но после прочтения MSDN непонятны Ваши параметры - http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx.
UPD
А так?
Код:
char T[20];
GetDlgItemText(hDlg,IDC_EDIT5,T,20);
i.h = atof(T);
char test[20];
sprintf(test,TEXT("%.1f"),i.h);
SetDlgItemText(hDlg,IDC_EDIT2,test);
UPD2
Пожалуйста
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 17.11.2013 в 01:23.
BDA вне форума Ответить с цитированием
Старый 17.11.2013, 01:13   #5
maxick96
Пользователь
 
Регистрация: 18.02.2012
Сообщений: 45
По умолчанию

спасибо спасибо спасибо!!!!
теперь работает
понял короче в чём ошибка, забыл преобразование сделать
maxick96 вне форума Ответить с цитированием
Старый 17.11.2013, 19:43   #6
maxick96
Пользователь
 
Регистрация: 18.02.2012
Сообщений: 45
По умолчанию

ещё проблема возникла:
вообщем когда вычисляю R, должен получиться ответ 0.003
в итоге выводится 0

Код:
i.I=0;
				i.I=y[0]+y[10]+4*(y[1]+y[3]+y[5]+y[7]+y[9])+2*(y[2]+y[4]+y[6]+y[8]); 
				i.I = i.I*(i.h/3);
				sprintf(test1,TEXT("%.6f"),	i.I);
				SetDlgItemText(hDlg,IDC_EDIT29,test1);
				long double b=1,h=0,z=0,E=pow(10.,(-10));
				int v=1;
				h=(b-z);
				i.S=h*fapp1((z+b)/2);
				do
				{
					v=2*v;
					h=(b-z)/v;
					i.S1=i.S;
					i.S=0;
					for(int w=0; w<=(v-1); w++)
						i.S=i.S+fapp1(z+h/2+w*h);
					i.S=i.S*h;
				}while(abs(i.S-i.S1)/3>=E);
				sprintf(test1,TEXT("%.6f"),i.S);
				SetDlgItemText(hDlg,IDC_EDIT34,test1);
				i.R=i.S-i.I;
				sprintf(test1,TEXT("%.4f"),i.R);
				SetDlgItemText(hDlg,IDC_EDIT30,test1);
				}
				return TRUE;
			break;
Изображения
Тип файла: png Безымянный.png (12.6 Кб, 56 просмотров)
maxick96 вне форума Ответить с цитированием
Старый 17.11.2013, 23:12   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

1) R получится 0.0003, если судить по I и I1
2) Попробуйте sprintf(test1,TEXT("%.6f"),i.R);
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возникла проблема с++ GanJIk Помощь студентам 2 28.02.2012 23:45
Возникла проблема... ycropp HTML и CSS 4 16.11.2011 18:43
возникла проблема dvarv Общие вопросы C/C++ 7 19.04.2011 21:03
Возникла проблема! Файзулка Помощь студентам 1 22.11.2009 21:42