Тема
статистические данные
встроенные функции
анализ на основе имеющейся информации
решение прикладных
1. изучите таблицу расхода электроэнергии бытовыми
приборами (стандартный набор) за один календарный месяц. ответьте на вопросы.
е
со"431
1 количество дневмеспе?
4 перевозки
1000
=b5*5*$$1
сташартыі набор
время
мощность
работы
(вт)
день (часов)
400
600
400
1070
потреблении
моность месяц (квт імесі
(вт несио)
2
28
24
1600)
16.05
670
402ool
40,2
, холодильник
4. компьютер
1 телевизор
1. стиральная маши
все остальное (чак
4 мектрически, лампочки,
і дополнительный комфорт
а коланшионер
ts посудомоечная машина
1. микроволнови печь
и зарядки для глетов
» итого:
0,75
328
1700
340)
4ool
03
0.78
30250
204oo)
6000
9430
s083sol
420)
9.48
s033
а) запишите формулу для ячейки d11
b) запишите формулу расчета квт в месяц в ячейке c5
с) определите диапазоны аргументов в формуле из ячейки c15? __
d) опишите изменения в ячейке d12 в сравнении с формулой из ячейки d11?
2. за один календарный месяц было потреблено 508,35 квт электрической энергии.
проанализируйте данные таблицы, ответьте на ниже вопросы.
а) запишите формулу расчёта по 1 уровню
b) составьте формулу расчета оплаты за потребленную электрическую энергию
второму уровню
c) запишите формулу расчета по 3 уровню
а) определите встроенную функцию для расчета оплаты за потреблённую электриче
энергию
календарный
месяц,
запишите
за
1) запишите диапазон аргументов встроенной функции для ячейки c9
// Внимание! Если программа не работает, обновите версию!
function Res(a:integer;op:char;b:integer):integer;
begin
case op of
'+':Result:=a+b;
'-':Result:=a-b;
'*':Result:=a*b;
'/':Result:=a div b
end
end;
begin
var s:=ReadlnString('Вводите:');
var p:=s.Matches('(((\-)?\d+)|[\+\-\*\/])').ToArray;
if p.Count<>5 then Writeln('Ошибка!')
else begin
var op1:=p[1].Value[1];
var op2:=p[3].Value[1];
var a:=p[0].Value.ToInteger;
var b:=p[2].Value.ToInteger;
var c:=p[4].Value.ToInteger;
if (op1 in ['+','-']) and (op2 in ['*','/']) then
Writeln('='+Res(Res(b,op2,c),op1,a))
else Writeln('='+Res(Res(a,op1,b),op2,c))
end
end.
Примеры
Вводите: -4--3--2
=1
Вводите: 12*3+45
=81
Вводите: 45+12*3
=81
Вводите: -26/13--5
=3
var
s, s1, s2, s3, s4, tmp1, tmp2: string;
i, a, b, c, d, e, f: integer;
begin
Writeln('Введите строку: ');
Readln(s);
//
for var k := 1 to length(s) do
begin
if (s[k] = '(') then
begin
var j := k + 1;
while (s[j].IsDigit) do
begin
tmp1 := tmp1 + s[j];
j := j + 1;
end;
var ch := s[j];
j := j + 1;
while (s[j].IsDigit) do
begin
tmp2 := tmp2 + s[j];
j := j + 1;
end;
case ch of
'+': begin s := s.Remove(k - 1, j - k + 1); s := s.Insert(k - 1, inttostr(tmp1.ToInteger + tmp2.ToInteger)); end;
'-': begin s := s.Remove(k - 1, j - k + 1); s := s.Insert(k - 1, inttostr(tmp1.ToInteger - tmp2.ToInteger)); end;
'*': begin s := s.Remove(k - 1, j - k + 1); s := s.Insert(k - 1, inttostr(tmp1.ToInteger * tmp2.ToInteger)); end;
'/': begin s := s.Remove(k - 1, j - k + 1); s := s.Insert(k - 1, inttostr(tmp1.ToInteger div tmp2.ToInteger)); end;
end;
break;
end;
end;
//
for i := 1 to length(s) do
begin
if (s[i] = '+') or (s[i] = '-') or (s[i] = '*') or (s[i] = '/') then
begin
s1 := copy(s, 1, i - 1);
s2 := copy(s, i + 1, length(s));
c := i;
end;
end;
for i := 1 to length(s1) do
begin
if (s1[i] = '+') or (s1[i] = '-') or (s1[i] = '*') or (s1[i] = '/') then
begin
s3 := copy(s1, 1, i - 1);
s4 := copy(s1, i + 1, length(s1));
e := i;
end;
end;
Val(s3, a, d);
Val(s4, b, d);
Val(s2, f, d);
if (s[e] = '/') and (s[c] = '/') then Writeln((a div b) div f);
if (s[e] = '/') and (s[c] = '*') then Writeln((a div b) * f);
if (s[e] = '+') and (s[c] = '*') then Writeln(a + (b * f));
if (s[e] = '*') and (s[c] = '*') then Writeln(a * b * f);
if (s[e] = '+') and (s[c] = '/') then Writeln(a + (b div f));
if (s[e] = '*') and (s[c] = '+') then Writeln((a * b) + f);
if (s[e] = '/') and (s[c] = '+') then Writeln((a div b) + f);
if (s[e] = '*') and (s[c] = '/') then Writeln((a * b) div f);
if (s[e] = '+') and (s[c] = '+') then Writeln(a + b + f);
if (s[e] = '-') and (s[c] = '-') then Writeln(a - b - f);
if (s[e] = '+') and (s[c] = '-') then Writeln(a + b - f);
if (s[e] = '-') and (s[c] = '+') then Writeln(a - b + f);
if (s[e] = '*') and (s[c] = '-') then Writeln((a * b) - f);
if (s[e] = '/') and (s[c] = '-') then Writeln((a div b) - f);
if (s[e] = '-') and (s[c] = '*') then Writeln(a - (b * f));
if (s[e] = '-') and (s[c] = '/') then Writeln(a - (b div f));
end.