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

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


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

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

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

Verena
Статус: Практикант
Рейтинг: 105
∙ повысить рейтинг >>
Лысков Игорь Витальевич
Статус: Специалист
Рейтинг: 89
∙ повысить рейтинг >>
Dr_Andrew
Статус: Практикант
Рейтинг: 40
∙ повысить рейтинг >>

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

Выпуск № 1179
от 06.12.2008, 00:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 441, Экспертов: 47
В номере:Вопросов: 7, Ответов: 8

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

Вопрос № 152319: Подскажите пожалуйста, как вывести заданный двумерный массив на экран в (неважно-list box, edit box). Любой способ, который проще. Например чтобы <b>a[2][2]={{2,2};{3,3}}</b> вывелся в виде <b>2 2 3 3</b>...


Вопрос № 152339: Здраствуйте Эксперты памагите мне пажалуйста написать рограмму на С++ Задание:Найти площадь равнобочной трапеции с основаниями а и b и углом a при большом основании а. ...
Вопрос № 152370: Здраствуйте Эксперты памагите мне пажалуйста написать программу на С++ Задание:Даны два действительных числа. Вывести первое число, если оно больше второго, и оба числа, если это не так....
Вопрос № 152389: помогите пожалуйста решить следующую задачу на языке программирования с++ используя циклический оператор:8. Известна температура больного за 20 дней пребывания в бо льнице. Можно ли его выписывать, если для этого требуется, чтобы не менее половины все...
Вопрос № 152432: Здравствуйте. Как правильно написать эту программу на C++? Я в замешательстве. Дано вещественное число x и вещественное число T>0. Вычис-лить с точностью е значение следующей функции e^x=1 + x/1! + x^2/2! + … + x^n/n! + … Вычисления п...
Вопрос № 152434: Здравствуйте. Как правильно написать эту программу на C++? Пусть даны матрица a порядка n и n-мерный вектор b. Напишите функцию, заменяющую заданный столбец матрицы a на вектор b....
Вопрос № 152435: Здравствуйте, помогите, пожалуйста, решить задачу. Даны вещественные массивы c[3][4], d[3][4]. Определить количество нулевых элементов, количество элементов в интервале от 7 до 10. Есть решение, но его надо подправить для данного случая. ...

Вопрос № 152.319
Подскажите пожалуйста, как вывести заданный двумерный массив на экран в (неважно-list box, edit box). Любой способ, который проще.
Например чтобы a[2][2]={{2,2};{3,3}} вывелся в виде
2 2
3 3
Отправлен: 30.11.2008, 01:17
Вопрос задал: Craule (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Dr_Andrew
Здравствуйте, Craule!
К сожалению, Вы не указали ни используемую ОС, ни среду разработки. Приведу решение для Borland C++ Builder.
Поместим на форму компонент класса TStringGrid (вкладка Additional) и кнопку класса TButton (вкладка Standard). Дадим компонентам следующие имена: форме - MainForm, строковой таблице - ArrayGrid, кнопке - ShowButton.
Предположим, что двумерный массив при нажатии на кнопку заполняется случайными числами от 1 до 10. В обработчике события OnActivate формы запишем:

Код:

//---------------------------------------------------------------------------
void __fastcall TMainForm::FormActivate(TObject *Sender)
{
srand(time(NULL));
}
//-------------------------------------------------------------------- -------


В обработчике события нажатия на кнопку а) создадим двумерный массив; б) заполним его случайными числами; в) преобразуем их в строки и г) присвоим эти строки ячейкам таблицы:

Код:

//---------------------------------------------------------------------------
void __fastcall TMainForm::ShowButtonClick(TObject *Sender)
{
int iArray[2][2]; // Массив
for(int i = 0; i <= 2; i++)
{
for(int j = 0; j <=2; j++)
{
iArray[i][j] = rand() % 10 + 1; // заполняется случайными целочисленными значениями,
ArrayGrid->Cells[i][j] = IntToStr(iArray[i][j]); // которые отображаются в соответствующей ячейке таблицы
}
}
}
//-------- -------------------------------------------------------------------
Ответ отправил: Dr_Andrew (статус: Практикант)
Ответ отправлен: 30.11.2008, 15:48

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


    Вопрос № 152.339
    Здраствуйте Эксперты памагите мне пажалуйста написать рограмму на С++
    Задание:Найти площадь равнобочной трапеции с основаниями а и b и углом a при большом
    основании а.
    Отправлен: 30.11.2008, 10:58
    Вопрос задал: Брага Д.В. (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: realbustard
    Здравствуйте, Брага Д.В.!
    Код в приложении. Тока нет защиты от дурака, т.е. надо вводить тока то, что запрашивает программа.
    Угол вводится в градусах, при расчете площади он переводится в радианы (A*pi)/180.

    //Вывод формулы
    //где b1 - отрезок большего основания, который находится между опущеной высотой и углом А

    S=h*(a+b)/2; - ф-ла расчета площади
    b1=(b-a)/2;
    h=b1*tan(A);
    h=(b-a)*tan(a)/2;
    S=((b^2-a^2)*tan(a))/4;

    Будут вопросы, задавайте в минифорум.
    Удачи!!!

    Приложение:

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

    Ответ отправил: realbustard (статус: Студент)
    Ответ отправлен: 30.11.2008, 14:45

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


    Вопрос № 152.370
    Здраствуйте Эксперты памагите мне пажалуйста написать программу на С++
    Задание:Даны два действительных числа. Вывести первое число, если оно больше второго,
    и оба числа, если это не так.
    Отправлен: 30.11.2008, 14:33
    Вопрос задал: Брага Д.В. (статус: Посетитель)
    Всего ответов: 2
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: realbustard
    Здравствуйте, Брага Д.В.!
    Если будут вопросы или замечания,пишите в минифорум.

    Приложение:

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

    Ответ отправил: realbustard (статус: Студент)
    Ответ отправлен: 30.11.2008, 14:52

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


    Отвечает: Шевченко Александр Владимирович
    #include <iostream>
    using namespace std;
    int main()
    {
    float a = 1.0f;
    float b = 2.0f;
    if(a > b)
    cout << a;
    else
    cout << a << " " << b;
    }
    Очень сложный вопрос. Почему бесплатный?
    Ответ отправил: Шевченко Александр Владимирович (статус: 2-й класс)
    Ответ отправлен: 30.11.2008, 14:59

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


    Вопрос № 152.389
    помогите пожалуйста решить следующую задачу на языке программирования с++ используя циклический оператор:8. Известна температура больного за 20 дней пребывания в больнице. Можно ли его выписывать, если для этого требуется, чтобы не менее половины всех дней, когда у него была температура ниже 37°, приходилось на вторую половину его пребывания в больнице?
    Отправлен: 30.11.2008, 17:25
    Вопрос задал: Хамбалеев Вадим Вильевич (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Verena
    Здравствуйте, Хамбалеев Вадим Вильевич!
    Температура будет представлена в виде массива из 20-ти (n=20) элементов. Нам надо посчитать общее число дней (kt0), когда температура (элемент массива) меньше 37 (t0=37), и число таких дней (_kt0), приходившихся на вторую половину срока, т.е. число элементов массива меньших 37, индекс которых >=n/2. Подсчитав в цикле эти два показателя следующим образом:
    Код:
    int kt0 = 0, _kt0 = 0; //Число дней с температурой меньше 37 и число дней с температурой меньше 37 во второй половине срока
    for (int i=0; i<n; i++)
    if (t[i]<t0) { //Если температура ниже 37
    kt0++; //Наращиваем счётчик
    if (i>=n/2) _kt0++; //Если это вторая половина массива - наращиваем второй счётчик
    }

    мы мо жем проверить условие задачи. В данном случае больного можно выписывать, если второй показатель больше или равен половине первого, т.е. _kt0>=kt0/2. В противном случае больного нельзя выписывать.
    Реализация в приложении. Скомпилировано в VS 2005.
    Удачи!

    Приложение:

    ---------
    Эта история - не для истории, понимаешь?

    Ответ отправила: Verena (статус: Практикант)
    Ответ отправлен: 03.12.2008, 22:36

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


    Вопрос № 152.432
    Здравствуйте. Как правильно написать эту программу на C++? Я в замешательстве.

    Дано вещественное число x и вещественное число T>0. Вычис-лить с точностью е значение следующей функции
    e^x=1 + x/1! + x^2/2! + … + x^n/n! + …
    Вычисления прекратить, когда очередной член суммы x^n/n! станет по модулю меньше T.
    Отправлен: 30.11.2008, 21:30
    Вопрос задал: Майоров Виктор Вячеславович (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Verena
    Здравствуйте, Майоров Виктор Вячеславович!
    Это стандартная задача на вычисление ряда. Числитель и знаменатель наращиваются постепенно, т.е. не нужно считать каждый раз в цикле х в очередной степени и, тем более, факториал очередного числа. Алгоритм выглядит так:
    Код:
    double z = 1, p =
    x, s = 1, i = 2; //Знаменатель, очередной член, общая сумма, номер итерации
    while (fabs (p)>=t) { //Пока выполняется условие по точности
    s+=p; //Наращиваем сумму очередным членом
    x*=x; //Получаем новую степень х
    z*=(i++); //Получаем новый факториал (домножаем уже существующий на номер итерации)
    p = x/z; //Вычисляем новый член
    }

    Так х будет повышать свою степень с каждой итерацией согласно общей формуле ряда, а факториал каждый раз будет домножаться как раз на следующее число, образуя уже его факториал. Когда очередной член ряда станет меньше заданной точности, вычисления прервутся.
    Полный код, скомпилированный в VS 2005, в приложении.
    Удачи!

    Приложение:

    ---------
    Эта история - не для истории, понимаешь?

    Ответ отправила: Verena (статус: Практикант)
    Ответ отправлен: 03.12.2008, 23:07

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


    Вопрос № 152.434
    Здравствуйте. Как правильно написать эту программу на C++?
    Пусть даны матрица a порядка n и n-мерный вектор b. Напишите функцию, заменяющую заданный столбец матрицы a на вектор b.
    Отправлен: 30.11.2008, 21:33
    Вопрос задал: Майоров Виктор Вячеславович (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Verena
    Здравствуйте, Майоров Виктор Вячеславович!
    Для пущей правильности будем использовать динамические массивы. Сама функция работает так: в неё передаётся матрица a, вектор b, размерность и номер столбца (нумерация ведётся с 0), номер столбца проверяется на допустимость, в цикле по строкам матрицы присваиваем каждому элементу столбца значение соответствующего элемента вектора. Двумерный динамический массив объявляется как указатель на указатель, например, так объявляется двумерная целочисленная матрица: int **a. Память под неё надо выделять так:
    a = new int* [n]; //Выделяем память под строки
    for (int i=0; i<n; i++) a[i] = new int [n]; //Выделяем память под элементы
    И потом необходимо её освободить аналогично:
    for (int i=0; i<n; i++) delete [] a[i];
    delete [] a;
    Код в приложении, скомпилирован в VS 2005.
    Удачи!

    Приложение:

    ---------
    Эта история - не для истории, понимаешь?

    Ответ отправила: Verena (статус: Практикант)
    Ответ отправлен: 05.12.2008, 17:32

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


    Вопрос № 152.435
    Здравствуйте, помогите, пожалуйста, решить задачу.
    Даны вещественные массивы c[3][4], d[3][4]. Определить количество нулевых элементов, количество элементов в интервале от 7
    до 10. Есть решение, но его надо подправить для данного случая.

    Приложение:

    Отправлен: 30.11.2008, 21:38
    Вопрос задала: Сидорова Юлия Евгеньевна (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Архипов Александр Леонидович
    Здравствуйте, Сидорова Юлия Евгеньевна!
    Модифицированное решение в приложении

    Приложение:

    Ответ отправил: Архипов Александр Леонидович (статус: Практикант)
    Ответ отправлен: 01.12.2008, 06:39

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 237206 на номер 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.13 от 01.12.2008

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

    В избранное