От программы, записанной на алгоритмическом языке, перейдите к записи программы на языке Паскаль. В ответе запишите первую строку программы на языке Паскаль.
Определим общий размер алфавита N - по условию это будет 26 букв и 10 цифр (0123456789), Итого 36 символов. Количество бит на символ i определим из формулы N=2^i i=㏒₂N= ㏒₂36= 5,17 Округляем в большую сторону до 6 бит, потому что 5 бит на символ нам будет не хватать для кодирования 36 символов (2^5=32) На один номер будет приходиться 5*6= 30 бит информации. 30 бит/8= 3,75 байт. Опять округляем в большую сторону до 4 байт, чтобы в соответствии с условиями задачи получить целое количество байт. Тогда для кодирования 40 автомобильных номеров нам понадобится: 40*4=160 байт
PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018 Внимание! Если программа не работает, обновите версию!
begin var A:=MatrGen(6,7,(i,j)->Sin(i+1)+Cos(3*(j+1))); A.Println(10,6); Writeln(70*'-'); var B:=A.ElementsWithIndexes.Where(t->t[1].IsEven and t[2].IsEven) .Select(t->t[0]).ToArray; B.Println; var m:=B.Where(t->t>0).DefaultIfEmpty.Average; Writeln('Искомое среднее равно ',m); var f:=OpenWrite('MyFile.txt'); for var i:=0 to A.RowCount-1 do begin for var j:=0 to A.ColCount-1 do Write(f,A[i,j],' '); Writeln(f); end; Writeln(f); for var i:=0 to B.Length-1 do Write(f,B[i],' '); f.Close; end.
Количество бит на символ i определим из формулы N=2^i
i=㏒₂N= ㏒₂36= 5,17
Округляем в большую сторону до 6 бит, потому что 5 бит на символ нам будет не хватать для кодирования 36 символов (2^5=32)
На один номер будет приходиться 5*6= 30 бит информации.
30 бит/8= 3,75 байт. Опять округляем в большую сторону до 4 байт, чтобы в соответствии с условиями задачи получить целое количество байт.
Тогда для кодирования 40 автомобильных номеров нам понадобится:
40*4=160 байт
ответ: 160 байт
Внимание! Если программа не работает, обновите версию!
begin
var A:=MatrGen(6,7,(i,j)->Sin(i+1)+Cos(3*(j+1)));
A.Println(10,6); Writeln(70*'-');
var B:=A.ElementsWithIndexes.Where(t->t[1].IsEven and t[2].IsEven)
.Select(t->t[0]).ToArray;
B.Println;
var m:=B.Where(t->t>0).DefaultIfEmpty.Average;
Writeln('Искомое среднее равно ',m);
var f:=OpenWrite('MyFile.txt');
for var i:=0 to A.RowCount-1 do begin
for var j:=0 to A.ColCount-1 do
Write(f,A[i,j],' ');
Writeln(f);
end;
Writeln(f);
for var i:=0 to B.Length-1 do Write(f,B[i],' ');
f.Close;
end.