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

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

Войти
Регистрация
Восстановить пароль
 
итернал
4 / 4 / 0
Регистрация: 17.09.2012
Сообщений: 301
Завершенные тесты: 1
#1

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

05.04.2013, 23:09. Просмотров 251. Ответов 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++ Неправильно работает код
Проверьте задачку по циклам, неправильно работает. [думаю что неправильно] C++
Неправильно работает программа C++
C++ Программа работает неправильно
C++ Метод золотого сечения считается неправильно
Условие работает неправильно C++
C++ Неправильно работает наследование
C++ Цикло do while неправильно работает

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

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

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