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

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


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

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

Выпуск № 760
от 05.06.2007, 06:35

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


Вопрос № 89279: как сделать так чтобы считало сумму разных элементов,а не их количество??? И где само условие в проге что надо искать над главной???? надеюсь на вашу помощь, а тоя сам нешарю в программировании. #include <stdlib.h> #include <time.h&...
Вопрос № 89281: Здраствуйте.... У меня вот какя проблема.... Есть некая программа написаная в Microsoft Visual C++ 6.0 проект MFC AppWizard(exe)... Мне нужно сделать так чтобы написанная мной программа запускалась на другом копьютере....Также создать инсталяционный ...
Вопрос № 89287: Требуется сделать следующее. Перебрать все файлы в дереве папок, начиная с текущей и вглубь иерархии. Для каждого найденного документа Microsoft Word сохранить его полный путь и совершить с ним некие манипуляции. Структура папок заранее неизвестна.<b...
Вопрос № 89309: Здравствуйте. Установил сегодня MS Visual Studio. Есть *.cpp-файл, приведенный в приложении. Его нужно открыть и запустить. Открыть у меня вроде получается. А запустить нет. F5 нажимаю - ничего не происходит. Объясните пошагово как его правильно запу...
Вопрос № 89357: Добрового вам времени суток, возникла необходимость разобраться в Visual C++ MFC, ну и само собой возникли небольшие вопросы... Скажите плиз каков аналог дельфийской функции IntToStr в VC...
Вопрос № 89365: Скажите пожалуйста как в microsoft visual c++ MFC осуществляется сложение строк воедино...например мне надо получить одну строку "я тут", в делфе это выглядело примерно так: c:=a+' '+b как мне добиться такого же результата в VC...

Вопрос № 89.279
как сделать так чтобы считало сумму разных элементов,а не их количество??? И где само условие в проге что надо искать над главной???? надеюсь на вашу помощь, а тоя сам нешарю в программировании.
#include <stdlib.h>
#include <time.h>
#include <fstream>
#include <iostream>
#include <vector>

using namespace std;

bool is_repeated(int number, const vector<vector<int> >& matrix) {

int n = static_cast<int>(matrix.size());
int m = static_cast<int>(matrix[0].size());

int count = 0;

for(int i=0; i<n; i++)
for(int j=i+1; j<m; j++)
if(number == matrix[i][j])
count++;

if(count > 1)
return true;

return false;
}

int main(int argc, char* argv[]) {
ofstream Out;
int n;
int m;

vector<vector<int> > matrix;

srand((unsigned)time(NULL));

n = rand()%10 + 1;
m = rand()%10 + 1;

int i, j;

for(i=0; i<n; i++) {

vector<int> v;

for(j=0; j<m; j++)
v.push_back(rand()%100);

matrix.push_back(v);
}
Out.open("Output.txt");
cout << "Initial matrix (" << n << " , " << m << ") :" << endl;
Out << "Initial matrix (" << n << " , " << m << ") :" << endl;
for(i=0; i<n; i++) {

for(j=0; j<m; j++)
{
cout << matrix[i][j] << " ";
Out << matrix[i][j] << " ";
}
cout << endl;
Out << endl;

}

vector<int> not_repeated;

for(i=0; i<n; i++)
for(j=i+1; j<m; j++)
if(!is_repeated(matrix[i][j], matrix))
not_repeated.push_back(matrix[i][j]);

cout << endl << "None repeated elements at main diagonal is:" << endl;
Out << endl << "None repeated elements at main diagonal is:"
<< endl;
for(i=0; i<static_cast<int>(not_repeated.size()); i++)
{
cout << not_repeated[i] << " ";
Out << not_repeated[i] << " ";
}

cout << endl << "And their count is: " << not_repeated.size() << endl;
Out << endl << "And their count is: " << not_repeated.size() << endl;

return 0;
}
Отправлен: 30.05.2007, 15:41
Вопрос задал: Maratka (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Maratka!
Условие поиска над главной диагональю вот здесь:

for(i=0; i<n; i++)
for(j=i+1; j<m; j++)
if(!is_repeated(matrix[i][j], matrix))
not_repeated.push_back(matrix[i][j]);

вложенный цикл начинает работу с (i, i+1) элемента, где i - номер строки, а это элементы над главной диагональю.

А вот здесь я добавил суммирование

int summ = accumulate(not_repeated.begin(), not_repeated.end(), 0);

Удачи вам в расшаривании программирования...

Приложение:

Ответ отправил: Терсков Сергей (статус: 10-ый класс)
Ответ отправлен: 31.05.2007, 02:45


Вопрос № 89.281
Здраствуйте.... У меня вот какя проблема.... Есть некая программа написаная в Microsoft Visual C++ 6.0 проект MFC AppWizard(exe)... Мне нужно сделать так чтобы написанная мной программа запускалась на другом копьютере....Также создать инсталяционный файл этой программы... Зааранее Благодарен!
Отправлен: 30.05.2007, 16:16
Вопрос задал: Назяров Александр Юрьевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 10)

Отвечает: kool
Здравствуйте, Назяров Александр Юрьевич!
Можно попробовать в Project->Setting->
Вкладка_General->Поле_Microsoft_Foundation_Classes
Выбрать Use_Mfc_in_Static_Library. Для инсталяции
можно использовать любой инсталяционный пакет.
Удачи!
---------
I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 30.05.2007, 20:48
Оценка за ответ: 5
Комментарий оценки:
не помогло.... нету Use_Mfc_in_Static_Library


Вопрос № 89.287
Требуется сделать следующее. Перебрать все файлы в дереве папок, начиная с текущей и вглубь иерархии. Для каждого найденного документа Microsoft Word сохранить его полный путь и совершить с ним некие манипуляции. Структура папок заранее неизвестна.
Как осуществить указанный перебор? Как определить полный путь найденного файла? Какие использовать WinAPI-функции?
Если можно, краткий пример кода или ссылки по этому вопросу.
У меня MS VS2003.
Отправлен: 30.05.2007, 16:52
Вопрос задал: Fole (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Sov
Здравствуйте, Fole!
используйте
FindFirst
FindNext
FindClose
Ответ отправил: Sov (статус: 4-ый класс)
Ответ отправлен: 30.05.2007, 18:47
Оценка за ответ: 5
Комментарий оценки:
ОК! Спасибо за подсказку! Только тут маленькая путаница у Вас получается: если говорить о WInAPI, то там я нашел функции FindFirstFile, FindNextFile и FindClose; в MFC оказались для этой цели функции FindFirst, FindNext и FindLast, а в C Run-Time Library - _findfirst, _findnext и _findclose. Впрочем, Вы первый пришли на помощь, так что Вам "отлично". Спасибо.

Отвечает: kool
Здравствуйте, Fole!
Самое трудное здесь определить, что файл
MSWord. В остальном подой дут ф-ции FindFirstFile, FindNextFile и
ангализ сируктуры типа WIN32_FIND_DATA на предмет найден каталог или
файл. Также помогут ф-ции SetCurrentDirectory и GetFullPathName.
Удачи!
---------
I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 30.05.2007, 20:48
Оценка за ответ: 5
Комментарий оценки:
ОК. Спасибо! Это как раз то, что нужно.
Что касается Document Word, то здесь не должно быть проблем: мне требуется считать с них DocumentSummaryInformation. Так что отберу файлы .doc и буду прогонять их через интерфейс IStorage, - он сам определит, если это не compound files. Спасибо.


Вопрос № 89.309
Здравствуйте. Установил сегодня MS Visual Studio. Есть *.cpp-файл, приведенный в приложении. Его нужно открыть и запустить. Открыть у меня вроде получается. А запустить нет. F5 нажимаю - ничего не происходит. Объясните пошагово как его правильно запустить и открыть. И вообще - это текст программы на C++ или C# языке?

Приложение:

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

Отвечает: Jadd
Здравствуйте, Blackie!
Это С++. Нужно создать новый пустой проект и добавить в него этот файл. Далее Ваш любимый F5. :)

Удачи.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Профессионал)
Адрес: Санкт-Петербург
WWW: http://www.sport-diary.ru
----
Ответ отправлен: 30.05.2007, 18:20
Оценка за ответ: 4

Отвечает: kool
Здравствуйте, Blackie!
Нужно правильно создавать проект.
File->New->Вкладка_Project->Win32_Application.
Ввести имя проекта->Ok->Finish->Ok.
Дальше Project->Add_to_Project->Files->
Выбрать файл с текстом проги->Ok.
И теперб F5. У мну все получилось.
Удачи!

---------
I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 30.05.2007, 20:48
Оценка за ответ: 5

Отвечает: Ilkras
Здравствуйте, Blackie!
ваш файл это вариант "hello world" написанный на с для windows. Чтобы его построить и запустить надо создать новый проект, в визарде пометить, что это win32 аппликация и что проект будет пустым. задем, когда проект уже создан, добавить этот файл в папку sources, сохранить и жать на F5. Должно заработать
Ответ отправил: Ilkras (статус: Студент)
Ответ отправлен: 30.05.2007, 22:42
Оценка за ответ: 5


Вопрос № 89.357
Добрового вам времени суток, возникла необходимость разобраться в Visual C++ MFC, ну и само собой возникли небольшие вопросы...
Скажите плиз каков аналог дельфийской функции IntToStr в VC
Отправлен: 30.05.2007, 23:14
Вопрос задал: Kudzury (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: kool
Здравствуйте, Kudzury!
Аналог такой - либо sprintf, либо itoa();
Удачи!


---------
I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 30.05.2007, 23:23

Отвечает: Jadd
Здравствуйте, Kudzury!
есть еще способ. В MFC есть класс для строк CString. Можно написать:
CString str;
str.Format("%d", intValue);

в строке str будет Ваше целое значение.

Удачи.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Профессионал)
Адрес: Санкт-Петербург
WWW: http://www.sport-diary.ru
----
Ответ отправлен: 30.05.2007, 23:31


Вопрос № 89.365
Скажите пожалуйста как в microsoft visual c++ MFC осуществляется сложение строк воедино...например мне надо получить одну строку "я тут", в делфе это выглядело примерно так:
c:=a+' '+b
как мне добиться такого же результата в VC
Отправлен: 31.05.2007, 00:11
Вопрос задал: Kudzury (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Терсков Сергей
Здравствуйте, Kudzury!
Если конкретно MFC, то лучше всего использовать объекты класса CString, т.е. :

CString a, b , c;

a = "I'm";
b = "here";
c = a + ' ' + b;

то же самое и для объектов класса string в STL. А если вы используете С-строки (char *), то тут уже нужно пользоваться функцией strcat.

char *strcat(char *strDestination, const char *strSource);
Ответ отправил: Терсков Сергей (статус: 10-ый класс)
Ответ отправлен: 31.05.2007, 03:27

Отвечает: Jadd
Здравствуйте, Kudzury!
В MFC есть класс CString.

CString Astr, BStr;

BStr = "Hello ";
AStr = "world;

BStr += AStr;

Примерно так. Удачи.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Профессионал)
Адрес: Санкт-Петербург
WWW: http://www.sport-diary.ru
----
Ответ отправлен: 31.05.2007, 12:06

Отвечает: kool
Здравствуйте, Kudzury!
Для этого создан класс CString.
CString a;
a="Я ";
a+="тут.";
Удачи!

---------
I am.
Ответ отправил: kool (статус: Практикант)
Ответ отправлен: 31.05.2007, 19:11


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

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

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

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

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


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


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

В избранное