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

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

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

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 28.02.2013, 15:48   #1
D!zel
Пользователь
 
Регистрация: 23.12.2008
Сообщений: 74
По умолчанию Арифметическая процедура

Привет всем!

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

Задача:
Нужно купить яблоки на все деньги так, чтобы деньги не ушли в минус.

Вроде легко должно быть, а догнать не могу, как это реализовать)) Помогите, пожалуйста!
D!zel вне форума
Старый 28.02.2013, 16:00   #2
Ybn2
Форумчанин
 
Регистрация: 18.11.2010
Сообщений: 183
По умолчанию

Привет!!! Если я все правильно понял, то тебе нужно количество денег разделить на 2 (цена за яблоко), а ответ записать в количество яблок. Так?
Ybn2 вне форума
Старый 28.02.2013, 16:05   #3
D!zel
Пользователь
 
Регистрация: 23.12.2008
Сообщений: 74
По умолчанию

Приблизительно... но разделить и я могу
Нужно купить яблоки на ту сумму, которая есть у игрока, при этом главное чтобы сумма не ушла в минус.
D!zel вне форума
Старый 28.02.2013, 16:06   #4
Ybn2
Форумчанин
 
Регистрация: 18.11.2010
Сообщений: 183
По умолчанию

Ок!! Сейчас напишу!!!
Ybn2 вне форума
Старый 28.02.2013, 16:09   #5
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Код:
// index := 0; сколько купим
while (dengi >= stoim) do
  begin
     //index := index + 1; // inc(index);
     dengi := dengi - stoim;
  end;
если нужно количество, то разкоменть index. но уже будет больше двух переменных.
ну и самое простое... это целочисленное деление
Код:
kolichestvo := dengi div stoim;
пишу код не только за печеньки
VIK_aka_TOR вне форума
Старый 28.02.2013, 16:10   #6
Ybn2
Форумчанин
 
Регистрация: 18.11.2010
Сообщений: 183
По умолчанию

procedure Buyapple(rub: Integer; var apple: integer);
begin
apple:=rub div 2;
end;
Ybn2 вне форума
Старый 28.02.2013, 16:19   #7
D!zel
Пользователь
 
Регистрация: 23.12.2008
Сообщений: 74
По умолчанию

VIK_aka_TOR, большое спасибо
D!zel вне форума
Старый 28.02.2013, 17:52   #8
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Я бы еще так сделал
Код:
function BuyProduct1 (const APrice: Integer; var AMoney: Integer): Integer;
begin
  Result := AMoney div APrice;
  AMoney := AMoney mod APrice;
end;
Но лучше, наверное, использовать тип Currency (валюта). Ведь для этого он и сделан.
Код:
function BuyProduct2 (const APrice: Currency; var AMoney: Currency): Integer;
var
  i1, i2: Int64;
begin
  i1 := Round (AMoney * 10000);
  i2 := Round (APrice * 10000);
  Result := (i1 div i2);
  AMoney := (i1 mod i2) / 10000;
end;
Правда я сам толком не умею им пользоваться. Может так?
Код:
function BuyProduct3 (const APrice: Currency; var AMoney: Currency): Integer;
var
  i1, i2: Int64;
begin
  i1 := PInt64(@AMoney)^;
  i2 := PInt64(@APrice)^;
  Result := i1 div i2;
  AMoney := PCurrency (@Int64 (i1 mod i2))^;
end;
Ведь Currency - это по сути тот же Int64, у которого 53~54 бита рассматриваются как дробная часть числа.

Последний раз редактировалось Sibedir; 28.02.2013 в 18:47.
Sibedir вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Арифметическая прогрессия Idealist 2012 Помощь студентам 7 16.12.2011 20:02
арифметическая прогрессия druger Помощь студентам 2 21.09.2011 18:47
Арифметическая прогрессия kolyan45 Помощь студентам 3 06.06.2011 13:58
арифметическая прогрессия holi Помощь студентам 2 06.05.2011 16:59
Арифметическая прогрессия Carbon Помощь студентам 14 09.03.2008 18:12