Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 12.02.2011, 19:40   #1
Fier
Пользователь
 
Регистрация: 12.02.2011
Сообщений: 21
Смех С++ Пересчет фунтов. Усложненная!

Привет всем. Изучаю С++.
Решил написать программку которая пересчитывает Фунты в КГ и литры.
Написал, все работает, но хочу усложнить задачку. При условии когда КГ меньше 1 то выдает месседжбокс. С одной стороны получилось, а с другой нет.

Ошибок нету, но. Я поставил условия после подсчета, что когда меньше единицы то выдает сообщение. Но когда я ввожу допустим 50 фунтов, а при пересчете это будет явно больше 1 кг, оно мне все равно выдется месседж, только начиная со 100 и выше не показывает сообщение и сразу считает. Объясните)))



Вот код:
Код:

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Edit1Change(TObject *Sender, char &Key)
{
     if ( (Edit1->Text).Length() == 0)
         Button1->Enabled = False;
     else Button1->Enabled = True;

     Label2->Caption = "";

     if ((Key >= '0') && (Key <= '9' ))
       return;

     if (Key == DecimalSeparator)
      {
         if ((Edit1->Text).Pos(DecimalSeparator) != 0)
           Key = 0;
         return;
      }

     if (Key == VK_BACK)
      return;

     if (Key == VK_RETURN)

      {
       Button1->SetFocus();
       return;
      }

      Key = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
     float funt;
     float kg;
     float litr;



     funt = StrToFloat(Edit1->Text);
     kg = funt * 0.4995;
     litr = kg;

                            if (kg < '1')
        {
           MessageDlg ("Слишком мало",
              mtInformation, TMsgDlgButtons() << mbOK, 0);
            if ((Edit1->Text).Length() == 0)
              Edit1->SetFocus();

            return;
        };


     Label2->Caption = FloatToStrF(funt,ffGeneral,5,2) +
                       " ф. - это " + FloatToStrF(kg,ffGeneral,5,2) +
                       " кг. И " + FloatToStrF(litr,ffGeneral,5,2) +
                       "Литров";



}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
   Form1->Close();

}
//---------------------------------------------------------------------------

Последний раз редактировалось Stilet; 13.02.2011 в 12:26.
Fier вне форума
Старый 12.02.2011, 21:42   #2
optimator
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 92
По умолчанию

Ошибка здесь
Код:
if (kg < '1')
Если хочешь сравнивать с 1 то надо
Код:
if (kg < 1)
А в твоем случае происходит сравнение с ASCII- кодом символа '1', т.е с 49
optimator вне форума
Старый 12.02.2011, 23:11   #3
Fier
Пользователь
 
Регистрация: 12.02.2011
Сообщений: 21
По умолчанию

Спасибо большое.
Fier вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пересчет формул Uralmaster Microsoft Office Excel 4 03.02.2011 13:00
Пересчет даты atenon Microsoft Office Access 3 10.12.2010 19:17
Пересчет ячеек нарастающим итогом WIC Microsoft Office Excel 2 15.04.2010 17:07
пересчет данных в таблице по примеру. vkopitsa Microsoft Office Word 7 14.03.2010 11:39
Конвертация фунтов freeuser Общие вопросы C/C++ 2 28.01.2010 10:33