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

Объясните ошибку

15.07.2010, 18:01. Показов 1482. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я только пробую, это одна из первых моих попыток, не могу понять как нужно преобразовать
переменную
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
#include <vcl.h>
#pragma hdrstop
 
#include "CALCULATION_bautrate.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
unsigned long Fsoc;
unsigned long Fcy;
 long BAUD_RATE_new;
 long BAUD_RATE;
 double  error;
unsigned long  UxBRG;
unsigned long prom,i;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        AnsiString Fsoc=Edit1->Text;
        AnsiString BAUD_RATE=Edit2->Text;
 
        if((Fsoc=="")|(BAUD_RATE==""))Label3->Caption="Íå âñå ïîëÿ çàïîëíåíû";
        else
        {
        Fcy=Fsoc/2;
        if(CheckBox1->Checked)prom=BAUD_RATE*4;
        else prom=BAUD_RATE*16;
        UxBRG=(Fcy/prom)-1;
        if(CheckBox1->Checked)BAUD_RATE_new=Fcy/(4*(UxBRG+1));
        else  BAUD_RATE_new=Fcy/(16*(UxBRG+1));
       // error =((BAUD_RATE_new - BAUD_RATE)/BAUD_RATE)*100;  //Здесь компилятор ругаеться
        Label3->Caption=UxBRG;
        Label4->Caption=error;
        }
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
  if ((Key >= '0') && (Key <= '9')) {}  // öèôðû
else if (Key == 8) {}  // <-
else if ((Key == '.') || (Key == ',')) // çàïÿòàÿ
        {
        if (((TEdit*)Sender)->Text.Pos(DecimalSeparator)!=0) // åñëè çàïÿòàÿ óæå åñòü
                Key = 0;
        else // åñëè åù¸ íåò
                Key = DecimalSeparator;
        }
else Key = 0; // íå öèôðà
      
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Edit2KeyPress(TObject *Sender, char &Key)
{
 if ((Key >= '0') && (Key <= '9')) {}  // öèôðû
else if (Key == 8) {}  // <-
else if ((Key == '.') || (Key == ',')) // çàïÿòàÿ
        {
        if (((TEdit*)Sender)->Text.Pos(DecimalSeparator)!=0) // åñëè çàïÿòàÿ óæå åñòü
                Key = 0;
        else // åñëè åù¸ íåò
                Key = DecimalSeparator;
        }
else Key = 0; // íå öèôðà
 
}
//---------------------------------------------------------------------------
компилятор ругаеться на закоментированую строку:
[C++ Error] CALCULATION_bautrate.cpp(40): E2015 Ambiguity between '_fastcall System::operator -(int,const System::Currency &)' and '_fastcall System::operator -(double,const System::Variant &)'
Подскажите как это исправить и почему эта строка ему не нравиться?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.07.2010, 18:01
Ответы с готовыми решениями:

Объясните ошибку - Invalid floating point operation
Invalid floating point operation что это за ошибка???? очень нужно!!

Объясните ошибку [Linker Error] Unresolved external '__fastcall TForm1
Unresolved external '__fastcall TForm1::SpeedButton3Click(System::TObject *)' referenced from C:\DOCUMENTS AND SETTINGS\ADMIN\МОИ...

Программа выдает ошибку [C++ Error] Unit1.cpp(23): E2062 Invalid indirection, объясните пожалуйста в чем причина и как можно исправить
Программа выдает ошибку Unit1.cpp(23): E2062 Invalid indirection, объясните пожалуйста в чем причина и как можно исправить.подобную ошибку...

10
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
15.07.2010, 18:15
вы уж определитесь с типом переменной, потому что билдер никак не может понять этого
long BAUD_RATE;

AnsiString BAUD_RATE=Edit2->Text;
0
9 / 9 / 1
Регистрация: 15.07.2010
Сообщений: 19
15.07.2010, 18:45
Данная ошибка возникает из-за кого, что компилятор не может понять, в какой тип преобразовывать число или переменную. Обычно для решения данной проблемы нужно явно указать во что преобразовывать через static_cast...

Но тут что-то не подходит..

Ошибка в (BAUD_RATE_new - BAUD_RATE).. тоесть в -.. но перенные одного типа..

Код точно скопирован?

Добавлено через 2 минуты
О! точно!! получается что локальная переменная BAUD_RATE перекрывает глобальную.. тоесть в BAUD_RATE_new - BAUD_RATE BAUD_RATE это строка... отсюда и ошибка.
0
0 / 0 / 0
Регистрация: 15.07.2010
Сообщений: 5
15.07.2010, 19:34  [ТС]
Я понимаю, что не чего непонимаю
Мне нужно присвоить переменной BAUD_RATE значение введённое пользователем в Edit2
насколько я понял Edit2.text имеет строковый тип
после этого мне нужно выполнять уже действия с этой переменной, AnsiString BAUD_RATE я думал
что преобразует в число. Поправте как нужно с этим работать.
О! точно!! получается что локальная переменная BAUD_RATE перекрывает глобальную.. тоесть в BAUD_RATE_new - BAUD_RATE BAUD_RATE это строка... отсюда и ошибка.
А тут я совсем не понял, переменная ведь объявленна один раз,
в функции я же её не объявлял.
или не так?
0
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
15.07.2010, 22:18
Цитата Сообщение от Blox Посмотреть сообщение
Мне нужно присвоить переменной BAUD_RATE значение введённое пользователем в Edit2
Цитата Сообщение от Blox Посмотреть сообщение
А тут я совсем не понял, переменная ведь объявлена один раз,
в функции я же её не объявлял.
или не так?
Не так.
Мне кажется, вы не поняли суть глобальной и локальной переменной.
Смотрите.
В 12-ой строке вы объявляете глобальную переменную:
C++
1
long BAUD_RATE;
Далее, в обработчике события OnClick для Button1, вы делаете локальное объявление (27 строка):
C++
1
AnsiString BAUD_RATE=Edit2->Text;
Насколько я понял, вы хотите получить значение типа float, которое будет хранится в Edit2->Text... В этом случае, вам нужно было поступить примерно так:
C++
1
BAUD_RATE=Edit2->Text.ToDouble();
1
0 / 0 / 0
Регистрация: 15.07.2010
Сообщений: 5
15.07.2010, 22:30  [ТС]
Большое спасибо за объяснение!!!
А подскажите пожалуйста, в случае ошибки и зависания при отладке, как можно выйти из режима отладки. У меня получаеться только завершить процесс в диспетчере задач
Извиняюсь за свою безграммотность, до этого работал только с микроконтроллерами.
0
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
15.07.2010, 22:36
Blox, нужно перейти в С++ Builder и сделать остановку отладки: Run -> Program Reset (горячая клавиша Ctrl+F2).
По-моему, только в 6-ой версии билдера кнопка остановки не вынесена на панель. Отредактируйте панель инструментов и вам будет намного удобнее управлять процессом.
1
 Аватар для Lelik-pahan
1709 / 905 / 207
Регистрация: 25.11.2009
Сообщений: 1,850
15.07.2010, 22:38
Ctrl + F2
0
0 / 0 / 0
Регистрация: 15.07.2010
Сообщений: 5
16.07.2010, 20:17  [ТС]
Всем большое спасибо!!! Вот что получилось:
Вложения
Тип файла: zip CALCULATION_BAUD_RATE.zip (12.1 Кб, 17 просмотров)
0
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
16.07.2010, 20:20
Blox, ваше приложение не смогут запустить пользователи, у которых не установлен BCB 6.
Выполните действия, указанные в этой теме: Компиляция программы под С++ Builder, чтобы работала на других компьютерах
1
0 / 0 / 0
Регистрация: 15.07.2010
Сообщений: 5
16.07.2010, 20:54  [ТС]
Переделал, посмотрите пожалуйста правильно или нет?
В принципе программка только для меня ипользоваться ей буду только при создании нового проекта, но учиться как правильно делать, нужно всегда
мне лень считать калькулятором вот решил попробывать облегчить себе работу
Вложения
Тип файла: zip CALCULATION_BAUD_RATE.zip (245.4 Кб, 11 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.07.2010, 20:54
Помогаю со студенческими работами здесь

Объясните ошибку
Программа не запускается, выдавая ошибку no match for 'operator&gt;&gt;' (operand types are 'std::basic_istream&lt;char&gt;' and...

Объясните ошибку
Напишите программу, которая считывает список чисел lstlst из первой строки и число x из второй строки, которая выводит все позиции, на...

Объясните ошибку
&lt;?php $oblast = , &quot;Одесская область&quot;=&gt;, &quot;Ростовская область&quot;=&gt;, &quot;Кишиневская область&quot;=&gt; ]; foreach...

Объясните ошибку
using namespace std; int main(){ setlocale(LC_ALL, &quot;Russian&quot;); system(&quot;color 0E&quot;); srand(time(NULL)); cout &lt;&lt;...

Объясните ошибку
Добрый вечер, объясните, в чем состоит ошибка в программе? .data source byte &quot;This is the source string&quot; byte 0 ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru