С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 13

работа с классами

20.04.2011, 20:50. Показов 4339. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
/*
Написать программу, в которой предусмотреть класс для организации
обработки целочисленного массива.
Внутри класса реализовать два конструктора:
1-й конструктор должен обеспечивать ввод элементов массива с клавиатуры;
2-й конструктор должен формировать значения элементов массива в задаваемом диапазоне [min, max]
c помощью генератора случайных значений.
Внутри класса предусмотреть 5 методов:
1-й метод должен вычислять значение максимального элемента в массиве;
2-й метод должен вычислять значение минимального элемента;
3-й метод должен обеспечивать вывод массива на экран.
Еще 2 метода спроектировать самостоятельно и реализовать.
*/

Вот код решения на С++ в консоли Builder:

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
#include "vcl.h"
 #include "iostream.h" 
 #include "conio.h" 
 #include <windows.h> 
 #include <math.h> 
 using namespace std; 
 
 class mass 
 { 
 public: mass_A1(int); 
 //~mass();
 void min_mass (int);
 void max_mass (int);
 void output_mass (int); 
 private: int m[10];
 
 }; 
 
 mass::mass_A1(int size)
 { for(int i = 1; i <= size; i++)
 { 
 m[i] = rand();
 cout << "Vvedite m["<<i<<"] element "; 
 cin >> m[i]; 
 } 
 
 } 
 
 void mass::min_mass(int size) 
 { 
 int min; min=m[1];
 for(int i = 1; i <= size; i++) 
 { 
 
 if (m[i]<=min) min=m[i];
 } 
 cout<<"Minimal'niy element ="<<min<<"\n"; 
 } 
 
 void mass::max_mass(int size)
 { 
 int max;
 max=m[1];
 for(int i = 1; i <= size; i++)
 {
 
 if (m[i]>=max) max=m[i];
 }
 cout<<"Maximal'niy element="<<max<<"\n";
 } 
 
 void mass:utput_mass(int size) 
 { cout<<" ===Vyvod=massiva===\n"; 
 for(int i = 1; i <= size; i++) 
 { 
 cout<<i<<".element="<<m[i]<<"\n";
 } 
 } 
 
 int main() 
 { int size;
 mass A1; //
 cout<<"Enter size: "; 
 cin>>size; 
 A1.mass_A1(size); 
 A1.min_mass(size); 
 A1.max_mass(size); 
 A1.output_mass(size); 
 
 getch(); 
 return 0;
 
 }
Мне нужна помощь по реализации этой задачи в Builder.. как связать классы с формой и функции класса с кнопками. Кто может примерно показать куда нужно заносить класс. Препод еще говорил что нужно создавать еще 1 класс с этим массивом, что бы при изменении возвращаться к исходнику.
P.S пожайлуйста помогите хотя бы инфой, через 5 дней сдача курсовой! =(
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.04.2011, 20:50
Ответы с готовыми решениями:

работа с классами
Ребята как реализовать вот такую задачу?: Построить класс - потомок класса TLabel, объекты которого при щелчке правой кнопкой мыши...

Работа с классами
Создать класс-однонаправленый список list.Дополнительно перенагружать операции: удаления элемента из конца списка(типа list--);

Работа с функциями и классами в BC++
Недавно попробывал попрограммить в Борланде С++ не совсем понял что к чему , прошу помощи. Как в функции кнопки к примеру вызвать...

6
Тутошний я
 Аватар для Grey
2147 / 1202 / 225
Регистрация: 03.11.2009
Сообщений: 4,424
Записей в блоге: 2
21.04.2011, 00:09
Ввод вручную, что бы в каждую ячейку отдельно записывать, не получается.
Проще из Memo или StringGrid'a целиком массив записать.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Unit1.h
//---------
class mass
{
public:
 mass();
 mass(int,int);
 void max_mass();//
 void min_mass();
 void output_mass();
 void in_mass(int);
 
private:
 int arr[10];
};
mass * A;
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
Unit1.cpp
//---------
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
//вручную--------------------------------------------------------------------
mass::mass()
{
//не получается
}
//рандомно------------------------------------------------------------------
mass::mass(int min,int max)
{
for (int i=0;i<10;i++) arr[i]= random(max-min)+min;
}
//максимальное--------------------------------------------------------------
void mass::max_mass()
{
int t=arr[0];
for (int i=1;i<10;i++)
{
  if (arr[i]>t) t=arr[i];
}
Form1->Memo1->Lines->Add("max="+IntToStr(t));
}
//минимальное----------------------------------------------------------------
void mass::min_mass()
{
int t=arr[0];
for (int i=1;i<10;i++)
{
  if (arr[i]<t) t=arr[i];
}
Form1->Memo1->Lines->Add("min="+IntToStr(t));
}
//вывод----------------------------------------------------------------------
void mass::output_mass()
{
for (int i=0;i<10;i++)
{
  Form1->Memo1->Lines->Add(IntToStr(A->arr[i]));
}
}
//---------------------------------------------------------------------------
//пробовал ввод вручную
void mass::in_mass(int r)
{
//;
//if (Form1->Button1->OnClick)
arr[r]=StrToInt(Form1->Edit1->Text);
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
A = new mass();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
A = new mass(25,50);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
A->output_mass();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
delete A;//очищаем память
A=NULL;        
}
Добавлено через 3 минуты
Ещё такую тему посмотри Непонятки с конструктором класса
1
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 13
21.04.2011, 13:15  [ТС]
Спасибо за помощь все получается.. только бы еще ввод вручную как нибудь ....

Вот что у меня есть:
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
mass::mass()
{
//ввод вручную не получается
}
//рандомно------------------------------------------------------------------
mass::mass(int min,int max)
{
for (int i=0;i<10;i++) arr[i]= random(max-min)+min;
}
//максимальное--------------------------------------------------------------
void mass::max_mass()
{
int t=arr[0];
for (int i=1;i<10;i++)
{
  if (arr[i]>t) t=arr[i];
}
Form1->Memo1->Lines->Add("max="+IntToStr(t));
}
//минимальное----------------------------------------------------------------
void mass::min_mass()
{
int t=arr[0];
for (int i=1;i<10;i++)
{
  if (arr[i]<t) t=arr[i];
}
Form1->Memo1->Lines->Add("min="+IntToStr(t));
}
//вывод----------------------------------------------------------------------
void mass::output_mass()
{
for (int i=0;i<10;i++)
{
  Form1->Memo1->Lines->Add(IntToStr(A->arr[i]));
}
}
//---------------------------------------------------------------------------
//пробовал ввод вручную
void mass::in_mass(int r)
{
 //if (Form1->Button1->OnClick)
arr[r]=StrToInt(Form1->Edit1->Text);
}
void __fastcall TForm1::Button4Click(TObject *Sender)
{
 A = new mass();
 A = new mass(1,50);
 A->output_mass();
 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
delete A;//очищаем память
A=NULL;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Memo1->Text=" ";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
A->max_mass();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
A->min_mass();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
Memo1->Text=" ";
}
//---------------------------------------------------------------------------
http://vnakladnoy.ru/u58639183... s9735_.jpg
0
64 / 64 / 10
Регистрация: 19.10.2009
Сообщений: 234
21.04.2011, 14:21
Цитата Сообщение от JinZh Посмотреть сообщение
только бы еще ввод вручную как нибудь ....
Что ты имеешь ввиду под вводам вручную? Можно организовать разными способами, допустим при выборе ввода вручную запрашиваешь размерность массива, затем создаешь новую форму со стринггридом, передаешь туда указатель на свой массив, далее у стринггрида в свойствах Options -> goEditing поставь true, а в обработчике OnSetEditText заполняй свой массив
1
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 13
21.04.2011, 15:24  [ТС]
Посмотри на форму. в коде Edit и Мemo, возможно ли ввод данных в Edit и вывод в Memo так же как с рендомом, и обработка этого массива : если можно в виде кода для моей программы, что бы наглядно было видно где что менять.. я нуб вообще)

Добавлено через 18 минут
Цитата Сообщение от Larsus Посмотреть сообщение
Что ты имеешь ввиду под вводам вручную? Можно организовать разными способами, допустим при выборе ввода вручную запрашиваешь размерность массива, затем создаешь новую форму со стринггридом, передаешь туда указатель на свой массив, далее у стринггрида в свойствах Options -> goEditing поставь true, а в обработчике OnSetEditText заполняй свой массив
Точнее все понятно, но если начал с Memo то нужно закончить, посмотрите внимательно на код , где коментарий к конструктору и функции mass_in, хотелось бы что бы поле Memo можно было обрабатывать не только random но и вручную (см. ссылку на форму) и что бы одно другому не мешало. Очистил поле к примеру , ввел вручную.. нажал "максимальное" вывело .

Добавлено через 12 минут
Unit1.h такой как у мистера Grey

Добавлено через 8 минут
извените, вот ссылка
0
Тутошний я
 Аватар для Grey
2147 / 1202 / 225
Регистрация: 03.11.2009
Сообщений: 4,424
Записей в блоге: 2
22.04.2011, 11:29
C++
1
2
3
4
5
6
7
8
//вручную--------------------------------------------------------------------
mass::mass()
{
for (int i=0;i<10;i++)
{
  arr[i]= StrToInt(Form1->Memo1->Lines->Strings[i]);
}
}
1
0 / 0 / 0
Регистрация: 18.04.2011
Сообщений: 13
25.04.2011, 11:00  [ТС]
а как cвязать это с Edit в той функции что вы описывали

Добавлено через 1 час 16 минут
Препод ваще сказал что через RadioButton нужно сделать переключение вручную и рандомом
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.04.2011, 11:00
Помогаю со студенческими работами здесь

Работа с классами в билдере. Функции
Добрый день. Есть задание - написать опеределенную программу - сглаживания данных. Есть техническое задание, по которому эта программа...

Ошибки с классами
Никак не могу разобраться, где ошибка, вроде бы все описано, но все равно выдает, что нет такого метода в классе. Помогите пожалуйста) ...

Основы работы с классами
доброго времени суток. читаю про классы но че та не понимаю вот вроде создал новый класс class TForm1 : public TForm { ...

Неоднозначность между классами
Есть код который работал в Dev C++, задача была переделать его так что бы он выполнял ту же функцию но Borland C++ Builder 6. Ну я начал с...

Не получается разобраться с абстрактными классами
Всем привет, у меня пара вопросов, не получается почему скомпилить файл. Ругается, видимо что то не понимаю до конца с абстрактными...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru