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

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

09.03.2009, 13:37. Показов 7632. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru