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

Определите среднее арифметическое всех значений элементов массива - C++

Восстановить пароль Регистрация
 
Айбек
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 11
20.07.2012, 13:50     Определите среднее арифметическое всех значений элементов массива #1
помогите //заранее спасибо


Определите среднее арифметическое всех значений элементов массива
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2012, 13:50     Определите среднее арифметическое всех значений элементов массива
Посмотрите здесь:

C++ Определить среднее арифметическое всех элементов массива.
найти среднее арифметическое всех элементов массива, кроме элементов... C++
C++ Написать программу, вычисляющую среднее арифметическое всех элементов массива из 200 элементов
Найти количество элементов превышающих среднее арифметическое всех элементов массива C++
C++ Найти сумму всех положительных элементов массива и среднее арифметическое всех элементов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grain
0 / 0 / 0
Регистрация: 03.07.2012
Сообщений: 56
20.07.2012, 14:14     Определите среднее арифметическое всех значений элементов массива #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream.h>
 
void main ()
{
    int a[100], i, s=0, sred, n;
    cout<<"ввести количество элементов массива:"<<endl;
    cin>>n;
    cout<<"ввести элементы массива:"<<endl;
    for (i=0; i<n; i++)
        cin>>a[i];
 
    for (i=0; i<n; i++)
        s+=a[i];
 
    sred=s/n;
 
    cout<<"среднее арифметическое: "<<sred<<endl;
}
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
20.07.2012, 14:32     Определите среднее арифметическое всех значений элементов массива #3
grain,
C++
1
double sred;
Troll_Face
 Аватар для Troll_Face
599 / 399 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
20.07.2012, 15:39     Определите среднее арифметическое всех значений элементов массива #4
grain, Mиxaил, оптимизацию никто не отменял
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream.h>
 
void main ()
{
    int a[100], i, s=0, sred, n;
    cout<<"ввести количество элементов массива:"<<endl;
    cin>>n;
    cout<<"ввести элементы массива:"<<endl;
    for (i=0; i<n; i++)
    {    
        cin>>a[i];
        s+=a[i];
    } 
    sred=s/n;
 
    cout<<"среднее арифметическое: "<<sred<<endl;
}
Добавлено через 1 минуту
Цитата Сообщение от Айбек Посмотреть сообщение
Определите среднее арифметическое всех значений элементов массива
очень дебильный вопрос
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 15:40     Определите среднее арифметическое всех значений элементов массива #5
Fatal Error, трудно, конечно, это оптимизацией назвать (так как, по сути, алгоритм не оптимизирован, да и что там оптимизировать), но будь по вашему. Только среднее правильно вычислите, Mиxaил, правильно намекает. При этом где у вас защита "от дурака". А если n=0.
Troll_Face
 Аватар для Troll_Face
599 / 399 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
20.07.2012, 15:55     Определите среднее арифметическое всех значений элементов массива #6
Цитата Сообщение от Thinker Посмотреть сообщение
трудно, конечно, это оптимизацией назвать
по процессорному времени это нехилая оптимизация, поверьте мне

Добавлено через 4 минуты
а если предположить что компилятор умный и не будет обращаться к памяти два раза в этом месте
C++
1
2
cin>>a[i];
        s+=a[i];
то это вообще победа!!!
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 15:59     Определите среднее арифметическое всех значений элементов массива #7
Цитата Сообщение от Fatal Error Посмотреть сообщение
по процессорному времени это нехилая оптимизация, поверьте мне
если в первом цикле присутствует cin, а во втором - нет и вы все собрали вместе, то из-за низкой скорости cin по сравнению с вычислениями процессора, оптимизации нет никакой Все упирается в то, с какой скоростью вы будете набирать данные, не более того.
Troll_Face
 Аватар для Troll_Face
599 / 399 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
20.07.2012, 16:15     Определите среднее арифметическое всех значений элементов массива #8
Цитата Сообщение от Thinker Посмотреть сообщение
из-за низкой скорости cin по сравнению с вычислениями процессора, оптимизации нет никакой
ок, попробую растолковать: во втором цикле процессору придется совершать переход на начало цикла для того, чтобы просуммировать все элементы массива, в общем случае по первому коду нужно совершить 2n прыжков, в моем коде только n раз... второй пункт: если вы знакомы с ассемблером, то вы должны знать, что в основном все результаты деятельности функций возвращаются в регистр EAX. в коде grain, два раза обращаться к памяти (для того чтобы положить введенное число в массив и во втором цикле чтобы его взять), я предположил что компилятор умный и он будет прибавлять к сумме не значения из массива,а из регистра, что в разы быстрее. сравните приблизительный машинный код grain и мой!
Assembler
1
2
3
4
5
6
7
8
9
10
11
mov ecx, n
@1:
cin (предположим ввели число, результат в eax)
mov a[index], eax
inc index
loop @1
mov index, 0
mov ecx, n
@2:
mov eax, a[index]
add s, eax
мой код:
Assembler
1
2
3
4
5
6
7
mov ecx, n
@1:
cin (предположим ввели число, результат в eax)
mov mov a[index], eax
add s, eax
inc index
loop @1
если учесть что обращение к памяти - дело долгое, лишние прыжки - дело глупое, то мой код очень оптимален!!!
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 16:19     Определите среднее арифметическое всех значений элементов массива #9
Fatal Error, желаю вам удачно поэкспериментировать, тысяч, эдак, десять с запуском программы и ввода с помощью cin массива, состоящего не менее чем из 100 элементов. Отпишитесь за какое минимальное время ваша программа проработала
А еще лучше, тоже самое проделайте с программой из поста 2 и сравните время.
Ну ладно, шутки - шутками, а тема слишком банальна, можно закрывать.
Troll_Face
 Аватар для Troll_Face
599 / 399 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
20.07.2012, 16:20     Определите среднее арифметическое всех значений элементов массива #10
Thinker, вы говорите не в тему, я не о скорости ввода вам толкую, а о скорости работы программы
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 16:23     Определите среднее арифметическое всех значений элементов массива #11
Цитата Сообщение от Fatal Error Посмотреть сообщение
Thinker, вы говорите не в тему, я не о скорости ввода вам толкую, а о скорости работы программы
я вас прекрасно понимаю, просто, обычно, алгоритмы другие оптимизируют, а это слишком простой линейный алгоритм.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.07.2012, 16:25     Определите среднее арифметическое всех значений элементов массива
Еще ссылки по теме:

Ввести c клавиатуры массив из 5 элементов, найти среднее арифметическое всех элементов массива C++
C++ Вычислить среднее арифметическое всех элементов массива
C++ Среднее арифметическое всех элементов массива

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

Или воспользуйтесь поиском по форуму:
Troll_Face
 Аватар для Troll_Face
599 / 399 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
20.07.2012, 16:25     Определите среднее арифметическое всех значений элементов массива #12
Thinker, мое ассемблерное прошлое не дает мне спокойно смотреть на не оптимизированный по скорости и памяти код
Yandex
Объявления
20.07.2012, 16:25     Определите среднее арифметическое всех значений элементов массива
Ответ Создать тему
Опции темы

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