Uses GraphABC;
const MaxShar=50;
type shar = record
x,y:integer;
dx,dy:integer;
end;
var i:byte;
x,y,r:integer;
shars: array[1..MaxShar] of shar;
begin
randomize;
setwindowsize(500,500);
centerwindow;
r:=10;
setpenwidth(3);
for i:=1 to MaxShar do
with shars[i] do
begin
x:=7+r+random(500-2*r-14);
y:=7+r+random(500-2*r-14);
dx:=random(8) + 1;
dy:=random(8) + 1;
end;
lockdrawing;
repeat
clearwindow;
for i:=1 to MaxShar do
with shars[i] do
begin
x:=x+dx;
if (x+r+dx>=493) or (x-r+dx<=7) then dx:=-dx;
y:=y+dy;
if (y+r+dy>=493) or (y-r+dy<=7) then dy:=-dy;
setpencolor(clBlue);
setbrushcolor(clBlue);
circle(x,y,r);
end;
setpencolor(clBlack);
setpenwidth(3);
moveto(5,5);
lineto(495,5);
lineto(495,495);
lineto(5,495);
lineto(5,5);
sleep(1);
redraw;
until false;
end.
Примечание:
В конце программы есть команда sleep(), чем больше в ней значение, тем меньше скорость шариков. Также её можно просто убрать, тогда скорость будет максимальной.
4 числа => каждое число = 32/4 = 8 бит
1. 11001100.10011000.10111110.01000111
2. 11011110.11000011.10100010.00110010
Сейчас переводим из двоичной в 10 по следующему алгоритму:
Записываем двоичное число: 11001100. Сейчас начиная с ПРАВОГО конца, помечаем разряды(начиная с 0!). Я буду отмечать в фигурных скобках. Получаем:
11001100 = 1{7} 1{6} 0{5} 0{4} 1{3} 1{2} 0{1} 0{0}
И сейчас, чтобы найти десятичный эквивалент двоичному числу, мы считаем сумму вида: берем двоичное число(1 или 0) и умножаем его на 2 в степени разряда. Т.е.:
11001100 = 1*2^7 + 1*2^6 + 0*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 0*2^0 = 128 + 64 + 0 + 0 + 8 + 4 + 0 + 0 = 204
Точно так же делаем для всех оставшихся чисел. Т.е.:
10011000 = 1*2^7 + 1*2^4 + 1*2^3 = 128 + 16 + 8 = 152
10111110 = 1*2^7 + 1*2^5 + 1*2^4 + 1*2^3 + 1*2^2 + 1*2^1 = 128 + 32 + 16 + 8 + 4 + 2 = 190
01000111 = 1*2^6 + 1*2^2 + 1*2^1 + 1*2^0 = 64 + 4 + 2 + 1 = 71
В итоге, получаем IP адрес: 204.152.190.71
Точно так же делаем и для второго адреса:
11011110 = 1*2^7 + 1*2^6 + 1*2^4 + 1*2^3 + 1*2^2 + 1*2^1 = 128 + 64 + 16 + 8 + 4 + 2 = 222
11000011 = 1*2^7 + 1*2^6 + 1*2^1 + 1*2^0 = 128 + 64 + 2 + 1 = 195
10100010 = 1*2^7 + 1*2^5 + 1*2^1 = 128 + 32 + 2 = 162
00110010 = 1*2^5 + 1*2^4 + 1*2^1 = 32 + 16 + 2 = 50
И получаем следующий адрес: 222.195.162.50
1
Объяснение:
((0 & 0) ∨ 1) ∨ (1 & B) = (0 ∨ 1) ∨ (1 & B) = 1 ∨ (1 & B) = 1 ∨ B = 1