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

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


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

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

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

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

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

Выпуск № 1168
от 24.11.2008, 07:05

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

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

Вопрос № 150892: Приветствую вас эксперты!!! Вот такую вот программу нужно написать: для вводимого с клавиатуры числа определить сколько раз подряд оно делится без остатка на цифры от 2 до 9. Помогите с решением, заранее благодарен!!!...


Вопрос № 150914: Здравствуйте, товарищи. Такой вопрос: есть ли в С++ (в классе fstream) <b>(НЕ В С!!!)</b> есть функция для доступа (записи/чтения) к произвольной строке в файле, например *.txt. В общем ситуация такая: мне нужно случайно-сгенерированное чис...
Вопрос № 150956: Здравствуйте уважаемые эксперты! Подскажите, пожалуйста, как организовать таймер в с++ под linux (gentoo). ...
Вопрос № 151019: привет всем! помогите!!! 1.задание. Дано натуральное число n. Определить, кратна ли числу k сумма первой и последней цифры этого числа. 2.задание. Дано натуральное число n . Поменять порядок цифр на обратный и сравнить полученное чис-ло с ...

Вопрос № 150.892
Приветствую вас эксперты!!!
Вот такую вот программу нужно написать: для вводимого с клавиатуры числа определить сколько раз подряд оно делится без остатка на цифры от 2 до 9. Помогите с решением, заранее благодарен!!!
Отправлен: 18.11.2008, 05:53
Вопрос задал: Баженов Павел Андреевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Verena
Здравствуйте, Баженов Павел Андреевич!
Задача решается очень просто. Число, введённое с клавиатуры, необходимо переписать в дополнительную переменную и, не портя исходное значение, делить его с присвоением на нужную цифру в цикле, условием которого будет деление без остатка. Поскольку цифр, на которые надо делить у нас много и идут они по порядку, используем в их качестве счётчик цикла for. Число 0 - особый случай, оно делится на любое другое число без остатка бесконечное число раз. Поэтому проверим введённое число на равенство нулю сразу при вводе. Код может выглядеть, например, так:
Код:
cout << "Vvedite chislo: "; //Ввод
int k, c, b;
cin >> k;
if (k==0) { //Проверка на 0
cout << "0 delitsia na luboe chislo beskonechnoe chislo raz";
return 0;
}
for (int i=2; i<=9; i++) { //Цикл по цифрам
c = 0; //Счётчик числа делений
b = k; //Переменная, которую будем "портить"
while (b%i==0) {b/=i; c++;} //Цикл для деления
cout << i << ": " << c << endl; //Вывод результата
}
_getch();

Этот код будет работать в VS 2005 при условии подключения хидеров <iostream> и <conio.h>.
Удачи!
---------
Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Практикант)
Ответ отправлен: 19.11.2008, 01:31

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


    Вопрос № 150.914
    Здравствуйте, товарищи.

    Такой вопрос: есть ли в С++ (в классе fstream) (НЕ В С!!!) есть функция для доступа (записи/чтения) к произвольной строке в файле, например *.txt.
    В общем ситуация такая: мне нужно случайно-сгенерированное число (например, 218) записать на 218 строку.

    Если нет ничего, напрямую отвечающего этим нуждам, то что тогда можно придумать (чтобы данные в окрестности этой строки не перезаписывались при записи).
    Отправлен: 18.11.2008, 12:01
    Вопрос задал: Косьянов Игорь Олегович (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Dr_Andrew
    Здравствуйте, Косьянов Игорь Олегович!
    Для работы с файлами произвольного доступа в C++ существуют функции позиционирования для записи (seekp) и записи (write), а также позиционирования для чтения (seekg) и чтения (read).
    Например, нижеследующий код
    Код:

    filename.seekp(n);
    filename.write((char*)&t, sizeof(t));

    означает: установить позицию для записи в n-ный байт от начала файла filename и записать значение переменной t с размером sizeof(t) байтов, начиная от позиции n вперёд.
    Однако в Вашем случае удобнее всего манипулировать с вектором строк (vector<string>) с последующим его сохранением в файл. При этом изменённый элемент вектора (строка) при сохранении в файл будет записан в заданной позиции, а соседние данные (э лементы) не изменятся. Подробнее - см. в приложении.

    Приложение:

    Ответ отправил: Dr_Andrew (статус: Студент)
    Ответ отправлен: 18.11.2008, 19:45

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


    Вопрос № 150.956
    Здравствуйте уважаемые эксперты!
    Подскажите, пожалуйста, как организовать таймер в с++ под linux (gentoo).
    Отправлен: 18.11.2008, 16:18
    Вопрос задал: inven (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Хватов Сергей
    Здравствуйте, inven!

    Во всех linux это делается одинаково.

    Если вам надо просто задержать исполнение, то sleep() или usleep()

    Если вам надо что-либо исполнить через некоторое время, то с помощью signal() устанавливаете callback на SIGALARM, а далее - alarm() или setitimer(), только на этом пути граблей будет много.
    Если у вас в основе программы лежит event loop на select(), то у select() используйте последний параметр.

    Все упомянутые мной функции на самом деле системные вызовы, и могут использоваться как из C так из C++.

    Если вы используете какую-либо высокоуровневую библиотеку, например Qt, то в них есть свои способы. Ищите в документации или уточняйте что используете.

    Ответ отправил: Хватов Сергей (статус: Практикант)
    Ответ отправлен: 18.11.2008, 16:46

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

    Оценка за ответ: 5


    Вопрос № 151.019
    привет всем! помогите!!!
    1.задание.
    Дано натуральное число n. Определить, кратна ли числу k сумма первой и последней цифры этого числа.
    2.задание.
    Дано натуральное число n. Поменять порядок цифр на обратный и сравнить полученное чис-ло с исходным.

    Приложение:

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

    Отвечает: Mihail Yarlykov
    Здравствуйте, Tigr05!
    Обе программы в приложении... :)

    Приложение:

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

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

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


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

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

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

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

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

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


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

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2008, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.12 от 19.11.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное