Вводится последовательность натуральных чисел. Признак конца ввода – ноль. Необходимо проанализировать подпоследовательности из подряд идущих чисел, образующих арифметическую или геометрическую прогрессию, и вывести количество чисел в самой длинной из них.
Самым первым компьютерным стандартом кодирования символов стал ASCII (полное название - American Standart Code for Information Interchange). Для кодирования любого символа в нём использовали всего 7 бит. Как вы помните, что закодировать при бит можно лишь 27 символов или 128 символов. Этого достаточно, чтобы закодировать заглавные и прописные буквы латинского алфавита, арабские цифры, знаки препинания, а так же определенный набор специальных символов, к примеру, знак доллара - «$». Однако, чтобы закодировать символы алфавитов других народов (в том числе и символов русского алфавита) пришлось дополнять код до 8 бит (28=256 символов). При этом, для каждого языка использовалась свой отдельная кодировка.
Все авторские права на этот материал принадлежат исключительно сайту Информатика. В случае обнаружения нарушения условий копирования наших материалов, будут предприняты соответствующие санкции к нарушителям: обращение к хостинговой компании и другие меры в соответствии с действующим законодательством РФ. Источник материала: http://inphormatika.ru/lectures/kodirovanie_informacii.html
// PascalABC.NET 3.2, сборка 1467 от 02.06.2017
// Внимание! Если программа не работает, обновите версию!
type
Point=(real,real);
Figure=array of Point;
function MoveTo(Self:Figure;pP:Point):Figure; extensionmethod;
begin
var n:=Self.Count;
Result:=new Point[n];
for var i:=0 to n-1 do
Result[i]:=(Self[i][0]-pP[0],Self[i][1]-pP[1])
end;
function Rotate(Self:Figure;angle:real):Figure; extensionmethod;
begin
var mr:=new real[2,2];
mr[0,0]:=cos(angle); mr[0,1]:=sin(angle);
mr[1,0]:=-mr[0,1]; mr[1,1]:=mr[0,0];
var n:=Self.Count;
Result:=new Point[n];
for var i:=0 to n-1 do
Result[i]:=(Self[i][0]*mr[0,0]+Self[i][1]*mr[1,0],
Self[i][0]*mr[0,1]+Self[i][1]*mr[1,1])
end;
function MoveFrom(Self:Figure;pP:Point):Figure; extensionmethod;
begin
var n:=Self.Count;
Result:=new Point[n];
for var i:=0 to n-1 do
Result[i]:=(Self[i][0]+pP[0],Self[i][1]+pP[1])
end;
procedure Print(p:Figure;w,d:integer);
begin
foreach var t in p do
Writeln(t[0]:w:d,' ',t[1]:w:d)
end;
begin
var center:Point:=(5.0,3.0);
var Rectangle:Figure;
SetLength(Rectangle,4);
Rectangle[0]:=(3.0,2.0);
Rectangle[1]:=(7.0,2.0);
Rectangle[2]:=(7.0,4.0);
Rectangle[3]:=(3.0,4.0);
var angle:=30;
var P:=Rectangle.MoveTo(Center).Rotate(DegToRad(angle)).MoveFrom(Center);
Writeln('Новые координаты');
Print(P,9,5)
end.
Результат
Новые координаты
3.76795 1.13397
7.23205 3.13397
6.23205 4.86603
2.76795 2.86603