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

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

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

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

20.08.2013, 14:25. Просмотров 693. Ответов 9
Метки нет (Все метки)

В одномерном массиве, состоящем из N вещественных элементов, вычислить:
1) номер минимального элемента массива;
2) сумму элементов массива, расположенных между первым и вторым отрицатель¬ными элементами.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.08.2013, 14:25     В одномерном массиве, состоящем из N вещественных элементов, вычислить
Посмотрите здесь:

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Maxak
0 / 0 / 0
Регистрация: 27.12.2012
Сообщений: 47
20.08.2013, 14:40     В одномерном массиве, состоящем из N вещественных элементов, вычислить #2
Цитата Сообщение от akimlegend Посмотреть сообщение
В одномерном массиве, состоящем из N вещественных элементов, вычислить:
1) номер минимального элемента массива;
2) сумму элементов массива, расположенных между первым и вторым отрицатель¬ными элементами.
1) Сортировка пузырьком например, на 0 месте будет стоять минимальный элемент.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
template< class T >
void bubbleSort(T* arr, int size)
{
    T tmp;
 
    for(int i = 0; i < size - 1; ++i) // i - номер прохода
    {            
        for(int j = 0; j < size - 1; ++j) // внутренний цикл прохода
        {     
            if (arr[j + 1] < arr[j]) 
            {
                tmp = arr[j + 1]; 
                arr[j + 1] = arr[j]; 
                arr[j] = tmp;
            }
        }
    }
}


2) Ну просто перебираешь по массиву и сравниваешь с нулем, например так:
Кликните здесь для просмотра всего текста
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
double SumBetwenTwo(T* arr, int size)
{
double sum = 0;
int i=0;
int flag=0;
do
{
i++;
 
if(T[i]<0){ 
while(T[i+1]>0)
{
sum+=T[i+1];
i++;
}
flag = 1;
}
else{
sum=0;
}
}while(!flag&&(i<(size-1));
 
return sum;
}
fatalis
8 / 8 / 1
Регистрация: 09.08.2013
Сообщений: 68
20.08.2013, 15:32     В одномерном массиве, состоящем из N вещественных элементов, вычислить #3
Искать минимальный елемент массива за O(n^2) это все же моветон )
C++
1
2
3
4
min=A[0]
for (i=0;i<n;i++)
 if(A[i]<min)
  min=A[i]
Catstail
Модератор
22515 / 10920 / 1774
Регистрация: 12.02.2012
Сообщений: 18,067
20.08.2013, 16:02     В одномерном массиве, состоящем из N вещественных элементов, вычислить #4
Цитата Сообщение от Maxak Посмотреть сообщение
Сортировка пузырьком например, на 0 месте будет стоять минимальный элемент.
- применять для этого сортировку КРАЙНЕ НЕРАЦИОНАЛЬНО! Найти номер минимального элемента нужно делать простым перебором (за время O(n)), а пузырьковая сортировка - это O(n2). Но самое главное - сортировка здесь - вообще "не в дугу" - ведь при сортировке нумерация элементов нарушается. Минимальный будет первым (или последним), а нужно найти его номер в исходном массиве.

Добавлено через 20 минут
Вот полное решение:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h>
 
int main(int argc, char* argv[])
{
    int Arr[]={5,6,-7,8,9,-5,5,-9,0};
    int i,k=-1,imin=0,s=0;
    for (i=0; i<sizeof(Arr)/sizeof(int); i++)
    {
        if (Arr[i] < 0)
            if (k < 0) 
                k=-k;
            else
                k=0;
        if ((k > 0) && (Arr[i] >= 0))  s+=Arr[i];
        if (Arr[i] < Arr[imin]) imin=i;
    }
    cout << "sum =" << s << endl;
    cout << "imin=" << imin << endl;
    return 0;
}
Вывод:

sum=17
imin=7
Somebody
2786 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,190
Завершенные тесты: 1
20.08.2013, 16:17     В одномерном массиве, состоящем из N вещественных элементов, вычислить #5
C++
1
2
3
4
5
6
7
const size_t N = 6;
double a[N] = {1, -2, 3, -6, 5, 8};
double min = *std::min_element(std::begin(a), std::end(a));
auto predicate = [](double x){ return x < 0; };
auto firstNegative = std::find_if(std::begin(a), std::end(a), predicate);
auto secondNegative = std::find_if(firstNegative + 1, std::end(a), predicate);
double sum = std::accumulate(firstNegative + 1, secondNegative, 0);
Catstail
Модератор
22515 / 10920 / 1774
Регистрация: 12.02.2012
Сообщений: 18,067
20.08.2013, 16:28     В одномерном массиве, состоящем из N вещественных элементов, вычислить #6
Somebody, твое решение короче, но работать будет дольше... (два вызова find_if). К тому же, нужно было найти не минимальный элемент, а его номер.

Но и я не без греха: сделал для массива типа int, а нужно было выбрать double. Впрочем, это легко исправить.
MickeyBlueEyes
Студент
120 / 131 / 12
Регистрация: 07.04.2011
Сообщений: 503
20.08.2013, 16:32     В одномерном массиве, состоящем из N вещественных элементов, вычислить #7
Только у меня когда вижу ключевое слово "auto" происходит что-то неимоверное внутри ?)
Croessmah
20.08.2013, 16:35
  #8

Не по теме:

Цитата Сообщение от MickeyBlueEyes Посмотреть сообщение
Только у меня когда вижу ключевое слово "auto" происходит что-то неимоверное внутри ?)
А что в нем неимоверного?

Issues
430 / 365 / 37
Регистрация: 06.08.2012
Сообщений: 961
20.08.2013, 16:42     В одномерном массиве, состоящем из N вещественных элементов, вычислить #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <algorithm>
#include <numeric>
#include <functional>
#include <iostream>
#include <array>
 
int main()
{
    const int N = 10;
    std::array<double, N> arr = { 1, -1, 3, 4, -5, 6, -7, 8, 9, 10 };
    
    std::function<bool(double)> pred = [](double elem) { return (elem < 0) ? true : false; };
    
    auto fneg = std::find_if(arr.begin(), arr.end(), pred)+1;
    auto sneg = std::find_if(fneg, arr.end(), pred);
    
    std::cout << "Min Pos: " << std::distance(arr.begin(), std::min_element(arr.begin(), arr.end()));
    std::cout << "\nNeg Sum: " << std::accumulate(fneg, sneg, 0) << std::endl;
 
    return 0;
}
Добавлено через 44 секунды

Не по теме:

опоздал.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.08.2013, 16:45     В одномерном массиве, состоящем из N вещественных элементов, вычислить
Еще ссылки по теме:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
Somebody
2786 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,190
Завершенные тесты: 1
20.08.2013, 16:45     В одномерном массиве, состоящем из N вещественных элементов, вычислить #10
Цитата Сообщение от Catstail Посмотреть сообщение
но работать будет дольше... (два вызова find_if)
Второй find_if ищет, начиная с firstNegative + 1.
Цитата Сообщение от Catstail Посмотреть сообщение
нужно было найти не минимальный элемент, а его номер
OK
C++
1
std::size_t minElementIndex = std::min_element(std::begin(a), std::end(a)) - std::begin(a);
Цитата Сообщение от Catstail Посмотреть сообщение
твое решение короче, но работать будет дольше
Тут сложно сказать. Если массив огромный, то он, конечно, ко второму проходу может из кеша вылететь. Но ведь неизвестно, какие оптимизации используются. Например, простые циклы без лишних if'ов векторизовать легче.
Yandex
Объявления
20.08.2013, 16:45     В одномерном массиве, состоящем из N вещественных элементов, вычислить
Ответ Создать тему
Опции темы

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