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

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

Войти
Регистрация
Восстановить пароль
 
Starstuck
4 / 4 / 0
Регистрация: 01.02.2012
Сообщений: 124
#1

Создать шаблон для вычисления среднего - C++

23.03.2013, 13:40. Просмотров 381. Ответов 7
Метки нет (Все метки)

Создать шаблон функции для вычисления среднего без учета максимального и минимального значений. Проверить для массива чисел a[i] = tg(1/i), где i = 1,2,...,100; a[i]=(A,B,C,D,...Z).

Не понимаю как сделать вообще, помогите?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2013, 13:40     Создать шаблон для вычисления среднего
Посмотрите здесь:

Составить алгоритм и программу для вычисления среднего геометрического значения C++
Написать шаблон функции для поиска среднего арифметического массива C++
C++ Шаблон функции для нахождения среднего арифметичного элементов масива
Функция для вычисления среднего роста C++
C++ Создать функции для вычисления среднего значения и определения простого числа.
C++ Составить программу для вычисления среднего балла студентов
Написать шаблон функции для поиска среднего арифметического значений массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
1427 / 764 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
23.03.2013, 13:57     Создать шаблон для вычисления среднего #2
Ну как я понял, надо удалить с массива минимальное и максимальное числа, потом посчитать сумму всех оставшихся и разделить на их количество. Все просто
lemegeton
2917 / 1346 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
23.03.2013, 14:12     Создать шаблон для вычисления среднего #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
#include <ctime>
#include <cstdlib>
#include <iostream>
#include <string>
 
template <class T, class Iterator>
T strangeAverage(Iterator begin, Iterator end) {
  if (begin == end) return 0;
  Iterator min = begin;
  Iterator max = begin;
  T sum = *begin++;
  size_t count = 1;
  while (begin != end) {
    if (*begin < *min) min = begin;
    if (*begin > *max) max = begin;
    sum += *begin++;
    ++count;
  }
  if (count == 2) return 0;
  std::cout << sum << " " << *min << " " << *max << " " << count << std::endl;
  sum -= *min + *max;
  return sum / (count - 2);
}
 
int main(int argc, char **argv) {
  srand(time(0));
 
  double v[] = {0.5, 0.2, 0.7, 2.0, 0.1};
  // v = (0.5 + 0.2 + 0.7) / 3 = 1.4 / 3 = 0.46
  double x = strangeAverage<double>(v, v + sizeof(v) / sizeof(v[0]));
 
  std::cout << x << std::endl;
  std::cin.get();
  return 0;
}
Starstuck
4 / 4 / 0
Регистрация: 01.02.2012
Сообщений: 124
23.03.2013, 14:15  [ТС]     Создать шаблон для вычисления среднего #4
yuron_477, а с буквами как быть? Ну неужели посчитать СРЕДНИЙ ASCII код? ахах
lemegeton
2917 / 1346 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
23.03.2013, 14:19     Создать шаблон для вычисления среднего #5
Цитата Сообщение от Starstuck Посмотреть сообщение
а с буквами как быть? Ну неужели посчитать СРЕДНИЙ ASCII код?
Если операция сложения букв худо-бедно определена, то операция деления букв на число -- уже не очень.
Средний ASCII код -- волне логично.

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
#include <ctime>
#include <cstdlib>
#include <iostream>
#include <string>
 
template <class T, class Iterator>
T strangeAverage(Iterator begin, Iterator end) {
  if (begin == end) return 0;
  Iterator min = begin;
  Iterator max = begin;
  T sum = *begin++;
  size_t count = 1;
  while (begin != end) {
    if (*begin < *min) min = begin;
    if (*begin > *max) max = begin;
    sum += *begin++;
    ++count;
  }
  if (count == 2) return 0;
  sum -= *min + *max;
  return sum / (count - 2);
}
 
int main(int argc, char **argv) {
  srand(time(0));
 
  char v[] = "abcdefghijklmnopqrstuvwxyz";
  double x = strangeAverage<double>(v, v + sizeof(v) / sizeof(v[0]) - 1);
 
  std::cout << char(x) << std::endl;
  std::cin.get();
  return 0;
}
Средняя буква -- 'm'.

Лучше спросите у преподавателя, что имеется в виду.
Starstuck
4 / 4 / 0
Регистрация: 01.02.2012
Сообщений: 124
23.03.2013, 14:30  [ТС]     Создать шаблон для вычисления среднего #6
lemegeton, спасибо огромное, разобрался и все понял.

Позволь задать еще один вопрос

Как правильно разбить этот файл на два файла с расширениями .h и .cpp ?
lemegeton
2917 / 1346 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
23.03.2013, 14:40     Создать шаблон для вычисления среднего #7
Вынесите всю функцию целиком в отдельный файл с расширением .h и подключите к основному коду.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2013, 16:13     Создать шаблон для вычисления среднего
Еще ссылки по теме:

Напишите программу в С для вычисления среднего арифметического для 3 чисел C++
функции для вычисления среднего значения и определения простого числа C++
C++ Составить программу для вычисления среднего объема шаров
Написать шаблон функции для вычисления среднего значения элементов массива C++
Создать функцию вычисления среднего значения элементов одномерного массива C++

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

Или воспользуйтесь поиском по форуму:
Starstuck
4 / 4 / 0
Регистрация: 01.02.2012
Сообщений: 124
23.03.2013, 16:13  [ТС]     Создать шаблон для вычисления среднего #8
lemegeton, спасибо!
Yandex
Объявления
23.03.2013, 16:13     Создать шаблон для вычисления среднего
Ответ Создать тему
Опции темы

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