Модераторы: Snowy, MetalFan, bems, Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вопрос с калькулятором 
:(
    Опции темы
neprogrammist
Дата 23.5.2010, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 8.1.2010

Репутация: нет
Всего: нет



как при создании простейшего калькулятора реализующего простейшие арифм., выражения воспользоваться и применить класс ToOperation ? smile 
PM MAIL   Вверх
Данкинг
Дата 23.5.2010, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



А что это за класс такой?

Добавлено через 33 секунды
И в чём разница между "воспользоваться" и "применить"? smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Teleport
Дата 23.5.2010, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: 1
Всего: 6



neprogrammist  - скорее всего тебе сказали создать свой класс под названием ToOperation. Ищи статьи в google статьи по созданию классов в делфи.


--------------------
user posted image
user posted image 
PM MAIL   Вверх
neprogrammist
Дата 23.5.2010, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 8.1.2010

Репутация: нет
Всего: нет



опечатка правильно TOperation, как его применить в калькуляторе?? smile 
PM MAIL   Вверх
cyberstream
Дата 23.5.2010, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 7.9.2006

Репутация: 1
Всего: 4



Нет такого класса, тебе таки придётся его создать.  smile 
--------------------
Не знаешь кого спросить? - Спроси google!
PM MAIL   Вверх
neprogrammist
Дата 23.5.2010, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 8.1.2010

Репутация: нет
Всего: нет



неее вот такое задание - Разработать на объектно-ориентированном языке «Делфи» приложение «Калькулятор», реализующего четыре арифметических действия над вещественными числами. При реализации арифметических операций воспользуйтесь классом toperation. 

написано что нужно воспользоваться  этим классом smile 
калькулятор то создать простенький и так можно но вот че с этим делать??? smile 
PM MAIL   Вверх
Данкинг
Дата 23.5.2010, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Код

type
  t_toperation=class
  procedure sum;
  procedure minus;
  procedure multiply;
  procedure divide;
  end;

А теперь воспользуйся. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
neprogrammist
Дата 23.5.2010, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 8.1.2010

Репутация: нет
Всего: нет



предпоследняя процедура это "умножить" ?
PM MAIL   Вверх
Данкинг
Дата 24.5.2010, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(neprogrammist @  24.5.2010,  00:13 Найти цитируемый пост)
предпоследняя процедура это "умножить" ? 

Ну да, я старался назвать красиво, но как назовёшь ты - твоё личное дело. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
neprogrammist
Дата 24.5.2010, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 8.1.2010

Репутация: нет
Всего: нет



это получается нужно новый класс создать ?
PM MAIL   Вверх
Данкинг
Дата 24.5.2010, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Да, новый.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
neprogrammist
Дата 24.5.2010, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 8.1.2010

Репутация: нет
Всего: нет



а как присвоить кнопки с цифрами  0,1,2,3,4,5,6,7,8,9   чтобы при нажатии они выводились в отдельную единую кнопу и чтобы результат тоже там высвечивался ???????????? smile 
PM MAIL   Вверх
Данкинг
Дата 25.5.2010, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(neprogrammist @  25.5.2010,  00:55 Найти цитируемый пост)
а как присвоить кнопки с цифрами  0,1,2,3,4,5,6,7,8,9   чтобы при нажатии они выводились в отдельную единую кнопу

Куда выводились, не понял, в Edit, что ли? Ну так и добавляй в Edit.Text := Button.Caption+Edit.Text (как-то так).


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
neprogrammist
Дата 18.6.2010, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 8.1.2010

Репутация: нет
Всего: нет



помогите доделать пожалуйста этот, там ошибка только, всё тело есть 

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  __________.rar 173,24 Kb
PM MAIL   Вверх
lyucean
  Дата 18.6.2010, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 3.6.2010

Репутация: нет
Всего: нет



Цитата(neprogrammist @ 18.6.2010,  21:52)
помогите доделать пожалуйста этот, там ошибка только, всё тело есть

ох ..блин, у меня нет делфи 2007

по теме 

добавьте перехват клавиш 
на c++ это так будет, переписать не сложно ..ну или в нете найдите.
вставляется в TForm1.FormKeyDown
Код

switch(Key)
  {
   case 27:Exit2Click(Sender);break; // это пример ..у вас коды клавиш другие.
   case 49:N1Click(Sender);break;
   case 50:N2Click(Sender);break;
   case 51:N3Click(Sender);break;
   case 52:N4Click(Sender);break;
   case 53:N5Click(Sender);break;
   case 54:N6Click(Sender);break;
   case 17:N7Click(Sender);break;
   case 32:Start1Click(Sender);break;
  }



+ добавьте ввод только чисел ..опять же на c++
вставляется в TForm1.Edit1KeyPress
Код

if ((Key >= '0') && (Key <= '9')) {}  // цифры
        else if (Key == 8) {}  // <-
        else if ((Key == '.') || (Key == ',')) // запятая
                {
                if (((TEdit*)Sender)->Text.Pos(DecimalSeparator)!=0) // если запятая уже есть
                        Key = 0;
                else // если ещё нет
                        Key = DecimalSeparator;
                }
        else Key = 0; // не цифра


+ добавьте очищение едита после нажатия "+","-","*","/" (ну и соответственно присваивания переменной, значения из едита)

после "=" желательно результат вывести


ну можно для максимума вставить мемо и работать со строчками (после нажатия "+","-","*","/" , едит очищаете, + добавляете его в мемо новой  строкой) 

..могу ток на c++ buildere помочь, ставить старый делфи влом.

вроде как подробно написал .. приводите код, где траблы. 





Это сообщение отредактировал(а) lyucean - 18.6.2010, 22:17
PM MAIL   Вверх
chip_and_dayl
Дата 19.6.2010, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: 1
Всего: 9



Цитата(neprogrammist @  18.6.2010,  21:52 Найти цитируемый пост)
там ошибка только, всё тело есть 

По ходу не программисты тоже только с тела состоят :))

Добавлено через 48 секунд
lyucean
Скорее всего придется тебе же на Делфи и переписать:)


--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
neprogrammist
Дата 19.6.2010, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 8.1.2010

Репутация: нет
Всего: нет



Цитата(lyucean @ 18.6.2010,  22:16)
Цитата(neprogrammist @ 18.6.2010,  21:52)
помогите доделать пожалуйста этот, там ошибка только, всё тело есть

ох ..блин, у меня нет делфи 2007

по теме 

добавьте перехват клавиш 
на c++ это так будет, переписать не сложно ..ну или в нете найдите.
вставляется в TForm1.FormKeyDown
Код

switch(Key)
  {
   case 27:Exit2Click(Sender);break; // это пример ..у вас коды клавиш другие.
   case 49:N1Click(Sender);break;
   case 50:N2Click(Sender);break;
   case 51:N3Click(Sender);break;
   case 52:N4Click(Sender);break;
   case 53:N5Click(Sender);break;
   case 54:N6Click(Sender);break;
   case 17:N7Click(Sender);break;
   case 32:Start1Click(Sender);break;
  }



+ добавьте ввод только чисел ..опять же на c++
вставляется в TForm1.Edit1KeyPress
Код

if ((Key >= '0') && (Key <= '9')) {}  // цифры
        else if (Key == 8) {}  // <-
        else if ((Key == '.') || (Key == ',')) // запятая
                {
                if (((TEdit*)Sender)->Text.Pos(DecimalSeparator)!=0) // если запятая уже есть
                        Key = 0;
                else // если ещё нет
                        Key = DecimalSeparator;
                }
        else Key = 0; // не цифра


+ добавьте очищение едита после нажатия "+","-","*","/" (ну и соответственно присваивания переменной, значения из едита)

после "=" желательно результат вывести


ну можно для максимума вставить мемо и работать со строчками (после нажатия "+","-","*","/" , едит очищаете, + добавляете его в мемо новой  строкой) 

..могу ток на c++ buildere помочь, ставить старый делфи влом.

вроде как подробно написал .. приводите код, где траблы.

 smile  С+ в первый раз вижу, но спасибо хоть обратили внимание
PM MAIL   Вверх
lyucean
  Дата 20.6.2010, 04:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 3.6.2010

Репутация: нет
Всего: нет



chip_and_dayl

 ох, блин прав по ходу smile


neprogrammist

про ввод только цифр 
Код

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  case Key of
    '0' .. '9', #8 : ;
    ','  :
    begin
      if Key = ',' then Key:=',';
      if (Pos(',',Form1.Edit1.Text) <> 0) then Key:= Chr(0);
    end;
    '-'  :
    begin
      if Key = '-' then Key:='-';
      if Length(Form1.Edit1.Text) <> 0 then Key:= Chr(0);

    end;
    else
      Key := Chr(0);
  end;

end;



про ввод по нажатию на клаве, как то так должно быть.

Код

  case Key of
    '5':Edit1.text:=Edit1.text+'5';  // т.е. по нажатию 5 на форме, в поле Edit1.text добавляется 5
   end;


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


PM MAIL   Вверх
former
Дата 20.6.2010, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 4
Всего: 17



Цитата(lyucean @  20.6.2010,  04:04 Найти цитируемый пост)
про ввод по нажатию на клаве, как то так должно быть.

А если 50000000 нужно прибавить, то столько же кнопок нужно создать?  smile 


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
lyucean
Дата 20.6.2010, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 3.6.2010

Репутация: нет
Всего: нет



Цитата(former @ 20.6.2010,  09:33)
Цитата(lyucean @  20.6.2010,  04:04 Найти цитируемый пост)
про ввод по нажатию на клаве, как то так должно быть.

А если 50000000 нужно прибавить, то столько же кнопок нужно создать?  smile

я никогда не пользовался делфи (паскаль был и синтаксис от туда помню), т.е. делал по аналогии, но по моему 5 кратное нажатие 5 должно привести к результату 55555 

вопрос не понял.

PM MAIL   Вверх
chip_and_dayl
Дата 20.6.2010, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: 1
Всего: 9



Цитата(lyucean @  20.6.2010,  04:04 Найти цитируемый пост)
 case Key of    '5':Edit1.text:=Edit1.text+'5';  // т.е. по нажатию 5 на форме, в поле Edit1.text добавляется 5   end;


а если так

Код

 case Key of
    '0'..'9':Edit1.text:=Edit1.text+Key;  //
   end;


Хотя я не понял в чем вопрос. Мы ставим баттоны с цифрами и для всех реализуем одну логику?smile


--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
lyucean
Дата 20.6.2010, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 3.6.2010

Репутация: нет
Всего: нет



Цитата(chip_and_dayl @ 20.6.2010,  20:39)
Цитата(lyucean @  20.6.2010,  04:04 Найти цитируемый пост)
 case Key of    '5':Edit1.text:=Edit1.text+'5';  // т.е. по нажатию 5 на форме, в поле Edit1.text добавляется 5   end;


а если так

Код

 case Key of
    '0'..'9':Edit1.text:=Edit1.text+Key;  //
   end;


Хотя я не понял в чем вопрос. Мы ставим баттоны с цифрами и для всех реализуем одну логику?smile

Мы пишем neprogrammist  калькулятор  smile 

 
Код

 case Key of
    '0'..'9':Edit1.text:=Edit1.text+Key;  //
   end;


 реализация намного удачнее, не додумался smile 


 Цель, ввод чисел по нажатию на клавиатуре, в не активный едит.
PM MAIL   Вверх
chip_and_dayl
Дата 20.6.2010, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: 1
Всего: 9



lyucean
Прикольно:) Я тоже хочу себе калькулятор:))

Добавлено @ 20:59
Цитата(lyucean @  20.6.2010,  20:47 Найти цитируемый пост)
 Цель, ввод чисел по нажатию на клавиатуре, в не активный едит.

Тогда в событие КейПресс пишет, то что выше и будет ему чудо:) Ну только учесть срабатывание удаления и точек


Это сообщение отредактировал(а) chip_and_dayl - 20.6.2010, 20:59


--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
neprogrammist
Дата 20.6.2010, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 8.1.2010

Репутация: нет
Всего: нет



а при помощи простых присваиваний никак? (в задании написано как создаь кальк)
PM MAIL   Вверх
chip_and_dayl
Дата 20.6.2010, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: 1
Всего: 9



neprogrammist
Куда еще прощеsmile 


Цитата(neprogrammist @  20.6.2010,  21:09 Найти цитируемый пост)
(в задании написано как создаь кальк)

Ну, тогда делай по инструкции . Чего мы тут напрягаем извилины!?!  smile 


--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1165 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.