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

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

20.04.2011, 20:50. Показов 4366. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Номеклатура. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru