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

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


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

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

Выпуск № 548
от 10.10.2006, 02:35

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


Вопрос № 57663: Доброго времени суток! Есть такая задачка для начинающих: определить количество взаимно простых чисел с числом n. Например, число n равно 7. Тогда взаимно простые числа с числом 7 это: 1, 2, 3, 5, 7. Таким образом, взаимно простые числа - это числа, ...
Вопрос № 57719: Итак я программирую на MS Visual C++ 6.0 (именно MFC приложение). Мне нужно создать программно создать несколько (заранее не известно) editbox и label. Как это реализовать. ...
Вопрос № 57759: уважаемые экспеты глупый наерное вопрос в делфе втречал когда то апи функцию кде при нажатии кнопко выдается стандартное окошко винды микрософт там пишется версия лицензия и т.п. так вот.. исходники не сохранились А есть такая функция в си?...

Вопрос № 57.663
Доброго времени суток! Есть такая задачка для начинающих: определить количество взаимно простых чисел с числом n. Например, число n равно 7. Тогда взаимно простые числа с числом 7 это: 1, 2, 3, 5, 7. Таким образом, взаимно простые числа - это числа, которые делятся только сами на себя и на единицу. Вот что у "выходит" :

# include <stdio.h>
int main ()
{
int i, j, n = 7, temp, count = 0;

for (i = 1; i <= n; i++)

{
for (j = n; j >= i; j--)
{
temp = i;
if (temp / j == 1)
{
count ++;

}
}
}
printf ("%d ", count);
return 0;
}
но count считает все числа, так как 4/4 тоже будет равно 1. Что-то не "доходит" как исправить, не подскажете?
Отправлен: 04.10.2006, 08:48
Вопрос задал: Grekalov (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Sergey A. Wedensky
Здравствуйте, Grekalov!

Я так понял, Вас интересуют взаимно-простые числа, не превосходящие заданного простого числа.
Перебор дейтсвительно не лучший вариант при больших числах.
Но если все-таки... Пример в приложении.

Приложение:

Ответ отправил: Sergey A. Wedensky (статус: 4-ый класс)
Ответ отправлен: 04.10.2006, 14:00

Отвечает: Delph
Здравствуйте, Grekalov!

Вы немного путаете терминологию. Натуральное число зовётся простым, если оно делится нацело и без остатка только на единицу и на самоё себя (то бишь имеет ДВА натуральных делителя). Напомню, что натуральными являются целые положительные числа (1, 2, 3, ...). Два натуральных числа являются взаимнопростыми, если наибольший общий для них делитель равен 1. Согласно первого определения ряд простых чисел начинается так: 2, 3, 5, 7, 11, ... Поэтому вы некорректно сформулировали вопрос. Тем не менее постараюсь Вам помочь. В приложении Вы найдёте функцию Pof, которая определяет, является ли число простым. Для простых чисел она возвращает нуль, для составных - положительное значение. Если результат отрицателен, то число не является ни простым, ни составным (не подходит под определение простого/составного числа). Программа, в которую зашита функция, перебирает несколько чисел для демонстрации работы Pof.

Желаю удачи!

Приложение:

Ответ отправил: Delph (статус: 2-ой класс)
Ответ отправлен: 04.10.2006, 14:55


Вопрос № 57.719
Итак я программирую на MS Visual C++ 6.0 (именно MFC приложение).
Мне нужно создать программно создать несколько (заранее не известно) editbox и label. Как это реализовать.
Отправлен: 04.10.2006, 17:20
Вопрос задал: Mikutu (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Sergey A. Wedensky
Здравствуйте, Mikutu!

А в чем, собственно, проблема?
Может, я не понял вопроса?

Создаете динамически экземпляры соответствующих классов (CEdit и CStatic), вызываете Create():

CEdit* pedits = new CEdit [n];
int nID = 1;
for (int i = 0; i<n; i++)
{
pedits->Create(WS_BORDER|ES_MULTILINE|..., // стили
CRect(left, top, right, bottom), // положение внутри родительского окна
this, // Родительское окно
nID++); // Идентификатор контрола
}

И делаете дальше с ними что угодно (ShowWindow/MoveWindow/SetWindowText ну и все такое прочее).
Ответ отправил: Sergey A. Wedensky (статус: 4-ый класс)
Ответ отправлен: 04.10.2006, 17:42


Вопрос № 57.759
уважаемые экспеты
глупый наерное вопрос
в делфе втречал когда то апи функцию кде при нажатии кнопко выдается стандартное окошко винды микрософт там пишется версия лицензия и т.п. так вот.. исходники не сохранились А есть такая функция в си?
Отправлен: 05.10.2006, 00:29
Вопрос задал: Goodmund (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Vaga
Здравствуйте, Goodmund!

char szAppName[MAX_PATH];
DWORD h;
char* VerInfo;
CString LangCharset;
UINT VIsz;

strcpy(szAppName,"AppName.exe");

DWORD sz = GetFileVersionInfoSize(szAppName, &h);
if(sz != 0) {

void* ver = (void*)new char[sz];
GetFileVersionInfo(szAppName, h, sz, ver);
VerQueryValue(ver, _T("\VarFileInfo\Translation"), (void**)&VerInfo, &VIsz);
LangCharset.Format(_T("\StringFileInfo\%04x%04x\"), *((short*)VerInfo), *((short*)(VerInfo+2)));

VerQueryValue(ver, (LPTSTR)(LPCTSTR)(LangCharset+_T("ProductName")), (void**)&VerInfo, &VIsz);
CString sProductName = CString((LPCTSTR)VerInfo);

VerQueryValue(ver, (LPTSTR)(LPCTSTR)(LangCharset+_T("ProductVersion")), (void**)&VerInfo, &VIsz);
CString sProductVersion = CString((LPCTSTR)VerInfo);

VerQueryValue(ver, (LPTSTR)(LPCTSTR)(LangCharset+_T("LegalCopyright")), (void**)&VerInfo, &VIsz);
CString sLegalCopyright = CString((LPCTSTR)VerInfo);

delete ver;
}

Могут быть ляпы. Код выдрал из приложения и редактировал на ходу, не проверяя. Но суть верна.
---------
Ошибка становится ошибкой, когда рождается как истина. Станислав Ежи Лец
Ответ отправил: Vaga (статус: 3-ий класс)
Ответ отправлен: 05.10.2006, 01:20

Отвечает: Melamed
Здравствуйте, Goodmund!
Если Вы пишете свое приложение на базе MFC, то целесообразно использовать класс CAboutDlg, сгенирированный автоматически при создании приложения. Вам остается только своевр&# 1077;менно редактировать шаблон этого сообщения.
Если нет, то делайте как указанно в предыдущем ответе
Ответ отправил: Melamed (статус: 5-ый класс)
Ответ отправлен: 05.10.2006, 16:16


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

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

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

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

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала 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.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное