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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Evgeniy_Fox
5 / 5 / 0
Регистрация: 22.09.2012
Сообщений: 149
22.09.2012, 17:16     В одномерном массиве, состоящем из n вещественных элементов, вычислить: #1
1) среднее арифметическое всех положительных элементов;
2) сумму элементов, расположенных до максимального элемента.

Объясните пожалуйста подробно процесс написания массива.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2012, 17:16     В одномерном массиве, состоящем из n вещественных элементов, вычислить:
Посмотрите здесь:

C++ в одномерном массиве, состоящем из n вещественных элементов, вычислить:
В одномерном массиве, состоящем из n вещественных элементов, вычислить... C++
C++ В одномерном массиве, состоящем из n вещественных элементов, вычислить:
В одномерном массиве, состоящем из N вещественных элементов, вычислить C++
C++ В одномерном массиве, состоящем из N вещественных элементов, вычислить
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
22.09.2012, 18:05     В одномерном массиве, состоящем из n вещественных элементов, вычислить: #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
25
26
27
28
29
30
31
32
33
34
35
36
const int size = 20;
 
int main()
{
    SetConsoleCP (1251); SetConsoleOutputCP (1251);
    srand(time(0));
    int arr[size];
    for (int i = 0; i<size; i++)
        arr[i] = -10 + rand()%21; //случайные числа от -10 до 20
    for (int x:arr) cout<<x<<" "; //наш массив
    cout<<endl;
    double result = 0; //среднее арифметическое всех положительных элементов
    int num = 0;  //количество положительных элементов
    for (int i = 0; i<size; i++)
    {
        if (arr[i]>0)
        {
            result+=arr[i];
            num++;
        }
    }
    cout<<"Среднее арифметическое всех положительных элементов           "<<result/num<<endl;
    auto it = max_element(arr, arr+size);
    cout<<"Макимальный елемент:                                          "<<*it<<endl;
    int sum = 0;
    for (int i = 0; i<size; i++)
    {
        if (arr[i]<*it) sum+=arr[i];
        else
            break; // если доберемся до нашего максимального елемента, то прерываем подщет суммы
    }
    cout<<"Сумма элементов, расположенных до максимального элемента:     "<<sum<<endl;
 
    system("pause");
    return 0;
}
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
22.09.2012, 18:06     В одномерном массиве, состоящем из n вещественных элементов, вычислить: #3
блин уже не актуально
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
22.09.2012, 18:15     В одномерном массиве, состоящем из n вещественных элементов, вычислить: #4
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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
#define N 20
 
int main()
{
    int* A = new int[N];
    for (int n = 0; n < N; n++)
    {
        A[n] = rand() % (2 * N) - N;
        printf("%d ",A[n]);
    }
 
    double avg = 0;
    for (int i = 0; i < N; i++)
        if (A[i] > 0) avg+=(double)A[i]/N;
 
    printf("\n\naverage = %lf\n",avg);
 
    int max = 0;
    for (int q = 0; q < N; q++)
        max = (A[q] > A[max]) ? q : max;
 
    int sum = 0, d = 0;
    while (A[d] != A[max] && d < N)
        sum+=A[d++];
 
    printf("\nsum = %d\n",sum);
 
    _getch();
 
    return 0;
}
Evgeniy_Fox
5 / 5 / 0
Регистрация: 22.09.2012
Сообщений: 149
22.09.2012, 18:25  [ТС]     В одномерном массиве, состоящем из n вещественных элементов, вычислить: #5
Актуально, но небольшая просьба, нужна программа на начинающем уровне. Т.е. нужен printf вместо cin/cout или scanf.
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
22.09.2012, 18:32     В одномерном массиве, состоящем из n вещественных элементов, вычислить: #6
да тут все предложенные коды , нормальный уровень , ты если не понимаешь спроси, тебе подскажут
Evgeniy_Fox
5 / 5 / 0
Регистрация: 22.09.2012
Сообщений: 149
22.09.2012, 18:46  [ТС]     В одномерном массиве, состоящем из n вещественных элементов, вычислить: #7
Сначала разберусь с программой yuron_477.
1. "const int size = 20;" - это значит что массив будет размером 20 ячеек?
2. " SetConsoleCP (1251); SetConsoleOutputCP (1251);" вообще не понятно.
srand(time(0));
int arr[size];
for (int x:arr) cout<<x<<" "; //наш массив
cout<<endl;
3. <<result/num<<endl;
<<*it<<endl;

Поясните пожалуйста
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
22.09.2012, 18:59     В одномерном массиве, состоящем из n вещественных элементов, вычислить: #8
Цитата Сообщение от Evgeniy_Fox Посмотреть сообщение
Сначала разберусь с программой yuron_477.
1. "const int size = 20;" - это значит что массив будет размером 20 ячеек?
2. " SetConsoleCP (1251); SetConsoleOutputCP (1251);" вообще не понятно.
srand(time(0));
int arr[size];
for (int x:arr) cout<<x<<" "; //наш массив
cout<<endl;
3. <<result/num<<endl;
<<*it<<endl;

Поясните пожалуйста
1 обсалютно верно , size инициализируется константой размером 20 можно делать динамически, но и во втором варианте кода инициализация размера определена однозначно
2
C++
1
SetConsoleCP (1251); SetConsoleOutputCP (1251);
это для консоли чтоб русские буквы выводило вроде как, могу ошибатся
C++
1
srand(time(0));
так как дальше все элементы массива будут случайными эта строка производит ГСВ
C++
1
for (int x:arr) cout<<x<<" "; //наш массив
тут я сам затрудняюсь помочь будем ждать автора кода
C++
1
<<result/num<<endl;
вывод вначале среднеарифметического а потом количества положительных endl перевод на следующую строку консоли
C++
1
2
 auto it = max_element(arr, arr+size);
<<*it<<endl;
как видно it принимает значение максимального элемента массива на выход идет содержимое it
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
22.09.2012, 19:03     В одномерном массиве, состоящем из n вещественных элементов, вычислить: #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const int size = 20;  //обычное обявление константы для задания размера нашего массива
 
int main()
{
    SetConsoleCP (1251); SetConsoleOutputCP (1251); //это для поддержания кодировки русских букв в программе,
                                                    //можете убрать, но писать придется по английски
    srand(time(0));  //это для того чтоб каждый раз при запуске программы генерировальсь разные числа от rand()
    int arr[size];
    for (int i = 0; i<size; i++)
        arr[i] = -10 + rand()%21; //случайные числа от -10 до 20
    for (int x:arr) cout<<x<<" "; //наш массив
    //можно заменить на:
    //for (int i = 0; i<size; i++)
        //cout<<arr[i]<<" ";
Добавлено через 3 минуты
it в данном случае будет указателем на максимальный элемент, для вывода на экран его надо разименновать - *it.
Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
22.09.2012, 19:04     В одномерном массиве, состоящем из n вещественных элементов, вычислить: #10
Цитата Сообщение от yuron_477 Посмотреть сообщение
for (int x:arr) cout<<x<<" ";
а можешь и мне объяснить ,как этот цикл работает, или как в поисковике про него правильно спросить ,1 раз такой хитрый вижу
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
22.09.2012, 19:15     В одномерном массиве, состоящем из n вещественных элементов, вычислить: #11
для компиляции надо подключить
C++
1
2
3
4
#include <iostream>
#include <algorithm>
#include <ctime>
#include <Windows.h>
Добавлено через 9 минут
Цитата Сообщение от Nixy Посмотреть сообщение
а можешь и мне объяснить ,как этот цикл работает
Цитата с книги:
Кликните здесь для просмотра всего текста
В C++11 была добавлена новая форма цикла, которая называется циклом for,
основанным на диапазоне. Она упрощает одну общую задачу цикла — делать что-то с
каждым элементом массива или, в более общем случае, с одним из контейнерных
классов, таким как vector или array.
Ниже показан пример:
double prices[5] = {4.99, 10.99, 6.87, 7.99, 8.49};
for (double x : prices)
cout << x << std: :endl;
Здесь x изначально представляет первый член массива prices. После
отображения первого элемента цикл затем проходит по х для представления оставшихся
элементов массива, так что код выведет все пять членов, по одному в строке. Короче
говоря, этот цикл отображает все значения, включенные в диапазон массива.

Чтобы изменить значения в массиве, понадобится применить другой синтаксис
для переменной цикла:
for (double &x : prices)
х = х * 0.80; // скидка 20%
Символ & идентифицирует х как ссылочную переменную; эта тема раскрывается в
главе 8. Здесь важно то, что такая форма объявления позволяет последующему коду
изменять содержимое массива, тогда как первая форма не разрешает этого.
Цикл for, основанный на диапазоне также может использоваться со списками
инициализации:
for (int x : {3, 5, 2, 8, 6})
cout << х « " ";
cout « ' \nf ;

Nixy
ComfyMobile
 Аватар для Nixy
399 / 280 / 8
Регистрация: 24.07.2012
Сообщений: 916
22.09.2012, 19:19     В одномерном массиве, состоящем из n вещественных элементов, вычислить: #12
Кликните здесь для просмотра всего текста
Цитата Сообщение от yuron_477 Посмотреть сообщение
для компиляции надо подключить
C++
1
2
3
4
#include <iostream>
#include <algorithm>
#include <ctime>
#include <Windows.h>
Добавлено через 9 минут
Цитата с книги:
Кликните здесь для просмотра всего текста
В C++11 была добавлена новая форма цикла, которая называется циклом for,
основанным на диапазоне. Она упрощает одну общую задачу цикла — делать что-то с
каждым элементом массива или, в более общем случае, с одним из контейнерных
классов, таким как vector или array.
Ниже показан пример:
double prices[5] = {4.99, 10.99, 6.87, 7.99, 8.49};
for (double x : prices)
cout << x << std: :endl;
Здесь x изначально представляет первый член массива prices. После
отображения первого элемента цикл затем проходит по х для представления оставшихся
элементов массива, так что код выведет все пять членов, по одному в строке. Короче
говоря, этот цикл отображает все значения, включенные в диапазон массива.

Чтобы изменить значения в массиве, понадобится применить другой синтаксис
для переменной цикла:
for (double &x : prices)
х = х * 0.80; // скидка 20%
Символ & идентифицирует х как ссылочную переменную; эта тема раскрывается в
главе 8. Здесь важно то, что такая форма объявления позволяет последующему коду
изменять содержимое массива, тогда как первая форма не разрешает этого.
Цикл for, основанный на диапазоне также может использоваться со списками
инициализации:
for (int x : {3, 5, 2, 8, 6})
cout << х « " ";
cout « ' \nf ;


спасибо ,что то подобное есть в Java , вы опровдали мои догадки)
Evgeniy_Fox
5 / 5 / 0
Регистрация: 22.09.2012
Сообщений: 149
22.09.2012, 19:20  [ТС]     В одномерном массиве, состоящем из n вещественных элементов, вычислить: #13
Спасибо большое всем за помощь!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2012, 15:53     В одномерном массиве, состоящем из n вещественных элементов, вычислить:
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Бушуева Марина
0 / 0 / 0
Регистрация: 16.10.2012
Сообщений: 59
18.12.2012, 15:53     В одномерном массиве, состоящем из n вещественных элементов, вычислить: #14
а можно эту же задачу ток в турбо паскале
Yandex
Объявления
18.12.2012, 15:53     В одномерном массиве, состоящем из n вещественных элементов, вычислить:
Ответ Создать тему
Опции темы

Текущее время: 03:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru