//PascalABC.NET версия 3.2, сборка 1389 //Если программа не запускается, то обновите версию uses System.Linq; begin begin writeln('I'); var n := ReadInteger('n='); Writeln((1 + 1 + Power(2, n - 1)) * n / 2); end;
begin writeln; writeln('II'); var n := ReadInteger('n='); Writeln(n mod 11 = 0 ? 'YES' : 'NO');
end;
begin writeln; writeln('III'); var a := ReadArrInteger('Документы', ReadInteger('n=')).ToList; writeln;
while a.Any() do begin write(a[0], ' '); a.RemoveAt(0); if not a.Any then break;
write(a.Last, ' '); a.RemoveAt(a.Count - 1); if not a.Any then break;
var n := 0; if a.Count > 1 then n := a.Count div 2 - 1; write(a[n], ' '); a.RemoveAt(n); end; end; end.
DECLARE FUNCTION f# (x AS DOUBLE) DECLARE FUNCTION Integ# (a AS DOUBLE, b AS DOUBLE, n AS LONG)
'Main program DIM eps AS DOUBLE, n AS LONG, s AS DOUBLE, s1 AS DOUBLE DIM a AS DOUBLE, b AS DOUBLE CLS a = 0: b = 1: eps = .001 n = 100 s = Integ#(a, b, 10#) DO s1 = s s = Integ#(a, b, n) n = n * 2 LOOP UNTIL ABS(s - s1) <= eps PRINT s END
FUNCTION f# (x AS DOUBLE) f# = x ^ 3 * EXP(x ^ 2) END FUNCTION
FUNCTION Integ# (a AS DOUBLE, b AS DOUBLE, n AS LONG) DIM h AS DOUBLE, xb AS DOUBLE, x AS DOUBLE DIM s AS DOUBLE, i AS INTEGER h = (b - a) / n s = 0 xb = a FOR i = 0 TO n - 1 x = xb + i * h s = s + f(x) * h NEXT i Integ# = s END FUNCTION
Результат выполнения программы: .4991509793572241 Погрешность не превышает 0.001 при контрольном значении, равном 0.5
I = 14400 байт
k = 3 страницы * (количество строк) * 60 символов в строке
Найти i
Объяснение:
I - информационный объем сообщения (сколько весит сообщение)
k - количество информации в сообщении (сколько символов, нужно высчитать)
i - информационная емкость символа, то есть сколько бит/байт весит один символ (еще это называется мощностью алфавита).
Если нужно будет узнать сколько символов в используемом алфавите, нужно будет найти log (по степени 2) - полученная i (информационная емкость символа)