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

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

Войти
Регистрация
Восстановить пароль
 
Isya Shmonder
0 / 0 / 0
Регистрация: 19.11.2010
Сообщений: 21
#1

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

28.03.2012, 13:52. Просмотров 304. Ответов 1
Метки нет (Все метки)

Такое задание по ООП.
Определить класс ограниченного массива вещественных чисел, индексы элементов которого могут принимать отрицательные значения. Пример объявления массива и обращения к его элементам.
Mdouble x (-30, 50);
x[-30] = 1.2; x [0] =0. ; x [50] = -1
Заранее благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2012, 13:52     Определить класс ограниченного массива
Посмотрите здесь:

Определить площадь прямоугольника, ограниченного координатами точки и осями координат - C++
Точка на плоскости: координаты точки на плоскости (по горизонтали и верти- кали) x1 и y1 Определить площадь пря- моугольника,...

Определить класс химический элемент, содержащий информацию о названии элемента его химических свойствах. Определить класс медикаменты, содержащий разн - C++
Определить класс химический элемент, содержащий информацию о названии элемента его химических свойствах. Определить класс медикаменты,...

Создать класс Triad (тройка чисел) - определить методы; определить производный класс Date - переопределить методы - C++
Создать класс Triad (тройка чисел); определить методы увеличения полей на 1. Определить производный класс Date с полями: год, месяц и день....

Определить, лежит ли точка внутри или вне круга, ограниченного указанной окружностью, или на окружности - C++
Даны координаты точки (x,y), радиус r и координаты центра окружности (x,y). Определить, лежит ли точка внутри или вне круга, ограниченного...

Определить лежит ли точка внутри или вне круга,ограниченного указанной окружностью, или на окружности - C++
помогите пожалуйста)) Даны координаты точки (x,y), радиус r и координаты центра окружности (x,y. Определить лежит ли точка внутри или...

Создать класс "Шар", заданный радиусом, и определить производный класс "Окружность" - C++
Создать класс шар, заданный радиусом. Определить производный класс окружности. Предусмотреть виртуальную функцию для вычисления площади...

Функции обработки массива (определить произведение элементов массива, заменить модулем все элементы массива, уничтожить элемент с заданным значением) - C++
Вот задания,не могу сделать ни одного из них,буду благодарен за помощь. Написать функции для выполнения операций над одномерным...

Определить шаблоный класс - C++
В одномерном массиве посчитать сумму элементов до минимального элемента. определить шаблонный класс.В конструкторе выделить динамическую...

Определить класс корова - C++
Определить класс корова состоящее из следующих полей:индентификационный номер-должно быть гарантировано уникально(для чего использовать...

Определить класс-строку - C++
Помогите пожалуйста, написать прогу. Определить класс-строку. В класс включить два конструктора: для опре-деления класса строки строкой...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,922
Записей в блоге: 1
28.03.2012, 15:26     Определить класс ограниченного массива #2
Цитата Сообщение от Isya Shmonder Посмотреть сообщение
Такое задание по ООП.
Определить класс ограниченного массива вещественных чисел, индексы элементов которого могут принимать отрицательные значения. Пример объявления массива и обращения к его элементам.
Mdouble x (-30, 50);
x[-30] = 1.2; x [0] =0. ; x [50] = -1
Заранее благодарен.
А если первый параметр в конструкторе задать положительным, отсчёт индексов должен будет вестись от нуля, или от этого параметра?
C++
1
2
Mdouble x (30,50);//Разрешено ли так?
x[0]=1.2;//А так разрешено, если задано id начала массива=30

Короче, вот ответ:
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 <iostream> 
#include <fstream>
using namespace std;
class signed_array{
protected:
    int start, end;
    float* data;
public:
    signed_array(int s=0, int e=0){
        if (s<=e) {
            start=s;
            end=e;
            data=new float[e-s];
        }
        else {
            start=end=0;
            cerr<<"array["<<s<<"]["<<e<<"] is invalid"<<endl;
            data=new float[0];
        }
        if (!data) cerr<<"out of memory"<<endl;
    }
    int get_start(){return start;}
    int get_end(){return end;}
    signed_array(signed_array& src){
        int i;
        start=src.start;
        end=src.end;
        data=new float[end-start];
        if (!data) {cerr<<"out of memory"<<endl;}
        for (i=0; i<end-start; i++) data[i]=src.data[i];
    }
    signed_array& operator = (signed_array& src){
        if (data) delete[] data;
        int i;
        start=src.start;
        end=src.end;
        data=new float[end-start];
        if (!data) cerr<<"out of memory"<<endl;
        for (i=0; i<end-start; i++) data[i]=src.data[i];
    }
    ~signed_array(){
        if (data) delete[] data;
    }
    float& operator [] ( int index ) const{
        if ((index>=start)&&(index<=end)) return (data[index-start]);
        return (data[0]);
    };
 
};
int main(){
    char c;
    signed_array test(-5, 5);
    test[-4]=2.0;
    test[-2]=0.5;
    test[-3]=test[-4]+test[-2];
    cout<<"test[-4]="<<test[-2]<<endl;
    cout<<"test[-3]="<<test[-4]<<endl;
    cout<<"test[-2]="<<test[-3]<<endl;
    cin>>c;
    return 0;
}
Yandex
Объявления
28.03.2012, 15:26     Определить класс ограниченного массива
Ответ Создать тему
Опции темы

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