• Написать прогу в паскале.Нужно высчитать минимальные затраты на поклейку обоями комнаты. 3вида обоев(по ширине),3 вида обоев(3типа обоев)+разные цены на обои,1 вид клея,из площади комнаты вычесть площадь окон и дверей.

Ответы 1

  • const  n = 9;type  tWP = record    naim: string;    wide: real;    leng: real;    cost: real  end;var  WallPaper: array[1..n] of tWP;  lr, wr, hr, ww, hw, wd, hd, gc, sg: real;  i, nw, nd, nPanel, nWP, nRolls, index: integer;  p, nPanRoll, ng, cg, C, Cmin: real;begin  writeln('Введите информацию по рулонам обоев:');  for i := 1 to n do   begin    with WallPaper[i] do     begin      write('Рулон ', i, ', наименование: ');      readln(naim);      write('ширина, длина, стоимость: ');      readln(wide, leng, cost);    end;  end;  writeln('Длина комнаты, ширина комнаты, высота оклейки');  readln(lr, wr, hr);  writeln('Ширина окна, высота окна, количество окон');  readln(ww, hw, nw);  writeln('Ширина двери, высота двери, количество дверей');  readln(wd, hd, nd);  writeln('Стоимость обойного клея и площадь, которую им можно оклеить');  readln(gc, sg);  p := 2 * (lr + wr) - nw * ww - nd * wd; //периметр оклейки  ng := p * hr / sg;  if ng > int(ng) then ng := int(ng) + 1; //количество банок с клеем  cg := gc * ng;  // общая стоимость клея  Cmin := 32768;  nRolls := 0;  index := 0;  for i := 1 to n do    with WallPaper[i] do     begin      // Требуемое количество полотнищ, т.е. сколько раз      // ширина рулона укладывается по периметру оклейки      nPanel := Trunc(p / wide);      if p - nPanel * wide > 0 then nPanel := nPanel + 1;      // Определяем, сколько полотнищ получается из одного рулона      // при заданной высоте оклейки.      nPanRoll := leng / hr;      // Вычисляем, сколько потребуется рулонов      nWP := Trunc(nPanel / nPanRoll);      if nPanel - nWP * nPanRoll > 0 then nWP := nWP + 1;      C := nWP * cost + cg; // Cтоимость поклейки обоев      if Cmin > C Then begin        Cmin := C; index := i; nRolls := nWP      end;    end;    with WallPaper[index] do  begin    writeln('Минимальные расходы на оклейку в сумме ', CMin:0:2);    writeln('получаются при использовании ', nRolls, ' рул. обоев ',naim);    writeln('шириной ', wide * 100:0:2, ' при цене ', cost:0:2, ' руб.');    writeln('за рулон длиной ', leng:0:0, ' м. и ',ng,' банок клея.')  endend.Тестовое решение:Введите информацию по рулонам обоев:Рулон 1, наименование: Гладкиеширина, длина, стоимость: 0.8 10 190Рулон 2, наименование: Гладкиеширина, длина, стоимость: 0.9 10 210Рулон 3, наименование: Гладкиеширина, длина, стоимость: 1.2 8 240Рулон 4, наименование: Ромбикширина, длина, стоимость: 0.8 10.5 210Рулон 5, наименование: Ромбикширина, длина, стоимость: 0.9 10 230Рулон 6, наименование: Ромбикширина, длина, стоимость: 1.1 8.5 240Рулон 7, наименование: Тисненыеширина, длина, стоимость: 0.8 10 218Рулон 8, наименование: Тисненыеширина, длина, стоимость: 0.9 9.5 224Рулон 9, наименование: Тисненыеширина, длина, стоимость: 1 9 235Длина комнаты, ширина комнаты, высота оклейки8.5 6.2 2.4Ширина окна, высота окна, количество окон1.6 1.2 1Ширина двери, высота двери, количество дверей0.95 2.2 2Стоимость обойного клея и площадь, которую им можно оклеить85 3.1Минимальные расходы на оклейку в сумме 3255.00получаются при использовании 7 рул. обоев Гладкиешириной 90.00 при цене 210.00 руб.за рулон длиной 10 м. и 21 банок клея.
    • Автор:

      quinn2
    • 6 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years