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

Как сделать шаблон функции для определения максимального расстояния между элементами - C++

Восстановить пароль Регистрация
 
Динар Габбасов
Заблокирован
26.11.2011, 11:44     Как сделать шаблон функции для определения максимального расстояния между элементами #1
Написать программу которая использует шаблон функции для определения максимального расстояния между элементами в наборе в 5 элементов. Проверьте программу используя 5 целых чисел, 5 чисел с плавающей точкой, 5 символов

я начал а дальше не знаю что делать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdafx.h"
 
template <class diga>
diga djiga(diga &a, diga&b, diga&c, diga&d, diga&e);
{diga max, min;
if (a>b)
{ max=a;
}
else {min=b}
 
int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2011, 11:44     Как сделать шаблон функции для определения максимального расстояния между элементами
Посмотрите здесь:

C++ Как сделать один шаблон для разных типов
Шаблон функции для удвоения максимального значения из трех аргументов C++
Напишите программу, которая использует шаблон функции для определения наименьшего из двух аргументов. C++
C++ Составить процедуру определения суммы и количества элементов, расположенных между минимальным и максимальным элементами массива
C++ Шаблон функции поиска максимального элемента
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lavan
51 / 51 / 1
Регистрация: 21.03.2009
Сообщений: 371
26.11.2011, 13:31     Как сделать шаблон функции для определения максимального расстояния между элементами #2
Я так понял,что максимальное расстояние -это разница между максимальным и минимальным значением,если да то
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
#include<algorithm>
using namespace std;
template<typename T> void search(T *,int);
int main() {
     int mas[5]={4,9,23,3,6};
     search(mas,5);
     char mas2[5]={'a','b','t','z','c'};
     cout<<endl;
     search(mas2,5);
    cin.get();
    return 0;
}
template<typename T> void search(T *ptr,int size) {
    T *maX=max_element(ptr,ptr+size);
    T *miN=min_element(ptr,ptr+size);
    cout<<"Max of lenth is "<<*maX-*miN;
}
Сыроежка
Заблокирован
26.11.2011, 15:28     Как сделать шаблон функции для определения максимального расстояния между элементами #3
Динар Габбасов,

Еси считать, что максимальное расстояние - это разница между максимальным элементом последовательности и минимальным элементом последовательности, как здесь уже было сдеано предположение, то ваша шаблонная функция будет выглядеть следующим образом

C++
1
2
3
4
5
template <typename T>
const T distance( const T ( &a )[5] )
{
   return ( *std::max_element( a, a + 5 ) - *std::min_element( a, a + 5 ) );
}
Если вы стандартные алгоритмы еще не изучали, то вам самому надо искать минимальный и максимальный элемент

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
template <typename T>
const T distance( const T ( &a )[5] )
{
   T min = a[0], max = a[0];
 
   for ( int i = 1, i < 5; i++ )
   {
      if ( a[i] < min ) min = a[i];
      if ( max < a[i] ) max = a[i];
   }
 
   return ( max - min );
}
}
Динар Габбасов
Заблокирован
26.11.2011, 16:09  [ТС]     Как сделать шаблон функции для определения максимального расстояния между элементами #4
да я вот тоже думаю что расстояние -это разница между максимальным и минимальным значением, спасибо большое попробую решить если возникнут вопросы я напишу

Добавлено через 1 минуту
lavan, а можете написать в виде printf scanf не пользуясь std::cin? а то нам так не разрешается((

Добавлено через 1 минуту
Сыроежка, это получается цикл который определяет макс и мин элемент?
Сыроежка
Заблокирован
26.11.2011, 16:15     Как сделать шаблон функции для определения максимального расстояния между элементами #5
Цитата Сообщение от Динар Габбасов Посмотреть сообщение
да я вот тоже думаю что расстояние -это разница между максимальным и минимальным значением, спасибо большое попробую решить если возникнут вопросы я напишу

Добавлено через 1 минуту
Сыроежка, это получается цикл который определяет макс и мин элемент?
Да, во втором примере внутри функции самостоятельно вычисляются максимальный и минимальный элементы.
Динар Габбасов
Заблокирован
26.11.2011, 16:59  [ТС]     Как сделать шаблон функции для определения максимального расстояния между элементами #6
Сыроежка, как сделать чтоб 5 данных вводились с клавиатуры? как сделать проверку?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2011, 17:10     Как сделать шаблон функции для определения максимального расстояния между элементами
Еще ссылки по теме:

C++ Шаблон функции для удвоения максимального значения
C++ Сумма элементов массива до максимального. Создать шаблон функции
Как сделать шаблон функции другом шаблона класса? C++

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

Или воспользуйтесь поиском по форуму:
Сыроежка
Заблокирован
26.11.2011, 17:10     Как сделать шаблон функции для определения максимального расстояния между элементами #7
Цитата Сообщение от Динар Габбасов Посмотреть сообщение
Сыроежка, как сделать чтоб 5 данных вводились с клавиатуры? как сделать проверку?
Проверка делается просто. Объявляете массивы и вызываете для них функцию.

Например,

C++
1
2
3
4
5
6
7
8
9
10
11
12
int main()
{
   int ai[5] = { 1, 2, 3, 4, 5 };
   double ad[5] = { 1.1, 2.2, 3.3, 4.4, 5.5 };
   char ac[5] = { 1, 2, 3, 4, 5 };
 
   std::cout << "for ai distance = " << distance( ai ) << std::endl;
   std:;cout << "for ad distance = " << distance( ad ) << std::endl;
   std::cout << "for ac distance = " << static_cast<const int>( distance( ac ) ) << std::endl;
 
   return ( 0 );
}
Yandex
Объявления
26.11.2011, 17:10     Как сделать шаблон функции для определения максимального расстояния между элементами
Ответ Создать тему
Опции темы

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