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

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

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

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

05.04.2013, 23:09. Просмотров 263. Ответов 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++
сообственно проблема в том что считает немного неточно. и какую функцию можно использовать для закрытия программы?(exit не работает) ...

Проверьте задачку по циклам, неправильно работает. [думаю что неправильно] - C++
Спасибо что решили зайти. Задание выгладит так: http://*******/PW95p А результат выплнения: http://*******/KwhuS #include...

Метод простой итерации (неправильно выдает корни уравнения) - C++
Привет всем)) Помогите, пожалуйста) В системе уравнений неправильно выдает корни, уже и не знаю, что делать((( Почему-то, вместо корней...

Неправильно работает программа - C++
файл complex.h #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; using namespace std; class Complex // класс...

Неправильно работает функция gets( ) - C++
..... char *str = new char; gets( str ); printf( &quot;%s&quot;, str ); .....

Неправильно работает функция - C++
Господа, написал следующий код, цель - заполнить имеющийся вектор структур данными из файла + вывести количество символа @ Проблема...

Неправильно работает код - C++
Вот ссылка на код #include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; int main() { cout&lt;&lt;&quot;Введите число &quot;&lt;&lt;endl; int...

Неправильно работает наследование - C++
1) Программа рисует параллельные линии, отстоящие друг от друга на случайный интервал (см. рисунок в приложении). 2) Каждая линия...

Условие работает неправильно - C++
string getNumberEmployeeEtype(string x, int temp){ /*первым аргументом является строка должности сотрудника, вторым - номер сотрудника*/ ...

Неправильно работает меню - C++
Вечер добрый! Собственно вопрос: я что-то напутал и теперь меню отказывается нормально работать и выдает min и затем сразу max, не могли бы...


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

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

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