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

Описать функцию MIN (x) для определения минимального элемента вектора - C++

Восстановить пароль Регистрация
 
REALIST07
Автор FAQ
Автор FAQ
 Аватар для REALIST07
174 / 174 / 13
Регистрация: 11.06.2010
Сообщений: 932
09.09.2011, 19:27     Описать функцию MIN (x) для определения минимального элемента вектора #1
Есть такое задание:Описать функцию MIN(x) для определения минимального элемента вектора X, введя дополнительную рекурсивную функциюMIN1(X),находящую минимум среди последних элементов вектора X,начиная с К-го.Кто понял о чем речь?поясните плиз
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2011, 19:27     Описать функцию MIN (x) для определения минимального элемента вектора
Посмотрите здесь:

C++ Функция для определения минимального элемента вектора
C++ определения минимального элемента и его индекса в одномерном массиве(компилятор выдаёт ошибку)
Массив: Используя перегрузку функций, написать программу определения минимального значения элемента массива разного типа C++
Вычислить произведение P = Хmin*Ymin минимального элемента xmin = min{xi} массива xi и минимального элемента ymin = min{yi} массива yi C++
Описать ф-ию min(x) для определения min элемента линейного массива C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Evgen88
42 / 42 / 5
Регистрация: 04.11.2010
Сообщений: 119
09.09.2011, 21:54     Описать функцию MIN (x) для определения минимального элемента вектора #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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
//---------------------------------------------------------------------------
#include <iostream>
#include <deque>
#include <conio.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
using namespace std;
 
template<class T>
T MIN1(deque<T> v, deque<T>::size_type K); //рекурсия, ищет мин. элемент нач. с K (минимально K=1)
 
template<class T>
T MIN(deque<T> X);                        //сравниваем результат MIN1 с первым элементов и возвр.  меньший из них
 
int main(int argc, char* argv[])
{
deque<int> V;
randomize();
for(int i=0; i<6; i++)
V.push_back(i);
for(int i=0; i<6; i++)
cout<<V[i]<<' ';
cout<<endl;
int r=MIN(V);
cout<<r<<endl;
getch();
        return 0;
}
//---------------------------------------------------------------------------
 template<class T>
  T MIN1(deque<T> X, deque<T>::size_type K)
  {
    if(K==X.size()-1) return X[K];
    else if(K==X.size()-2) return (X[K]<X[K+1])?X[K]:X[K+1];
    else
    {
      deque<T>::size_type i=X.size()-3;
      T res;
      while(i>=K)
      {
       res=X[i];
       res=(res<MIN1(X, i+1))?res : MIN1(X, i+1);
       i--;
      }
      return res;
    }
  }
//---------------------------------------------------------------------------
  template<class T>
  T MIN(deque<T> X)
  {
    return (X[0]<MIN1(X, 1))?X[0]:MIN1(X, 1);
  }
Блин, вместо vector написал deque. Просто замени везде deque на vector.
REALIST07
Автор FAQ
Автор FAQ
 Аватар для REALIST07
174 / 174 / 13
Регистрация: 11.06.2010
Сообщений: 932
09.09.2011, 22:01  [ТС]     Описать функцию MIN (x) для определения минимального элемента вектора #3
А вы можете принцип пояснить?
Evgen88
42 / 42 / 5
Регистрация: 04.11.2010
Сообщений: 119
10.09.2011, 00:08     Описать функцию MIN (x) для определения минимального элемента вектора #4
А что тут непонятного? Функция MIN1 ищет минимальный среди последних начиная со второго и ее результат потом сравнивается с первым элементом в теле функции MIN. в главной функции мы заполняем вектор случайными значениями, потом их выводим. В r заносим минимальный элемент и тоже потом его выводим.
Yandex
Объявления
10.09.2011, 00:08     Описать функцию MIN (x) для определения минимального элемента вектора
Ответ Создать тему
Опции темы

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