Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 14.07.2009
Сообщений: 74

Как обявить конструктор в основной програме

23.03.2011, 17:57. Показов 674. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот написал часть программы, но в основной части когда при нажатии кнопки 1, я использую клас, то выбивает ошибку. Помогите пожалуйста.

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
//---------------------------------------------------------------------------
class Matrix{
float Masiv[4][4][4],Vidpovid[4];
int n;
public:
Matrix(int n, int l); 
void init(int n);    
void printVidpovid(int n); 
float vyznachnyk(int n,int l);     
void dilennya(int l,int i, int j, int n);     
void vidnimannya(int l,int i, int j, int n);    
};
 
//--------------------------------Конструктор-----------------------------------
Matrix::Matrix(int n,int s)
{
        int i,j,l;
        for(l=0;l<n;l++)
        for(i=0;i<n;i++)
        for(j=0;j<n;j++)
         {
         if (s==1){
         String S=Form1->StringGrid2->Cells[1][j];
         Masiv[l][1][j]=StrToInt(S);
         }
         else if (s==2){
          String S=Form1->StringGrid2->Cells[1][j];
         Masiv[l][2][j]=StrToInt(S);
         }
         else if (s==3){
          String S=Form1->StringGrid2->Cells[1][j];
         Masiv[l][3][j]=StrToInt(S);
         }
         else if (s==4){
          String S=Form1->StringGrid2->Cells[1][j];
         Masiv[l][4][j]=StrToInt(S);
         }
         else{
          String S=Form1->StringGrid1->Cells[i][j];
         Masiv[l][i][j]=StrToInt(S);
         }
         }
 
}
//------------------------------------------------------------------------------
//---------------------------Функція ініціалізації------------------------------
void Matrix::init(int n)
{        int i,j,l;
        for(l=0;l<n;l++)
        for(j=0;j<n;j++)
        for(i=0;i<n;i++)
        Masiv[l][i][j]=0;
 
         for(i=0;i<n;i++)
         Vidpovid[i]=0;
}
//------------------------------------------------------------------------------
//----------------------------Функція вивід результата--------------------------
void Matrix::printVidpovid(int n)
{
        for(int i=0;i<n+1;i++)
        {
        String s=FloatToStr(Vidpovid[i]);
        Form1->StringGrid3->Cells[1][i]=s;
        }
}
//------------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{int n,s;
Matrix M();
for(s=0;s<n;s++)
{M.Matrix(n,s);
}
M.printVidpovid(n);
}
//---------------------------------------------------------------------------
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.03.2011, 17:57
Ответы с готовыми решениями:

Не могу сделать чтобы класс содержал основной конструктор и конструктор копирования
Разработать класс ThreeAngle для работы с плоскими треугольниками. В качестве членов-данных задаются длины трех сторон треугольника. Класс...

Как обявить?
Здрассте люди 1.Как обявить TRect (обявляю так: TRect rec, но не работает) (какие библиотеки нужни для етого?) 2.Как обявить TVclBitmap...

Обявить переменные
необходимые для вычисления прощади круга.

1
 Аватар для Алексейко
3 / 3 / 2
Регистрация: 19.03.2011
Сообщений: 72
24.03.2011, 14:26
1) что за ошибка?
2) инициализируй n в ButtonClick (хотя я думаю что это тут просто не написал)
3) выведи значения массива и/или ячеек таблиц и посмотри на значения - может инициализация неверная
p.s. а конструктор можно компактнее сделать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int i,j,l;
for(l=0;l<n;l++)
for(i=0;i<n;i++)
for(j=0;j<n;j++)
         {
         String S=Form1->StringGrid2->Cells[1][j];
         int s12=StrToInt(S);
         if(s12>=1 && s12<=4)
                  Masiv[l][s12][j]=s12;
         else
                  {
                  S=Form1->StringGrid1->Cells[i][j];
                  s12=StrToInt(S);
                  Masiv[l][i][j]=s12;
                  }
         }
Добавлено через 11 минут
о, еще забыл - ты в конструкторе инициализируешь не с 0, а с 1 эл-та (второй уровень массива). Может ты в других функциях пытаешься работать с NULL-значениями из 0 элемента?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.03.2011, 14:26
Помогаю со студенческими работами здесь

Как сделать [вкладки] в програме?
Здраствуйте, скажыте пожалуйста, как в програме сделать вкладки, чтото похожое как а аваст, кнопки сделал, TabControl не очень удобный,...

Определить конструктор без параметров, конструктор с одним параметром, конструктор с двумя параметрами, деструктор
Создать класс «матрица». Данный класс должен содержать элементы типа int, определяющие число строк, столбцов и состояние ошибки. Определить...

Как передать данные другой програме?
Написал програму по переводе целых чисел с одной системы счисления в другую, но проблема в том что это консоль, а хотелось-бы полноценное...

Как убрать раздел в даной програме?
Прошу помочь мне, мне необходимо из програмы убрать один раздел и все что сним связано, раздел называеться &quot;о програме&quot; ...

Как заменить TextBox в програме на ListBox?
дело в том что TextBox выдает полученое значение в строчку, а нужно чтобы было в столбик ,для удобства. код программы: Private Sub...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru