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

неправильно работает метод класа - C++

Восстановить пароль Регистрация
 
итернал
4 / 4 / 0
Регистрация: 17.09.2012
Сообщений: 284
05.04.2013, 23:09     неправильно работает метод класа #1
подскажите пожалуйста написал часть кода, он ище далек от окончания, но что у меня щас уже не нравильно работает, мой метод класса RandomShuffle, заполняет очень страшные значения какие-то, я догадываюсь что ето скорей всего что то с типом данных, чтото других идей в голову не пришло, но вот как исправить чет пока немогу сообразить, можете подсказать в чем ошибка?
вот код
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#include <iostream> 
#include <algorithm>  
#include <functional>
#include <vector>                                                                
using namespace std;                                                           
class CCube                                                                               
{
    int x,y,z;
    int *pMas;     
    int s;
public :                                                                                    
    CCube ():x(4),y(4),z(5)                                           
    {
        s=x*y*z;
        pMas=new int[s];
    }                            
    ~CCube()                                                                  
    {delete []pMas;}
    void RandomShuffle(int x, int n);
    void CubeMinValue();
    void MatrixMidValue(int k, float &mid);
    void FillCube ();                           
    void ShowFullCube();                
    void SectionCube();
};
void CCube::RandomShuffle( int x, int n)
{
    const int VECTOR_SIZE=80;
    typedef vector<int> IntVector;
    typedef IntVector::iterator IntVectorIt;
    int g=0;
    IntVector Numbers(VECTOR_SIZE);
    IntVectorIt start,end, it;
    for (int i=0;i<80;i++)
    {
        Numbers[i] = x;
        x=x+n;
    }
    start=Numbers.begin();
    end=Numbers.end();
    random_shuffle(start, end);
    for(it=start; it!=end; it++)
    {
        *(pMas++)=*it;
    }
}
void CCube::MatrixMidValue(int k, float &mid)
{
    float sum=0;
    for (int i=0;i<x;i++)
    {
        for (int j=0;j<y;j++)
            sum=sum+*(pMas+i*z*y+j*z+k);
    }
    mid=(sum/(x*y));
}
void CCube::CubeMinValue()
{
    int Min;
    Min=*(pMas+0);
    for (int i=0;i<x;i++)
    {
        for(int j=0;j<y;j++)
        {
            for(int k=1;k<z;k++)
            {
                if(*(pMas+i*z*y+j*z+k)<Min)
                    Min=*(pMas+i*z*y+j*z+k);
            }
        }
    }
    cout<<"Minimalnoe znach"<<Min<<endl;
}
 
void CCube::SectionCube()        
{
    int val=0;
    for (int i = 0; i<x;i++)                                          
    {
        for (int j = 0; j<y;j++)                            
        {
            for( int k =0;k<z;k++)          
            {
                if (i+k==z-1)                 
                    *(pMas+i*z*y+j*z+k)=val;
            }
        }
    }
}
void CCube::ShowFullCube()             
{
    int i,j,k;                                                             
    cout<<"\r\n\r\n\r\n";                                   
    for(k=z-1;k>=0;k--)                                        
    {
        for(j=0;j<y;j++)                                   
        {
            for(int l=5-j;l>=1;l--)           
                cout<<"   ";            
            for(i=0;i<x;i++)                   
                                           
                cout<<"     "<<*(pMas+i*z*y+j*z+k);
            cout<<"\r\n";                    
        }
        cout<<"\r\n\r\n\r\n";                   
    }
}
void CCube::FillCube ()                     
{
    for (int i = 0; i<x;i++)                                   
    {
        for (int j = 0; j<y;j++)                    
        {
            for( int k =0;k<z;k++)
                *(pMas+i*z*y+j*z+k)=(i*z*y+j*z+k); 
        }
    }
}
void main ()                                                                 
{
    int k;
    cin>>k;
    CCube cube;
    cube.RandomShuffle(1, 1);
    //cube.FillCube ();
    float midsum;
    cube.MatrixMidValue(k,midsum);
    cout<<"mid value"<<midsum<<endl;
    cube.CubeMinValue();
    cube.ShowFullCube();                             
    cube.SectionCube();                          
    cube.ShowFullCube();                              
    scanf ("%i");                                                    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2013, 23:09     неправильно работает метод класа
Посмотрите здесь:

C++ Прога работает неправильно
C++ программа работает неправильно
Метод простой итерации (неправильно выдает корни уравнения) C++
C++ Movewindow работает неправильно..
C++ Неправильно работает код
метод класа возвращает template type C++
C++ Неправильно работает ф-ия :(
C++ Метод золотого сечения считается неправильно

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
06.04.2013, 00:19     неправильно работает метод класа #2
итернал, пройдись с отладчиком и посмотри все значению, без комментариев трудно сразу так понять.
Yandex
Объявления
06.04.2013, 00:19     неправильно работает метод класа
Ответ Создать тему
Опции темы

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