Переводим третий байт IP и адреса сети в двоичную систему
50 - 110010
48 - 110000
Так как это байт (а в байте 8 бит), допишем два незначащих нуля к получившимся числам:
00110010 - IP
00110000 - адрес сети
Адрес сети получается с применения поразрядной конъюнкции к маске и IP, проще говоря, при перемножении разрядов маски и IP-адреса. И в маске всегда сначала идут только единицы, а потом только нули. То есть можно записать так:
- маска
00110010 - IP
00110000 - адрес сети
где иксы в маске и цифры в IP-адресе - множители, а разряды адреса сети - произведение.
На 3 и 4 месте в маске однозначно должны быть единицы, т.к. если там будут нули, то и в адресе сети будут нули. Плюс к этому, в маске всегда сначала идут только единицы, а потом только нули, то есть можно записать так:
1111 - маска
00110010 - IP
00110000 - адрес сети
Второй справа разряд IP-адреса - единица, а адреса сети - ноль, значит в маске может быть только ноль:
1111хх00 - маска
00110010 - IP
00110000 - адрес сети
Оставшиеся два икса могут быть и единицами, и нулями. Нужно наименьшее возможное значение, значит поставим на их место нули:
11110000 - маска
00110010 - IP
00110000 - адрес сети
То есть третий байт маски 11110000, переведём в десятичную - получим 240.
1)uses crt; var i,j,n,ans:integer; begin read(n); for i:=1 to 9 do for j:=0 to 9 do if i+j=n then ans:=ans+1; writeln(ans); end. 2) uses crt; var i,n:integer; x:array[1..100] of integer; begin writeln('Введите количество x и значения: '); read(n); for i:=1 to n do read(x[i]); writeln('x y'); for i:=1 to n do writeln(x[i],' ',x[i]*x[i]+3); end. 3. uses crt; var i:integer; begin for i:=1 to 5 do write(i*i*i,' '); end. 4. uses crt; var i,n,sum:real; begin writeln('Введите N:'); read(n); i:=3; while i<=n do begin sum:=sum+1/i; i:=i+3; end; writeln(sum); end. 5. uses crt; var j,i,n,sum:integer; a:array[1..100] of integer; begin writeln('Введите количество чисел и сами числа:'); read(n); for i:=1 to n do begin sum:=0; read(a[i]); for j:=1 to length(inttostr(a[i])) do sum:=sum+strtoint(inttostr(a[i])[j]); if sum mod 3 = 0 then write(a[i],' '); end; end. 6.a)uses crt; var n:string; begin read(n); writeln(max(strtoint(n[1]),strtoint(n[2]))); end. б) uses crt; var n:string; begin read(n); writeln(max(max(strtoint(n[1]),strtoint(n[2])),strtoint(n[3]))); end.
Переводим третий байт IP и адреса сети в двоичную систему
50 - 110010
48 - 110000
Так как это байт (а в байте 8 бит), допишем два незначащих нуля к получившимся числам:
00110010 - IP
00110000 - адрес сети
Адрес сети получается с применения поразрядной конъюнкции к маске и IP, проще говоря, при перемножении разрядов маски и IP-адреса. И в маске всегда сначала идут только единицы, а потом только нули. То есть можно записать так:
- маска
00110010 - IP
00110000 - адрес сети
где иксы в маске и цифры в IP-адресе - множители, а разряды адреса сети - произведение.
На 3 и 4 месте в маске однозначно должны быть единицы, т.к. если там будут нули, то и в адресе сети будут нули. Плюс к этому, в маске всегда сначала идут только единицы, а потом только нули, то есть можно записать так:
1111 - маска
00110010 - IP
00110000 - адрес сети
Второй справа разряд IP-адреса - единица, а адреса сети - ноль, значит в маске может быть только ноль:
1111хх00 - маска
00110010 - IP
00110000 - адрес сети
Оставшиеся два икса могут быть и единицами, и нулями. Нужно наименьшее возможное значение, значит поставим на их место нули:
11110000 - маска
00110010 - IP
00110000 - адрес сети
То есть третий байт маски 11110000, переведём в десятичную - получим 240.
var i,j,n,ans:integer;
begin
read(n);
for i:=1 to 9 do
for j:=0 to 9 do
if i+j=n then
ans:=ans+1;
writeln(ans);
end.
2)
uses crt;
var i,n:integer;
x:array[1..100] of integer;
begin
writeln('Введите количество x и значения: ');
read(n);
for i:=1 to n do
read(x[i]);
writeln('x y');
for i:=1 to n do
writeln(x[i],' ',x[i]*x[i]+3);
end.
3.
uses crt;
var i:integer;
begin
for i:=1 to 5 do
write(i*i*i,' ');
end.
4.
uses crt;
var i,n,sum:real;
begin
writeln('Введите N:');
read(n);
i:=3;
while i<=n do
begin
sum:=sum+1/i;
i:=i+3;
end;
writeln(sum);
end.
5.
uses crt;
var j,i,n,sum:integer;
a:array[1..100] of integer;
begin
writeln('Введите количество чисел и сами числа:');
read(n);
for i:=1 to n do
begin
sum:=0;
read(a[i]);
for j:=1 to length(inttostr(a[i])) do
sum:=sum+strtoint(inttostr(a[i])[j]);
if sum mod 3 = 0 then
write(a[i],' ');
end;
end.
6.a)uses crt;
var n:string;
begin
read(n);
writeln(max(strtoint(n[1]),strtoint(n[2])));
end.
б)
uses crt;
var n:string;
begin
read(n);
writeln(max(max(strtoint(n[1]),strtoint(n[2])),strtoint(n[3])));
end.