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

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


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

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

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

Лысков Игорь Витальевич
Статус: Профессионал
Рейтинг: 191
∙ повысить рейтинг >>
Micren
Статус: Студент
Рейтинг: 129
∙ повысить рейтинг >>
Person
Статус: 3-й класс
Рейтинг: 47
∙ повысить рейтинг >>

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

Выпуск № 1244
от 18.02.2009, 16:05

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

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

Вопрос № 160323: С клавиатуры вводится последовательность из n целых чисел(n вводится с клавиатуры).Найти максимальный элемент данной последовательности. ...


Вопрос № 160333: Дан двумерный массив размерностью N умножить M(N и M вводятся с клавиатуры).Найти максимальный и минимальный элементы данного массива и поменять их местами.Произвести вывод даного массива ввиде матрицы....
Вопрос № 160336: Дан двумерный массив размерностью NxM (N и M вводится с клавиатуры). Найти количество всех положительных элементов данного массива. Произвести вывод данного массива в виде матрицы....
Вопрос № 160337: Дан одномерный массив, состоящий из n целых чисел. Если элемент четный, то прибавить к нему первый, если нечетный - последний элемент массива. Первый и последний элементы не изменять....
Вопро с № 160357: Уважаемые эксперты! Похоже, заработался, но... При компилировании программы выдаётся warning: "TMainForm.cpp: In member function ‘void TMainForm::ProgrammeBreakSlot()’: TMainForm.cpp:919: предупреждение: переполнение при неявном преобразовани...

Вопрос № 160.323
С клавиатуры вводится последовательность из n целых чисел(n вводится с клавиатуры).Найти максимальный элемент данной последовательности.
Отправлен: 12.02.2009, 20:28
Вопрос задал: Rusik202 (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Лысков Игорь Витальевич
Здравствуйте, Rusik202!
Небольшой примерчик в приложении.
Введенные числа не сохраняются, сразу ищется максимальный элемент

Приложение:

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

Ответ отправил: Лысков Игорь Витальевич (статус: Профессионал)
Украина, Кировоград
ICQ: 234137952
----
Ответ отправлен: 14.02.2009, 02:37

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


    Вопрос № 160.333
    Дан двумерный массив размерностью N умножить M(N и M вводятся с клавиатуры).Найти максимальный и минимальный элементы данного массива и поменять их местами.Произвести вывод даного массива ввиде матрицы.
    Отправлен: 12.02.2009, 21:13
    Вопрос задал: Rusik202 (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Лысков Игорь Витальевич
    Здравствуйте, Rusik202!
    Программа в приложении.
    Массив заполняем случайными числами 0-999

    Приложение:

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

    Ответ отправил: Лысков Игорь Витальевич (статус: Профессионал)
    Украина, Кировоград
    ICQ: 234137952
    ----
    Ответ отправлен: 14.02.2009, 03:18

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


    Вопрос № 160.336
    Дан двумерный массив размерностью NxM (N и M вводится с клавиатуры). Найти количество всех положительных элементов данного массива. Произвести вывод данного массива в виде матрицы.
    Отправлен: 12.02.2009, 21:31
    Вопрос задал: Саркисян Гварг Владимирович (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 2)

    Отвечает: Micren
    Здравствуйте, Саркисян Гварг Владимирович!
    Программа:
    Код:

    #include <locale>
    #include <limits>
    #include <iostream>
    #include <iomanip>
    #include <wchar.h>

    using namespace std;

    unsigned int inputDimension(const wchar_t* const);

    int main()
    {
    locale::global(locale("rus_rus.866"));
    // Вводим количество строк матрицы
    unsigned int N=inputDimension(L"Количество строк матрицы:");
    // Вводим количество столбцов матрицы
    unsigned int M=inputDimension(L"Количество столбцов матрицы:");
    // Матрица. Память распределяется динамически.
    int *matrix=0;
    try
    {
    // Выделяем память
    matrix=new int[N*M];
    // Вводим матрицу
    for(un signed int i=0;i<N;i++)
    {
    for(unsigned int j=0;j<M;j++)
    {
    // Вводим элемент
    while(1)
    {
    // Хотя в C++ индексы начинаются с нуля, для удобства пользователя нумеруем с единицы
    wcout<<L'['<<i+1<<L"]["<<j+1<<L"]=";
    wcin>>matrix[i*M+j];
    if(wcin.fail())
    {
    wcout<<L"Ошибка ввода!"<<endl;
    wcin.clear();
    wcin.ignore(numeric_limits<streamsize>::max(),L' ');
    }
    else
    {
    wcin.ignore(numeric_limits<streamsize>::max(),L' ');
    break;
    }
    }
    }
    }
    // Выводим матрицу для контроля и сразу считаем
    unsigned int counter=0;
    wcout<<L"Исходная матрица:"<<endl;
    for(unsigned int i=0;i<N;i++)
    {
    for(unsigned int j=0;j<M;j++)
    {
    wcout<<setw(9)<<matrix[i*M+j]<<L' ';
    counter+=matrix[i*M+j]>0;
    }
    wcout<<endl;
    }
    wcout<<L"Матрица содержит "<<counter<<L" положительных элементов"<<endl;
    }
    catch(bad_alloc)
    {
    // Если не удалось выделить память выводим это
    wcout<<L"Не могу выделить память для размещения матрицы"<<endl;
    }
    // Освобождаем память
    if(matrix)delete []matrix;
    system("PAUSE");
    return 0;
    }

    unsigned int inputDimension(const wchar_t* const msg)
    {
    unsigned int dim=0;
    while(!dim)
    {
    wcout<<msg;
    wcin>>dim;
    if(wcin.fail())
    {
    wcout<<L"Ошибка ввода!"<<endl;
    wcin.clear();
    }
    wcin.ignore(numeric_limits<streamsize>::max(),L' ');
    }
    return dim;
    }


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

    Количество строк матрицы:3
    Количество столбцов матрицы:4
    [1][1]=4
    [1][2]=-5
    [1][3]=-7
    [1][4]=4
    [2][1]=5
    [2][2]=6
    [2][3]=7
    [2][4]=-34
    [3][1]=23
    [3][2]=45
    [3][3]=7
    [3][4]=89
    Исходная матрица:
    4 -5 -7 4
    5 6 7 -34
    23 45 7 89
    Матрица содержит 9 положительных элементов
    Ответ отправил: Micren (статус: Студент)
    Ответ отправлен: 12.02.2009, 23:27

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


    Вопрос № 160.337
    Дан одномерный массив, состоящий из n целых чисел. Если элемент четный, то прибавить к нему первый, если нечетный - последний элемент массива. Первый и последний элементы не изменять.
    Отправлен: 12.02.2009, 21:36
    Вопрос задал: Саркисян Гварг Владимирович (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 9)

    Отвечает: Micren
    Здравствуйте, Саркисян Гварг Владимирович!
    Программа с комментариями. Проверялась MS Visual Studio 2008
    Код:

    #include <limits>
    #include <locale>
    #include <iostream>
    #include <iomanip>

    using namespace std;

    void printArray(const wchar_t* const,const int* const,unsigned int);

    int main()
    {
    locale::global(locale("rus_rus.866"));
    // Вводим количество элементов массива
    unsigned int N=0;
    while(!N)
    {
    wcout<<L"Введите количество элементов массива:";
    wcin>>N;
    if(wcin.fail()||!N)
    {
    wcout<<L"Неверное значение"<<endl;
    wcin.clear();
    }
    wcin.ignore(numeric_limits<streamsize>::max(),L' ');
    }
    try
    {
    // Выделяем память
    int *array=new int[N];
    // Вводим массив
    for(unsigned int i=0;i<N;i++)
    {
    while(true)
    {
    wcout<<L"Введите "<<i+1<<L"-й элемент:";
    wcin>>array[i];
    if(wcin.good())
    {
    wcin.ignore(numeric_limits<streamsize>::max(),L' ');
    break;
    }
    wcout<<L"Неверный ввод"<<endl;
    wcin.clear();
    wcin.ignore(numeric_limits<streamsize>::max(),L' ');
    }
    }
    printArray(L"Исходный массив:",array,N);
    // Все по условию задачи
    for(unsigned int i=1;i<N-1;i++)
    array[i]+=array[abs(array[i]%2)*(N-1)];
    printArray(L"Результирующий массив:",array,N);
    delete []array;
    }
    catch (bad_alloc)
    {
    wcout<<L"Не могу выделить память для массива"<<endl;
    }
    system("PAUSE");
    return 0;
    }

    // Процедура вывода массива на экран
    void printArray(const wchar_t* const message,const int* const array,unsigned int length)
    {
    wcout<<message<<endl;
    for(unsigned int i=0;i<length;i++)
    wcout<<setw(9)<<array[i]<<L' ';
    wcout<<endl;
    }


    Пример результата работы:
    Код:

    Введите количество элементов массива:10
    Введите 1-й элемент:2
    Введите 2-й элемент:4
    Введите 3-й элемент:2
    Введите 4-й элемент:3
    Введите 5-й элемент:5
    Введите 6-й элемент:6
    Введите 7-й элемент:7
    Введите 8-й элемент:9
    Введите 9-й элемент:0
    Введите 10-й элемент:6
    Исходный массив:
    2 4 2 3 5 6 7 9
    0 6
    Результирующий массив:
    2 6 4 9 11 8 13 15
    2 6

    Исправлен код программы по просьбе автора ответа
    --------
    ∙ Отредактировал: Лысков Игорь Витальевич, Профессионал
    ∙ Дата редактирования: 14.02.2009, 05:27 (время московское)
    Ответ отправил: Micren (статус: Студент)
    Ответ отправлен: 12.02.2009, 23:08

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


    Вопрос № 160.357
    Уважаемые эксперты!
    Похоже, заработался, но... При компилировании программы выдаётся warning: "TMainForm.cpp: In member function ‘void TMainForm::ProgrammeBreakSlot()’: TMainForm.cpp:919: предупреждение: переполнение при неявном преобразовании константы". Можно ли от него как-нибудь избавиться?
    Фрагмент кода - в приложении
    Компилятор g++ 4.1, библиотека Qt 4.2

    Приложение:

    Отправлен: 13.02.2009, 06:49
    Вопрос задал: Dr_Andrew (статус: Специалист)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 2)

    Отвечает: Хватов Сергей
    Здравствуйте, Dr_Andrew!
    Компилятор предупреждает не зря: QMessageBox::No = 0x00010000 и в short действительно не помещается

    Вообще объявлять простую переменную short это даже не экономия - остаток слова всё равно использован не будет.
    Ответ отправил: Хватов Сергей (статус: Практикант)
    Ответ отправлен: 13.02.2009, 12:50

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

    Оценка за ответ: 5
    Комментарий оценки:
    Большое спасибо! Действительно, возвращаемое диалогом значение short превышает. Да, в новой версии библиотеки надо внимательнее справку читать... :)


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

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

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

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

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

    Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
    экспертам другой рассылки портала 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

    В избранное