Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2016, 22:17   #1
Alex201
 
Регистрация: 08.06.2016
Сообщений: 7
По умолчанию Действия над обыкновенными дробями

Можно ли реализовать в Delphi арифметическое действие над обыкновенными дробями и если можно то как?
В форме я создал три ячейки Edit1, Edit2 и Edit3 + кнопка Button1 для обработки действия сложения обыкновенных дробей введенных в Edit1 и Edit2 и вывода результата сложения в Edit3. К примеру: вводим в ячейку Edit1 дробь 1/2, а в ячейку Edit2 3/4 и при нажатии на кнопку в Edit3 выводится результат 5/4
Alex201 вне форума Ответить с цитированием
Старый 11.06.2016, 23:06   #2
tsar_
Форумчанин
 
Аватар для tsar_
 
Регистрация: 06.01.2011
Сообщений: 369
По умолчанию

Можно выпендриться так:
1) Имеется "1/2" и "3/4" в Edit1 и Edit2 соответственно;
2) Выделяем числа после знака "/" в каждом Edit'e: 2 и 4 соответственно (это знаменатели)
4) Ищем наименьшее общее кратное для знаменателей (это в нашем случае 4)
5) Находим коэффициенты k1 и k2, на которые нужно домножить каждую дробь, чтоб привести к одному знаменателю (k1=2; k2=1)
6) Приводим к общему знаменателю (2/4 и 3/4 соответственно)
7) Суммируем числители (2+3=5)
8) Красиво выводим в Edit3 текст "5/4"
Программирую по необходимости
tsar_ вне форума Ответить с цитированием
Старый 12.06.2016, 09:26   #3
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Можно конечно, но придётся парсить строку и переводить их в привычный вид для компьютера.
FaTaL вне форума Ответить с цитированием
Старый 12.06.2016, 17:48   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Какая-то сволочь повадилась удалять мои посты без объяснения причин и предупреждения. Какое свинство! Поэтому я просто оставлю это здесь.



Посмотрим, сколько провисит.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 12.06.2016 в 17:55.
min@y™ вне форума Ответить с цитированием
Старый 18.06.2016, 13:25   #5
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
    n1,n2,n3,n4,n5,n6:integer;
begin
   n6:=Pos('/',Edit1.Text);
   If n6=0 then
   begin
      Edit3.Text:='Не дробь!';
      Exit;
   end else
   begin
      s:=Copy(Edit1.Text,1,n6-1);
      n1:=StrToInt(s);
      s:=Copy(Edit1.Text,n6+1,Length(Edit1.Text));
      n2:=StrToInt(s);
   end;
   n6:=Pos('/',Edit2.Text);
   If n6=0 then
   begin
      Edit3.Text:='Не дробь!';
      Exit;
   end else
   begin
      s:=Copy(Edit2.Text,1,n6-1);
      n3:=StrToInt(s);
      s:=Copy(Edit2.Text,n6+1,Length(Edit2.Text));
      n4:=StrToInt(s);
   end;
   n6:=n2;
   While (n6 mod n4)<>0 do
      n6:=n6+n2;
   n1:=n1*(n6 div n2);
   n2:=n2*(n6 div n2);
   n3:=n3*(n6 div n4);
   n4:=n4*(n6 div n4);
   n5:=n1+n3;
   Caption:=Format('%d %d %d %d %d %d',[n1,n2,n3,n4,n5,n6]);
   Edit3.Text:=Format('%d/%d',[n5,n6]);
end;
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ассемблер. структуры. действия с дробями(дописать прогу) picachyyyyyy Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 02.06.2012 13:54
Действия с простыми дробями Oda33 Помощь студентам 1 11.04.2011 19:03
Действия над неизвестными korsmile Общие вопросы Delphi 3 04.09.2010 18:54
действия над многочленами nuevegramodelamor Помощь студентам 4 21.06.2010 01:31
выполнения арифметических действий над обыкновенными дробями jenja Общие вопросы C/C++ 1 24.10.2008 10:35