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

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


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

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

Выпуск № 533
от 24.09.2006, 19:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 386, Экспертов: 54
В номере:Вопросов: 5, Ответов: 10


Вопрос № 55889: Добрый вечер! Подскажите, присходит зацикливание, где надо дописать какую команду, что-бы все стало нормально. За ранее спасибо. С уважением Евгений. # include <iostream.h> main () { int oklad = 200; ...
Вопрос № 55940: Здравствуйте эксперты у меня вопрос. Есть 2 программы 1- написана на WinApi оконное приложение 2- под консоль. Две программы связываются через сеть. Одна программа сервер другая клиент! Клиент это консольное приложение. Дело ...
Вопрос № 55981: Доброго дня, господа Эксперты! Прошу прощения за то, что во многом повторяю вопрос 55287, но есть необходимость адаптировать решение под C#. А теперь суть вопроса: нужно средствами C# из комплекта Visual Studio 2005 прочитать данные из Excel-файла. В...
Вопрос № 55984: Здравствуйте уважаемые эксперты. У меня возникла необходимость создать проект для 64 разрядного сервера. Я скачал Microsoft Platform SDK for Windows Server 2003 R2 и установил ее, но как написать проект к сожалению не разобрался. Какие настройки в пр...
Вопрос № 55986: Здравствуйте, Уважаемые эксперты! Мне нужно сделать аналоговые часы, аналогичные виндовым. Поделитесь примером реализации, если возможно, или дайте ссылки на примеры. Заранее благодарен. ...

Вопрос № 55.889
Добрый вечер!
Подскажите, присходит зацикливание, где надо дописать какую команду, что-бы все стало нормально.
За ранее спасибо.
С уважением Евгений.

# include <iostream.h>

main ()
{
int oklad = 200;
float procent, symma;

cout << "Введите объем прдаж (-1, если ввод окончен): ";
cin >> procent;

while (procent != -1)
{
symma = (float) oklad + (procent * 0.09);
cout << "Заработок: " << symma << endl;
}
char Stop;
cout << "Введите любой символ и нажмите ВВОД " << endl;
cin >> Stop;

return 0;
}
Отправлен: 18.09.2006, 22:00
Вопрос задал: МИТРОФАНОВ Е.В. (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Jadd
Здравствуйте, МИТРОФАНОВ Е.В.!
Условие while надо поднять до строки cout << "Введите объем прдаж (-1, если ввод окончен): ";

Ваша программа должна один раз расчитать заработок исходя из процента, введеного один раз, так? Значит надо дать программе работать и выводить расчеты и запрос на новые данные на каждой итерации. В приложении как должно выглядеть.

Успехов.

Приложение:

---------
Если в сердце дверь закрыта, нужно в печень постучаться

Ответ отправил: Jadd (статус: Профессионал)
Адрес: Санкт-Петербург
WWW: http://www.sport-diary.ru
ICQ: 28260749
----
Ответ отправлен: 18.09.2006, 22:18
Оценка за ответ: 5
Комментарий оценки:
Спасибо

Отвечает: Vaga
Здравствуйте, МИТРОФАНОВ Е.В.!
если условие в цикле проверяется по procent, то после расчета позвольте ввести значение для этой переменной.
....
while (procent != -1)
{
symma = (float) oklad + (procent * 0.09);
cout << "Заработок: " << symma << endl;
cin >> procent;
}
....
---------
Вольному - воля
Ответ отправил: Vaga (статус: 4-ый класс)
Ответ отправлен: 18.09.2006, 22:38
Оценка за ответ: 4
Комментарий оценки:
Спасибо за ответ, но еще надо cout << ... добавить, так правильнее и понятнее наверное будет.
while (procent != -1)
{
symma = (float) oklad + (procent * 0.09);
cout << "Заработок: " << symma << endl;
cout << "Введите объем прдаж (-1, если ввод окончен): ";
cin >> procent;
}

Отвечает: Www2
Здравствуйте, МИТРОФАНОВ Е.В.!

В дополнение к ответам предыдущих экспертов:

Числа с плавающей запятой на равенство/неравенство напрямую сравнивать нежелательно.

Переменная procent имеет тип float, в условии while она сравнивается с -1. Нужно сравнивать например так:

while (abs(procent + 1.0) > 0.0001)
---------
Нет правил без исключений, правило без исключения - это исключение из правил.
Ответ отправил: Www2 (статус: 10-ый класс)
Ответ отправлен: 19.09.2006, 09:55
Оценка за ответ: 4
Комментарий оценки:
Спасибо, но у меня procent в условии while метка, при равенстве -1 программа завершает ввод данных.


Вопрос № 55.940
Здравствуйте эксперты у меня вопрос.
Есть 2 программы 1- написана на WinApi оконное приложение
2- под консоль.
Две программы связываются через сеть.
Одна программа сервер другая клиент!
Клиент это консольное приложение.
Дело в том, что когда команда приходит, а приходит она в тексте
Приложение под Windows в упор её не видит, то есть, отослана команда
open на сервере идёт такая проверка if (szRecvBuff=="open"){MessageBox(0,”Hello”,”Hello”,0);}
Я так понял проблема в разных кодировках! Как исправить?
С уважением,
Zmeu.
Отправлен: 19.09.2006, 12:21
Вопрос задал: Tamashev Denis M (статус: 2-ой класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: ADSota
Здравствуйте, Tamashev Denis M!

Если ты не использовал юникод, то вероятность, что дело в кодировках очень мала... Веозможно пересылаються лишние символы (например - ноль на конце строки и т.д.)
---------
Открыть глаза навстречу солнцу
Ответ отправил: ADSota (статус: Специалист)
Ответ отправлен: 19.09.2006, 12:34
Оценка за ответ: 4
Комментарий оценки:
Ну а как с этим боротся ???

Отвечает: Melamed
Здравствуйте, Tamashev Denis M!
Я вижу два возможных варианта решения твоей проблемы:
1 Попробуй сравнивать строки с помощью функции strcmp (см приложение).

2 Проверь, точно ли команда open передается в нижнем регистре или строка содержит кроме слова open еще какую-то информацию.

В первом случае перевиди строку в нижний режим API функцией CharLowerBuf()

DWORD CharLowerBuf(
LPTSTR lpsz // указатель на строку, для которой следует сделать конвертацию символов в внижний регистр
DWORD cchLenght); // Длина конвертируемой строки

В последнем случае надо выделить из строки szRecvBuff подсроку, где ожидается слово "open" смотри протокол обмена сообщениями между клиентом и сервером, принятый в вашем случае .

Приложение:

Ответ отправил: Melamed (статус: 5-ый класс)
Ответ отправлен: 19.09.2006, 14:02
Оценка за ответ: 5
Комментарий оценки:
Ок это интересно я попробую !


Вопрос № 55.981
Доброго дня, господа Эксперты! Прошу прощения за то, что во многом повторяю вопрос 55287, но есть необходимость адаптировать решение под C#. А теперь суть вопроса: нужно средствами C# из комплекта Visual Studio 2005 прочитать данные из Excel-файла. В принципе подойдёт любая технология. Английским языком я владею довольно слабо; подключать в проект Visual C++ на данном этапе нежелательно (да и нет у меня опыта программирования на C++).

Заранее спасибо.
Отправлен: 19.09.2006, 16:16
Вопрос задал: Delph (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Mihasic
Здравствуйте, Denisov Pavel!
http://rsdn.ru/article/dotnet/ExcelNELateBinding.xml

Но это при установленном экселе, а иначе нужно искать форматы файлов и разбираться в них, при чем на сколько я знаю этот формат закрыт и защищен патентом... хотя и могу ошибаться.
Ответ отправил: Mihasic (статус: 8-ой класс)
Ответ отправлен: 19.09.2006, 16:27
Оценка за ответ: 5

Отвечает: Vaga
Здравствуйте, Denisov Pavel!
Хорошая ссылка, не требующая большого знания английского http://www.codeproject.com/csharp/fasterexcelaccesstoc.asp,

здесь по-шаговая инструкция http://www.codeproject.com/useritems/Excel_Application_in_C_.asp,

и наконец в MSDN http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_vsto2003_ta/html/ExcelObj.asp

---------
Вольному - воля
Ответ отправил: Vaga (статус: 4-ый класс)
Ответ отправлен: 19.09.2006, 19:22


Вопрос № 55.984
Здравствуйте уважаемые эксперты. У меня возникла необходимость создать проект для 64 разрядного сервера. Я скачал Microsoft Platform SDK for Windows Server 2003 R2 и установил ее, но как написать проект к сожалению не разобрался. Какие настройки в проекте нужно менять или же это как-то по другому делается. Пожалуйста подскажите. Заранее спасибо.
Отправлен: 19.09.2006, 16:39
Вопрос задал: Nagumanov Ruslan (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Mihasic
Здравствуйте, Nagumanov Ruslan!
Ну, наверное так же как и обычные проекты (если конечно не добавилось в списке рпоектов - те что по ctrl+shift+n), просто платформа не win32, а какая-то еще (сам не рпограммил под 64, но судя по книге рихтера - ничего особенно сложного в этом нет, пока не дойдет до платформозависимых возможностей)
Ответ отправил: Mihasic (статус: 8-ой класс)
Ответ отправлен: 19.09.2006, 16:55
Оценка за ответ: 2
Комментарий оценки:
Я все просмотрел, в том числе и новый проект, но везде только одна платформа Win32


Вопрос № 55.986
Здравствуйте, Уважаемые эксперты!
Мне нужно сделать аналоговые часы, аналогичные виндовым. Поделитесь примером реализации, если возможно, или дайте ссылки на примеры.
Заранее благодарен.
Отправлен: 19.09.2006, 17:17
Вопрос задал: Goretsky Anton (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Mihasic
Здравствуйте, Goretsky Anton!
Наберите в строке поиска в гугле что-то вроде "c++ analog clock" или попробуйте воспользоваться ссылкой
http://www.google.com.ua/search?sourceid=navclient-ff&ie=UTF-8&rls=
GGGL,GGGL:2006-26,GGGL:ru&q=c%2B%2B+analog+clock
Ответ отправил: Mihasic (статус: 8-ой класс)
Ответ отправлен: 19.09.2006, 17:32

Отвечает: Vaga
Здравствуйте, Goretsky Anton!
http://www.codeproject.com/staticctrl/analogclock.asp
http://www.codeproject.com/gdi/ledchars.asp
Примеров полно, если поискать.
---------
Вольному - воля
Ответ отправил: Vaga (статус: 4-ый класс)
Ответ отправлен: 19.09.2006, 19:27


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.36 от 06.09.2006
Яндекс Rambler's Top100

В избранное