Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 899
от 07.11.2007, 07:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 477, Экспертов: 67
В номере:Вопросов: 4, Ответов: 6


Вопрос № 107643: тоесть при нажатии одной кнопки происходит подсчет дискреминанта и подставлении условия,рассчет а затем вывод в окошко... код выглядит вот так Код: void CNewProectDlg::OnButton1() { // TODO: Add your control notification ha...
Вопрос № 107657: Добрый день уважаемые специалисты. Очень сильно и срочно нужна ваша помощь. Столкнулся с элементарным но в тоже время погряз и не могу сделать. Вроде все понятно но все равно не получаетсяю нужноЖ 1. составить программу которая выводит на экран л...
Вопрос № 107669: Здравствуте. Подскажите пожалуста каким образом из риложения можно запустить другую программу, дождаться пока она завершиться, и потом продолжить вычисления в текущем приложении....
Вопрос № 107700: Доброго времени суток. Не могли бы помочь. Я новичек. Создаю в Visual Studio C++ .NET, MFC Application -> Dialog. Не могу найти в Toolbox'е label и TextBox(EditBox). Нашел там нечто похожее StaticText и Edit Control. Теперь собственно говоря скажу...

Вопрос № 107.643
тоесть при нажатии одной кнопки происходит подсчет дискреминанта
и подставлении условия,рассчет а затем вывод в окошко... код выглядит вот так

Код:
void CNewProectDlg::OnButton1()
{
// TODO: Add your control notification handler code here

char buf[10],buf1[10],buf2[10],buf3[10],buf4[10],buf5[10],buf6[10],buf7[10];
m_Edit1.GetLine(0,buf);
m_Edit2.GetLine(0,buf1);
m_Edit3.GetLine(0,buf2);
m_Edit4.GetLine(0,buf3);
m_Edit5.GetLine(0,buf4);
m_EditX1.GetLine(0,buf5);
m_EditX2.GetLine(0,buf6);
m_EditZ1.GetLine(0,buf7);

int a=((atoi(buf1)*atoi(buf1))-4*(atoi(buf)*atoi(buf2)));
int x1=((-atoi(buf1))+sqrt(a))/(2*(atoi(buf)));
int x2=((-atoi(buf1))-sqrt(a))/(2*(atoi(buf)));
int X1=(-atoi(buf1))/(2*(atoi(buf)));
if(a>0)
{memset(buf3,0,sizeof(buf3));
itoa(a,buf3,10);
itoa(x1,buf5,10);
itoa(x2,buf6,10);
m_Edit5.SetWindowText(" ");
m_Edit4.SetWindowText(buf3);
m_EditX1.SetWindowText(buf5);
m_EditX2.SetWindowText(buf6);
m_Edit6.SetWindowText(" ");
m_EditZ1.SetWindowText(" ");}
else
if(a<0)
{memset(buf4,0,sizeof(buf4));
itoa(a,buf4,10);
m_Edit5.SetWindowText(buf4);
m_Edit4.SetWindowText(" ");
m_Edit6.SetWindowText("Решения нет!");
m_EditX1.SetWindowText(" ");
m_EditX2.SetWindowText(" ");
m_EditZ1.SetWindowText(" ");}
else
{memset(buf7,0,sizeof(buf7));
itoa(X1,buf7,10);
m_EditZ1.SetWindowText(buf7);
m_EditX1.SetWindowText(" ");
m_EditX2.SetWindowText(" ");
m_Edit6.SetWindowText(" ");
m_Edit5.SetWindowText(" ");
m_Edit4.SetWindowText(" ");}
}

и проблема в том что в ячейки m_EditX1 и m_EditX2 вбивается значение до точки. То есть если вдруг истинное значение х1=0.2424343 то выводит x1=0.
Каким образом и где надо заменить оператор int на float?
Или гденить еще над чтонить приписать?

Помогите пожалуйста, а то я запутался.

Приложение:

Отправлен: 01.11.2007, 13:59
Вопрос задал: Артемьев Артем Николаевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: CruelHity
Здравствуйте, Артемьев Артем Николаевич!
нужно заменить x1 и x2 и X1 на float и везде где есть дробные значения! после этого itoa не подходит, воспользуйтесь ф.
char *_fcvt(
double value,
int count,
int *dec,
int *sign
);
или лучше место char * пользуйтесь CString! Тогда будет так:
CString buf;
...
buf.Format("%f",x1);... и т.д.!
в приложении смотрите пример функции _fcvt

Приложение:

Ответ отправил: CruelHity (статус: 3-ий класс)
Ответ отправлен: 01.11.2007, 16:19
Оценка за ответ: 5


Вопрос № 107.657
Добрый день уважаемые специалисты. Очень сильно и срочно нужна ваша помощь. Столкнулся с элементарным но в тоже время погряз и не могу сделать. Вроде все понятно но все равно не получаетсяю
нужноЖ 1. составить программу которая выводит на экран линию из символов. Число символов, какой использовать символ, и какая будет линия - вертикальная, или горизонтальная - указывает пользователь.
2. Написать программу, которая находит сумму всех целых нечетных чисел в диапазоне, указанном пользователе.
Решить нужно посредством цикла while.

В первом пробовол сделать так с начала без подстановки символов а вот как их еще доставить :(

Приложение:

Отправлен: 01.11.2007, 15:26
Вопрос задал: Белоусов Алексей Леонидович (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: CruelHity
Здравствуйте, Белоусов Алексей Леонидович !
вот держите две задачи! надеюсь я правильно понял что вам надо в первой задачи!
Если что спрашивайте!
Удачи!

Приложение:

Ответ отправил: CruelHity (статус: 3-ий класс)
Ответ отправлен: 01.11.2007, 16:10
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо!!!! Много подчеркнул из этого примера и наконецто понял в чем была проблема ;)

Отвечает: Mihail Yarlykov
Здравствуйте, Белоусов Алексей Леонидович !
В приложении исправленные программы:

Приложение:

---------
Нет ничего невозможного!

Ответ отправил: Mihail Yarlykov (статус: 4-ый класс)
Ответ отправлен: 01.11.2007, 18:06
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо !!! Как раз в самую точку. Этот ответ логически завершал первый и также сыграл большую роль в решению задачи. И теперь я понял что у меня не получалось ;)


Вопрос № 107.669
Здравствуте.
Подскажите пожалуста каким образом из риложения можно запустить другую программу, дождаться пока она завершиться, и потом продолжить вычисления в текущем приложении.
Отправлен: 01.11.2007, 16:59
Вопрос задал: Ходзинский Александр Валерьевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: CruelHity
Здравствуйте, Ходзинский Александр Валерьевич!
Смотря для какой ОС вы пишите програму!
если для дос(или консольную) то воспользуйтесь стандартной функцией system(имя или полностью путь с именем файла), см в приложении!
Если всетаки для виндовс то Советую вам скачать
"Джеффри РИХТЕР
Создание эффективных WIN32-приложений
с учетом специфики 64-разрядной версии Windows"- главы про процесы
Удачи!!!!!!!

Приложение:

Ответ отправил: CruelHity (статус: 3-ий класс)
Ответ отправлен: 01.11.2007, 17:13
Оценка за ответ: 5

Отвечает: Mihail Yarlykov
Здравствуйте, Ходзинский Александр Валерьевич!
Вот кусок кода для вашей задачи на API:

Приложение:

---------
Нет ничего невозможного!

Ответ отправил: Mihail Yarlykov (статус: 4-ый класс)
Ответ отправлен: 01.11.2007, 17:29
Оценка за ответ: 5


Вопрос № 107.700
Доброго времени суток. Не могли бы помочь. Я новичек. Создаю в Visual Studio C++ .NET, MFC Application -> Dialog. Не могу найти в Toolbox'е label и TextBox(EditBox). Нашел там нечто похожее StaticText и Edit Control. Теперь собственно говоря скажу к чему это я все спрашиваю. Программа должна выполнять вычисление, предположим сложение 2-х чисел, т.е. пользователь записывает число в Edit Control 1 и Edit Control 2, затем нажимает на кнопку вычислить в диалоговом окне и эт значение должно вывестись на экран в label, который не могу найти. И, если не сложно, то заодно подскажите пожалуйста, как сделать, чтобы в верхнем левом уголе шапки окна перед его названием (title) 2-го окна была видна иконка, а то в первом диалогоом окне она видна в title, а когда перехожу ко 2-му, то некрасиво получается. И как еще сделать, чтобы сумма 2-х чисел после нажатия кнопки была не только в label, но и еще в MessageBox()??? Заранее спасибо.

Приложение:

Отправлен: 01.11.2007, 22:29
Вопрос задал: Isaev Den (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Воробьёв Алексей Викторович
Здравствуйте, Isaev Den!

Вам нужно завести для каждого контрола переменную.
Для этого на Edit Control первого слагаемого кликаете правой кнопкой. Выбираете "Add variable". В появившемся окне выбираете
Access: private
Category: value
Variable type: int
Variable name: value1 например
Если хотите, то можете ввести пределы в Min Value и Max Value.
Аналогично для второго слагаемого, только например
Variable name: value2
Для Static Text сначала меняете его ID в Properties, например, на IDC_STATIC_RESULT. Теперь тоже можете заводить перменную.
Access: private
Category: value
Variable type: CString
Variable name: result
Теперь код обработчика нажатия на кнопку "Add":
void CMfcDlg::OnBnClickedButton1()
{
UpdateData(TRUE); //считывает значения value1 и value2
result.Format("Result = %d", value1 + value2);
UpdateData(FALSE); //прописывает значнеие result
//Если Вы хотите поменять шапку Вашего окна с текстом результата
this->SetWindowText(result);
//Если Вы хотите вывести Message Box с текстомрезультата
MessageBox(result); //рисует MessageBox
}
Ответ отправил: Воробьёв Алексей Викторович (статус: 6-ой класс)
Ответ отправлен: 03.11.2007, 06:44
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо. Все работает. Теперь буду доделывать и модернизировать программу дальше. Очень сильно выручили!!!


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.61.1 от 16.10.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное