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

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


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

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

Чемпионы рейтинга экспертов в этой рассылке

Verena
Статус: Практикант
Рейтинг: 74
∙ повысить рейтинг >>
Лысков Игорь Витальевич
Статус: Специалист
Рейтинг: 55
∙ повысить рейтинг >>
Lang21
Статус: Студент
Рейтинг: 34
∙ повысить рейтинг >>

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

Выпуск № 1169
от 25.11.2008, 07:35

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

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 151050: Здраствуйте уважаемые эксперты!!!Прошу вас помогите мне решить задачку по программированию а то совсем уже сил моих нету....( Вот такая она: из данного числа вычислить сумму его цифр.Из результата вновь вычислить сумму его цифр и т.д. сколько таки...


Вопрос № 151051: Дана последовательность натуральных чисел аь аъ..., ап. Создать массив из четных чисел этой последовательности. Если та¬ких чисел нет, то вывести сообщение об этом факте. Решить задачу с применением действий над элементами массива. Ре...
Вопрос № 151081: Здравствуйте уважаемые эксперты!Помогите решить задачку, с использование только и только С++Builder v.6) Дана действительная квадратная матрица порядка N. Найти наибольшее из значений элементом расположенных в заштрихованной части матрицы.(штр...
Вопрос № 151082: Здравствуйте уважае мые эксперты!Помогите решить задачку, с использование только и только С++Builder v.6) Дана дата и день недели дня рождения. Определить, на какой день недели придется N-летие. В заранее огромное спасибо! ...
Вопрос № 151117: Здравствуйте, уважаемые эксперты. У меня есть элемент КомбоБокс. Также у меня в этой же папке есть еще скажем папок десять. Как добавить названия этих папок в КомбоБокс? Если что неясно, то спрашивайте....
Вопрос № 151131: Здраствуйте, уважаемые эксперты. Прошу еще раз. Помогите сделать задачу на С: Найти количество круглых скобок(открывающих и закрывающих) в файле символов. Файл создается в ОС,и он однострочный.Открывается файл пользователем(прописывая полный путь ...

Вопрос № 151.050
Здраствуйте уважаемые эксперты!!!Прошу вас помогите мне решить задачку по программированию а то совсем уже сил моих нету....(
Вот такая она: из данного числа вычислить сумму его цифр.Из результата вновь вычислить сумму его цифр и т.д. сколько таких действий надо произвести, чтобы получился нуль.....
А данные никакие даны не были(
Надеюсь на вас и жду ответов...
Спасибо заранее
Отправлен: 19.11.2008, 11:01
Вопрос задала: Нуруллина Светлана Азатовна (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Mihail Yarlykov
Здравствуйте, Нуруллина Светлана Азатовна!
По мойму вы немного неверно записываете задание, и вместо "вычислить сумму его цифр"
нужно "вычесть сумму его цифр", иначе нуль никогда не получится про исходном числе > 0
Программа с коментариями в приложении..

Приложение:

---------
Нет ничего невозможного!

Ответ отправил: Mihail Yarlykov (статус: 5-й класс)
Ответ отправлен: 19.11.2008, 12:15

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 235971 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Отвечает: Лысков Игорь Витальевич
    Здравствуйте, Нуруллина Светлана Азатовна!
    Решение в приложении.
    Используется рекурсивный вызов функции fun

    Приложение:

    ---------
    Удачи!

    Ответ отправил: Лысков Игорь Витальевич (статус: Специалист)
    Ответ отправлен: 19.11.2008, 12:48

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 235977 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 151.051
    Дана последовательность натуральных чисел аь аъ..., ап. Создать массив из четных чисел этой последовательности. Если та¬ких чисел нет, то вывести сообщение об этом факте.



    Решить задачу с применением действий над элементами массива. Решить данную задачу как можно проще.!

    Приложение:

    Отправлен: 19.11.2008, 11:12
    Вопрос задал: Попов Александр Олегович (статус: Посетитель)
    Всего ответов: 3
    Мини-форум вопроса >>> (сообщений: 2)

    Отвечает: realbustard
    Здравствуйте, Попов Александр Олегович!
    Код в приложении. Будут вопросы, задавайте в минифоруме.

    Приложение:

    ---------
    Учись так, как-будто собираешься жить вечно; живи так, как-будто завтра умрешь (Отто фон Бисмарк)

    Ответ отправил: realbustard (статус: Студент)
    Ответ отправлен: 19.11.2008, 12:06

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 235969 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Отвечает: Kamerad
    Здравствуйте, Попов Александр Олегович!

    Предположим что последовательность уже есть

    #include<iostream>

    void main ()

    {
    int mas[20]; // исходная последовательность
    int chet[20]; // массив с четными числами
    int count=0;

    for(int i=0;i<20;i++)

    {
    if(mas[i][j]>0)

    {
    chet[i]=mas[i];
    count++; // считаем четные элементы
    }

    }

    if(count==0)

    {
    cout<<" Chetnych elementov net! ";
    }

    }
    Ответ отправил: Kamerad (статус: 3-й класс)
    Ответ отправлен: 19.11.2008, 12:39

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 235975 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Отвечает: Терсков Сергей
    Здравствуйте, Попов Александр Олегович!
    Задача очень просто решается с использованием класса vector из STL. Во время заполнения начального массива сразу проверяем его элементы на четность. Если элемент четный, заносим его в массив с четными элементами. Реализацию смотрите в коде
    Код:
    #include
    <time.h>
    #include <cstdlib>
    #include <iostream>
    #include <iomanip>
    #include <vector>

    using namespace std;

    int main(int argc, char* argv[]) {

    int n = 10;

    vector<int> v(n);
    vector<int> v_even;

    srand((unsigned) time(NULL));

    int rand_limit = 100;

    cout << "Initial array:" << endl;

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

    v[i] = rand()%ra nd_limit;

    if(v[i]%2 == 0)
    v_even.push_back(v[i]);

    cout << setw(4) << v[i];
    }

    cout << endl << "Array with even elements:" << endl;
    for(int i=0; i<v_even.size(); i++)
    cout << setw(4) << v_even[i];


    return 0;
    }
    Ответ отправил: Терсков Сергей (статус: Специалист)
    Ответ отправлен: 20.11.2008, 04:05

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236058 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 151.081
    Здравствуйте уважаемые эксперты!Помогите решить задачку, с использование только и только С++Builder v.6)

    Дана действительная квадратная матрица порядка N. Найти наибольшее из значений элементом расположенных в заштрихованной части матрицы.(штриховка над главной диаганалью, идущей с верхнего левого угла в нижний правый)
    _______
    |\\\\\|
    | \\\|
    |_____\|

    В заранее огромное спасибо!

    Отправлен: 19.11.2008, 15:16
    Вопрос задал: Масленников Александр (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Терсков Сергей
    Здравствуйте, Масленников Александр!
    Вся задача решается в цикле:
    Код:
    int max = A[0][1];

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

    for(int j=i+1; j<n; j++) {

    if(A[i][j] > max)
    max = A[i][j];
    }
    }

    В этом диапазоне сравниваем все элементы с максимальным. Если текущий элемент больше чем максимальный, то принимаем его за максимальный. Реализация всей программы коде:
    Код:
    #include <time.h>
    #include <cstdlib>
    #include <iostream>
    #include <iomanip>

    using namesp ace std;

    int main(int argc, char* argv[]) {

    int n = 10;

    int **A = new int*[n];

    int random_limit = 1000;
    srand((unsigned) time(NULL));

    cout << "Matrix:" << endl;

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

    A[i] = new int[n];

    for(int j=0; j<n; j++) {

    A[i][j] = rand()%random_limit;
    cout << setw(5) << A[i][j];
    }

    cout << endl;
    }

    int max = A[0][1];

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

    for(int j=i+1; j<n; j++) {

    if(A[i][j] > max)
    max = A[i][j];
    }
    }

    cout << endl << "Max element at main diagonal is: " << max << endl;

    for(int i=0; i<n; i++)
    delete[] A[i];

    delete[] A;

    return 0;
    }
    Ответ отправил: Терсков Сергей (статус: Специалист)
    Ответ отправлен: 20.11.2008, 04:40

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236060 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5
    Комментарий оценки:
    Атлично!Огромное спасибо!


    Вопрос № 151.082
    Здравствуйте уважаемые эксперты!Помогите решить задачку, с использование только и только С++Builder v.6)

    Дана дата и день недели дня рождения. Определить, на какой день недели придется N-летие.

    В заранее огромное спасибо!

    Отправлен: 19.11.2008, 15:16
    Вопрос задал: Масленников Александр (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Терсков Сергей
    Здравствуйте, Масленников Александр!
    День недели дня рождения для этой задачи не нужен. Существует формула нахождения дня недели для любой даты. Поэтому для решения задачи нужно прибавить N-лет к году рождения и вычислить день недели для получившейся даты. Реализация в коде:
    Код:
    #include <iostream>

    using namespace std;

    struct date {

    int year;
    int month;
    int day;
    };

    int main(int argc, char* argv[]) {

    const char* days[7] = {"monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"};

    date d;

    cout < ;< "Input year of birthday: ";
    cin >> d.year;

    cout << "Input month of birthday: ";
    cin >> d.month;

    cout << "Input day of birthday: ";
    cin >> d.day;

    int N;
    cout << "Input N-birthday: ";
    cin >> N;

    d.year += N;

    int a = (14 - d.month)/12;
    int y = d.year - a;
    int m = d.month + 12*a - 2;
    int week = ((d.day + y + y/4 - y/100 + y/400 + (31*m)/12) % 7) - 1;

    cout << endl << d.day << "." << d.month << "." << d.year << " is " << days[week] << endl;

    return 0;
    }
    Ответ отправил: Терсков Сергей (статус: Специалист)
    Ответ отправлен: 20.11.2008, 04:28

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236059 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5
    Комментарий оценки:
    Спасибочки!


    Вопрос № 151.117
    Здравствуйте, уважаемые эксперты.
    У меня есть элемент КомбоБокс. Также у меня в этой же папке есть еще скажем папок десять. Как добавить названия этих папок в КомбоБокс? Если что неясно, то спрашивайте.
    Отправлен: 19.11.2008, 21:06
    Вопрос задал: Егоров Ярослав Владимирович (статус: 3-й класс)
    Всего ответов: 2
    Мини-форум вопроса >>> (сообщений: 2)

    Отвечает: Штыхов Антон Евгеньевич
    Здравствуйте, Егоров Ярослав Владимирович!

    Добавить как На стадии построения интерфейса или во время выполнения проги!???

    если первое то щелкаемпо комбобоксу правой кнопкой мыши слевой стороны на комбобоксе появляется маленькая черная стрелка щелкаем по неё в появившемся меню выбераем Edit Items и в появившемся окне построчно вводим необходимые пункты!

    если второе то у пишем comboBox1.Items.Add("text");

    Для работы с папками в .NET есть класс Dictianary! Удачи!
    Ответ отправил: Штыхов Антон Евгеньевич (статус: 1-й класс)
    Ответ отправлен: 20.11.2008, 08:44

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236070 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 4
    Комментарий оценки:
    Не... все нормально... Только вот я работаю без .NET ... И там я еще хуже разбираюсь... По этой причине это немного не то:) Но балла 4 вы, я думаю, заслужили.


    Отвечает: Verena
    Здравствуйте, Егоров Ярослав Владимирович!
    Для получения названий папок в режиме выполнения можно воспользоваться win api функциями FindFirstFile/FindNextFile.
    Функция FindFirstFile создаёт описатель "поиск" (возвращаемое значение) и начинает поиск файлов и папок в заданной директории, соответствующих определённой маске. Продолжать поиск следует через функцию FindNextFile, которая работает с уже существующим описателем и возвращает bool-значение, показывающее, найдено ли ещё что-то в директории. После окончания поиска его следует закрыть функцией FindClose.
    © Цитата:
    HANDLE FindFirstFile(
    LPCTSTR lpFileName, //Директория для поиска и маска, по которо й следует отбирать найденное
    LPWIN32_FIND_DATA lpFindFileData //Информация о найденном файле/папке
    );
    BOOL FindNextFile(
    HANDLE hFindFile, //Описатель, созданный FindFirstFile
    LPWIN32_FIND_DATA lpFindFileData //Информация о найденном файле/папке
    );
    BOOL FindClose(
    HANDLE hFindFile //Описатель, созданный FindFirstFile
    );

    lpFileName - здесь передаётся существующий путь и имя файла (или маска), т.е. после указания пути можно задать фильтр поиска при помощи символов '*' (любое количество любых символов) и '?' (один любой символ). Например, для поиска всех файлов можно задать маску *.* - любое имя файла с любым расширением (в данном случае фильтр также пройдут . и .. - указатели на родительскую и корневую директории).
    lpFindFileData - указатель на структуру WIN32_FIND_DATA следующего вида:
    ©& nbsp;Цитата:
    typedef struct _WIN32_FIND_DATA {
    DWORD dwFileAttributes; //Аттрибуты файла
    FILETIME ftCreationTime; //Время создания
    FILETIME ftLastAccessTime; //Время последнего открытия
    FILETIME ftLastWriteTime; //Время последней записи
    DWORD nFileSizeHigh;
    DWORD nFileSizeLow;
    DWORD dwReserved0;
    DWORD dwReserved1;
    TCHAR cFileName[MAX_PATH]; //Имя файла (только имя, без пути)
    TCHAR cAlternateFileName[14]; //Альтернативное имя файла
    } WIN32_FIND_DATA, *PWIN32_FIND_DATA;

    Это возвращаемое значение, из этой структуры мы можем получить всю необходимую информацию о найденном файле или папке. К тому же, по первому полю этой структуры (dwFileAttributes) мы можем узнать, к примеру, файл или папку мы нашли.
    Более подробную информ ацию можно получить в MSDN (FindFirstFile, FindNextFile, FindClose).
    Для Вашего случая можно поступить, например, так:
    Код:
    WIN32_FIND_DATA fd; //структура
    HANDLE hFindFile= FindFirstFile ("C:\1\*.*", &fd); //ищем все файлы в папке C:\1
    BOOL bContinue=(hFindFile!= INVALID_HANDLE_VALUE); //если что-то найдено
    while (bContinue)
    {
    if (fd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY) //Если это директория
    {
    //Здесь добавляете fd.cFileName в свой c ombobox, не знаю, как это делается в Builder, наверно, как в предыдушем ответе
    }
    bContinue= FindNextFile(hFindFile, &fd); //ищем следующий
    }//while (bContinue)
    FindClose(hFindFile); //закрываем поиск

    Чтобы работать с api-функциями надо подключить заговок windows.h.
    Удачи!
    ---------
    Эта история - не для истории, понимаешь?
    Ответ отправила: Verena (статус: Практикант)
    Ответ отправлен: 20.11.2008, 22:30

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 236157 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5
    Комментарий оценки:
    Громадное спасибо. С вероятностью 99% это именно то, что я искал.


    Вопрос № 151.131
    Здраствуйте, уважаемые эксперты. Прошу еще раз. Помогите сделать задачу на С:
    Найти количество круглых скобок(открывающих и закрывающих) в файле символов. Файл создается в ОС,и он однострочный.Открывается файл пользователем(прописывая полный путь к файлу).Помогите,срочно нужно.(Если можно,то решите пожалуйста это, только без файла и рекурссией,строка вводится в программе).
    Ниже приведенна похожая задача(Ищет количество каких-то элементов в файле целых чисел, может поможет). Заранее спасибо.

    Приложение:

    Отправлен: 19.11.2008, 22:53
    Вопрос задал: Бондаренко Кирилл Андреевич (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 1)

    Отвечает: Терсков Сергей
    Здравствуйте, Бондаренко Кирилл Андреевич!
    Для этого будем рекурсивно перемещать указатель по строке. Если будут встречаться символы '(' или ')', то будем увеличивать значение счетчика. Когда функция дойдет до конца строки, она вернет значение счетчика. Примерную реализацию смотрите в коде
    Код:
    #include <stdio.h>

    int func(char *ptr, int n) {

    if(*ptr == '


    В избранное