const n = 50; var i:byte; B:array[1..n] of word; procedure proc(A:array of word); begin for i:=1 to n do if((129 <= A[i]) and (A[i] <= 160)) or ((161 <= A[i]) and (A[i] <=175)) or ((225 <= A[i]) and (A[i] <= 242)) then Writeln('index = ',i+1,'; bukva - ''',char(A[i]),,' A[i] = ',A[i]); end;
Begin writeln; for i:=1 to n do B[i] := random(300); for i:=1 to n do Begin write(' ',i,' = ',B[i]); if (i mod 5 = 0) then writeln; end; writeln; writeln; proc(B); readln;
под буквой А мы видим «.62». Число, на которое указывает этот фрагмент, начинается с 62. Так как числа в IP-адресе не могут быть больше 255, мы не можем добавить в конце этого числа еще один разряд, а фрагментов, начинающихся с точки, больше нет, следовательно, этот фрагмент – последний.
Посмотрим на фрагмент под буквой Б. В нем стоит число без точек, значит, это либо последний фрагмент, либо первый. Место последнего фрагмента уже занято, значит, фрагмент Б на первом месте.
В конце фрагмента Г - число 73, отделенное точкой. Так как в IP-адресе не может быть числа, большего 255, то за фрагментом Г должен следовать фрагмент, начинающийся с точки. Значит, фрагмент Г идет перед фрагментом А.
пример программы для паскаль
Program a;
const n = 50;
var
i:byte;
B:array[1..n] of word;
procedure proc(A:array of word);
begin
for i:=1 to n do
if((129 <= A[i]) and (A[i] <= 160)) or
((161 <= A[i]) and (A[i] <=175)) or
((225 <= A[i]) and (A[i] <= 242)) then
Writeln('index = ',i+1,'; bukva - ''',char(A[i]),,' A[i] = ',A[i]);
end;
Begin
writeln;
for i:=1 to n do
B[i] := random(300);
for i:=1 to n do Begin
write(' ',i,' = ',B[i]);
if (i mod 5 = 0) then writeln;
end;
writeln;
writeln;
proc(B);
readln;
end.
БВГА
Объяснение:
18 4.2 26.73 .62
под буквой А мы видим «.62». Число, на которое указывает этот фрагмент, начинается с 62. Так как числа в IP-адресе не могут быть больше 255, мы не можем добавить в конце этого числа еще один разряд, а фрагментов, начинающихся с точки, больше нет, следовательно, этот фрагмент – последний.
Посмотрим на фрагмент под буквой Б. В нем стоит число без точек, значит, это либо последний фрагмент, либо первый. Место последнего фрагмента уже занято, значит, фрагмент Б на первом месте.
В конце фрагмента Г - число 73, отделенное точкой. Так как в IP-адресе не может быть числа, большего 255, то за фрагментом Г должен следовать фрагмент, начинающийся с точки. Значит, фрагмент Г идет перед фрагментом А.