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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Странный поиск http://www.cyberforum.ru/cpp-beginners/thread626404.html
как то странно работает функция find вот кусок кода: switch (count) { case 1: bblock=data.find("\"",1); if (bblock!=string::npos) { eblock=data.find("\"",bblock+1); if (eblock!=string::npos) {
C++ Ошибка в коде(нахождение делителей) Здравсвуйте! Я тут писал прогу кому то на форуме, и натолкнулся на проблему.Вот код // zadachka.cpp: главный файл проекта. #include "stdafx.h" #include <iostream> #include <cmath> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread626392.html
Задача по объектам и классам C++
Задача из книги Праты. Дан заголовочный файл, нужно определить методы и написать программу. Компилируется , но выводится какая-то билеберда. #ifndef PERSON_H_ #define PERSON_H_ #include <iostream> #include <string> using namespace std; class Person {
Ввод предложения на русском языке C++
Люди помогите разобраться, как ввести через консоль предложение на русском языке ?
C++ Из данного массива и другого массива того же типа, но другой размерности сформируйте общий массив и найдите его максимальный элемент http://www.cyberforum.ru/cpp-beginners/thread626309.html
помогите пожалуйста Из данного массива и другого массива того же типа, но другой размерности сформируйте общий массив и найдите его максимальный элемент
C++ Ошибка при компиляции, нужно чтобы программа сделала выбор Здравствуйте. Пытаюсь решить формулу (вычислить высоту треугольника) с помощью С++, не могу сделать так чтобы программа сделала выбор когда вводишь два символа (буквы) в переменную s, например вводишь ha, программа выводит одно сообщение, вводишь hb другое и т. д. У меня в коде стоит тип данных char, я понимаю что он поддерживает только один символ, пытался с помощью string (наверное это совсем... подробнее

Показать сообщение отдельно
Troll_Face
600 / 400 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
20.07.2012, 16:15     Определите среднее арифметическое всех значений элементов массива
Цитата Сообщение от 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
если учесть что обращение к памяти - дело долгое, лишние прыжки - дело глупое, то мой код очень оптимален!!!
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru