Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Паскаль
Регистрация

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

Ответ
 
Опции темы
Старый 19.12.2017, 14:56   #1
kim-im
Пользователь
 
Регистрация: 07.11.2017
Сообщений: 20
Репутация: 10
По умолчанию Поиск количества граммов в общем асорти

Нужна помощь в решении задачи. Условие таково:
Есть два вида печенья. "Бурратино" стоит P руб/кг, "Наполеон" N - руб/кг. Продавец решил продавать ассорти из этих видов печенья, для этого он смешал два вида печенья. Стоимость ассорти стала стоить А руб/кг.
Зная, значения P, N, А, нужно найти сколько грамм "Бурратино" содержится в ассорти (с точностью до десятых), иначе вывести -1, если определить невозможно.
Задача как бы проста, на определение процента, но вот мой код что-то лишь проходит 1 тест из 12.
Код:

var p,n,a,a1,m,m1,m2:real;
begin
  read(p,n,a);
   a1:=p+n;
   m:=(a/a1)*2;
   m1:=m*(a-n)/(p-n);
   m2:=m-m1;
   write (m2*1000:0:1);
end.

Идея такова
A1=P+N (цена за 1 кг)
m = A/A1 (всего кг)
m1 +m2 =m => m2=m-m1
m1*P+(m-m1) *N = m*A =>m1:=m*(a-n)/(p-n)>0, если <0 то невозможно
код я написал без учёта -1, но все равно что-то не работает. В программе как бы считает.
Спасибо за помощь
kim-im вне форума   Ответить с цитированием
Старый 19.12.2017, 15:15   #2
evg_m
Профессионал
 
Регистрация: 20.04.2008
Сообщений: 4,644
Репутация: 2097
По умолчанию

A1=P+N (цена за 1 кг)всего лиць СТОИМОСТЬ ДВУХ кг смеси и вполне определенной к тому же.
"полтора землекопа" ©В стране невыученных уроков
__________________
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума   Ответить с цитированием
Старый 19.12.2017, 15:17   #3
kim-im
Пользователь
 
Регистрация: 07.11.2017
Сообщений: 20
Репутация: 10
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
A1=P+N (цена за 1 кг)всего лиць СТОИМОСТЬ ДВУХ кг смеси и вполне определенной к тому же
спасибо за поправку
kim-im вне форума   Ответить с цитированием
Старый 19.12.2017, 15:27   #4
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,766
Репутация: 5213
По умолчанию

или я ошибаюсь, или Вы перемудрили.

формула же:
X = (A-N)/(P-N);

проверьте такой код:
Код:

program ideone;
var p,n,a:real;
begin
  read(p,n,a);
  if (abs(p-n)<0.001) and (abs(a-p)<0.001) then WriteLn(500.0:0:1)
  else
  if (p<=n) or (a<n) or (abs(a-n)>abs(p-n)) then WriteLn(-1)
  else writeLn((a-n)/(p-n)*1000:0:1);
end.


p.s. Внимание! Насчёт того, что проверки у меня написаны верно - не уверен!
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 19.12.2017, 15:27   #5
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 17,607
Репутация: 6210
По умолчанию

А зачем там m в уравнении? Наверно так Px+N(1-x)=A -> x=(A-N)/(P-N), где x<=1
если P=N, то решение возможно только если A=N и x любой от 0 до 1кг
иначе если A=N, то решение x=0
иначе решение только для положительного результата не большего 1
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Старый 19.12.2017, 15:34   #6
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,766
Репутация: 5213
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
если P=N, то решение возможно только если A=N и x любой от 0 до 1кг
точно. это я упустил. если P=N нужно выводить -1
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 19.12.2017, 16:52   #7
kim-im
Пользователь
 
Регистрация: 07.11.2017
Сообщений: 20
Репутация: 10
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
или я ошибаюсь, или Вы перемудрили.
Спасибо. Точно перемудрил
Вот работающий код:
Код:

var p,n,a:real;
begin
  read(p,n,a);
   if (p=n) then WriteLn(-1)
  else writeLn((a-n)/(p-n)*1000:0:1);
end.

Ещё раз все спасибо, кто помог
kim-im вне форума   Ответить с цитированием
Старый 19.12.2017, 17:04   #8
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 17,607
Репутация: 6210
По умолчанию

для a=100, p=40, n=10 он не работающий )) Проверки не все сделал
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Старый 19.12.2017, 17:07   #9
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,766
Репутация: 5213
По умолчанию

Цитата:
Сообщение от kim-im Посмотреть сообщение
Вот работающий код:
Точно? Работающий?

Ну, значит, ребята с исходными данными для теста не сильно заморочились.

попробуйте посчитать для
10 5 100 (это P, N и A соответственно)

или попробуйте посчитать для
10 20 1

всё корректно получилось?

но, впрочем, дело хозяйское. Главное, чтобы код приняли.
А дальше, правильный он или нет, только разных гиков и педантов интересует

добавлено
Аватар опередил!
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 20.12.2017, 13:10   #10
kim-im
Пользователь
 
Регистрация: 07.11.2017
Сообщений: 20
Репутация: 10
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Точно? Работающий?
Спасибо за подбор тестов, но программа сдала все 12 тестов. Видать преподы не сильно заморачивались с тестами для задачи.
Впрочем мне нужен был результат и вы мне его дали. Большое спасибо ещё раз
kim-im вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск минимального количества повторов чисел Дима85 C# (си шарп) 7 24.07.2016 19:55
Поиск количества оценок за каждый день zargandr1 SQL, базы данных 1 28.06.2014 11:51
Пойманную мышь посадили в клетку. За первый день она съела s граммов сыра... jager666 Паскаль 1 10.11.2012 12:02
Поиск точного количества строк Pamparam SQL, базы данных 5 27.06.2012 11:41
Поиск значения ячейки в другой, содержащей значение первой в общем тексте onenures Microsoft Office Excel 16 03.03.2012 11:49


23:49.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru