Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mirazhana
1 / 1 / 0
Регистрация: 04.09.2012
Сообщений: 94
#1

В одномерном массиве состоящем из n вещественных элементов вычислить: - C++

19.01.2014, 15:43. Просмотров 462. Ответов 2
Метки нет (Все метки)

Доброго времени суток. У меня возникла проблема с созданием шаблонов функций, завтра сдавать, а у меня ничего не готово. Задание под спойлером, первые три пункта я выполнила, а вот оформить в виде шаблона функции не могу, помогите кто сможет.

Задание:
Кликните здесь для просмотра всего текста
В одномерном массиве состоящем из n вещественных элементов вычислить:
1) произведение положительных элементов массива;
2) сумму элементов массива, расположенных до минимального элемента
3) упорядочить по возрастанию отдельно элементы, стоящие на четных местах, элементы на нечетных местах.
Оформить каждый пункт задания в виде шаблона функции. Все необходимые данные должны передаваться им в качестве параметров. Использование глобальных переменных не допускается.

Моя программа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#include "iostream"
#include "time.h"
#include "stdlib.h"
 
using namespace std;
float mult_otr = 1;
float sum_mult = 0;
int min_index = 0;
 
//Функция заполнения массива
void fill(int n, float mas[])
{
    for (int i = 0; i < n; i++)
    {
        mas[i] = -50 + (float)(rand() %100);
    }
    return;
}
//Подсчет произведения положительных элементов
float mult(int n, float mas[])
{
    for (int i = 0; i < n; i++)
    {
        if (mas[i] > 0)
        {
            mult_otr *= mas[i];
        }
    }
    return 0;
}
//Функция нахождения минимального элемента
void min_mas(int n, float mas[])
{
    float min = mas[0];
    for (int i = 0; i < n; i++)
    {
        if (min > mas[i])
        {
            min = mas[i];
            min_index = i;
        }
    }
    cout << endl;
    cout << "Минимальный элемент массива: " << min << endl;
    return;
}
//Функция нахождения суммы до минимального элемента
void sum(int n, float mas[])
{
 
    float sum_mult = 0;
    for (int i = 0; i < min_index; i++) 
        sum_mult += mas[i];
 
    cout << "Сумма  элементов массива, до min отрицательного элемента:  " << sum_mult << endl;
    return;
}
//Функция вывода массива на экран
void out_mas(int n, float mas[])
{
    for (int i = 0; i < n; i++)
    {
        cout << mas[i] << " ";
    }
    return;
}
//Функция сортировки массива
void sort_mas(int n, float mas[])
{
    for (int i = 0; i < n; i += 2)      //Обход массива с шагом 2
    {
        for (int j = i; j < n; j += 2)  //Повторный обход массива, начинаем от текущего элемента прошлого обхода
        {
            int Temp;
            for (int k = 0; k < 2 && (j+2+k) < n; k++)  //Смена мест четных и нечетных элементов
            {
                if (mas[i+k] > mas[j+2+k])
                {
                    Temp = mas[i+k];
                    mas[i+k] = mas [j+2+k];
                    mas[j+2+k] = Temp;
                }
            }
        }
    }
    return;
}
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int i = 0;
    int n = 0;
    
    cout << "Введите кол-во элементов массива: ";
    cin >> n;
    float *mas = new float[n];
    cout << endl << endl;
    srand(time(NULL));
 
    fill(n, mas);       //Заполнение массива
    out_mas(n, mas);    //Вывод массива
    mult(n, mas);       //Нахождение произведения положительных элементов массива
 
    min_mas(n, mas);    //Нахождение минимального элемента массива
    sum(n, mas);        //Расчет суммы до минимального элемента
 
    cout << endl << endl;
    cout << "Произведение положительных элементов равно: " << mult_otr << endl;
 
    cout << "Отсортированный массив: " << endl;
    sort_mas(n, mas);   //Сортировка массива
    out_mas(n, mas);    //Вывод массива
    
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2014, 15:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В одномерном массиве состоящем из n вещественных элементов вычислить: (C++):

В одномерном массиве,состоящем из N вещественных элементов,вычислить: - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1)Кол-во элементов массива, меньших С 2)Сумму целых частей...

В одномерном массиве, состоящем из n вещественных элементов, вычислить: - C++
1) среднее арифметическое всех положительных элементов; 2) сумму элементов, расположенных до максимального элемента. Объясните...

В одномерном массиве, состоящем из п вещественных элементов, вычислить: - C++
В одномерном массиве, состоящем из п вещественных элементов, вычислить: -количество элементов массива, лежащих в диапазоне от А до В; ...

В одномерном массиве,состоящем из n вещественных элементов,вычислить: - C++
В одномерном массиве,состоящем из n вещественных элементов,вычислить : 1) кол-во отрицательных элементов; 2) сумму модулей элементов...

В одномерном массиве, состоящем из n вещественных элементов, вычислить: - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: -количество элементов массива, лежащих в диапазоне от А до В; ...

В одномерном массиве, состоящем из N вещественных элементов, вычислить: - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: а) минимальный элемент массива; б) сумму элементов массива,...

2
cooller
565 / 533 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
19.01.2014, 15:46 #2
Mirazhana, Вот ваша функция вывода
C++
1
2
3
4
5
6
7
8
9
template <class T>
void out_mas(int n, T mas[])
{
    for (int i = 0; i < n; i++)
    {
        cout << mas[i] << " ";
    }
    return;
}
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
19.01.2014, 15:48 #3
Цитата Сообщение от Mirazhana Посмотреть сообщение
Использование глобальных переменных не допускается.
Почему этот пункт не выполнен?
Вместо float лучше использовать double.
Для реализации шаблона сделайте так:
C++
1
2
3
4
5
6
7
8
9
template <class T>
void fill(int n, T mas[])
{
    for (int i = 0; i < n; i++)
    {
        mas[i] = -50 + (rand() %100);
    }
    return;
}
Остальные функции аналогично.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2014, 15:48
Привет! Вот еще темы с ответами:

В одномерном массиве, состоящем из n вещественных элементов, вычислить: - C++
Уважаемые знатоки С и С++. Думаю, вы понимаете, что высшее образование обязывает быть грамотным, но знать ВСЕ нереально. Мне нужна помощь....

В одномерном массиве, состоящем из n вещественных элементов, вычислить... - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму отрицательных элементов массива; 2) произведение...

В одномерном массиве А, состоящем из N вещественных элементов, вычислить - C++
В одномерном массиве А, состоящем из N вещественных элементов, вычислить: a) сумму отрицательных элементов массива; b) количество...

В одномерном массиве состоящем из n вещественных элементов вычислить: - C++
Сумму элементов массива, расположенных после минимального элемента Добавлено через 3 минуты Помогите пожалуйста с задачками:umbrage:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru