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

Конструктор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывод строк фиксированной длины из входного потока http://www.cyberforum.ru/cpp-beginners/thread22021.html
Задача организовать цикл по входному потоку и вывести полученные getchar'ом символы в виде строк некоторой длины N. Допустим, если длина строки превышает N, тогда печатаем ее с переносом на следующую строку. Пример из книги Кернигана & Ритчи. Написать надо на обычном Си и без использования строковых функций. Как брать символы из вх. потока это все понятно, но не получается именно алгоритм...
C++ Сформировать список, в котором хранится информация о заболеваниях сотрудников Сформировать список, в котором хранится информация о заболеваниях сотрудников: ФИО, год рождения, заболевание, продолжительность болезни. Определить сотрудников, которые перенесли одно и тоже заболевание; заболевания с максимальной продолжительностью болезни; количество больничных каждого сотрудника; количество дней, пропущенных по болезни каждым сотрудником Если можно напишите пожалуйста... http://www.cyberforum.ru/cpp-beginners/thread21976.html
Решение системы уравнений компактным методом исключений C++
На С++ надо решить систему уравнений компактным методом исключений. Элементы матрицы- комплексные числа, введенные в символьной форме. Числа обязательно должны быть представлены структурой. Ввод идет из файла txt потоками данных (ifstream, ofstream). Кто хоть что-нибудь может сказать по этому поводу, откликнитесь пожалуйста!
C++ Необходимо создать функцию для обработки символьных рядов
Потрібно створити функцію для обробки символьних рядків. За зразок брати функцію WordIndex(s,n)(Призначення: визначення позиції початку в рядку s слова з номером n) обробки рядків мови C, але не застосовувати її в своїй функції. Передбачити обробку помилок в параметрів і особливі випадки. Розробити два варіанти заданої функції - використовуючи традиційну обробку масивів і використовуючи адресну...
C++ ввод-вывод текста http://www.cyberforum.ru/cpp-beginners/thread21933.html
как с помощью массива можно вводить и выводить текст в Си, если в тексте есть пробелы?
C++ Заменить в строках первое слово на другое задание такое: задан текст, содержащий произвольное кол-во строк, в которых отдельные слова могут разделяться одним или несколькими пробелами и знаками пунктуации(перенос слов не используется). Сформировать новый текст, который является результатом след. преобразования исходного текста: заменить в строках (содержащих заданное слово) первое слово на другое заданное слово. попыталась написать... подробнее

Показать сообщение отдельно
Ammaximus
3 / 3 / 1
Регистрация: 15.01.2009
Сообщений: 26
29.01.2009, 18:12     Конструктор
Создать абстрактный тип данных - класс вектор, который имеет указатель на float,
число элементов и переменную состояния. Определить конструктор без параметров,
конструктор с параметром, конструктор с двумя параметрами. Конструктор без
параметров выделяет место для одного элемента и инициализирует его в ноль.
Конструктор с одним параметром, - размер вектора, - выделяет место и инициализирует
номером в массиве, конструктор с двумя параметрами выделяет место (первый аргумент)
и инициализирует вторым аргументом. Деструктор освобождает память. Определить
функцию, которая присваивает элементу массива некоторое значение (параметр по
умолчанию), функцию которая получает некоторый элемент массива. В переменную
состояния устанавливать код ошибки, когда не хватает памяти, выходит за пределы
массива. Определить функцию печати. Определить функции сложения, умножения,
вычитания, которые производят эти арифметические операции с данными этого класса и
встроенного float. Определить методы сравнения: больше, меньше или равно.
Предусмотреть возможность подсчета числа объектов данного типа. Проверить работу
этого класса.
Вот что получилось. программа работает. компилируется, но вылетает во время работы. В чем дело?
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
#include <iostream.h>
 
class  vector {
    float *p;
    int number;
    bool flag;
    static int num_objects;
 
public:
    vector(){
        p=new float[1];
        p[0]=0;
        number=1;
        flag=false;
    }
 
    vector(int num){
        p=new float[num];
        for (int i=0; i<num; i++) p[i]= i;
        number=num;
        flag=false;
    }
 
    vector(int num, float vect){
        p=new float[num];
        for (int i=0; i<num; i++) p[i]=vect;
        number=num;
        flag=false;
    }
    
    ~vector(){
        delete [] p;
    }
    
    void set(int num, float vect){
        if (number<=num) {
            flag=true;
            return;
        }
        p[num]=vect;
        return;
    }
 
    void set(int num){
        if (number<=num) {
            flag=true;
            return;
        }
        p[num]=13; // Значение по умолчанию
        return;
    }
 
    float get(int num){
        if (number<=num) {
            flag=true;
            return 0;
        }
        return p[num];
    }
    void print(int num){
        if (number<=num) {
            flag=true;
            return;
        }
        cout << *(p+num);
    };
 
    void print(){
        for (int i=0; i<number; i++) cout << "  " << *(p+i);
        cout << endl;
    }
 
    void add(vector target_vector, int pos_source, int pos_target){
        this->p[pos_target]+=target_vector.get(pos_source);
    };
 
    void sub(vector target_vector, int pos_source, int pos_target){
        this->p[pos_target]-=target_vector.get(pos_source);
    };
 
    void mul(vector target_vector, int pos_source, int pos_target){
        this->p[pos_target]*=target_vector.get(pos_source);
    };
    int diff(vector target_vector, int pos_source, int pos_target){
        if (this->p[pos_target]>target_vector.get(pos_source)) return 1;
        if (this->p[pos_target]<target_vector.get(pos_source)) return -1;
        return 0;
 
    };
 
 
 
 
};
int main(){
    vector a;
    vector b(7);
    vector c(4,8 );
    b.print();
    b.add(c,1,1);
    b.print();
    b.mul(c,1,1);
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru