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

Пользовательский класс - C++

Восстановить пароль Регистрация
 
DvogR
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 30
05.03.2014, 11:45     Пользовательский класс #1
Не могу переделать программу под данное условие:

Пользовательский класс Array должен содержать:
- конструктор с параметрами для создания динамических целочисленных массивов и установки начальных значений их элементов (реальные размеры массива (число элементов передаётся) через параметры);
- деструктор для освобождения памяти;
- метод вывода информации на экран;
- методы для выполнения задач из лабораторной работы №4.
В главной программе осуществить работу с экземпляром класса.
вот код:
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
#include "stdafx.h"
#include <math.h>
#include <iostream>
#include <stdlib.h>
#include <iomanip> 
#include <conio.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    int a[10]={-3,4,5,6,-7,1,0,3,5,7};
    int b[15]={5,6,-1,2,6,8,1,1,-6,8,-4,4,1,2,4};
    int c[25];
    int i,sum;
    sum=0;
    //---------------------------------
    cout<<"<<Условие>>\n"<<endl;
    cout<<" Из данного массива и другого массива того же типа, но другой";
    cout<<" \n";
    cout<<"размерности сформируйте общий массив и вычислите сумму положительных ";
    cout<<" \n";
    cout<<"элементов, стоящих на нечетных местах.";
    cout<<" \n"<<endl;
    cout<<"<<Решение>>\n"<<endl;
    cout<<"Первый введенный массив[10]= ";  
    for(i=0;i<10;i++)
    {
        cout<<a[i]<<" ";
    }
    cout<<"\n";
    cout<<"Второй введенный массив[15]= ";
    for(i=0;i<15;i++)
    {
    cout<<b[i]<<" ";
    }
    {
        cout<<"\n";
    }
    for(i=0;i<10;i++)
    {
        c[i]=a[i-1];
        }
    //j=20;
    for (i=10;i<25;i++)
    {
            c[i]=b[i-10];
    }   
    cout << "Финальный массив[25]= ";
    for (i=0; i<25; i++) 
    cout <<c[i]<< " " ;
    for (i=0; i<25; i++)
    {
        if (c[i] > 0 && i % 3 == 0)         
            sum+=c[i];
    }
    cout<<"\n";
    cout<<"Сумма= "<<sum<<endl;
    _getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Yandex
 Аватар для Yandex
2 / 2 / 0
Регистрация: 31.01.2013
Сообщений: 61
05.03.2014, 12:18     Пользовательский класс #2
DvogR, условие не корректное.
DvogR
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 30
05.03.2014, 12:30  [ТС]     Пользовательский класс #3
Цитата Сообщение от Yandex Посмотреть сообщение
DvogR, условие не корректное.
Ну как я понимаю, в программе должен быть класс, в котором описываются методы: вывода и подсчета результата. А так же конструктор и деструктор
Yandex
 Аватар для Yandex
2 / 2 / 0
Регистрация: 31.01.2013
Сообщений: 61
05.03.2014, 12:40     Пользовательский класс #4
DvogR,
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
#include <iostream>
#include <assert.h>
using namespace std;
class Vector{
    int capacity, size;
    double* number;
public:
    Vector(){
        capacity=10;
        size=0;
        number=new double[capacity];
    };
 
    Vector(int capacity){
        this->capacity=capacity;
        size=0;
        number=new double[this->capacity];
    };
 
    Vector(const double* ptr, int size){
        capacity=10;
        this->size=size;
        if(size==0) number=new double[capacity];
        else{
            capacity=this->size;
            number=new double[this->size];
        }
        for(int i=0; i<this->size; i++){
            number[i]=ptr[i];
        }
    };
 
    Vector(const Vector& Vector){
        this->capacity=Vector.capacity;
        this->size=Vector.size;
        this->number=new double[this->size];
        for(int i=0; i<this->size; i++){
            this->number[i]=Vector.number[i];
        }
    };
 
    ~Vector(){
        delete[]this->number;
    };
 
    int getSize() const{
        return size;
    }
 
    int getCapacity() const{
        return capacity;
    }
 
    double get(int pos) const{
        return number[pos];
    }
 
    void set(double val, int pos){
        this->number[pos]=val;
    }
 
    void insert(double val, int pos){
        this->size++;
        double* tmp=new double[2*capacity];
        if(this->size>this->capacity){
            for(int i=0; i<this->size; i++){
                tmp[i]=this->number[i];
            }
            delete[]this->number;
            this->capacity*=2;
            this->number=new double[capacity];
            for(int i=0; i<this->size; i++){
                this->number[i]=tmp[i];
            }
            delete[]tmp;
        }
        tmp=new double[this->size];
        tmp[pos]=val;
        for(int i=0; i<pos; i++){
            tmp[i]=number[i];
        }
        for(int i=pos; i<this->size; i++){
            tmp[i+1]=number[i];
        }
        for(int i=0; i<this->size; i++){
            number[i]=tmp[i];
        }
    }
 
    double erase(int pos){
        double m=number[pos];
        for(int i=pos; i<this->size; i++){
            number[i] = number[i+1];
        }
        this->size--;
        return m;
    }
 
    void clear(){
        delete[]number;
        this->capacity=10;
        this->size=0;
        this->number=new double[size];
    }
 
    void print() const{
        if(char(this->number[0])==NULL) cout<<"Empty";
        else{
            for(int i=0; i<this->size; i++){
                cout<<this->number[i]<<" ";
            }
        }
    }
};
 
class Stack{
    Vector n;
public:
    Stack():n(){};
    void push(double val){n.insert(val, 0);}
    double pop(){return n.erase(0);}
    Stack(const Stack& m):n(m.n){};
    int getSize() const{return n.getSize();}
    void clear(){n.clear();}
};
 
class Queue{
    Vector n;
public:
    Queue():n(){};
    void enqueue(double val){n.insert(val, n.getSize());}
    double dequeue(){return n.erase(0);}
    Queue(const Queue& m):n(m.n){};
    int getSize() const{return n.getSize();}
    void clear(){n.clear();}
};
 
int main(){
    Queue s1;
    s1.enqueue(34);
    s1.enqueue(3);
    s1.enqueue(36);
    s1.enqueue(32);
    Queue s(s1);
    cout<<s.dequeue()<<"\n";
    cout<<s.dequeue()<<"\n";
    cout<<s.dequeue()<<"\n";
    cout<<s.dequeue()<<"\n";
 
    Stack s2;
    s2.push(34);
    s2.push(3);
    s2.push(36);
    s2.push(32);
    Stack s3(s2);
    cout<<s3.pop()<<"\n";
    cout<<s3.pop()<<"\n";
    cout<<s3.pop()<<"\n";
    cout<<s3.pop()<<"\n";
    return 0;
}
вот примерчик смотри класс вектор
DvogR
1 / 1 / 0
Регистрация: 28.10.2012
Сообщений: 30
05.03.2014, 12:47  [ТС]     Пользовательский класс #5
ну вообще как это должно выглядеть я представляю, я не могу свою программу перестроить, я не понимаю как это сделать в программе, пробовал что-то сделать) так компилятор почти на каждой строчке ругается))))
Yandex
 Аватар для Yandex
2 / 2 / 0
Регистрация: 31.01.2013
Сообщений: 61
05.03.2014, 12:59     Пользовательский класс #6
DvogR, это как раз перестроена только добавить метод для слияние массивов и подсчета суммы положительных чисел.)
Yandex
Объявления
05.03.2014, 12:59     Пользовательский класс
Ответ Создать тему
Опции темы

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