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

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

Войти
Регистрация
Восстановить пароль
 
sergio6
0 / 0 / 0
Регистрация: 01.05.2012
Сообщений: 8
#1

Построение вариационного ряда - C++

15.10.2012, 22:44. Просмотров 612. Ответов 0
Метки нет (Все метки)

Здравствуйте! Нашел в интернете код считывание выборки с файла и последующее построение вариационного ряда. Не могли бы вы объяснить часть кода приведенного ниже.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void do_vr(float *a,int n,element* &vr,int &nvr)
{bubbleSort(a,n);
 nvr=0;
 vr = (element *)malloc(n* sizeof(element));
 for(int i=0;i<n;i++){
     int j=0;
     while(j<nvr && vr[j].xi != a[i])
     j++;
     if (vr[j].xi==a[i])
     vr[j].ni++;
     else
     {vr[nvr].xi=a[i];
      vr[nvr].ni=1;
      nvr++;
     }
    }
Весь код
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
57
58
59
60
bool load(char * fname,float *& a,int &n)
{ifstream f(fname);                               
  {a = (float *)malloc(10000 * sizeof(float));    
   n=0;                                           
   while (!f.eof())                               
    {f>>a[n];                                     
     n++;                                         
    }
   a = (float *)realloc(a,n * sizeof(float)); 
  }
 
}
 
/*---------------------------------------------------------------------------*/
 
template< class T >
void bubbleSort(T* a, int n)  
{
    T tmp;
 
    for(int i = 0; i < n - 1; ++i) 
    {
        for(int j = 0; j < n - 1; ++j) 
        {
            if (a[j + 1] < a[j])
            {
                tmp = a[j + 1];  
                a[j + 1] = a[j]; 
                a[j] = tmp;      
            }                    
        }
    }
}
/*---------------------------------------------------------------------------*/
 
void do_vr(float *a,int n,element* &vr,int &nvr)
{bubbleSort(a,n);
 nvr=0;
 vr = (element *)malloc(n* sizeof(element));
 for(int i=0;i<n;i++){
     int j=0;
     while(j<nvr && vr[j].xi != a[i])
     j++;
     if (vr[j].xi==a[i])
     vr[j].ni++;
     else
     {vr[nvr].xi=a[i];
      vr[nvr].ni=1;
      nvr++;
     }
    }
 vr = (element *)realloc(vr,nvr* sizeof(element));        
 for(int i=0;i<nvr;i++)
 {vr[i].fi=vr[i].ni/(float) n;
  if (i==0)
  vr[i].Fni=vr[i].fi;
  else
   vr[i].Fni=vr[i-1].Fni+vr[i].fi;
 }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2012, 22:44     Построение вариационного ряда
Посмотрите здесь:

C++ Построение класса
Построение C++
C++ составить алгоритм инвертирования ряда чисел , т.е. записи всех чисел заданного ряда в обратном порядке
Построение многоугольника C++
построение графиков в С++ C++
C++ Построение прямоугольника
Построение ДПСД C++
Каждый элемент 1 ряда матрицы разделить на соответствующий элемент второго ряда C++
C++ Посчитать сумму ряда, ограничивая число элементов ряда первым элементом, меньшим заданной величины
Построение В*-дерева C++
Найти 10 членов ряда, абсолютную разность между табличной функцией и суммой ряда C++
Определить: 10 членов ряда; абсолютную разность между табличной функцией и суммой ряда C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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