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

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

09.03.2009, 13:37. Показов 7694. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru