М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
kimyan123makc
kimyan123makc
04.09.2022 14:27 •  Информатика

Написать прогу в паскале.нужно высчитать минимальные затраты на поклейку обоями комнаты. 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 банок клея.
4,4(97 оценок)
Открыть все ответы
Ответ:
frikadel1
frikadel1
04.09.2022

1.V=24*2=48 байт = 384 бита

2.192 символа на стр- 30720 символов. Мощность алфавита 256 - значит в алфававите 256 знаков. 2 в степени восемь - равно 256.весь алфавит можно закодировать одним байтом (в одном байте - как раз восемь бит, степень двойки. Бит - принимает ДВА значения - 0 и 1 - отсюда основание 2, которое возводим в восемь :) ) на каждый символ текста надо потратить один байт памяти. Итого получаем 30720 БАЙТ. в одном КИЛОБАЙТЕ 1024 байта. Делим 30720 на 1024 получаем 30 КБайт.

3.в 2 раза уменьшился

4

1024000/8=128000 (перевели в байты) 

128000/1024=125кбайт/сек (перевели в килобайты) 

125*5= 625 килобайт

5.

всего используется 12 букв + 10 цифр = 22 символа 

для кодирования 22 вариантов необходимо использовать 5 бит, так как , т.е. 4 бит не хватит (они позволяют кодировать только 16 вариантов), а 5 уже достаточно 

таким образом, на каждый символ нужно 5 бит (минимально возможное количество бит) 

полный номер содержит 6 символов, каждый по 5 бит, 30 бит один номер. 

по условию каждый номер кодируется целым числом байт (в каждом байте – 8 бит), поэтому требуется 5 байт на номер ( ), 4 байтов не хватает, а 5 – минимально возможное количество 

на 32 номеров нужно выделить 160 байтов приблизительно 192байта 

правильный ответ – 160байт...т.к 32*5=160 или приблизетельно 192байта.

Объяснение:

4,7(76 оценок)
Ответ:
fragerin
fragerin
04.09.2022

#1


var

A : array [1..21] of integer;

min : integer := 32766;

begin

for var i:=1 to 21 do

 readln(A[i]);

for var i:=1 to 21 do

if (A[i] < min) then

min := A[i];

writeln(min);

end.

#2

var

Y : array [1..25] of integer;

isthefirst : boolean := false;

last : integer := 0;

begin

for var i:=1 to 25 do

 readln(Y[i]);

for var i:=1 to 25 do

 if (Y[i] < 0) and (isthefirst = false) then

   begin

   writeln(i);

   isthefirst := true;

   break;

   end;

for var i:=2 to 25 do

begin

if (i = 25) then  

begin

if (Y[i] < 0) and (last = 0) then

last := i;

break;

end;

if ((Y[i+1] > 0) and (Y[i] < 0)) then

last := i;

end;

if (isthefirst) and (last = 0) then

last := 1;

if (last <> 0) then

writeln(last) else

writeln('There''no numbers');

end.

//Не бейте за кастыли Мне лень думать)))000



#2

type TIntMassiv = array of Integer;   //Дин. Массив (Более гибок в работе)


var  

n : integer;

sum : integer := 0;

counter : integer := 0;

var A: TIntMassiv;

begin

readln (n);

SetLength(A, n);

for var i:=0 to n-1 do

begin

readln(A[i]);

if (A[i] > 0) and (A[i] mod 2 = 0) then

begin

sum += A[i];

counter += 1;

end;

end;

if (sum = 0) or (counter = 0) then

begin

writeln('There''re no numbers');

exit;

end;

writeln(sum/counter);

end.

4,4(15 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ