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

Разреженный массив на основе массива указателей - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ уравнение http://www.cyberforum.ru/cpp-beginners/thread148857.html
1.Составить программу для решения уравнения ax+b=0. при а≠0 вывести на печать решение, при а=0 переменной х присвоить значение 0 и вывести его на печать. Программа следущая: есть ошибки: #include <iostream.h> #include <math.h> main( ) { setlocale(LC_ALL, "Russian"); int x;int a, b; cout << "Ввести a" << endl; cin >> a;
C++ Не имею понятия как программу вообще написать Задан массив Y(k) целых чисел. Если он упорядочен, оставить его без изменения. Если массив не упорядоченный, то вставить после каждого второго элемента минимальное непростое число в массиве. Предусмотреть случай, что массив состоит только из простых чисел. Добавлено через 49 минут Парни выручайте ничего с этим поделать не могу((( http://www.cyberforum.ru/cpp-beginners/thread148855.html
Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания C++
Элементы каждого столбца прямоугольной матрицы упорядочить в порядке убывания Желательно на си. Помощи очень нуждаюсь!
C++ Segmentation fault :(
#include<iostream> #include<fstream> using namespace std; struct test{ int id; char name; }; struct first{
C++ Матрица http://www.cyberforum.ru/cpp-beginners/thread148851.html
Найти произведение отрицательных нечетных чисел побочной диагонали матрицы. //--------------------------------------------------------------------------- #include <vcl.h> #include <conio.h> #include <iostream.h> #include <stdlib.h> #pragma hdrstop //---------------------------------------------------------------------------
C++ Генератор пароля Напишите функцию, которая случайным образом генирирует пароль из 8 символов. В пароле должны присутствовать только латинские буквы и цифры в с++ подробнее

Показать сообщение отдельно
visokii
 Аватар для visokii
-2 / 0 / 0
Регистрация: 23.06.2010
Сообщений: 8
11.02.2012, 14:51  [ТС]     Разреженный массив на основе массива указателей
Всё таки решил выложить может кому пригодиться:



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
/* ================      Серёга Корп.     ===================
             */
#include <windows.h>
 
template <class D,unsigned amount_element>
class SpArray 
{
public:
    SpArray();
  ~SpArray();
 
    void WRITE(D,int);                    // записывает в массив
    D    READ(int);                         // читает элемент массива
    bool EXITS(int);                       // проверка записана ли ячейка   да-true  нет-false
private:
    D   *sheet[amount_element+1];  // массив указателей типа D (+1 для ячейки ошибки) 
    void error(char *error);              // выват Ашипки
};
 
//***********************   SpArray  *******************************
template <class D,unsigned amount_element>
SpArray<D,amount_element>::SpArray()
{    
    for(register int t=0; t < amount_element+1; t++) 
    {
        sheet[t] = NULL;
    }
}
 
//***********************  ~SpArray  *******************************
template <class D,unsigned amount_element>
SpArray<D,amount_element>::~SpArray()
{
    for(register int t=0; t < amount_element+1; t++) 
    {
    if(sheet[t] != NULL)  { delete sheet[t];}
    }
}
 
//************************  WRITE  *********************************
template <class D,unsigned amount_element>
void SpArray<D,amount_element>::WRITE(D i,int index)  // магазин
{ 
    if(sheet[index]!=NULL) delete sheet[index];   // это если надо записать в записанную ячейку 
 
        if(index > amount_element)                    // если индекс больше допустимого
    { 
        error("пипец какой, а ты посмотрел сколько елементов в массиве?");
    }
    else 
    {
        if(index < 0)                               // если индекс меньше допустимого
        {
            error("там ячеек массива никто не придумал!!!");
        }
        else
        {
            sheet[index] = new D(i);              // если всё в порядке
        }
    }
}
 
//************************  READ   *********************************
template <class D,unsigned amount_element>
D SpArray<D,amount_element>::READ(int index)
{    
    if(index > amount_element)                    // если индекс больше допустимого
    { 
        error("пипец какой, а ты посмотрел сколько елементов в массиве?");
    }
    else 
    {
        if(index < 0)                               // если индекс меньше допустимого
        {
            error("там ячеек массива никто не придумал!!!");
        }
        else
        {
            if(sheet[index]==NULL) { error("Читаешь чего нет!!! Ишак убаный"); }
            return *sheet[index]; 
        }
    }
    return *sheet[amount_element+1];              // здесь возвратит NULL                     
}
 
//************************  EXITS  *********************************
template <class D,unsigned amount_element>
bool SpArray<D,amount_element>::EXITS(int index)
{
    if(sheet[index]==NULL) { return false; }
    return true;
}
 
//************************  DELETE  ********************************
template <class D,unsigned amount_element>
void SpArray<D,amount_element>::DEL(int t)
{
    if(sheet[t] != NULL)  { delete sheet[t];}
}
 
//************************    error   ******************************
template <class D,unsigned amount_element>
void SpArray<D,amount_element>::error(char *error)
{
    MessageBox( NULL, error, "class_sparray", MB_OK | MB_ICONERROR);
}
 
 
//******************************************************************
/*
    SpArray<TYPE,30> ARRAY;    // создание массива типа TYPE из 30 элементов
    TYPE A1;                   // 
                               // 
    ARRAY.WRITE(A1,12);        // записывает в 12-ю ячейку А1 
    ARRAY.READ(A1,12);         // читает из 12-ой ячейки 
    ARRAY.EXITS(12);           // состояние 12-ой ячейки return true - записана,  false - пустая
    ARRAY.DEL(12);             // удаление 12-ой ячейки из памяти
*/
 
Текущее время: 23:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru