С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

05.04.2013, 23:09. Просмотров 276. Ответов 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");                                                    
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2013, 23:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос неправильно работает метод класа (C++):

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

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

Метод золотого сечения считается неправильно - C++
#include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; #include &quot;conio.h&quot; #include &quot;math.h&quot; #include &lt;iostream&gt; float Afunc(float x1) { ...

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

Movewindow работает неправильно.. - C++
делаю так //------------------------------------------------------------- CRect rNew; CRect rOld; ... ...

Цикло do while неправильно работает - C++
В общем, проблема в том, что с цикла начинает работать непонятно как, и я не понимаю почему. При чём, если в task_1() ответить...

1
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
06.04.2013, 00:19 #2
итернал, пройдись с отладчиком и посмотри все значению, без комментариев трудно сразу так понять.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2013, 00:19
Привет! Вот еще темы с ответами:

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

Неправильно работает функция - C++
You are given natural number n. Calculate 12+22+...+n2. Example Input Output 2 5 Добавлено через 1 минуту #include &lt;iostream&gt;...

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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