Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Обработка переменных в C++
 
 автор: itica   (05.04.2006 в 21:31)   письмо автору
 
 

Помогите пожалуйста, у нас в городе нигде нет книг по C++, под заказ должны привезти только 15 апреля.
Вообщем такая проблема, нужно реализовать такую системку:
Пользователь вводит в поле edit значение переменной, а при нажатии на кнопку, производятся различные математические операции с данной переменной и затем она выводится в поле lable.

   
 
 автор: Guest   (05.04.2006 в 22:17)
 
   для: itica   (05.04.2006 в 21:31)
 

Раз уж тема есть: можно ли чтобы данные котрые ввёл пользователь сами попадали в нужный вид переменной.

   
 
 автор: cheops   (05.04.2006 в 22:43)   письмо автору
 
   для: itica   (05.04.2006 в 21:31)
 

Что не очень понятно, что подразумевается под "производятся различные математические операции"... Как примерно должна выглядеть работа программы?

   
 
 автор: itica   (05.04.2006 в 22:48)   письмо автору
 
   для: cheops   (05.04.2006 в 22:43)
 

План примерно такой:
1. Пользователь вводит число.
2. Это число умножается на 3.
3. Пользователю выводится получившиеся число.
Меня интересует именно то, как сделать это в окошках.

   
 
 автор: codexomega   (05.04.2006 в 22:53)   письмо автору
 
   для: itica   (05.04.2006 в 22:48)
 

Смотря каким инструментом пользуетесь.
Если в визуальной среде, то там все просто, надо только выбрать событие: On_Click или On_Change в коде формы.

Форму нарисовали, идите в код и вызывайте объекты формы в соответсвтующей функции, типа my_form->my_textbox->Text = "Hello!";

   
 
 автор: Guest   (05.04.2006 в 23:00)
 
   для: codexomega   (05.04.2006 в 22:53)
 

А как насчёт моего вопроса?

   
 
 автор: cheops   (05.04.2006 в 23:02)   письмо автору
 
   для: Guest   (05.04.2006 в 23:00)
 

Я если честно не понял, что требуется....

PS Под разные вопросы, лучше заводить разные темы...

   
 
 автор: codexomega   (05.04.2006 в 23:15)   письмо автору
 
   для: Guest   (05.04.2006 в 23:00)
 

А какова задача?
Не видел подобных проблем. Вы сами определяете тип переменных,которые затем получают значение введенное пользователем. Если что, можно всегда переконвертировать например строку в цифровое значение и наоборот.

   
 
 автор: Guest   (05.04.2006 в 23:26)
 
   для: codexomega   (05.04.2006 в 23:15)
 

Нужно написать пограмму, которая решает простые уровнения:
Имеется три окошка, под 1 слогаемое, под 2 и под результат соответственно, но одно из них может быть неизвестным (X), нужно сделать так, чтобы программа нашла этот X и выполнила соответствующую операцию.
В моём варианте программа выдаёт ошибку, из за несоответствий вида переменных.

PS: Я новичок.

   
 
 автор: Guest   (05.04.2006 в 23:33)
 
   для: Guest   (05.04.2006 в 23:26)
 

Тут по ходу дела вылезла такая проблема: при таком условии:

if (znak==+)

Компилятор мне почему то выдаёт ошибку :(

   
 
 автор: codexomega   (05.04.2006 в 23:40)   письмо автору
 
   для: Guest   (05.04.2006 в 23:33)
 


 if(strcmp(znak,"+") == 0)

   
 
 автор: Guest   (05.04.2006 в 23:46)
 
   для: codexomega   (05.04.2006 в 23:40)
 

Может плохо объяснил, попробую проще:
Нужно сделать так, чтобы программа поняла какое из слогаемых неизвестно.

   
 
 автор: codexomega   (06.04.2006 в 01:56)   письмо автору
 
   для: Guest   (05.04.2006 в 23:46)
 

Если форма похожа на ту что в атаче, тогда неизвестное, это то поле, что осталось пустым.
Тут будет действовать такой алгоритм:
Если все поля заполненны, считай сумму.
Если одно поле осталось пустым и если результат введен, тогда решение => (результат - введеное поле)

   
 
 автор: itica   (06.04.2006 в 09:41)   письмо автору
 
   для: codexomega   (06.04.2006 в 01:56)
 

Уровнение должно рещать примеры только на сложение или нет?

   
 
 автор: Guest   (06.04.2006 в 10:43)
30.3 Кб
 
   для: itica   (06.04.2006 в 09:41)
 

У меня раньше было, как в аттаче, но сечас стало необходимо добавить форму, возможность решения уровнений на вычетание, и чтобы неизвестным был не 0, а Х.

   
 
 автор: itica   (06.04.2006 в 11:40)   письмо автору
 
   для: Guest   (06.04.2006 в 10:43)
 

Глянте на форму:

   
 
 автор: Guest   (06.04.2006 в 11:41)
 
   для: Guest   (06.04.2006 в 10:43)
 

С формой разобрался, но никак не знаю как задать условие для ComboBox, пробовал так:

if (ComboBox1->Text.ToChar()=="+")

Но ничего не получилось, ругается:

[C++ Ошибка] Unit1.cpp(20): E2316 'ToChar' is not a member of 'AnsiString'

   
 
 автор: codexomega   (05.04.2006 в 23:36)   письмо автору
 
   для: Guest   (05.04.2006 в 23:26)
 

Значения в текстовых полях, по умолчанию - строка (String).
Надо переконвертировать в цифровое значение(int, float или double).

   
 
 автор: cheops   (05.04.2006 в 23:53)   письмо автору
 
   для: Guest   (05.04.2006 в 23:26)
 

Неизвестное может состоять только из одного символа или вместо X допускается использование XXX?

   
 
 автор: itica   (06.04.2006 в 09:39)   письмо автору
 
   для: cheops   (05.04.2006 в 23:53)
 

Уровнение должно рещать примеры только на сложение или нет?

   
 
 автор: Guest   (06.04.2006 в 13:01)
 
   для: cheops   (05.04.2006 в 23:53)
 

Можно даже не X, а пустое место. У меня не получается :(

   
 
 автор: codexomega   (06.04.2006 в 19:34)   письмо автору
 
   для: Guest   (06.04.2006 в 13:01)
 

Насчет combobox, поставьте точку или -> на С++?
После combobox, вам выведут все его свойства и методы. Выберите то что вам надо.
Например selectedText, selectedValue ...

if(my_cbo.selectedValue == "")
...

   
 
 автор: itica   (06.04.2006 в 21:28)   письмо автору
 
   для: codexomega   (06.04.2006 в 19:34)
 

Ещё я хотел разделить 2 на 3, но так как получится число с плавующей точкой происходит ошибка. Подскажите как её избежать.

   
 
 автор: codexomega   (06.04.2006 в 22:07)   письмо автору
 
   для: itica   (06.04.2006 в 21:28)
 

Как происходит деление, переменная делится на переменную, переменная на число(константу), или число на число?
Каких типов переменные? Какоого типа переменная содержащая результат?
Всегда можно воспользоваться конверсией типов.
Скажем так:

int nb1 = 9;
int nb2 = 4;
float result;

result = (float)nb1/(float)nb2;

Это для того чтобы переконвертировать int в float.


Надо мне тоже компилятор С++ установить, 100 лет уже с этим языком не работал:)

   
 
 автор: itica   (06.04.2006 в 22:54)   письмо автору
 
   для: codexomega   (06.04.2006 в 22:07)
 

Ещё имеется один вопросик по данной теме: Нужно вывести в Label4 данные из полей Edit и математические знаки. Пробую так:

Label4->Caption=Edit3->Text,"-",Edit2->Text,"=",Edit1->Text;

Но выводятся только данные из последнего поля.

PS: Прошу прощения если я Вам уже надоел. До прибытия книги больше таких глупых вопросов постараюсь не задавать :)

   
 
 автор: codexomega   (06.04.2006 в 23:04)   письмо автору
 
   для: itica   (06.04.2006 в 22:54)
 

Здесь еще от среды разработки зависит.
Если работаете с Борлэндом, приобретайте литературу С++ для Борлэнда.

Попробуйте сделать так:


string result = "";

result = result + (Edit3.Text + "-" + Edit2.Text + "-" + Edit1.Text);
Label4->Caption = result;


Ну, если что, замените плюсы на запятые(в скобках).
Короче все вставляете в строку, затем строку помещаете в лэйбл.

   
 
 автор: itica   (06.04.2006 в 23:45)   письмо автору
 
   для: codexomega   (06.04.2006 в 23:04)
 

Борлэнд выдаёт ошибку:

[C++ Ошибка] Unit1.cpp(25): E2015 Ambiguity between '_fastcall System::operator +(double,const System::Variant &)' and '_fastcall System::operator +(int,const System::Variant &)'

Книгу привезут только 15 числа.

   
 
 автор: itica   (07.04.2006 в 09:18)   письмо автору
 
   для: itica   (06.04.2006 в 23:45)
 

Помогите хотябы просто расшифровать ошибку.

   
 
 автор: itica   (07.04.2006 в 10:22)   письмо автору
 
   для: itica   (07.04.2006 в 09:18)
 

Разобрался:

 Label4->Caption = Edit3->Text + "-" + Edit1->Text + "=" + Edit2->Text;

   
 
 автор: cheops   (05.04.2006 в 23:00)   письмо автору
27.2 Кб
 
   для: itica   (05.04.2006 в 22:48)
 

Если без обработки корректного ввода и красивостей, можно поступить следующим образом.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования