Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
89 / 36 / 5
Регистрация: 04.05.2011
Сообщений: 239
1

Если значения не введены, то как синтаксически писать?

13.06.2011, 13:51. Показов 1792. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
if((a||b||d)==""){   //как правильно записать? На этой строке ошибка: Cannot convert 'bool' to 'char*'
   ShowMessage("Заполните все поля");
}
else{
  //Формула
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2011, 13:51
Ответы с готовыми решениями:

Как вывести ошибку showmessage из memo, если введены не валидные значения?
Как вывести ошибку showmessage из memo, если введены не валидные значения? через case key of...

Сравнивает ли значения функция srtcmp, если они введены русскими буквами?
Сравнивает ли значения функция srtcmp,если они введены русскими буквами?

Как вставить строку в Excel, если в столбцах введены формулы
Предположим, в таблице есть много столбцов с запрограммированными формулами, например:...

Проверка символов, если неправильно введены данные - как их не дать сохранить и записать?
Ребята, в общем вопрос вот в чем: При записи какого-либо счета я проверила на наличие только цифр,...

13
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
13.06.2011, 14:01 2
a.b,d типа bool насколько я понимаю? Тогда так:
C++
1
2
3
4
if((a||b||d)
{
 ...
}
Если все должны быть true одновременно, тогда
C++
1
2
3
4
if((a&&b&&d)
{
 ...
}
0
89 / 36 / 5
Регистрация: 04.05.2011
Сообщений: 239
13.06.2011, 14:31  [ТС] 3
нет, у меня не bool, а double

Добавлено через 23 минуты
да вообще-то мне нужно так, если не заполнены все поля, то выводит сообщение об ошибке, иначе вычисляется.
0
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
13.06.2011, 15:22 4
Цитата Сообщение от Neo_AVE Посмотреть сообщение
если не заполнены все поля
Поля таблицы, Едиты? Что за поля?
0
89 / 36 / 5
Регистрация: 04.05.2011
Сообщений: 239
13.06.2011, 15:52  [ТС] 5
Maluda, едиты.
C++
1
2
3
4
5
6
7
8
9
10
a=Edit1->Text.ToDouble();      
        b=Edit2->Text.ToDouble();       
        d=Edit3->Text.ToDouble();       
        if((a||b||d)=='0'){
            ShowMessage("Заполните все поля");
        }
        else{
        Vsrr=(a+20)*(b+20)*d;
...
}
0
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
13.06.2011, 16:01 6
C++
1
2
3
if (Edit1->Text.IsEmpty()||Edit2->Text.IsEmpty()||Edit3->Text.IsEmpty()) {
     ShowMessage("Заполните все поля");
}
1
89 / 36 / 5
Регистрация: 04.05.2011
Сообщений: 239
13.06.2011, 16:07  [ТС] 7
но выводится не такое сообщение, а такое:
Миниатюры
Если значения не введены, то как синтаксически писать?  
0
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
13.06.2011, 16:16 8
Да потому что в Edit'ах надо проверять тип перед конвертацией
C++
1
2
3
4
5
6
7
8
9
10
11
double dA = 0.0;
double dB = 0.0;
double dC = 0.0;
if (TryStrToFloat(Edit1->Text,dA)&&
    TryStrToFloat(Edit1->Text,dB)&&
    TryStrToFloat(Edit1->Text,dC)) {
    // всё правильно, делаем рассчёт
}
else {
    // ошибка, одно из полей или пустое, или не является числом с плавающей точкой 
}
0
89 / 36 / 5
Регистрация: 04.05.2011
Сообщений: 239
13.06.2011, 16:31  [ТС] 9
тоже самое, без изменений.
0
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
13.06.2011, 16:38 10
Ошибка у тебя возникает в этом месте,

Цитата Сообщение от Neo_AVE Посмотреть сообщение
Edit1->Text.ToDouble()
меняй вот это на TryStrToFloat

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
double dA = 0.0;
double dB = 0.0;
double dC = 0.0;
if (TryStrToFloat(Edit1->Text,dA)&&
        TryStrToFloat(Edit2->Text,dB)&&
        TryStrToFloat(Edit3->Text,dC)) {
        // всё правильно, делаем рассчёт
        Vsrr=(dA+20)*(dB+20)*dC;
}
else {
        // ошибка, одно из полей или пустое, или не является числом с плавающей точкой
        ShowMessage("Проверьте все поля!"); 
}
1
89 / 36 / 5
Регистрация: 04.05.2011
Сообщений: 239
13.06.2011, 16:45  [ТС] 11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 a=Edit1->Text.TryStrToFloat();      
        b=Edit2->Text.TryStrToFloat();       
        d=Edit3->Text.TryStrToFloat();       
        if(TryStrToFloat(Edit1->Text,a)&&TryStrToFloat(Edit2->Text,b)&&TryStrToFloat(Edit3->Text,d)){
           Vsrr=(a+20)*(b+20)*d;
           AnsiString sVsrr=FormatFloat("0.000",Vsrr);
           Lbl5->Alignment=taCenter;
           Lbl5->Caption="Длина: "+ String(b)+ " м\n" + "Ширина: " +String(a) +
                " м\n" + "толщина: " + String(d)+ " м\n" +
                "Объем растительной срезки:" +
                sVsrr +  "куб. м.";
        }
        else{
            ShowMessage("Заполните все поля");
        }
3 ошибки: 'TryStrToFloat' is not a member of 'AnsiString'

Добавлено через 1 минуту
или так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
a=Edit1->Text.ToDouble();      
        b=Edit2->Text.ToDouble();       
        d=Edit3->Text.ToDouble();       
        if(TryStrToFloat(Edit1->Text,a)&&TryStrToFloat(Edit2->Text,b)&&TryStrToFloat(Edit3->Text,d)){
           Vsrr=(a+20)*(b+20)*d;
           AnsiString sVsrr=FormatFloat("0.000",Vsrr);
           Lbl5->Alignment=taCenter;
           Lbl5->Caption="Длина: "+ String(b)+ " м\n" + "Ширина: " +String(a) +
                " м\n" + "толщина: " + String(d)+ " м\n" +
                "Объем растительной срезки:" +
                sVsrr +  "куб. м.";
        }
        else{
            ShowMessage("Заполните все поля");
        }
Добавлено через 3 минуты
Спасибо! Я уже сделала по Вашему коду, все работает прекрасно
0
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
13.06.2011, 16:47 12
Ну, молодец!
0
89 / 36 / 5
Регистрация: 04.05.2011
Сообщений: 239
13.06.2011, 16:48  [ТС] 13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
double a=0.0;
        double b=0.0;
        double d=0.0;
        if(TryStrToFloat(Edit1->Text,a)&&TryStrToFloat(Edit2->Text,b)&&TryStrToFloat(Edit3->Text,d)){
           Vsrr=(a+20)*(b+20)*d;
           AnsiString sVsrr=FormatFloat("0.000",Vsrr);
           Lbl5->Alignment=taCenter;
           Lbl5->Caption="Ширина: "+ String(a)+ " м\n" + "Длина: " +String(b) +
                " м\n" + "Толщина: " + String(d)+ " м\n" +
                "Объём срезки растительного слоя:" +
                sVsrr +  "куб. м.";
        }
        else{
            ShowMessage("Заполните все поля");
        }
0
69 / 69 / 2
Регистрация: 10.05.2011
Сообщений: 174
13.06.2011, 16:48 14
А разве так нельзя?
C++
1
2
3
4
if((Edit1->Text.Length()==0)||(Edit2->Text.Length()==0)||(Edit3->Text.Length()==0))
     ShowMessage("ВВедите все поля");
else
     ...
2
13.06.2011, 16:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.06.2011, 16:48
Помогаю со студенческими работами здесь

Допустима ли запись string of real?Как представить переменную если в строку введены дейтсвительные числа?
Допустима ли запись string of real?Как представить переменную если в строку введены дейтсвительные...

Как исключить из Comboboxa значения, которые уже были введены в ячейки Excel?
Вот, допустим, я ввожу данные в 4-х combobox'ax, после ввода нажатием кнопки, каждый combobox...

Как лучше учиться: писать консольные приложения или оконные? И если писать оконные, то на чём лучше?
На днях я узнал про Borland c++ builder и хочу воспользоваться им, но можно и писать код, что-бы...

Закрытие программы, если правильно введены данные
Как сделать, если я авторизовался, меня должно перекидывать на форму 2, а если не правильно данные...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru