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

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


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

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

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

Выпуск № 284
от 29.12.2005, 01:21

Администратор:Калашников О.А.
В рассылке:Подписчиков: 249, Экспертов: 36
В номере:Вопросов: 3, Ответов: 8


Вопрос № 32053: Господа эксперты, подскажите плз. C++Builder 6. Вопросы по элементу DBGrid. 1. Как можно узнать какая ячейка выделена, номер строки и столбца? 2. Как можно узнать что храниться в той или иной ячейки элемента DBGrid. Заранее спасиб...
Вопрос № 32071: Помогите, пожалуйста, составить цикл, который бы вычислял все натуральные числа в заданном диапазоне(например, от 1 до 100), десятичная запись которых начинается и заканчивается одной и той же цифрой. Я не понимаю как вычислить первую цифру числа. За...
Вопрос № 32075: Здрасте, Эксперты! Знаете чего такое? HEAP[qqq.exe]: Invalid allocation size - 99999998 (exceeded 7ffdefff) Еще Релиз не фурычит говорит память не может быть вриттен... А в дебаге все путем! Я даже место нашел в котором такое про...

Вопрос № 32.053
Господа эксперты, подскажите плз.
C++Builder 6.
Вопросы по элементу DBGrid.
1. Как можно узнать какая ячейка выделена, номер строки и столбца?
2. Как можно узнать что храниться в той или иной ячейки элемента DBGrid.
Заранее спасибо всем кто откликнеться.
Отправлен: 23.12.2005, 12:01
Вопрос задал: AllexZ (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

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

Я не шарю в Билдере, но посколькувопрос задается уже в третий (вобщем много) раз, то решил взглянуть и сразу пришла в голову такая штука:

DBGrid1->SelectedField->GetData ну или узнать какой тип
DBGrid1->SelectedField->FieldKind
ну или так
DBGrid1->SelectedIndex
И вообще там же в справке экзамплы есть...
Если эта инфа не помогла, то могу посоветовать обратиться в соседнюю ветку - Делфи т.к. компоненты там все равно одинаковые, т.е. формулируешь запрос так же только убираешь строчку C++Builder 6... Они то уж точно в компонентах этого продукта разбираются
Ответ отправил: Zitz (статус: 3-ий класс)
Отправлен: 23.12.2005, 18:31


Вопрос № 32.071
Помогите, пожалуйста, составить цикл, который бы вычислял все натуральные числа в заданном диапазоне(например, от 1 до 100), десятичная запись которых начинается и заканчивается одной и той же цифрой. Я не понимаю как вычислить первую цифру числа. Заранее спасибо.
Отправлен: 23.12.2005, 19:21
Вопрос задал: Commandos (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: koshi
Здравствуйте, Commandos!
Первое, что пришло в голову см. в приложении:

Приложение:

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

Ответ отправил: koshi (статус: 2-ой класс)
Отправлен: 23.12.2005, 19:44

Отвечает: estiGi
Здравствуйте, Commandos!
А совсем не обязательно вычислять первую цифру именно числа. Можно переводить в строку -
char dig [10];
int num = 22;
itoa (num, dig, 10);
if (dig [0] == dig [lstrlen(dig) - 1]) {
// оно
}
А еси копаться с числами, то нужно смотреть в сторону деления по модулю - %
Ответ отправил: estiGi (статус: 9-ый класс)
Отправлен: 23.12.2005, 20:08

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

Да генерь их сам и не парься!
1 2 3 4 5 6 7 8 9 входят в диапазон (0;100)? Начинаются сами на себя?
Из них натуральные 1 2 3 5 7 (вроде как) они будут у тебя всегда при диапазоне большем чем от 0 до 7
Теперь десятки
11 22 33... легко заметить что из нох натуральное только 11
Т.е. в итоге если диапазон от 0 до 100 твои ответы 1 2 3 5 7 11
А вот с сотнями и далее посложнее
1х1 3х3 7х7, 9х9 где х - любое число, как заметил (наверное) я выкинул 2х2, 4х4, 6х6, 8х8, т.к. моих математических познаний достаточно чтобы узреть что они четные т.е. деляться на 2 без остатка, 5х5 - делиться на 5, тоже выкидываем...
На этом все мои математические способности исчерпались! Но это уже сузило тебе объем работ в разы! Для дальнейшей оптимизации зови математиков...
Как сгерить все числа 1х1 из 4 знаков (например)? Все просто:
1001 + 10 = 1011 + 10 = 1021 и т.д пока не стало 1991... На этом этапе тоже можно оптимизировать...
Как найти натуральное число ? Это число которое делиться на 1 и на себя без остатка, остальное с остатком. Т.е. делаем топором цикл от i=2 до N-1 где N - твое число, в цикле
{
if (!(N%i)) {Число не натуральное и break};
}
Это тоже не супер способ! Если приглядеться то при больших диапазонах будет вычисляться ОЧЕНЬ продолжительное время...
На самом деле задача чисто математическая, а т.к. я в высшей математике почти полный ноль, то лучше тебе к матиматику обратиться, за поском решения за меньшее число операций... Он тебе скажет что-то типа: "Да тут все просто - чтобы найти натуральное число или нет его надо разложить в множетельный ряд..."
Ответ отправил: Zitz (статус: 3-ий класс)
Отправлен: 23.12.2005, 22:03

Отвечает: RedDevil
Здравствуйте, Commandos!
Есть два способа, один сказал estiGi, вот второй. Как вычислить первую, ты уже знаешь, а вторая вчисляется по такому алгоритму. Пока число больше 10, делить его на 10. В итоге получим первое число. Код в приложении.
Одно только хочу заметить, если на вход поступает одноразрядное число, например 5, то в примере esgiGi, оно будет интерпритироватся как число, у которого 1 и последняя цифра одинаковы, так что не забудь исправить это, если будешь его использовать.

Приложение:

Ответ отправил: RedDevil (статус: 2-ой класс)
Отправлен: 24.12.2005, 08:16

Отвечает: Raptor1
Здравствуйте, Commandos!
DWORD Detect(DWORD dwNumber)
{
while(dwNumber>9)
dwNumber/=10;
return dwNumber;
}
Ответ отправил: Raptor1 (статус: Студент)
Отправлен: 24.12.2005, 10:36


Вопрос № 32.075
Здрасте, Эксперты!
Знаете чего такое?
HEAP[qqq.exe]: Invalid allocation size - 99999998 (exceeded 7ffdefff)

Еще Релиз не фурычит говорит память не может быть вриттен... А в дебаге все путем!
Я даже место нашел в котором такое происходит - когда
LVCOLUMN Column;
m_ListMain.GetColumn(0, &Column);
Чего-то надо делать!!! АЙ НИД ХЕЛП!!!
Отправлен: 23.12.2005, 21:00
Вопрос задал: Zitz (статус: 3-ий класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Jadd
Здравствуйте, Zitz!
Ну так прошел бы дальше по коду. Сложно так сказать. С виду все правильно. Шли код на xlcoder@mail.ru . Такое ощущение, что колонок нету.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Специалист)
Отправлен: 23.12.2005, 21:10
Оценка за ответ: 3
Комментарий оценки:
А я не ходил?
Ошибка точно в
LVCOLUMN colum;
m_List.GetColumn(0,&colum);
Я создал новый проект там только лист по баттону1 - создаются колонки, по баттону2 код см. выше - выдает тоже самое
HEAP[www.exe]: Invalid allocation size - 99999998 (exceeded 7ffdefff)
Мне просто надо сменить название колонок, больше ничего не надо, я делаю m_List.SetColumn - в дебагере работает в релизе нет...
Может другой лучше способ сменить название колонок посоветуете?

Отвечает: Raptor1
Здравствуйте, Zitz!
Если ты хочешь получать текст то у тебя должен быть установлен флаг LVCF_TEXT в LVCOLUMN.mask, LVCOLUMN.pszText должен указывать на реально существующий буфер, а LVCOLUMN.cchTextMax содержать размер этого буфера. Скорее всего ты этот буфер выделить забыл
LVCOLUMN Column;
TCHAR pszBuffer[100];
Column.mask=LVCF_TEXT;
Column.pszText=pszBuffer;
Column.cchTextMax=100;
m_ListMain.GetColumn(0, &Column);
Ответ отправил: Raptor1 (статус: Студент)
Отправлен: 24.12.2005, 10:36


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

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

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

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

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала 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
Архив рассылки
Отписаться Вебом Почтой
Вспомнить пароль

В избранное