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

Калькулятор, обработка ввода точки

26.02.2015, 17:34. Показов 905. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Скажите, пожалуйста, как реализовать ввод точки на калькуляторе. Чтобы при считывании, выводилось сообщение, что точек несколько.
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
int index, indexmath;
double regA, regB, regC;
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        //äëÿ öèôð
        TButton *btn = (TButton *) Sender;
 
        if (Edit1->Text == ".")
        {
                ShowMessage("Âû óæå ââåëè òî÷êó");
        }
 
        else
 
        switch (btn->Tag)
        {
                case 1: Edit1->Text = Edit1->Text + AnsiString(btn->Tag); break;
                case 2: Edit1->Text = Edit1->Text + AnsiString(btn->Tag); break;
                case 3: Edit1->Text = Edit1->Text + AnsiString(btn->Tag); break;
                case 4: Edit1->Text = Edit1->Text + AnsiString(btn->Tag); break;
                case 5: Edit1->Text = Edit1->Text + AnsiString(btn->Tag); break;
                case 6: Edit1->Text = Edit1->Text + AnsiString(btn->Tag); break;
                case 7: Edit1->Text = Edit1->Text + AnsiString(btn->Tag); break;
                case 8: Edit1->Text = Edit1->Text + AnsiString(btn->Tag); break;
                case 9: Edit1->Text = Edit1->Text + AnsiString(btn->Tag); break;
                case 0: Edit1->Text = Edit1->Text + AnsiString(btn->Tag); break;
                case -1: Edit1->Text = Edit1->Text + AnsiString("."); break;
        }
 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button16Click(TObject *Sender)
{
        //äëÿ sin...
        TButton *btn = (TButton *) Sender;
        indexmath = btn->Tag;
        regA = Edit1->Text.ToDouble();
 
        switch(indexmath)
        {
                case 0: regA = sqrt(regA);
                case 1: regA = sin(regA);
                case 2: regA = cos(regA);
                case 3: regA = log(regA);
        }
 
        Edit1->Text = AnsiString(regA);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button12Click(TObject *Sender)
{
        //äëÿ îïåðàöèé
        TButton *btn = (TButton *) Sender;
        index = btn->Tag;
        regA = Edit1->Text.ToDouble();
        Edit1->Text = " ";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
{
        String text = Edit1->Text;
        text.Delete(text.Length(), 1);
        Edit1->Text = text;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
        Edit1->Text = " ";
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button19Click(TObject *Sender)
{
        //äëÿ "ðàâíî"
        regB = Edit1->Text.ToDouble();
        switch(index)
        {
                case 1: regC = regA + regB; break;
                case 2: regC = regA - regB; break;
                case 3: regC = regA * regB; break;
                case 4: regC = regA / regB; break;
        }
        Edit1->Text = AnsiString(regC);
}
//---------------------------------------------------------------------------
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.02.2015, 17:34
Ответы с готовыми решениями:

Калькулятор с парсингом ввода
Всем привет, не так давно начал постигать c++. Возник вопрос как сделать программу-калькулятор, в которую можно вводить свои числа и...

Калькулятор в строке ввода
короче говоря нужен калькулятор в строке ввода а то есть без конопочек=)

Delphi 7 калькулятор запрет ввода
Привет, как в калькуляторе можно запретить ввод в edit двойного плюса '++' или '+*' и т.д. Вот код: procedure...

2
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
26.02.2015, 18:07
Поймать лишнюю вот так можно:
C++
1
2
3
     int cc=0,p=Edit1->Text.Length() ;
     while (p) if(Edit1->Text[p--]=='.') cc++;
     if(cc>1) ShowMessage("Ошибка");
только лучше делать после ввода каждого знака и убирать последний, если нужно
0
2 / 2 / 0
Регистрация: 11.04.2014
Сообщений: 115
26.02.2015, 18:11  [ТС]
Большое спасибо, работает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.02.2015, 18:11
Помогаю со студенческими работами здесь

Калькулятор, ограницить длину ввода
Помогите пожалуйста в калькуляторе добавить ограничения ввода до 100000 цифр

Калькулятор: контроль ввода данных
Делаю калькулятор формат Form1.vb нужна помощь . Как сделать чтоб с клавиатуры нельзя было вводить текст , а только цифры.!

Калькулятор на С/С++ с проверкой ввода данных
Надо написать калькулятор в qt и проверить, являются ли введённые числа буквами. Если да, выводить ошибку. Считает всё правильно, но с...

Разработать простой калькулятор с проверкой ввода
как его сделать задание: Разработать приложение &quot;Простой калькулятор&quot;. Проверить реакцию программы, если поля ввода остались...

Калькулятор - показать результат в поле ввода
Привет всем!! Я в делфи совсем недавно !! вот сейчас передо мной поставили задачу создать калькулятор!Я создал но у меня при нажатии на...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru