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

Калькулятор для арифметических чисел

11.03.2013, 22:48. Показов 4987. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Разработка калькулятора для арифметических чисел большой точности
Необходимо сделать калькулятор на 4 арифметических действия. (Это я уже сделал - Калькулятор.rar)
Но необходимо сделать для больших (многоразрядных) чисел. (Например - 456985421325654875123)
В обычном калькуляторе такие числа не умещаются.
Нужно, чтобы действия над этими числами производились по-разрядно.
Так же, как мы считаем на бумаге вручную, в столбик.
Числа должны представляться как последовательность символов (цифр).
Ведь реальные такие числа хранить негде.
Ребятки помогите, прошу Вас. курсак скоро а я понятия не имею как это сделать...
Вложения
Тип файла: rar Калькулятор.rar (81.5 Кб, 97 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.03.2013, 22:48
Ответы с готовыми решениями:

Калькулятор для выполнения арифметических операций
Нужен калькулятор для выполнения арифметических операций над числами в 8-ой, 10-ой и 16-ой с/с для курсача. Помогите, кто может. Просто...

Калькулятор для больших арифметических выражений
Здравствуйте, хочу сделать калькулятор в Visual Basic 2010, который считает большие арифметические выражения, к примеру (2*2+2^2)/2*5 =20. ...

Калькулятор для трёх арифметических операций
1) Разместить на форме три поля TextBox (для ввода двух операндов и операции) и кнопку Button, запускающую вычисления. 2)...

23
6 / 6 / 4
Регистрация: 06.11.2012
Сообщений: 254
12.03.2013, 11:12
Цитата Сообщение от Сергей123456 Посмотреть сообщение
Но необходимо сделать для больших (многоразрядных) чисел. (Например - 456985421325654875123)
Числа должны представляться как последовательность символов (цифр).
Ведь реальные такие числа хранить негде.
C++
1
int number [100500];
и в каждый элемент записывать часть числа. Но это извращение.
Цитата Сообщение от Сергей123456 Посмотреть сообщение
Нужно, чтобы действия над этими числами производились по-разрядно.
Так же, как мы считаем на бумаге вручную, в столбик.
Ну соостветственно складываем кусочки, если выносится единица изменяем состояние флага. То же самое с вычитанием и умножением. А вот про деление не знаю.
0
4 / 4 / 0
Регистрация: 06.02.2012
Сообщений: 62
12.03.2013, 17:54  [ТС]
Code
1
int number [100500];
Это для каких арифм действий + - *?
Ребята подскажите что нужно для деления?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
12.03.2013, 18:13
+ - сложение
- - вычитание
* - умножение
/ - деление
0
6 / 6 / 4
Регистрация: 06.11.2012
Сообщений: 254
12.03.2013, 18:16
Цитата Сообщение от Сергей123456 Посмотреть сообщение
Code
1
int number [100500];
Это для каких арифм действий + - *?
Ребята подскажите что нужно для деления?
Это для хранения.
В каждый из элементов записываем кусок числа.
0
4 / 4 / 0
Регистрация: 06.02.2012
Сообщений: 62
12.03.2013, 18:16  [ТС]
и в каждый элемент записывать часть числа
- это как?
0
6 / 6 / 4
Регистрация: 06.11.2012
Сообщений: 254
12.03.2013, 18:17
Как производится ввод числа?
0
4 / 4 / 0
Регистрация: 06.02.2012
Сообщений: 62
12.03.2013, 18:25  [ТС]
ComputerMouse, по нажатию на кнопочку в программе*)
Вот "текст" калькулятора
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
//---------------------------------------------------------------------------
#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::Button1Click(TObject *Sender)
{
TButton* ptButton;
 ptButton=static_cast<TButton*>(Sender);
 if(ptButton->Caption.Pos(",") > 0 && Edit1->Text.Pos(",") > 0 ) return;
 Edit1->Text = Edit1->Text + ptButton->Caption;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button17Click(TObject *Sender)
{
Edit1->Text = "";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button13Click(TObject *Sender)
{
TButton* ptButton;
ptButton=static_cast<TButton*>(Sender);
znak = ptButton->Caption;
number1 = Edit1->Text;
Edit1->Text = "";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button12Click(TObject *Sender)
{
number2 = Edit1->Text;
if(number1 != ""  &  number2 != ""  &  znak != ""){
if(znak == "+"){Edit1->Text = FloatToStr( StrToFloat(number1) + StrToFloat(number2)); }
if(znak == "-"){Edit1->Text = FloatToStr( StrToFloat(number1) - StrToFloat(number2)); }
if(znak == "*"){Edit1->Text = FloatToStr( StrToFloat(number1) * StrToFloat(number2)); }
if(znak == "/"){Edit1->Text = FloatToStr( StrToFloat(number1) / StrToFloat(number2)); }
 
number2 = "";
znak = "";
number1 = Edit1->Text;
return;
}
number2 = "";
znak = "";
number1 = "";
Edit1->Text = "";
ShowMessage("Не достаточно данных повторите ввод сначала");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1ContextPopup(TObject *Sender, TPoint &MousePos, bool &Handled)
{
 Handled = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, System::WideChar &Key)
{
if( Key == ',' && Edit1->Text.Pos(",") > 0 ) { Key=0; return; }
if(Key >= '0' && Key <= '9' || Key == VK_BACK || Key == ',') return;
Key=0;
}
//---------------------------------------------------------------------------
Куда нужно вставить
C++
1
int number [100500];
Да и что нужно добавить для реализации работы заданой программы?))
0
6 / 6 / 4
Регистрация: 06.11.2012
Сообщений: 254
12.03.2013, 18:31
Считаем сколько цифр максимум может влезть в один int (n). Далее создаём счётчик введённых цифр. Записываем цифры в number[0], пока их количество не станет равным n. Далее переходим в следующий элемент. таким образом большое число выглядит как-то так:
number[0] number[1] number[2]
1222334 76778899 56778999
0
4 / 4 / 0
Регистрация: 06.02.2012
Сообщений: 62
12.03.2013, 18:50  [ТС]
ComputerMouse, ого так сложно написано...
Можете мне помочь, вот исходник помогите мне)
Вложения
Тип файла: 7z Kалькулятоr.7z (59.7 Кб, 30 просмотров)
0
6 / 6 / 4
Регистрация: 06.11.2012
Сообщений: 254
12.03.2013, 19:50
Я пока не знаю как быть с делением, если додумаюсь - помогу.
0
4 / 4 / 0
Регистрация: 06.02.2012
Сообщений: 62
13.03.2013, 15:02  [ТС]
ComputerMouse, спасибо большое...
Ребятки ну помогите пожалуйста, Вы же знаете)
Я понимаю что прошу, это умственный труд но у мня просто скоро сдача курсака(

Добавлено через 17 часов 51 минуту
Ув. господа программисты, помогите мне в решении моей проблемы
ПОЖАЛУЙСТА!)
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
13.03.2013, 16:35
Цитата Сообщение от ComputerMouse Посмотреть сообщение
Считаем сколько цифр максимум может влезть в один int (n). Далее создаём счётчик введённых цифр. Записываем цифры в number[0], пока их количество не станет равным n. Далее переходим в следующий элемент. таким образом большое число выглядит как-то так:
number[0] number[1] number[2]
1222334 76778899 56778999
Но это не совсем подходит к даной задаче, так как
Числа должны представляться как последовательность символов (цифр).
С другой стороны при вводе в строку у нас уже есть последовательность символов....

И как быть с дробными числами?

Может просто использовать для арифм. операций long double тогда и разрядность большая получится

Добавлено через 1 минуту
Или тут смысл в том чтоб самому реализовать арифм. операции ?
0
6 / 6 / 4
Регистрация: 06.11.2012
Сообщений: 254
13.03.2013, 16:36
Можно. Кстати, точную формулировку задачи, пожалуйста?
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
13.03.2013, 16:53
тем более делить в столбик числа а еще с большой точностю можно бесконечно
а если при делении, например, там будет 3 в периоде (25,3333333333333333333.....) то как ?

Добавлено через 10 минут
и еще на заметку
C++
1
2
3
4
5
6
7
8
9
void __fastcall TForm1::Button13Click(TObject *Sender)
{
TButton* ptButton;
ptButton=static_cast<TButton*>(Sender);
znak = ptButton->Caption;
number1 = Edit1->Text;
Edit1->Text = "";
Edit1->SetFocus(); // лучше после нажатия кнопки перевести фокус на эдит, а то неудобно с клавиатуры вводить
}
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
13.03.2013, 17:31
Цитата Сообщение от ComputerMouse Посмотреть сообщение
Я пока не знаю как быть с делением
http://lmgtfy.com/?q=%D0%B4%D0... B5+C%2B%2B
0
4 / 4 / 0
Регистрация: 06.02.2012
Сообщений: 62
13.03.2013, 23:05  [ТС]
ComputerMouse,
Можно. Кстати, точную формулировку задачи, пожалуйста?
1 Разработка калькулятора для арифметических чисел большой точности
Необходимо сделать калькулятор на 4 арифметических действия.
Только для больших (многоразрядных) чисел. Например - 456985421325654875123.
В обычном калькуляторе такие числа не умещаются. Нужно, чтобы действия над этими числами производились по-разрядно. Так же, как мы считаем на бумаге вручную, в столбик. Числа должны представляться как последовательность символов (цифр).
Ведь реальные такие числа хранить негде.
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
14.03.2013, 03:17
Сергей123456, ты повторил свой первый пост.
Попробую спросить по другому:
1. Надо реализовать арифметические операторы самому или можно воспользоватся "стандартными" ?
2. Числа должны быть целыми или с плавающей точкой (хотя результат деления в любом случае может быть с дробным) ?
3. Какова максимальная разрядность операндов ?
0
4 / 4 / 0
Регистрация: 06.02.2012
Сообщений: 62
15.03.2013, 16:08  [ТС]
_Dimon_
1. Надо реализовать арифметические операторы самому или можно воспользоваться "стандартными" ?
2. Числа должны быть целыми или с плавающей точкой (хотя результат деления в любом случае может быть с дробным) ?
3. Какова максимальная разрядность операндов?
1 Я думаю можно воспользоваться "стандартными".
2 Предполагаем что числа есть целыми (хотя нужно узнать у препода).
3 Вот это я не знаю, ребятки рассчитываю на Вас взгляд.

Добавлено через 13 часов 25 минут
Что никто не может помочь?

Добавлено через 17 часов 0 минут
Я так понял помощи ждать бесполезно...
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
15.03.2013, 17:31
Цитата Сообщение от Сергей123456 Посмотреть сообщение
Что никто не может помочь?
А чем то помочь надо ?
Цитата Сообщение от Сергей123456 Посмотреть сообщение
Я так понял помощи ждать бесполезно...
Ожидaть что кто-то реализовует за вас и бесплатно - бесполезно ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.03.2013, 17:31
Помогаю со студенческими работами здесь

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

Калькулятор для выполнения арифметических действий с обыкновенными дробями
Создать web-форму (aspx) Задание:создать дробный калькулятор. Калькулятор для выполнения арифметических действий с обыкновенными дробями.

Как создать калькулятор, использующий для выбора арифметических действий переключатели
и с учетом коэффицента,

Разработать консольное приложение "Калькулятор" для выполнения 4-х арифметических действий
Помогите пожалуйста с двумя прогами: 1. Разработать консольное приложение &quot;Калькулятор&quot; для выполнения 4-х арифметических...

Калькулятор с парсингом арифметических выражений
Народ интересует вопрос возможно ли сделать калькулятор в console приложении на C++ так что бы я ввожу строку например 3+4*2 он берет всю...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru