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

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


Информационный Канал Subscribe.Ru

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

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

Выпуск № 280
от 25.12.2005, 00:33

Администратор:Калашников О.А.
В рассылке:Подписчиков: 248, Экспертов: 35
В номере:Вопросов: 7, Ответов: 16


Вопрос № 31791: Помогите, пожалуйста, составить цикл. Нужно, чтобы он считал произведение элементов массива типа double (текущий элемент умножить на следующий, затем это произведение умножить на следующий и т.д) пока текущий элемент не станет равным 0. Например дан ...
Вопрос № 31803: Здравствуйте, эксперты. Помогите разобраться с программированием нейронных сетей. Прочитал уже кучу статей по теме, но в основном там математика, и не строчки кода, может кто видел исходники в сети, пожалуйста укажите, хотелось бы посмотрей примеры р...
Вопрос № 31820: Помогите, пожалуйста, составить программу. Я уже спрашивал у вас как составить цикл, умножающий элементы массива. Я понял, как работает цикл, но я не могу сделать еще одну вещь, которая была в задании. Нужно сделать, чтобы цикл прерывался когда a[k+1...
Вопрос № 31821: Здравс твуйте, уважаемые эксперты! Программирую на C под FreeBSD 6.0. Но, думаю, это непринципиально. Подскажите по нескольким вопросам: 1) Как очистить буфер ввода? 2) Как вводить символьную строку не опосаясь выйти за размер символьн...
Вопрос № 31823: Зравствуйте, уважаемые эксперты. Вопрос касается печати средствами Builder. Подскажите, как можно, например, распечатать StringGrid. Пробовал методом PaintTo через ссылку на принтер, но печатает оч.мелко. Кто как решает проблемы печат...
Вопрос № 31836: Привет! Как сменить цвет фона окна(background) без изменения значение HBRBACKGROUND в WNDCLASSEX и не обрабатывая событие WM_PAINT каждый раз перерисовывая Rectangl'ом все окно. Это все на чистом АПИ. Вот как в бейсике form1.background = 255....?...
Вопрос № 31846: Пишу на Borland C++ 3.1 под Dos. Вознила проблема как выводить время и при этом считывать ответ с клавиатуры( многопоточность?) :наверно нужно на Асемблере , но я его не знаю....

Вопрос № 31.791
Помогите, пожалуйста, составить цикл. Нужно, чтобы он считал произведение элементов массива типа double (текущий элемент умножить на следующий, затем это произведение умножить на следующий и т.д) пока текущий элемент не станет равным 0. Например дан массив (2 3 4 5 0 6), цикл считает 2*3*4*5, а затем прерывается так как текущий элемент 0.
Отправлен: 19.12.2005, 00:29
Вопрос задал: Commandos (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лучников Юрий Владимирович
Здравствуйте, Commandos!
RES = 1;

for (i = 0; i < SIZE; i++)
{
if( mas[i] == 0) break;

RES *= mas[i];
}
Ответ отправил: Лучников Юрий Владимирович (статус: 6-ой класс)
Отправлен: 19.12.2005, 00:36

Отвечает: DoubleV
Здравствуйте, Commandos!
Вот что-то типа этого:

double mas[50]={5,10,6,0};
double rez=1;
//Цикл
for(int i=0;mas[i]!=0;i++)
{
rez*=mas[i];
}
//----
Ответ отправил: DoubleV (статус: 2-ой класс)
Отправлен: 19.12.2005, 00:58

Отвечает: koshi
Здравствуйте, Commandos!
Перед сном решил накидать)))
Вроде так должно бы работать, если что извиняй, сплю уже))

Приложение:

---------
Don't worry by groovy

Ответ отправил: koshi (статус: 2-ой класс)
Отправлен: 19.12.2005, 01:13

Отвечает: Zitz
Здравствуйте, Commandos!

Смотори код...
massiv - твой массив
Count - число элементов в массиве

Приложение:

Ответ отправил: Zitz (статус: 3-ий класс)
Отправлен: 19.12.2005, 12:09


Вопрос № 31.803
Здравствуйте, эксперты. Помогите разобраться с программированием нейронных сетей. Прочитал уже кучу статей по теме, но в основном там математика, и не строчки кода, может кто видел исходники в сети, пожалуйста укажите, хотелось бы посмотрей примеры реализации.
Отправлен: 19.12.2005, 08:28
Вопрос задал: Демченко Артем (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: DIMANET
Здравствуйте, Демченко Артем!
/---------/
http://forum.isurgut.ru/showflat.php?Cat=&Number=1616730&Main=1605668
http://neuroschool.narod.ru/articles.html
http://www.orc.ru/~stasson/indexx.html
http://www.neuroproject.ru/nwinovr.htm
/--------/
Ответ отправил: DIMANET (статус: 1-ый класс)
Отправлен: 19.12.2005, 14:03
Оценка за ответ: 5
Комментарий оценки:
спасибо, буду изучать.


Вопрос № 31.820
Помогите, пожалуйста, составить программу. Я уже спрашивал у вас как составить цикл, умножающий элементы массива. Я понял, как работает цикл, но я не могу сделать еще одну вещь, которая была в задании. Нужно сделать, чтобы цикл прерывался когда a[k+1] элемент будет равен 0(i=1,2,3…k), и чтобы a[i] не был равен 0. Я пытался сделать это с помощью цикла while, но программа зацикливается. Пример моей программы в приложении.

Приложение:

Отправлен: 19.12.2005, 14:09
Вопрос задал: Commandos (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: BOIL
Здравствуйте, Commandos!

Общее замечание: при работе с числами с плав. точкой проверка на нуль рекомендуется заменить проверкой на малое число, близкое к нулю, при чем проверять по модулю

ПРоверку вида while(a[i+1]!=0) заменить на if(i && a[i+1]==0) break; поместить ее внутрь второго цикла for
Ответ отправил: BOIL (статус: 5-ый класс)
Отправлен: 19.12.2005, 14:34

Отвечает: Zitz
Здравствуйте, Commandos!

Ничего в коде понять не могу! Попытайся лучше описывать свою проблему...
Если всего элементов к {i=1,2,3…k} тогда k+1 выйдет за границы массива...
А зацикливается у тебя скорее всего потому что ты во вложенном цикле используешь туже самую переменную цикла... И вообще если надо прервать цикл то есть специальная команда break, если нужно по какой либо причине пропустить следующие операнды то ставишь continue, например вот прога которая все нули пропускает в твоем массиве (обрати внимание что надо сравнивать с 0.0, если ты в массив флоатов хочешь занести ноль, то заносить нужно тоже 0.0, иначе он в дробную часть всякую каку занесет, т.е 0 не равно 0.0!!!, можешь посмотреть когда говоришь p=0, то ему присваевается что-то вроде 0.00000000456)

Приложение:

Ответ отправил: Zitz (статус: 3-ий класс)
Отправлен: 19.12.2005, 15:20

Отвечает: Romodos
Здравствуйте, Commandos!
По моему следующую конструкции надо заменитт на то, что в приложении.
while(a[i+1]!=0)
{
for(i=0;a[i]!=0;i++)
{
p*=a[i];
}
}
Надеюсь, помог!

Приложение:

---------
FAQ me off!

Ответ отправил: Romodos (статус: Студент)
Отправлен: 19.12.2005, 15:33


Вопрос № 31.821
Здравствуйте, уважаемые эксперты!
Программирую на C под FreeBSD 6.0. Но, думаю, это непринципиально.
Подскажите по нескольким вопросам:
1) Как очистить буфер ввода?
2) Как вводить символьную строку не опосаясь выйти за размер символьного массива?
Понимаю, вопросы дилетантские, но надо их просто быстро решить. Время ждет.
Заранее спасибо.
Отправлен: 19.12.2005, 15:11
Вопрос задал: Стомов Евгений (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Zitz
Здравствуйте, Стомов Евгений!

На счет вопроса №2
Так вводи символьную строку не в массив а в область памяти (по указателю)
А потом заноси ее в свой массив используя memcopy, там можно прописать сколько байт ты хочешь скопировать, ну и естественно все остальное обрежется...
В МФЦ есть класс ЦСтринг, так экземпляру этого класса можно присвоить прям эту область и он сам отригулирует свой размер... Правда он тоже не резиновый...
Ответ отправил: Zitz (статус: 3-ий класс)
Отправлен: 19.12.2005, 18:26


Вопрос № 31.823
Зравствуйте, уважаемые эксперты.
Вопрос касается печати средствами Builder.
Подскажите, как можно, например, распечатать StringGrid.
Пробовал методом PaintTo через ссылку на принтер, но печатает оч.мелко.
Кто как решает проблемы печати?
Отправлен: 19.12.2005, 15:49
Вопрос задал: Титов Сергей (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: DIMANET
Здравствуйте, Титов Сергей!

/-------/
http://forum.vingrad.ru/index.php?showtopic=68535&unread=1&hl=Печать+stringgrid
/------/
Ответ отправил: DIMANET (статус: 1-ый класс)
Отправлен: 19.12.2005, 16:21


Вопрос № 31.836
Привет!
Как сменить цвет фона окна(background) без изменения значение HBRBACKGROUND в WNDCLASSEX и не обрабатывая событие WM_PAINT каждый раз перерисовывая Rectangl'ом все окно. Это все на чистом АПИ. Вот как в бейсике form1.background = 255....??? Заранее спасибо!
Отправлен: 19.12.2005, 21:07
Вопрос задал: valix (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: estiGi
Здравствуйте, valix!
Неплохо было бы определиться, какое окно ты имеешь в виду. В Windows все элементы называются окнами.
Некоторые из них можно покрасить достаточто легко. Смотри сообщения WM_CTLCOLOR...
Если ты имеешь в виду диалог, то это будет WM_CTLCOLORDLG.
Обрати внимание на два момента
1. "чистое" сообщение WM_CTLCOLOR используется в MFC.
2. Сообщение WM_CTLCOLORBTN - липа :) Кнопку ты так не сможешь покрасить
Чтобы покрасить остальные (включая кнопку), нужно их делать owner draw и рисовать вручную
Ответ отправил: estiGi (статус: 9-ый класс)
Отправлен: 19.12.2005, 21:26

Отвечает: Zitz
Здравствуйте, valix!

Ничего не делать, ничего не используя не получится...
По моему отдельной апи функции на этот счет нет...
Кстати не думаю, что form1.background = 255.... - это АПИ ;-))
Если хочешь быстро и бес проблем всенить бэкграунд, то
нужно использовать соответствующий класс окна... И тогда
становиться возможно dlg.background, где разработчики
позаботились за тебя написать это на АПИ, с обработкой ВМ_ПАИНТ и т.п.
Ответ отправил: Zitz (статус: 3-ий класс)
Отправлен: 19.12.2005, 22:03

Отвечает: PROD
Здравствуйте, valix!
В Builder это делается так

Form1->Color=clNavy;

Ответ отправил: PROD (статус: 2-ой класс)
Отправлен: 20.12.2005, 06:03


Вопрос № 31.846
Пишу на Borland C++ 3.1 под Dos. Вознила проблема как выводить время и при этом считывать ответ с клавиатуры( многопоточность?) :наверно нужно на Асемблере , но я его не знаю.
Отправлен: 19.12.2005, 23:21
Вопрос задал: DeF (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: DoubleV
Здравствуйте, DeF!
Многопоточность под ДОС?!
Дос однозадачная ОС.
Не о какой многопоточнасти там речи быть не может.
Единстевнно что могу предложить,так это последовательно, вначале выводить время, а потом считывать ответ с клавиатуры.
Ответ отправил: DoubleV (статус: 2-ой класс)
Отправлен: 20.12.2005, 01:03

Отвечает: Boriss
Здравствуйте, DeF!
Все проще, чем думаете. Надо организовать цикл, выход из которого по нажатию какой-то клавиши. А в нем проверять время хотя бы _dos_gettime. И если число секунд изменилось, то перерисовывайте его. А если нет - проверяйте ввод чем любите
Можно и написать обработчик прерывания 1Ch - но в нем только выставлять флаг, что секунда прошла (можно и обрабатывать прерывание 8, но 1Ch безопаснее)
---------
Вывод - то место в тексте, где вы устали думать
Ответ отправил: Boriss (статус: Профессор)
Отправлен: 20.12.2005, 10:35

Отвечает: Zitz
Здравствуйте, DeF!

Да просто все!
Заделай цикл, в нем выводи время и в нем же просматривай ввод клавиатуры,
был ввод считываем ответ, небыло начинаем сначала...
Точно не помню но вроде функция которая смотрит нажата клавиша или нет
называется kbhit()...
А в многопоточность и уж тем более в Ассемблер не лезь, там нечего делать
простым смертным... ;-) (я смотрел, мне не понравилось)
Ответ отправил: Zitz (статус: 3-ий класс)
Отправлен: 20.12.2005, 15:28


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

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

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

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

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


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


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

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Архив рассылки
Отписаться Вебом Почтой
Вспомнить пароль

В избранное