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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2015, 00:02   #1
scarecrow_1
Пользователь
 
Регистрация: 22.12.2015
Сообщений: 28
По умолчанию Определить вариант покупки,чтобы деньги были истрачены полностью,а количество предметов было наибольшим: Ученику поручено купить н

Определить вариант покупки,чтобы деньги были истрачены полностью,а количество предметов было наибольшим:
Ученику поручено купить на данную сумму как можно больше линеек и карандашей: простых и цветных. Известно,что линейка стоит А р., а карандаши - цветной и простой соответственно В р., и С р.,(нужно решить через систему)


Код:
program _5;

var
  a, b, c, s, x, y, z, b1, c1, sum, max, xm, ym, zm, i: integer;
  t: real;

procedure summa;
begin
  c1 := b1 - b * y;t := c1 / c;
  if t = int(t) then
  begin
    z := trunc(t);sum := x + y + z;
    if sum > max then
    begin max := sum;xm := x;ym := y;zm := z end
  end
end;

begin
  write('Введите сумму s(р)=');readln(s);
  write('Введите стоимость линейки a(р)=');readln(a);
  write('Введите стоимость цветного карандаша b(р)=');readln(b);
  write('Введите стоимость простого карандаша c(р)=');readln(c);
  max := 0;
  for x := 0 to s div a do
  begin
    b1 := s - a * x;
    for y := 0 to b1 div b do summa;
  end;
  writeln('линеек ', xm, ',цветных карандашей ', ym, ',простых карандашей ', zm);
  readln;
end.
помогите переделать эту программу без процедуры.

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 22.12.2015 в 09:31.
scarecrow_1 вне форума Ответить с цитированием
Старый 22.12.2015, 10:05   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
program _5;

var
  a, b, c, s, x, y, z, b1, c1, sum, max, xm, ym, zm, i: integer;
  t: real;

begin
  write('Введите сумму s(р)=');readln(s);
  write('Введите стоимость линейки a(р)=');readln(a);
  write('Введите стоимость цветного карандаша b(р)=');readln(b);
  write('Введите стоимость простого карандаша c(р)=');readln(c);
  max := 0;
  for x := 0 to s div a do
  begin
    b1 := s - a * x;
    for y := 0 to b1 div b do 
BEGIN
c1 := b1 - b * y;t := c1 / c;
  if t = int(t) then
  begin
    z := trunc(t);sum := x + y + z;
    if sum > max then
    begin max := sum;xm := x;ym := y;zm := z end
  end
END
  end;
  writeln('линеек ', xm, ',цветных карандашей ', ym, ',простых карандашей ', zm);
  readln;
end.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить город с наибольшим суммарным показателем вредных элементов ANIRAM Паскаль, Turbo Pascal, PascalABC.NET 0 21.05.2015 12:48
В матрице m*n определить номера и количество полностью нулевых столбцов moshensky Общие вопросы C/C++ 1 08.11.2012 16:12
Определить, какое количество цифр числа надо исправить, чтобы исправленное совпадало с обращенным к заданному числу M Krusad Паскаль, Turbo Pascal, PascalABC.NET 2 08.10.2012 12:54
Программа покупки <газеты или журнала> (принимает деньги <сумма вводится с клавиатуры> и печатает сумму сдачи) infernal110 Паскаль, Turbo Pascal, PascalABC.NET 9 25.10.2011 14:51
Составьте запрос, который позволяет подсчитать в таблице Экзамен количество различных предметов обучения. настенка=) Помощь студентам 3 26.05.2010 03:16