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

функция в калькуляторе

02.06.2011, 16:11. Показов 4600. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, не получается описать функцию, например void __fastcall TForm1:: DoOp(void),
компилятор выдаёт ошибку.


Помогите, как описать функцию, заранее спасибо
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.06.2011, 16:11
Ответы с готовыми решениями:

Как называется функция на виндовс калькуляторе In(x)?
пишу код калькулятора на С++ Builder 6.0 #include <math.h> void __fastcall TForm1::Button24Click(TObject *Sender) { ...

Функция сброса (C) в калькуляторе
В общем не знаю, как её написать, пробовал так: private void CmdC_Click(object sender, EventArgs e) { if...

Функция запятой на калькуляторе
Помогите дописать функцию запятой на калькуляторе. У меня есть(в самом конце кода), но нужно условие, чтобы можно было поставить лишь одну...

25
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
02.06.2011, 16:21
Культин Н.В., C++_Builder в задачах и примерах, стр. 41 .

Добавлено через 50 секунд
и так не спрашивают - если функция выдает ошибку. хорошо бы показать код, текст ошибки и строку, к которой она относится.

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void fastcall TForml::DoOp(void)
{
  /* accum содержит результат предыдущей операции.
  Сейчас надо выполнить операцию, код которой ор.
  Операнд находится на индикаторе*/
  float op2 = StrToFloat(StaticTextl->Caption);
  switch ( op ) {
    case 0 : accum = op2; break ;
    case 1 : accum += op2; break;
    case 2 : accum -= op2; break;
  }
  StaticTextl->Caption = FloatToStrF(accum,ffGeneral,6,3);
}
если имеется ввиду это
0
9 / 9 / 0
Регистрация: 06.01.2011
Сообщений: 73
02.06.2011, 16:54  [ТС]
Вставляю код после описания кнопок и тут же выдаёт ошибку

[C++ Error] Unit1.cpp(152): E2449 Size of 'fastcall' is unknown or zero

даю исходник, допишите пожайлуйста вычисление + - * / = а то я никак не могу разобраться.
Огромное спасибо

Добавлено через 1 минуту
исходник

Добавлено через 3 минуты
калькулятор
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
02.06.2011, 16:55
даю код, используйте

Добавлено через 1 минуту
код

1
9 / 9 / 0
Регистрация: 06.01.2011
Сообщений: 73
02.06.2011, 16:58  [ТС]
код ...
Вложения
Тип файла: zip калькулятор.zip (541.8 Кб, 54 просмотров)
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
02.06.2011, 16:59
вы с тех пор : калькулятор компонент еще не разобрались ?
И чтобы прикрепить файл, нажмите кнопки Расширенный режим - Упарвление вложениями под окном редактирования сообщения.
0
9 / 9 / 0
Регистрация: 06.01.2011
Сообщений: 73
02.06.2011, 17:02  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
даю код, используйте

Добавлено через 1 минуту
код

где???

Добавлено через 2 минуты
я прикрепил файл, можете в него дописать + - * / = пожайлуйста, а то у меня не получается
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
02.06.2011, 17:02
все уже объяснили раньше : калькулятор
а также :
Калькулятор C++
калькулятор <-> 2 функции не работают универсально

Не по теме:

я думал, вы шутите с исходниками, вот и пошутил тоже с кодом :)

0
9 / 9 / 0
Регистрация: 06.01.2011
Сообщений: 73
02.06.2011, 17:10  [ТС]
Там они другого плана, а мне нужен как у Культина.

Такой вопрос , чтобы описать функцию DoOp(void) нужно что-то выбирать, или просто вручную писать в коде

void fastcall TForm1:: DoOp(void)
{
...
}
на что компилятор выдает ошибки???
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
02.06.2011, 17:17
morAlex, сами попробуйте понять, что вы написали ? Тем более, это должен понять человек, который совершенно не в курсе ваших проблем . Ну что это объясняет
C++
1
2
3
4
void fastcall TForm1:oOp(void)
{
...
}
? И какие ошибки? У них текста нет ? Вам билдер просто написал "Есть ошибки, дружище!" - и все?
0
9 / 9 / 0
Регистрация: 06.01.2011
Сообщений: 73
02.06.2011, 17:19  [ТС]
а также в тех темах они недописаны

Добавлено через 49 секунд
помогите хотя бы с объявлением функции
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
02.06.2011, 17:29
Просто для начала допишите все, что у вас не дописано в коде после
C++
1
void __fastcall TForm1::Button11Click(TObject *Sender)
- до конца , включая
C++
1
2
3
4
void fastcall TForml::DoOp(void)
{
// и все что между скобками
}
, а там посмотрим, честно - мне переписывать этот код из книжки как-то не очень охота .
Если вы копируете код, проверьте, нет ли ошибок - не тот символ и т.д., что при копировании с ПДФа не редкость.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
02.06.2011, 17:39
и куда у вас делись кнопки?
Миниатюры
функция в калькуляторе   функция в калькуляторе  
0
9 / 9 / 0
Регистрация: 06.01.2011
Сообщений: 73
02.06.2011, 17:56  [ТС]
дописал всё, компилятор остановился на функции DoOp, что делать???

вот исходник
Вложения
Тип файла: zip Калькулятор.zip (517.2 Кб, 36 просмотров)
1
9 / 9 / 0
Регистрация: 06.01.2011
Сообщений: 73
02.06.2011, 18:09  [ТС]
как решить проблему?
1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
02.06.2011, 18:41
напиши в заголовочном файле
C++
1
2
private:    // User declarations
  void __fastcall DoOp(void);
Добавлено через 3 минуты
C++
1
2
3
void __fastcall TForm1::DoOp(void)
{
float op2 = StrToFloat(StaticTextl->Caption);
замени на StaticText1 - я предупреждал о необходимости проверки после копипейста
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
02.06.2011, 18:52
если будет ругаться на неопределенный символ op - просто перепечатай вручную латиницей op - тоже последствия копирования.
А так - вродь все нормально - можешь ведь, когда захочешь
На рисунке - результат "вечного" теста : 2+2
Миниатюры
функция в калькуляторе  
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
02.06.2011, 19:23
Для операций * и / перепиши функцию так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//---------------------------------------------------------------------------
void __fastcall TForm1::DoOp(void)
{
  float op2 = StrToFloat(StaticText1->Caption);
  switch ( op ) {
    case 0 : accum = op2; break ;
    case 1 : accum += op2; break;
    case 2 : accum -= op2; break;
    case 3 : accum *= op2; break;
    case 4 : accum /= op2; break;
  }
  StaticText1->Caption = FloatToStrF(accum,ffGeneral,6,3);
}
//---------------------------------------------------------------------------
и добавь две кнопки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// умножение ------------------------------------------------------
void __fastcall TForm1::Button15Click(TObject *Sender)
{
  if ( f != 0) {
    DoOp();
    f = 0;
  }
  op = 3;
}
// деление ----------------------------------------------------------------
void __fastcall TForm1::Button16Click(TObject *Sender)
{
  if ( f != 0) {
    DoOp();
    f = 0;
  }
  op = 4;
}
//---------------------------------------------------------------------------
и приучайся ворматировать код - делать отступы - и людям понятнее, и глазу приятнее .
0
9 / 9 / 0
Регистрация: 06.01.2011
Сообщений: 73
02.06.2011, 22:53  [ТС]
Спасибо Вам LK огромное, и ещё маленький вопросик, что значит строчка ---

FloatToStrF(accum,ffGeneral,6,3)

Добавлено через 11 минут
что-то не получается
в какое именно место вставлять
private :
void __fastcall DoOp(void);
компилятор ругается
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
02.06.2011, 23:02
1. форматирование числа с плавающей запятой в строку
3. в файле .Н - заголовочном файле - есть секция private, туда и вставить
C++
1
2
private :   // user declaration
void __fastcall DoOp(void);
как ругается ? научись приводить текст ошибки
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.06.2011, 23:02
Помогаю со студенческими работами здесь

Функция дужки(приоритет операций) в калькуляторе
Надо сделать скобки в калькуляторе: сделать дополнительную ф-цию которая будет считать введеные даные после ввода &quot;(&quot;, после...

Функция возведения числа в степень (x^y) в калькуляторе
Помогите пожалуйста доработать калькулятор, не могу разобраться как в одном текст боксе сделать эту операцию, в идеале сделать как в...

в калькуляторе 2+2*2=8
не получается сделать так, чтобы калькулятор считал 2+2*2=8, как это реализовать? Есть мнение что нужно что-то дописать в &quot;+&quot;,...

музыка в калькуляторе
начал изучение Visual Basic 6.0 по с.н.лукин и остановился в самом начале.на музыке в калькуляторе.помогите кто может.не могу запустить...

Деление на 0 в калькуляторе
Доброго времени суток, подскажите каким методом можно вывести на экран калькулятора ошибку если пользователь пытается делить число на...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru