Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/32: Рейтинг темы: голосов - 32, средняя оценка - 4.63
 Аватар для Fazer77777
3 / 3 / 1
Регистрация: 29.06.2012
Сообщений: 45

Калькулятор

29.06.2012, 22:56. Показов 6860. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Прошу помощи в решении следущей задачи:

Создать программу (оболочку) на Turbo C++ для 4-рёх операций (сложения, вычитания, умножения, деления) над 2-мя числами A и B. Числа A и B задаются через компоненты TMemo1 и TMemo2 как выделенные строчки и результат сохранить в компонент TLabel при нажатии на кнопку "Вычислить" (компонет TButton). Операция (сложения, вычитания, умножения и деления) должна выбираться с помощью компоненты TComboBox.

Последняя самостаятельная задача для получения долгожданого зачёта, с которой у меня большие трудности. Кто обладает знаниями в этой сфере прошу откликнуться
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.06.2012, 22:56
Ответы с готовыми решениями:

калькулятор
Помогите пожайлуйста с объяснением 4. Организовать в программе калькулятор. В калькуляторе предусмотреть только «кнопочный» набор...

Калькулятор C++
Простейший калькулятор. Помогите пожалуйста.

Калькулятор
Пытаюсь написать калькулятор но чтоб он сразу считал строку, например 5+5*2-1 по идее =14, но мой калькулятор не знает приоритеты...

42
 Аватар для Fazer77777
3 / 3 / 1
Регистрация: 29.06.2012
Сообщений: 45
30.06.2012, 10:03  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от LK Посмотреть сообщение
ну, напишите ему
C++
1
catch(Exception &e) {
, и вырабатывайте гламурную привычку приводить тексты ошибок
Спасибо, запустилась, правда после деления на ноль, пишет просто 0, а сообщения: "Ошибка деления на 0" не видать.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
30.06.2012, 10:09
ну не помню я этого исключения, или EDivByZero
0
 Аватар для Fazer77777
3 / 3 / 1
Регистрация: 29.06.2012
Сообщений: 45
30.06.2012, 10:13  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
ну не помню я этого исключения, или EDivByZero
Ясно, спасибо большое. Буду дальше разбираться, а может кто ещё подскажет.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
30.06.2012, 10:15
Цитата Сообщение от Fazer77777 Посмотреть сообщение
Спасибо, запустилась, правда после деления на ноль, пишет просто 0, а сообщения: "Ошибка деления на 0" не видать.
а запустите-ка приложение не из билдера, а из проводника - экзешник из папки, т.е.
0
 Аватар для Fazer77777
3 / 3 / 1
Регистрация: 29.06.2012
Сообщений: 45
30.06.2012, 10:20  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
а запустите-ка приложение не из билдера, а из проводника - экзешник из папки, т.е.
Тоже самое
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
30.06.2012, 10:25
EDivideByZero на EDivByZero менял?
0
 Аватар для Fazer77777
3 / 3 / 1
Регистрация: 29.06.2012
Сообщений: 45
30.06.2012, 10:29  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
EDivideByZero на EDivByZero менял?
Запускается, а результат тот же.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
30.06.2012, 10:46
тот же, это какой?
0
 Аватар для Fazer77777
3 / 3 / 1
Регистрация: 29.06.2012
Сообщений: 45
30.06.2012, 11:01  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
тот же, это какой?
Т.е. при делении числа на 0 получается 0. Причём, что EDivByZero, что Exception, ему всёравно, только на EDivideByZero ругается.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
30.06.2012, 11:32
блин... if (B=!0)

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
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
  FormatSettings.DecimalSeparator = '.';
  Edit1->Text = "5.0";
  Edit2->Text = "6.0";
  Edit3->Text = "0.0";
  Label1->Font->Size = 18;
  Label1->Font->Color = clRed;
  Label1->Font->Style = Label1->Font->Style << fsBold;
  Label1->Caption = "Результат";
  Label2->Font->Color = clBlue;
  Label2->Caption = "При выборе махинации \"C=A/B\" установите\n"
                    "в поле редактирования № 2 значение 0.";
  ComboBox1->Text = "Махинации";
  ComboBox1->Items->Strings[0] = "C=A+B";
  ComboBox1->Items->Strings[1] = "C=A-B";
  ComboBox1->Items->Strings[2] = "C=A*B";
  ComboBox1->Items->Strings[3] = "C=A/B";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Label1->Caption="";
  double A,B,C;
  A = Edit1->Text.ToDouble();
  B = Edit2->Text.ToDouble();
  C = Edit3->Text.ToDouble();
  int i = 0;
  switch(ComboBox1->ItemIndex) {
    case 0: C=A+B; break;
    case 1: C=A-B; break;
    case 2: C=A*B; break;
    case 3:
    /* этот блок -> */
      if (B==i) {
        ShowMessage("Ошибка деления на 0 .");
      }
      else
        C=A/B;
      /* <- этот блок */
      break;
    }
  Label1->Caption=FloatToStr(C);
}
Миниатюры
Калькулятор  
1
 Аватар для Fazer77777
3 / 3 / 1
Регистрация: 29.06.2012
Сообщений: 45
30.06.2012, 23:03  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
блин... if (B=!0)

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
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
  FormatSettings.DecimalSeparator = '.';
  Edit1->Text = "5.0";
  Edit2->Text = "6.0";
  Edit3->Text = "0.0";
  Label1->Font->Size = 18;
  Label1->Font->Color = clRed;
  Label1->Font->Style = Label1->Font->Style << fsBold;
  Label1->Caption = "Результат";
  Label2->Font->Color = clBlue;
  Label2->Caption = "При выборе махинации \"C=A/B\" установите\n"
                    "в поле редактирования № 2 значение 0.";
  ComboBox1->Text = "Махинации";
  ComboBox1->Items->Strings[0] = "C=A+B";
  ComboBox1->Items->Strings[1] = "C=A-B";
  ComboBox1->Items->Strings[2] = "C=A*B";
  ComboBox1->Items->Strings[3] = "C=A/B";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Label1->Caption="";
  double A,B,C;
  A = Edit1->Text.ToDouble();
  B = Edit2->Text.ToDouble();
  C = Edit3->Text.ToDouble();
  int i = 0;
  switch(ComboBox1->ItemIndex) {
    case 0: C=A+B; break;
    case 1: C=A-B; break;
    case 2: C=A*B; break;
    case 3:
    /* этот блок -> */
      if (B==i) {
        ShowMessage("Ошибка деления на 0 .");
      }
      else
        C=A/B;
      /* <- этот блок */
      break;
    }
  Label1->Caption=FloatToStr(C);
}
Спасибо огромное! Всё шикарно работает
0
30.06.2012, 23:32

Не по теме:

... а как я рад :) .

0
 Аватар для Fazer77777
3 / 3 / 1
Регистрация: 29.06.2012
Сообщений: 45
30.06.2012, 23:41  [ТС]
Цитата Сообщение от LK Посмотреть сообщение

Не по теме:

... а как я рад :) .

Рад, что это вас не достало, а дало возможность потренероваться

Если можно, объясните, пожалйста, эту строчку:

C++ (Qt)
1
A = Memo1->Text.ToDouble()
В чём различие по смыслу с этой:

C++ (Qt)
1
A=StrToFloat(Memo1->Text);
?

На работе прогаммы никак не отражается.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
30.06.2012, 23:45
Fazer77777, по существу, без разницы в данном случае, почитайте про типы double и float.
0
 Аватар для Fazer77777
3 / 3 / 1
Регистрация: 29.06.2012
Сообщений: 45
30.06.2012, 23:50  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
Fazer77777, по существу, без разницы в данном случае, почитайте про типы double и float.
Спасибо, понял, разница в размерах памяти.
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
30.06.2012, 23:50
Для хранения вещественных чисел (с дробной частью) в C++ испольуется два типа: float и double. При этом float занимает 4 байта, а double - 8.
C++
1
2
3
4
Type Name | Bytes | Other Names | Range of Values
 
float     |   4   |    none     | 3.4E +/- 38 (7 digits)
double    |   8   |    none     | 1.7E +/- 308 (15 digits)
0
 Аватар для Fazer77777
3 / 3 / 1
Регистрация: 29.06.2012
Сообщений: 45
30.06.2012, 23:54  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
Для хранения вещественных чисел (с дробной частью) в C++ испольуется два типа: float и double. При этом float занимает 4 байта, а double - 8.
C++
1
2
3
4
Type Name | Bytes | Other Names | Range of Values
 
float     |   4   |    none     | 3.4E +/- 38 (7 digits)
double  |   8   |    none     | 1.7E +/- 308 (15 digits)
Да, точно помню про это, читал. Вопрос, на самом деле был в том, что в одном случае компанент Memo1 в скобках, а в другом - без. Внешне выглядят немного по-другому, а работают вроде одинакого.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
01.07.2012, 00:10
А смысл использовать многострочное окно Мемо?
И почитайте еще про более грамурную функцию FloatToStrF

Добавлено через 59 секунд
Это относительно вашей StrToFloat .

Добавлено через 1 минуту
Понял , ToDouble() - метод, StrToFloat() - функция, хотя мне это абсолютно ни о чем не говорит .

Добавлено через 2 минуты
, мне не помогло .
1
 Аватар для Fazer77777
3 / 3 / 1
Регистрация: 29.06.2012
Сообщений: 45
01.07.2012, 00:10  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
А смысл использовать многострочное окно Мемо?
И почитайте еще про более грамурную функцию FloatToStrF

Добавлено через 59 секунд
Это относительно вашей StrToFloat .

Добавлено через 1 минуту
Понял , ToDouble() - метод, StrToFloat() - функция, хотя мне это абсолютно ни о чем не говорит .
Спасибо, ясно. Смысл, только в условии задания, большие числа там ни к чему, в принципе.
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
01.07.2012, 00:11
Разве что FloatToStrF позволяет задать необходимое количество знаков после запятой и формат - фиксированный, денежный, научный и т.д, и т.п..
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.07.2012, 00:11

Калькулятор С++
Здравствуйте. У меня возникла проблема в обсчете чисел с плавающей запятой.При добавлении,вычитании,умножении и делении получаю бешеный...

Калькулятор
Я сижу создаю калькулятор в С++Builder 6, и он мне в определенном месте выдает ошибку Вот мой скрипт

Калькулятор
Всем доброго времени суток ... Такой вопрос: как сделать калькулятор на С++ Builder с помощью 1го обработчика событий ...т.е. например...

калькулятор c++
ребята нужен колк в билдере значит на главной форме должно быть две панели для ввода и две кнопочки ввод и отмена.тоесть в 1 поле мы...

Калькулятор
Простите если такая тема уже есть! У меня есть калькулятор(очень простой) мне его надо изменить: 1. Считать не только целочисленные...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru