Информационное сообщение на языке , первоначально записанное в 8-битовом коде кои-8, было перекодировано в 16-битовую кодировку unicode . в результате его объем увеличился на 8000 битов. найдите информационный объем сообщения до перекодировки .
Количество символов - K (не изменилось при перекодировке) Первоначальный объем сообщения = 8*K бит Объем сообщения после перекодировки = 16*K бит 16*K = 8*K + 8000 K = 1000 Первоначальный объем = 8*1000 = 8000 бит
Пусть X бит - первоначальный объем. Тогда х/8 - количество символов сообщении. Значит 16*(x/8)=2x (бит) - объем после перекодировки. Получим уравнение: x+8000=2x x=8000 (бит)
Треугольник существует, если сумма длин двух любых его сторон больше длины третьей стороны. Длина стороны может быть определена как расстояние между соответствующими сторонами треугольника:
// PascalABC.NET 3.0, сборка 1160 от 05.02.2016 type Point=record x,y:real end;
procedure GetPoint(c:char;var M:Point); begin Write('Введите координаты точки ',c,': '); Read(M.x,M.y) end;
function Dist(a,b:Point):=sqrt(sqr(b.x-a.x)+sqr(b.y-a.y));
begin var A,B,C:Point; GetPoint('A',A); GetPoint('B',B); GetPoint('C',C); var ab:=Dist(A,B); var bc:=Dist(B,C); var ac:=Dist(A,C); if (ab<bc+ac) and (bc<ab+ac) and (ac<ab+bc) then Writeln('Треугольник существует') else Writeln('Треугольник не существует') end.
Тестовое решение: Введите координаты точки A: -6.9 -5.3 Введите координаты точки B: 0 11.4 Введите координаты точки C: 9 3 Треугольник существует
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018 Внимание! Если программа не работает, обновите версию!
procedure FillStack(st:Stack<integer>; sq:sequence of integer); begin foreach var t in sq do st.Push(t); end;
procedure PrintStack(st:Stack<integer>; s:string); begin Write(s); st.Println end;
procedure ToStack(sta,stb:Stack<integer>; Even:boolean); begin if Even then while sta.Count>0 do begin var v:=sta.Pop; if v.IsEven then begin stb.Push(v); exit end end else while sta.Count>0 do begin var v:=sta.Pop; if v.IsOdd then begin stb.Push(v); exit end end end;
begin var st1:=new Stack<integer>; FillStack(st1,Seq(2,13,20,18,1)); PrintStack(st1,'Стек1: '); var st2:=new Stack<integer>; FillStack(st2,Seq(9,11,10,8,4)); PrintStack(st2,'Стек2: '); var st3:=new Stack<integer>; while st1.Count+st2.Count>0 do begin ToStack(st1,st3,True); ToStack(st2,st3,False); end; PrintStack(st3,'Стек3: ') end.
Первоначальный объем сообщения = 8*K бит
Объем сообщения после перекодировки = 16*K бит
16*K = 8*K + 8000
K = 1000
Первоначальный объем = 8*1000 = 8000 бит