Первые различающиеся байты переведем в двоичную систему счисления(третий байт):
![128_1_0=1000 0000_2](https://tex.z-dn.net/?f=128_1_0%3D1000+0000_2)
![137_1_0=10001001_2](https://tex.z-dn.net/?f=137_1_0%3D10001001_2)
Найдем наименьшее возможное значение третьего байта. Выпишем в столбик двоичные записи чисел 128 и 137. Добавим еще одну строчку, в которую будем записывать минимально возможное значение третьего байта. Если значения в столбике одинаковые, то ставим соответствующее число, если они различаются, ставим какой-нибудь знак. Я поставил знак '?'.
![10000000 \newline 10001001 \newline 1000?00?](https://tex.z-dn.net/?f=10000000+%5Cnewline%0A10001001+%5Cnewline%0A1000%3F00%3F)
Теперь перенесем все '?' к последней единице(в нашем случае она и первая):
![1??00000](https://tex.z-dn.net/?f=1%3F%3F00000)
Так как нам нужно найти
наименьшее возможное значение, заменяем '?' на нули:
![10000000](https://tex.z-dn.net/?f=10000000)
Т.к. в маске подсети сначала идут только единицы, а затем нули, то логично, что если третий байт имеет значение 1000 0000, то первый и второй байт имеют значения 11111111.
Следовательно наименьшая маска подсети имеет вид: 11111111.11111111.10000000.00000000
Ответ: 17 единиц.
Предполагается, что будет введено минимум одно значение. <span>var
max,a : integer;
begin
readln(a);
max := a;
repeat
readln(a);
if (a > max) and (a <> 0) then
max := a;
until a = 0;
writeln(max);
readln;
end.</span> <span>P.S. Если понравилось решение не забудь отметить как лучшше. </span>
// Дан массив А(30). Сформировать новый массив из значений элементов массива А кратных 5
var ish, krat: array [1..30] of word;
i,j,x :byte;
begin j:=1;
randomize;
for i:=1 to 30 do //заполняем исходный массив случайными числами (до 1000)
begin
ish[i]:=random(1000);
writeln (i,' элемент исходного массива ',ish[i]);
end;
writeln ('находим элементы кратные пяти:');
for i:=1 to 30 do
begin
x:= ish[i] mod 5; //определяем элементы кратные пяти
if x=0 then
begin //и заполняем новый
krat[j]:=ish[i];
writeln (j,' элемент нового массива ',krat[j],' равен ',i,' элементу исходного массива');
j:=j+1;
end;
end;
<span>end.</span>
label ra,rb;
var a,b,c: integer;
begin
write('Введите сторону a: ');
readln(a);
ra: write('Введите сторону b: ');
readln(b);
if b>a then
begin
rb: write('Введите сторону c: ');
readln(c);
if c>b then begin
if sqr(c)=sqr(a)+sqr(b) then writeln('Этот треугольник - прямоугольный') else writeln('Этот треугольник - не прямоугольный');
end else begin writeln('Введите число больше, чем ',b); goto rb; end;
end else begin writeln('Введите число больше, чем ',a); goto ra; end;
end.
<em>// PascalABC.NET 3.2, сборка 1457 от 29.05.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
Writeln('*** Исходный массив ***');
var z:=MatrRandom(4,6,10,80);
z.Println(4); Writeln(4*z.ColCount*'-');
var t:=z.ElementsWithIndexes.MaxBy(x->x[2]);
Writeln('Максимальный элемент z[',t[0]+1,',',t[1]+1,']=',t[2])
end.
<u>Пример</u>
*** Исходный массив ***
47 18 64 34 29 42
68 55 80 68 44 34
15 51 43 75 32 52
21 38 36 48 58 69
------------------------
Максимальный элемент z[2,3]=80