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

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


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

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

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

Hubbitus
Статус: 6-й класс
Рейтинг: 94
∙ повысить рейтинг >>
Micren
Статус: Практикант
Рейтинг: 84
∙ повысить рейтинг >>
Лысков Игорь Витальевич
Статус: Профессионал
Рейтинг: 59
∙ повысить рейтинг >>

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

Выпуск № 1270
от 29.03.2009, 23:35

Администратор:Dr_Andrew
В рассылке:Подписчиков: 501, Экспертов: 45
В номере:Вопросов: 4, Ответов: 6

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

Вопрос № 163110: Доброго времени суток!Подскажите пожалуйста вот есть программа с таким условием(исходник в приложении) С помощью команды READ() затребовать больше байт чем есть в наличии в канале связи.Написана вроде правильно но при компиляции выдаёт такой резуль...


Вопрос № 163118: Здравствуйте Помогите пожалуйста написать программку на языке С++. В строке, среди знаков которой могут встречаться круглые скобки, проверить равенство числа открывающих скобок числу закрывающих . Заранее спасибо !...
Вопрос № 163185: Добрый день... или ночь, как повезёт..... Подскажите пожалуйста, если знает кто... Может и глупый вопрос, но охото разобраться, а толкового ответа в интернете найт не могу пока. А вопрос такой: можно ли, и, если можно, то как запихнуть символы псевдо...
Вопрос № 163190: Здравствуйте, уважаемые эксперты! !! Если Вас не затруднит, помогите, пожалуйста, в написании программ. Первая задача: Даны: действительное число а, натуральное число n. Вычислить: s= 1/a +1/a^2 +1/a^4 +...+1/a^(2n-2). Вторая задача: Найти сумму...

Вопрос № 163.110
Доброго времени суток!Подскажите пожалуйста вот есть программа с таким условием(исходник в приложении) С помощью команды READ() затребовать больше байт чем есть в наличии в канале связи.Написана вроде правильно но при компиляции выдаёт такой результат "Creat FIFO not success!",

а по идее вывод на экран должен быть такой :

Create FIFO succes!!!
Open FIFO succes!!!
Error writing!!!

Приложение:

Отправлен: 24.03.2009, 04:48
Вопрос задал: Roma2010 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Evgenijm
Здравствуйте, Roma2010!

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

http://linux.die.net/man/3/mkfifo
Ответ отправил: Evgenijm (статус: 3-й класс)
Ответ отправлен: 24.03.2009, 22:15

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


    Вопрос № 163.118
    Здравствуйте Помогите пожалуйста написать программку на языке С++. В строке, среди знаков которой могут встречаться круглые скобки, проверить равенство числа открывающих скобок числу закрывающих . Заранее спасибо !
    Отправлен: 24.03.2009, 09:51
    Вопрос задал: Юлия Ларшина
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Micren
    Здравствуйте, Юлия Ларшина!
    Программа:
    Код:

    #include <locale>
    #include <iostream>

    using namespace std;

    int main()
    {
    locale::global(locale("russian_russia.866"));
    // Вводим строку
    wstring str;
    wcout<<L"Введите строку:"<<endl;
    getline(wcin,str);
    // Счетчик
    int count=0;
    // Перебираем символы в строке
    for(wstring::const_iterator it=str.begin();it!=str.end();++it)
    {
    switch(*it)
    {
    case L'(':
    ++count; // Открывающаяся увеличим счетчик
    break;
    case L')':
    --count; // Закрывающаяся уменьшим
    break;
    }
    }
    // Выводим результат
    wcout<<L"Количество открывающихся скобок ";
    if(count)
    {
    wcout<<L"на "<<abs(count)<<(count>0?L" больше":L" меньше");
    wcout<<L" чем закрывающихся";
    }
    else wcout<<L"равно количеству закрывающихся";
    wcout<<endl;
    system("PAUSE");
    return 0;
    }

    Пример работы:
    Код:

    Введите строку:
    () (())
    Количество открывающихся скобок равно количеству закрывающихся

    Введите строку:
    ((( )
    Количество открывающихся скобок на 2 больше чем закрывающихся

    Введите строку:
    ()))
    Количество открывающихся скобок на 2 меньше чем закрывающихся
    Ответ отправил: Micren (статус: Практикант)
    Ответ отправлен: 24.03.2009, 10:50

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


    Вопрос № 163.185
    Добрый день... или ночь, как повезёт..... Подскажите пожалуйста, если знает кто... Может и глупый вопрос, но охото разобраться, а толкового ответа в интернете найт не могу пока. А вопрос такой: можно ли, и, если можно, то как запихнуть символы псевдографики в консольное приложение, написанное на c ++ (CodeGear C++Builder 2007). Проще говоря, хочу рамочку нарисовать псевдографикой, но что то не получается... помогите, если кто может. Спасибо заранее.
    Отправлен: 24.03.2009, 21:06
    Вопрос задал: Childeroland (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 3)

    Отвечает: Micren
    Здравствуйте, Childeroland!
    Символы это всего лишь числа в памяти компьютера и с ними можно соответственно обращаться.
    Код:

    #include <locale>
    #include <iostream>

    using namespace std;

    int main()
    {
    locale::global(locale("russian_russia.866"));
    wchar_t pseudoArray[]={0x2500,0x2502,0x250c,0x2510,0x2514,0x2518,0x251c,0x2524,
    0x252c,0x2534,0x253c,0x2550,0x2551,0x2552,0x2553,0x2554,0x2555,0x2556,
    0x2557,0x2558,0x2559,0x255a,0x255b,0x255c,0x255d,0x255e,0x255f,0x2560,
    0x2561,0x2562,0x2563,0x2564,0x2565,0x2566,0x2567,0x2568,0x2569,0x256a,
    0x256b,0x256c};
    const int pseudoArraySize=sizeof(pseudoArray)/sizeof(pseudoArray[0]);
    for(unsigned int i=0;i<pseudoArraySize;++i)
    wcout< ;<pseudoArray[i];
    wcout<<endl;
    system("PAUSE");
    return 0;
    }

    Результат:
    Код:

    ─│┌┐└┘├┤┬┴┼═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬
    Ответ отправил: Micren (статус: Практикант)
    Ответ отправлен: 24.03.2009, 21:29

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

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


    Вопрос № 163.190
    Здравствуйте, уважаемые эксперты!!! Если Вас не затруднит, помогите, пожалуйста, в написании программ.
    Первая задача: Даны: действительное число а, натуральное число n. Вычислить: s= 1/a +1/a^2 +1/a^4 +...+1/a^(2n-2).
    Вторая задача: Найти сумму ряда с точностью E=10^-3, общий член которого: a= (3^n*n!) / (2n)!
    В первой задаче я не знаю, как записать функ. s; а во второй - последовательность a. Будьте добры, пожалуйста, помогите... Заранее благодарна!!!
    Отправлен: 24.03.2009, 22:03
    Вопрос задала: Aleka2727 (статус: Посетитель)
    Всего ответов: 3
    Мини-форум вопроса >>> (сообщений: 1)

    Отвечает: Evgenijm
    Здравствуйте, Aleka2727!

    В первом случае надо просто в цикле складывать 1/a^(2n-2), пока n не станет равно аргументу. Только самый первый член под эту формулу не попадет - его надо отдельно прибавить:

    double s(double a, int N)
    {
    double Sum=1/a;
    for(int i=2; i<=N; i++)
    Sum+=1/pow(a, 2n-2);
    return Sum;
    }

    Во второй задаче тоже нужно вычислить сумму ряда. Т.е. вместо n подставляем 1,2,3 и тд, а полученные элементы суммируем.
    1) Ряд очень быстро падает, так что как только мы встретим элемент меньше 0.001, можно останавливаться: остальные будут настолько малы, что даже в сумме не дадут столько.
    2) Факториалы и степень - доволно затратные функции, и при больших величинах очень неточные. Можно упростить расчеты, если заметить разницу с предыдущим: a(n) = a(n-1)*3*n / ((2*n)*(2*(n-1)))
    Предлагаю хотя бы вторую функцию написать самостоятельно. Она будет похожа на первую. Только аргумент 1: int N, вместо цикла for здесь уже будет использоваться while, хранить нам нужно сумму и предыдущий член.
    Ответ отправил: Evgenijm (статус: 3-й класс)
    Ответ отправлен: 24.03.2009, 22:43

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


    Отвечает: Micren
    Здравствуйте, Aleka2727!
    Программа:
    Код:

    #include <locale>
    #include <iostream>

    using namespace std;

    int main()
    {
    locale::global(locale("russian_russia.866"));
    const double eps=1e-3; // Погрешность
    double Un=1; // Первый член ряда
    double sum=0; // Сумма
    unsigned int n=0; // Количество членов
    do
    {
    double Unminus1=Un; // Предыдущий член ряда
    sum+=Un=Unminus1*3/2/(2*++n-1); // Считаем следующий и суммируем
    } while (Un>=eps); // В не знакопеременных рядах погрешность не более последнего взятого члена
    // Выводим результат
    wcout<<L"Погрешность:"<<eps<<endl
    <<L"Просуммировано членов:"<&l t;n<<endl
    <<L"Сумма членов:"<<sum<<endl
    <<L"Последний член ряда:"<<Un<<endl;
    system("PAUSE");
    return 0;
    }

    Результат работы:
    Код:

    Погрешность:0.001
    Просуммировано членов:7
    Сумма членов:2.53247
    Последний член ряда:0.000126436

    Ответ отправил: Micren (статус: Практикант)
    Ответ отправлен: 25.03.2009, 02:07

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


    Отвечает: Бизин Михаил Анатольевич
    Здравствуйте, Aleka2727!
    По первой задаче поправка к ответу Evgenijm:

    double s(double a, int n)
    {
    double d=1;
    double a2=a*a;
    double Sum=1/a;
    for(int i=2; i<=n; i++)
    {
    d=d/a2; //Каждый следующий член ряда в a^2 меньше предыдущего
    Sum+=d;
    }
    return Sum;
    }
    Ответ отправил: Бизин Михаил Анатольевич (статус: 2-й класс)
    Ответ отправлен: 25.03.2009, 07:28

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


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

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

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

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

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

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


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

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

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

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

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

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


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

    ∙ Версия системы: 5.13 от 01.12.2008

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

    В избранное