procedure IsGreater(var p:V; m,T:integer; var r:boolean); var i:integer; begin i:=1; r:=True; while (i<=n) and r do begin r:=(p[i]>T); Inc(i) end end;
procedure Init(var p:V; m:integer); { инициализация и вывод массива } var i:integer; begin for i := 1 to m do begin p[i]:=Random(51)-25; Write(p[i]:4) end; Writeln end;
procedure Invert(var p:V; m:integer); { инвертирование элементов и вывод массива } var i:integer; begin Writeln('Текущие значения элементов массива'); for i := 1 to m do begin p[i]:=-p[i]; Write(p[i]:4) end; Writeln end;
var a,b:V; i,m1,m2,t:integer; res:boolean; begin Randomize; Write('Введите размеры массивов a и b: '); Read(m1,m2); Writeln('Введите пороговое значение T: '); Read(t); Writeln('Элементы массива A'); Init(a,m1); IsGreater(a,m1,t,res); if res then Invert(a,m1) else Writeln('Условие не выполнено'); Writeln('Элементы массива B'); Init(b,m2); IsGreater(b,m2,t,res); if res then Invert(b,m2) else Writeln('Условие не выполнено') end.
Тестовое решение: Введите размеры массивов a и b: 15 9 Введите пороговое значение T: -24 Элементы массива A 23 -9 -23 -25 -25 -4 -16 -2 -3 6 -8 -19 19 21 12 Условие не выполнено Элементы массива B -6 -9 -3 -23 14 4 -11 24 11 Текущие значения элементов массива 6 9 3 23 -14 -4 11 -24 -11
1. Во втором письме содержится меньшее количество информации на 5 500 бит
2. 256 секунд
Объяснение:
1.
I = К * i, где
I - информационный объём письма (документа)
К - количество символов в письме (документе)
i - информационный вес символа (количество бит, которым кодируется 1 символ)
N = 2^i, где
N - мощность алфавита (количество символов в алфавите)
i - информационный вес символа (количество бит, которым кодируется 1 символ)
Дано:
K₁ = 25 строк * 50 символов = 1 250 символов
N₁ = 256 символа
K₂ = 2 страницы * 15 строк * 30 символов = 900 символов
N₂ = 32 символа
Найти:
I ₁ - I₂
256 = 2^i ₁
i₁ = 8 бит
32 = 2^i ₂
i₂ = 5 бит
I₁ = 1 250 * 8 = 10 000 бит
I₂ = 900 * 5 = 4 500 бит
I ₁ - I₂ = 10 000 - 4 500 = 5 500 бит
2.
I = К * i, где
I - информационный объём сообщения (документа)
К - количество символов в сообщении (документе)
i - информационный вес символа (количество бит, которым кодируется 1 символ)
К = V * t, где
K - количество символов в сообщении (документе)
V - скорость печати принтера
t - время печати принтера
Дано:
V = 1 024 символа/с
I = 256 Кбайт = 262 144 байт
i = 1 байт (предположительно)
Найти:
t
I = К * i
К = I / i
К = 262 144 / 1 = 262 144 символов
К = V * t
t = К / V
t = 262 144 / 1 024 = 256 секунд
1 Кбайт = 1024 байт
n=100;
type
V=array[1..n] of integer;
procedure IsGreater(var p:V; m,T:integer; var r:boolean);
var
i:integer;
begin
i:=1; r:=True;
while (i<=n) and r do
begin r:=(p[i]>T); Inc(i) end
end;
procedure Init(var p:V; m:integer);
{ инициализация и вывод массива }
var
i:integer;
begin
for i := 1 to m do
begin p[i]:=Random(51)-25; Write(p[i]:4) end;
Writeln
end;
procedure Invert(var p:V; m:integer);
{ инвертирование элементов и вывод массива }
var
i:integer;
begin
Writeln('Текущие значения элементов массива');
for i := 1 to m do
begin p[i]:=-p[i]; Write(p[i]:4) end;
Writeln
end;
var
a,b:V;
i,m1,m2,t:integer;
res:boolean;
begin
Randomize;
Write('Введите размеры массивов a и b: '); Read(m1,m2);
Writeln('Введите пороговое значение T: '); Read(t);
Writeln('Элементы массива A');
Init(a,m1);
IsGreater(a,m1,t,res);
if res then Invert(a,m1)
else Writeln('Условие не выполнено');
Writeln('Элементы массива B');
Init(b,m2);
IsGreater(b,m2,t,res);
if res then Invert(b,m2)
else Writeln('Условие не выполнено')
end.
Тестовое решение:
Введите размеры массивов a и b: 15 9
Введите пороговое значение T:
-24
Элементы массива A
23 -9 -23 -25 -25 -4 -16 -2 -3 6 -8 -19 19 21 12
Условие не выполнено
Элементы массива B
-6 -9 -3 -23 14 4 -11 24 11
Текущие значения элементов массива
6 9 3 23 -14 -4 11 -24 -11