Написать прогу в паскале.нужно высчитать минимальные затраты на поклейку обоями комнаты. 3вида обоев(по ширине), 3 вида обоев(3типа обоев)+разные цены на обои, 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,' банок клея.') 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 банок клея.
sadinuraliev263
05.10.2021
Ответ в комментарии,для лучшей читаемости кода. program chicla; var a,b,c,d,f,sum: integer; sr: real; begin writeln('ââåäèòå ïåðâîå ÷èñëî'); readln(a) ; writeln('ââåäèòå âòîðîå ÷èñëî'); readln(b); writeln('ââåäèòå òðåòüå ÷èñëî'); readln(c); writeln('ââåäèòå ÷åòâåðòîå ÷èñëî'); readln(d); f: =a+b; if f> 20 then begin f: =f-10; writeln(f); end else begin f: =f+10; writeln(f) end; if b> =0 then begin a: =a-1; b: =b-1; c: =c-1; d: =d-1; writeln('1 ÷èñëî ïîñëå óìåíüøåíèÿ íà åäèíèöó= ',a); writeln('2 ÷èñëî ïîñëå óìåíüøåíèÿ íà åäèíèöó= ' ,b); writeln('3 ÷èñëî ïîñëå óìåíüøåíèÿ íà åäèíèöó= ' ,c); writeln('4 ÷èñëî ïîñëå óìåíüøåíèÿ íà åäèíèöó= ' ,d); end else begin sr: =(a+b+c+d)/4; writeln('ñðåäíåå àðèôìåòè÷åñêîå = ' ,sr); end; end.