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

Работа с классами в билдере. Функции

09.03.2009, 13:37. Показов 7471. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Есть задание - написать опеределенную программу - сглаживания данных.
Есть техническое задание, по которому эта программа должна быть написана.
За два дня написал саму прогу (прога то простая, относительно, все основные действия по нажатию одной кнопки).
Вот только по тех. заданию, в программе обязательно должны присутствовать классы, и описано, какие, и с какими функциями.

Так вот, я не могу разобраться, как же работать с классами в билдере.
Есть файл unit1.cpp, в котором написан весь код
Нужно в заголовочный файл (unit1.h) перенести часть кода, раскидать по функциям и классам, да так чтобы работало))
В-общем-то, работу классов и функций себе представляю. Однако, при переносе, например вот такого кода в заголовочный файл в ф-ию
C++
1
2
3
4
5
6
7
8
FileInput()
        {
                if (!OpenDialog1->Execute()) return;
                TStringList *list = new TStringList;
                list->LoadFromFile(OpenDialog1->FileName);
                Edit1->Text = list->Strings[0];
                delete list;
        }
си выдает ошибку, что мол OpenDialog1 не определен.

В-общем, если кто может, помогите мне на примере данного кода (чтения данных из файла) разобраться с классами/функциями. Буду премного благодарен.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.03.2009, 13:37
Ответы с готовыми решениями:

Работа с формами в билдере!
Вообщем у меня есть Form1,и какая-то функция в другом юните. В Form1 ,в обработчике нажатия кнопки ,я вызываю эту функцию,и во время её...

Работа с файлами в Билдере
подскажите пожалуйста, а как записать содержимое StringGrid в файл? а то на SaveToFile он не отзывается, а по другому как я пока не знаю) ...

Работа с внешними файлами в билдере
Здравствуйте. Вопрос заключается в следующем. Имеется код: int kupyiri,moneti; float chislo; OpenDialog1-> Filter = "Файлы ...

27
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
10.03.2009, 19:23
Студворк — интернет-сервис помощи студентам
обычная функция int Choose(TObject* r1, TObject* r2, TObject* r3), а внутри приводишь типы параметров к радиобатон и делаешь, что хочешь... на счет переменных в классе это я погорячился, можно и без них обойтись
0
0 / 0 / 0
Регистрация: 07.03.2009
Сообщений: 36
10.03.2009, 19:40  [ТС]
я извиняюсь, но, кажется, функция int должна возвращать некое целое значение? а В параметрах я вижу только объекты. Не понимаю, к сожалению.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
10.03.2009, 20:05
mrtman, так вы с не слишком знакомы тогда, возвращаемый тип - это точно указывается в опереаторе return, в передаваемых параметрах необязательно что-то должно быть с типом, который функция возвращает
0
0 / 0 / 0
Регистрация: 07.03.2009
Сообщений: 36
11.03.2009, 17:09  [ТС]
я тут еще немного почитал про функции.
Значит так, возник вопрос..
Я хочу сделать функцию, которая при нажатии Button1 проверяла бы, какой из RadioButton'ов checked=true и присваивала бы переменной rdb номер, в зависимости от радиобаттона.
Следовательно, мне нужно, чтобы тип функции был int, так? И параметр у нее должен быть int?
Ну подтолкните меня в правильном направлении.
Простое действие в программе не могу переделать в функцию:
C++
1
2
3
if (RadioButton1->Checked==true) rdb=1;
                if (RadioButton2->Checked==true) rdb=2;
                if (RadioButton3->Checked==true) rdb=3;
Надо ли мне написать что-то вроде следующего?
C++
1
2
3
4
5
6
7
8
9
10
int Choose(int kl)
        {
                if (RadioButton1->Checked==true) kl=1;
                if (RadioButton2->Checked==true) kl=2;
                if (RadioButton3->Checked==true) kl=3;
                return kl;
//по нажатию баттона
EnterData ch;
ch.Choose(rdb);
        }
я хоть в правильном направлении двигаюсь? Я просто все еще не "догоняю" функций.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
11.03.2009, 17:33
int Choose (int kl)
тип возвращаемого значения имя функции передаваемый параметр

вам надо не передавать параметр, а возвращать..
т.е. объявите в теле функции int kl и возвращайте его с помощью команды return...
0
0 / 0 / 0
Регистрация: 07.03.2009
Сообщений: 36
11.03.2009, 17:41  [ТС]
WooDooMan, интересно, примерно к такому же выводу пришел 1 минуту назад. Сделал следующее:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int Choose(void)
        {
                int kl=1;
                if (RadioButton1->Checked==true) kl=1;
                if (RadioButton2->Checked==true) kl=2;
                if (RadioButton3->Checked==true) kl=3;
                return kl;
//
EnterData ch;
int rdb;
rdb=ch.Choose();
        }
Ошибка - есть. Могу дать скриншот, однако, полагаю, Вы и так сможете назвать мне мою ошибку?
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
11.03.2009, 17:57
вам надо передавать эти радиобатоны в функцию, тогда ошибки не будет, либо передавать значение их свойства checked
1
0 / 0 / 0
Регистрация: 07.03.2009
Сообщений: 36
11.03.2009, 18:43  [ТС]
WooDooMan, спасибо! сделал следующее:
C++
1
2
3
4
5
6
7
8
9
10
11
int Choose(TRadioButton *RadioButton1, TRadioButton *RadioButton2, TRadioButton *RadioButton3)
        {
                int kl=1;
                if (RadioButton1->Checked==true) kl=1;
                if (RadioButton2->Checked==true) kl=2;
                if (RadioButton3->Checked==true) kl=3;
                return kl;
//
EnterData ch;
rdb=ch.Choose(RadioButton1, RadioButton2, RadioButton3);
        }
Работает прекрасно. Еще раз огромное спасибо. Очень хочется надеяться, что проблем с функциями более не возникнет, но верится в это с трудом)

Добавлено через 40 минут 5 секунд
Вопрос. Можно ли использовать в качестве параметров функции значения int и float одновременно?
Требуется задать функции целую переменную size (размер массива) и вещественную x[size], произвести вычисления и вывести вещественный массив y1[size]. Делаю следующим образом:

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
class Transformation: EnterData
{
        public:
        TEdit *Edit2;
        float L3(int size, float x[100])
                {
                int i;
///////////////////первый метод////////////////////////////
                if (rdb==1)     //если радиобаттон1 то 1й метод
                {
                        y1[0]=(5*x[0]+2*x[1]-x[2])/6;
                        for (i=1;i<size;i++)
                        {
                                y1[i]=(x[i-1]+x[i]+x[i+1])/3;
                        }
                        y1[size]=(5*x[size]+2*x[size-1]-x[size-2])/6;
                        for (i=0;i<size+1;i++) //вывод данных y1 (первый метод)
                        {
                                Edit2->Text=Edit2->Text+FloatToStr(y1[i])+" ";
                        }
 
                }
//////////////конец первого метода///////////////////
                        return y1[size];
                }
};
 
//в тексте:
Transformation first;
y1[size]=first.L3(size, x[size]);
Ошибка: Incompatible type conversion, указывает на строку вызова функции
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.03.2009, 18:43
Помогаю со студенческими работами здесь

Нужна курсовая работа в с++ в виде консоли или бд в билдере
ребята,нужна курсовая работа в с++ в виде консоли или бд в билдере помогите кому нетрудно!! пожалуйста!!

В билдере есть функции для работы с деревьями?
Собственно нужны функции для работы со списком типа: param1 = value1 param2 = value2 который состоит из большого числа элементов,...

Работа с классами
Для практики на c++, делаю небольшую игрушку. Возникла проблема с присваиванием класса. // RPG___ForCyberForum.cpp: определяет точку...

Работа с классами.
Или это задача такая лёгкая (на экзамене будет), или я чего-то не понимаю. В классе Pair может содержаться только 2 числа (ну и 2 метода не...

Работа с классами
Здравствуйте, я здесь первый раз, если что извините, за неккоректность, ввода или задания вопроса Я написал (например): class Figure...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю 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. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru