');
sound(zvuk); delay(del); nosound;
readln; close(g);
halt;
End;
Procedure DAi;
Begin
writeln;
textcolor(14);
writeln(' Этап пройден успешно.');
textcolor(15);
readln; clrscr;
End;
Procedure ident;
Begin
writeln(' 4 этап- Идентификация...');
writeln('> Анализ переменных и ключевых слов:');
{изменяем регистр всех букв } sb1:=sb;
for i:=1 to dlina do sb[i]:=upcase(sb[i]); writeln(sb); s2:=sb;
{создаем массив строк- каждая из которых 1 слово}
i:=0; j:=1;
While i ' ') and (((sb1[i] in bukva) or (sb1[i] in BUKVA2)) or (sb1[i] in c)) then
ms[j]:=ms[j]+upcase(sb1[i])
else inc(j)
end;
{по очереди проверяем каждое ключевое слово на вхождение в строку Sb}
writeln(''); textcolor(11);
writeln('Ключевые слова:'); textcolor(15);
i:=1; j:=1;
while j<> length(sb) do begin
if ((ms[j]='CONST') or
(ms[j]='TRUE' ) or
(ms[j]='FALSE') or
(ms[j]='BEGIN') or
(ms[j]='END' ) or
(ms[j]='ARRAY') or
(ms[j]='SET' ) or
(ms[j]='OF') or
(ms[j]='DO') or
(ms[j]='CASE') or
(ms[j]='TO') or
(ms[j]='THEN') or
(ms[j]='WHILE') or
(ms[j]='IF') or
(ms[j]='FUNCTION') or
(ms[j]='PROCEDURE') or
(ms[j]='AND') or
(ms[j]='OR') or
( ms[j]='TYPE') or
( ms[j]='REPEAT') or
(ms[j]='VAR') or
( ms[j]='ELSE') or
( ms[j]='UNTIL')) and
(pos(ms[j],sb)>0)
then begin if length(ms[i])<>0 then begin
mk[i]:=ms[j];
writeln(ms[j]);
delete(sb,pos(mk[i],sb),length(mk[i]));
inc(kolk); end;
end;
inc(i); inc(j);
end;
{по очереди проверяем каждый тип данных на вхождение в строку Sb}
writeln(''); textcolor(11);
writeln('Типы данных:'); textcolor(15);
{создаем массив типов данных}
i:=1; j:=1;
while j<> length(sb) do begin
if ((ms[j]='INTEGER') or
(ms[j]='LONGINT') or
(ms[j]='REAL') or
(ms[j]='BYTE') or
(ms[j]='WORD') or
(ms[j]='STRING') or
(ms[j]='SHORTINT') or
(ms[j]='SINGLE') or
(ms[j]='DOUBLE') or
(ms[j]='EXTENDED') or
(ms[j]='CHAR')) and
(pos(ms[j],sb)>0)
then begin if length(ms[i])<>0 then begin
mt[i]:=ms[j];
writeln(ms[j]);
delete(sb,pos(mt[i],sb),length(mt[i]));
inc(kolt);
end; end;
inc(i);
inc(j);
end;
{отсеиваем Не ключевые слова}
writeln; textcolor(11);
writeln(''); writeln('Переменные:');
textcolor(15);
{создаём массив переменных}
j:=1; i:=1;
while j<> length(sb) do begin
if ((ms[j]<>'CONST') and
(ms[j]<>'TRUE' ) and
(ms[j]<>'FALSE') and
(ms[j]<>'BEGIN') and
(ms[j]<>'END' ) and
(ms[j]<>'ARRAY') and
(ms[j]<>'SET' ) and
(ms[j]<>'OF') and
(ms[j]<>'DO') and
( ms[j]<>'CASE') and
(ms[j]<>'TO') and
(ms[j]<>'THEN') and
(ms[j]<>'WHILE') and
(ms[j]<>'IF') and
(ms[j]<>'FUNCTION') and
(ms[j]<>'PROCEDURE') and
(ms[j]<>'AND') and
( ms[j]<>'OR') and
( ms[j]<>'TYPE') and
( ms[j]<>'REPEAT') and
(ms[j]<>'VAR') and
( ms[j]<>'ELSE') and
( ms[j]<>'UNTIL') and
(ms[j]<>'INTEGER') and
(ms[j]<>'LONGINT') and
(ms[j]<>'REAL') and
(ms[j]<>'BYTE') and
(ms[j]<>'WORD') and
(ms[j]<>'SHORTINT') and
(ms[j]<>'SINGLE') and
(ms[j]<>'DOUBLE') and
(ms[j]<>'EXTENDED') and
(ms[j]<>'CHAR')) and
(pos(ms[j],sb)>0)
then begin
if length(ms[j])<>0 then begin
mp[i]:=ms[j];
writeln(mp[i]);
delete(sb,pos(mp[i],sb),length(mp[i]));
inc(kolp); end;
end;
inc(i);
inc(j);
end;
writeln('');
DAi;
End;
96
Объяснение:
Сначала вспомним, что такое конъюнкция: это аналог логической операции И(в простонародье - операции умножения). В бинарной(двоичной) системе счисления она используется так :
0 и 0 = 0
1 и 0 = 0
0 и 1 = 0
1 и 1 = 1
Ну, а теперь возьмём пример
Адрес: 231.32.255.131
Маска: 255.255.240.0
Отлично. Посмотрим сразу на число 255, оно в двоичной системе выглядит так : 11111111. Это значит, что при побитовой конъюнкции любого числа, получается тоже самое число. Т.е. :
231 = 11100111, 255 = 11111111. (возьму первые 4 бита : 1*1=1,1*1=1,1*1=1,1*0=0)
Т.о. 231(логическое И)255=231.
Теперь адрес сети:
231*255=231
32*255=32
255*240=240
131*0=0
Вот и получили адрес сети : 231.32.240.0
Теперь решение задачи :
Тут нужно в обратную сторону. Есть IP адрес, есть узел.
Узел : 98.162.71.123
Адрес: 98.162.71.96
Надо найти правый байт. У узла он равен 123(в десятичной) -> 1111011(в двоичной). У адреса он равен 96(в десятичной) -> 1100000.
Ну, а теперь обратное действие, смотрим на байты узла, умножаем на x, получаем байты адреса. Вот так :
1111011*=1100000
1*х=1 -> x=1
1*x=1 -> x=1
1*x=0 -> x=0
... И так далее, но дальше считать нет смысла, ибо все остальные пять байтов будут равны нулю, т.к. правая часть вся равна нулю(по свойствам выше)
Получили =1100000, а это тоже самое, что и последний байт адреса сети, и равен он 96.
Получили маску : 255.255.255.96
Методические указания предназначены для студентов очного отделения направления 031600 «Реклама и связи с общественностью» по дисциплине «Компьютерные технологии и информатика». Практический цикл посвящен изучению популярнейшего тестового редактора фирмы Microsoft Office Word 2007 (краткое название редактора Word). В настоящее время существует несколько версий этого программного продукта. Однако пользовательский интерфейс и приемы работы в среде Word последних версий практически не отличаются друг от друга, поэтому в методических указаниях нет конкретной привязки к определенной версии редактора. Целью практической работы является самостоятельное обучение основным технологическим операциям и приемам при создании разнообразных документов в среде Word. Практические работы предполагают последовательное изучение краткой теории и выполнение практических заданий. Причем, в основном, теория изучается в процессе выполнения заданий. Такой метод позволяет немедленно закрепить теоретические знания на практике и является достаточно эффективным. Выполнение всех 30 заданий позволит в достаточной степени овладеть основными навыками создания документов в среде Word и подготовит пользователя к самостоятельной работе. Методические указания подготовлены на кафедре «Информационные системы и технологии».
Границы печатаемой зоны (поля) можно задать и с мыши. <...> Кроме вышеуказанного границы абзаца можно установить и с маркеров на горизонтальной линейке <...> Чтобы это сделать необходимо выбрать вкладку «Главная» команду «Границы и заливка». <...> В появившемся окне диалога нужно выбрать закладку «Граница». <...> Чтобы границы ячеек таблицы были видны при печати необходимо указать их обрамление.
Объяснение: