Задать вопрос
11 ноября, 06:08

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

+4
Ответы (1)
  1. 11 ноября, 06:22
    0
    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,' банок клея.')

    end

    end.

    Тестовое решение:

    Введите информацию по рулонам обоев:

    Рулон 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 банок клея.
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Написать прогу в паскале. Нужно высчитать минимальные затраты на поклейку обоями комнаты. 3 вида обоев (по ширине),3 вида обоев (3 типа ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы