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

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


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

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

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

Boriss
Статус: Академик
Рейтинг: 1520
∙ повысить рейтинг »
_Ayl_
Статус: Студент
Рейтинг: 1432
∙ повысить рейтинг »
Micren
Статус: Специалист
Рейтинг: 1339
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / C/C++

Номер выпуска:1458
Дата выхода:27.12.2009, 21:30
Администратор рассылки:Dr_Andrew, Старший модератор
Подписчиков / экспертов:678 / 183
Вопросов / ответов:4 / 4
IRC-канал по теме:#C

Вопрос № 175531: Здравствуйте, уважаемые эксперты, имеется задача - Даны вещественные массивы A[5][4], D[5][4]. Для каждого массива опpеделить количество элементов, значения котоpых меньше сpеднего аpифметического значения всех элементов массива. Среда ...


Вопрос № 175532: Здравствуйте, уважаемые эксперты, имеется задача - Даны массивы A[2][5], B[2][5], C[2][5]. Для каждого опpеделить местоположение (номер строки и номер столбца) минимального элемента. Среда программирования - Borland C++ 3.1 Прошу...
Вопрос № 175533: Здравствуйте, уважаемые эксперты, имеется задача - Даны вещественные массивы S[5][5], X[5][5]. Опpеделить значения пеpеменных A (по массиву S) и B (по массиву X) по следующему пpавилу: пеpеменной пpисвоить значение 1, если положительных элемен...
Вопрос № 175534: Здравствуйте, уважаемые эксперты, имеется задача - Даны вещественные массивы A[14], F[14]. В каждом массиве определить значение минимального элемента и его индекс. Вывести на печать исходный массив и результаты. Среда программирования -...

Вопрос № 175531:

Здравствуйте, уважаемые эксперты, имеется задача -

Даны вещественные массивы A[5][4], D[5][4]. Для каждого массива опpеделить количество элементов, значения котоpых меньше сpеднего аpифметического значения всех элементов массива.

Среда программирования - Borland C++ 3.1

Прошу написать программу как можно более простым языком (язык пока что только изучаю).

Заранее благодарен.

Отправлен: 22.12.2009, 16:45
Вопрос задал: Penkov213, Посетитель
Всего ответов: 1
Страница вопроса »


Отвечает amnick, 8-й класс :
Здравствуйте, Penkov213.
В приложении — пример решения данной задачи.
Блок

#ifdef __BORLANDC__
# include <iostream.h>
#else
# include <iostream>
using namespace std;
#endif

в начале исходника обеспечивает компиляцию исходника как в Borland C++ 3.1, так и в MSVC++ 6.0 (а также и в некоторых других компиляторах). Причина в том, что потоковый ввод/вывод описан в заголовочном (включаемом) файле iostream.h в Borland C++ 3.1, а в других компиляторах — в файле iostream.

Поскольку требуется выполнить одинаковую задачу для двух массивов, то задача оформлена в виде отдельной функции do_all(), из которой вызываются, в свою очередь, функции для ввода массива, вычисления средного арифметического и нахождения кол-ва элементов со значением, меньше заданного. В последнюю функцию (count_less_than) в качестве актуального параметра передается среднее арифметическое элементов массива, что и требуется по условию задачи.

Каким образо м решаются подобные задачи? Метод известен как "программирование сверху - вниз" (если я ошибся, пусть меня поправят): задача разбивается на несколько более простых, эти более простые разбиваются на еще более элементарные до тех пор, пока не станет ясно, как запрограммировать элементарные подзадачи. Здесь: нам надо решить одинаковую задачу для двух массивов, значит, пишем функцию, которая в качестве параметра будет принимать массив. Я обозвал ее по-простому "сделать все" — do_all(). Что должна делать эта функция? Разбиваем нашу задачу на подзадачи: ввести массив, вычислить среднее, подсчитать число элементов меньше среднего, вывести результат (это — псевдокод):

do_all( float a )
{
array_input( a ); // вводим массив
float average = array_average( a ); // находим среднее
int n = count_less_than( a, average ); // подсчитываем число элеменов меньше среднего
type_result();
}

Ну, теперь уже просто запрограммировать элементарны е функции.
Если будут вопросы, то задавайте их в мини-форуме.

Успехов!

Приложение:

Ответ отправил: amnick, 8-й класс
Ответ отправлен: 22.12.2009, 18:19

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


    Вопрос № 175532:

    Здравствуйте, уважаемые эксперты, имеется задача -

    Даны массивы A[2][5], B[2][5], C[2][5]. Для каждого опpеделить местоположение (номер строки и номер столбца) минимального элемента.

    Среда программирования - Borland C++ 3.1

    Прошу написать программу как можно более простым языком (язык пока что только изучаю).

    Заранее благодарен.

    Отправлен: 22.12.2009, 16:48
    Вопрос задал: Penkov213, Посетитель
    Всего ответов: 1
    Страница вопроса »


    Отвечает amnick, 8-й класс :
    Здравствуйте, Penkov213.
    В приложении — пример решения данной задачи.
    Блок

    #ifdef __BORLANDC__
    # include <iostream.h>
    #else
    # include <iostream>
    using namespace std;
    #endif

    в начале исходника обеспечивает компиляцию исходника как в Borland C++ 3.1, так и в MSVC++ 6.0 (а также и в некоторых других компиляторах). Причина в том, что потоковый ввод/вывод описан в заголовочном (включаемом) файле iostream.h в Borland C++ 3.1, а в других компиляторах — в файле iostream.

    Поскольку требуется выполнить одинаковую задачу для нескольких массивов, то задача оформлена в виде отдельной функции do_all(), из которой вызываются, в свою очередь, функции для ввода массива и поиска минимального элемента. Эти функции достаточно элементарны и должны быть понятны даже начинающему программисту, поэтому я их не комментирую. Если будут вопросы, то задавайте их в мини-форуме.

    Успехов!

    Приложение:

    Ответ отправил: amnick, 8-й класс
    Ответ отправлен: 22.12.2009, 17:46

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


    Вопрос № 175533:

    Здравствуйте, уважаемые эксперты, имеется задача -

    Даны вещественные массивы S[5][5], X[5][5]. Опpеделить значения пеpеменных A (по массиву S) и B (по массиву X) по следующему пpавилу: пеpеменной пpисвоить значение 1, если положительных элементов в массиве больше, чем отpицательных, и пpисвоить значение 0 в пpотивном случае.

    Среда программирования - Borland C++ 3.1

    Прошу написать программу как можно более простым языком (язык пока что только изучаю).

    Заранее благодарен.

    Отправлен: 22.12.2009, 17:01
    Вопрос задал: Penkov213, Посетитель
    Всего ответов: 1
    Страница вопроса »


    Отвечает amnick, 8-й класс :
    Здравствуйте, Penkov213.
    В приложении — пример решения данной задачи.

    Поскольку требуется выполнить одинаковую задачу для нескольких массивов, то задача оформлена в виде отдельной функции do_all(), из которой вызываются, в свою очередь, функции для ввода массива подсчета числа положительных и отрицательных элементов. Эти функции достаточно элементарны и должны быть понятны даже начинающему программисту, поэтому я их не комментирую. Замечу, однако, что функцию array_scan можно написать по-другому. Нам ведь не нужно знать, сколько положительных и сколько отрицательных элементов. Нужно всего лишь знать, каких больше, поэтому можно обойтись одной переменной и увеличивать ее для положительных элементов, уменьшать для отрицательных и не изменять для нулевых:

    Код:
    int array_scan( float a[N_ROWS][N_COLS] )
    {
    int n = 0; // больше нуля, если положительных элементов больше, чем отрицательных
    for( int i = 0; i < N_ROWS; ++i )
    for( int j = 0; j < N_COLS; ++j ) {
    float v = a[i][j];
    if( v < 0 ) --n;
    else if( v > 0 ) ++n;
    }

    return n > 0;
    }


    Печать результатов вызывается из main(), а не из do_all(), поскольку по условию требуется присвоить результат переменным A и B.
    Если будут вопросы, то задавайте их в мини-форуме.

    Успехов!

    Приложение:

    Ответ отправил: amnick, 8-й класс
    Ответ отправлен: 22.12.2009, 18:51

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


    Вопрос № 175534:

    Здравствуйте, уважаемые эксперты, имеется задача -

    Даны вещественные массивы A[14], F[14]. В каждом массиве определить значение минимального элемента и его индекс. Вывести на печать исходный массив и результаты.

    Среда программирования - Borland C++ 3.1

    Прошу написать программу как можно более простым языком (язык пока что только изучаю).

    Заранее благодарен.

    Отправлен: 22.12.2009, 17:05
    Вопрос задал: Penkov213, Посетитель
    Всего ответов: 1
    Страница вопроса »


    Отвечает amnick, 8-й класс :
    Здравствуйте, Penkov213.

    В приложении — пример решения данной задачи. Этот вопрос очень похож на заданный Вами ранее 175532, даже проще, поскольку массив — одномерный.

    Поскольку требуется выполнить одинаковую задачу для двух массивов, то она оформлена в виде отдельной функции do_all(), из которой вызываются, в свою очередь, функции для ввода массива и поиска минимального элемента. Поскольку Вы пишете, что изучаете язык, то здесь я продемонстрировал, как можно обращаться к элементам массива по указателям (должно же быть что-то новое?). Если будут вопросы, то задавайте их в мини-форуме.

    Успехов!

    Приложение:

    Ответ отправил: amnick, 8-й класс
    Ответ отправлен: 22.12.2009, 19:15

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


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

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

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

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

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

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

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


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.12 от 30.11.2009

    В избранное