Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Физическая среда является основой на которой строятся физические средства соединения

Работа добавлена на сайт samzan.net:


  1.  Физические среды передачи данных.

Физическая среда является основой, на которой строятся физические средства соединения. Сопряжение с физическими средствами соединения посредством физической среды обеспечивает Физический уровень. В качестве физической среды широко используются эфир, металлы, оптическое стекло и кварц. На физическом уровне находится носитель, по которому передаются данные. Среда передачи данных может включать как кабельные, так и беспроводные технологии. Хотя физические кабели являются наиболее распространенными носителями для сетевых коммуникаций, беспроводные технологии все более внедряются благодаря их способности связывать глобальные сети.
На физическом уровне для физических кабелей определяются механические и электрические (оптические) свойства среды передачи, которые включают:
-тип кабелей и разъемов;
-разводку контактов в разъемах:

-схему кодирования сигналов для значений 0 и 1.
Канальный уровень определяет доступ к среде и управление передачей посредством процедуры передачи данных по каналу. В локальных сетях протоколы канального уровня используются компьютерами, мостами, коммутаторами и маршрутизаторами. В компьютерах функции канального уровня реализуются совместными усилиями сетевых адаптеров и их драйверов.
Для организации связи в сетях используются следующие понятия:
-кабели связи;
-линии связи; 
-каналы связи. 
Кабель связи — это длинномерное изделие электротехнической промышленности. Из кабелей связи и других элементов (монтаж, крепеж, кожухи и т.д.) строят линии связи. Прокладка линии внутри здания задача достаточно серьезная. Длина линий связи колеблется от десятков метров до десятков тысяч километров. В любую более-менее серьезную линию связи кроме кабелей входят: траншеи, колодцы, муфты, переходы через реки, море и океаны, а также грозозащита (равно как и другие виды защиты) линий. Очень сложны охрана, эксплуатация, ремонт линий связи; содержание кабелей связи под избыточным давлением, профилактика (в снег, дождь, на ветру, в траншее и в колодце, в реке и на дне моря). Большую сложность представляют собой юридические вопросы, включающие согласование прокладки линий связи, особенно в городе. Вот чем линия (связи) отличается от кабеля. Называть кабель связи линией — все равно что асфальт, еще в кузове самосвала, именовать готовой автострадой. Разница примерно такая же.
По уже построенным линиям организуют каналы связи. Причем если линию, как правило, строят и сдают сразу всю, то каналы связи вводят постепенно. Уже по линии можно дать связь, но такое использование крайне дорогостоящих сооружений очень неэффективно. Поэтому применяют аппаратуру каналообразования (или, как раньше говорили, уплотнение линии). По каждой электрической цепи, состоящей из двух проводов, обеспечивают связь не одной паре абонентов (или компьютеров), а сотням или тысячам: по одной коаксиальной паре в междугородном кабеле может быть образовано до 10800 каналов тональной частоты (0,3 – 3,4 КГц) или почти столько же цифровых, с пропускной способностью 64 Кбит/с
При наличии кабелей связи создаются линии связи, а уже по линиям связи создаются каналы связи. Линии связи и каналы связи заводятся на узлы связи. Линии, каналы и узлы образуют первичные сети связи. 

Типы кабелей и структурированные кабельные системы
В качестве среды передачи данных используются различные виды кабелей: коаксиальный кабель, кабель на основе экранированной и неэкранированной витой пары и оптоволоконный кабель. Наиболее популярным видом среды передачи данных на небольшие расстояния (до 100 м) становится неэкранированная витая пара, которая включена практически во все современные стандарты и технологии локальных сетей и обеспечивает пропускную способность до 100 Мб/с (на кабелях категории 5). Оптоволоконный кабель широко применяется как для построения локальных связей, так и для образования магистралей глобальных сетей. Оптоволоконный кабель может обеспечить очень высокую пропускную способность канала (до нескольких Гб/с) и передачу на значительные расстояния (до нескольких десятков километров без промежуточного усиления сигнала). 
В качестве среды передачи данных в вычислительных сетях используются также электромагнитные волны различных частот – КВ, УКВ, СВЧ. Однако пока в локальных сетях радиосвязь используется только в тех случаях, когда оказывается невозможной прокладка кабеля, например, в зданиях. Это объясняется недостаточной надежностью сетевых технологий, построенных на использовании электромагнитного излучения. Для построения глобальных каналов этот вид среды передачи данных используется шире – на нем построены спутниковые каналы связи и наземные радиорелейные каналы, работающие в зонах прямой видимости в СВЧ диапазонах.
Очень важно правильно построить фундамент сети – кабельную систему. В последнее время в качестве такой надежной основы все чаще используется структурированная кабельная система.
Структурированная кабельная система (Structured Cabling System – SCS) – это набор коммутационных элементов (кабелей, разъемов, коннекторов, кроссовых панелей и шкафов), а также методика их совместного использования, которая позволяет создавать регулярные, легко расширяемые структуры связей в вычислительных сетях. 
Преимущества структурированной кабельной системы.
Универсальность. Структурированная кабельная система при продуманной организации может стать единой средой для передачи компьютерных данных в локальной вычислительной сети. 
Увеличение срока службы. Срок старения хорошо структурированной кабельной системы может составлять 8-10 лет. 
Уменьшение стоимости добавления новых пользователей и изменения их мест размещения. Стоимость кабельной системы в основном определяется не стоимостью кабеля, а стоимостью работ по его прокладке.
Возможность легкого расширения сети. Структурированная кабельная система является модульной, поэтому ее легко наращивать, позволяя легко и ценой малых затрат переходить на более совершенное оборудование, удовлетворяющее растущим требованиям к системам коммуникаций. 

 Обеспечение более эффективного обслуживания. Структурированная кабельная система облегчает обслуживание и поиск неисправностей.
Надежность. Структурированная кабельная система имеет повышенную надежность, поскольку обычно производство всех ее компонентов и техническое сопровождение осуществляется одной фирмой-производителем.
Выделяют два больших класса кабелей: электрические и оптические, которые принципиально различаются по способу передачи по ним сигнала.

По внутреннему строению различают кабели на витой паре и коаксиальные кабели. 

Кабель типа «витая пара» (twisted pair)

Витой парой называется кабель, в котором изолированная пара проводников скручена с небольшим числом витков на единицу длины. Скручивание проводов уменьшает электрические помехи извне при распространении сигналов по кабелю, а экранированные витые пары еще более увеличивают степень помехозащищенности сигналов.
Кабель типа «витая пара» используется во многих сетевых технологиях, включая Ethernet, ARCNet и IBM Token Ring.
Кабели на витой паре подразделяются на: неэкранированные (UTP – Unshielded Twisted Pair) и экранированные медные кабели. Последние подразделяются на две разновидности: с экранированием каждой пары и общим экраном (STP – Shielded Twisted Pair) и с одним только общим экраном (FTP – Foiled Twisted Pair). Наличие или отсутствие экрана у кабеля вовсе не означает наличия или отсутствия защиты передаваемых данных, а говорит лишь о различных подходах к подавлению помех. Отсутствие экрана делает неэкранированные кабели более гибкими и устойчивыми к изломам. Кроме того, они не требуют дорогостоящего контура заземления для эксплуатации в нормальном режиме, как экранированные. Неэкранированные кабели идеально подходят для прокладки в помещениях внутри офисов, а экранированные лучше использовать для установки в местах с особыми условиями эксплуатации, например, рядом с очень сильными источниками электромагнитных излучений, которых в офисах обычно нет.
Кабели классифицируются по категории, указанным в таблице 6.1. Основанием для отнесения кабеля к одной из категорий служит максимальная частота передаваемого по нему сигнала. 
Таблица 6.2


Категория


Частота передаваемого сигнала, (МГц)


3


16


4


20


5


100


5+


300


6


200


7


600

Коаксиальные кабели
Коаксиальные кабели используются в радио и телевизионной аппаратуре. Коаксиальные кабели могут передавать данные со скоростью 10 Мбит/с на максимальное расстояние от 185 до 500 метров. Они разделяются на толстые и тонкие в зависимости от толщины. Типы коаксиальных кабелей приведены в таблице 6.2.


Тип


Название, значение сопротивления


RG-8 и RG-11


Thicknet, 50 Ом


RG-58/U


Thinnet, 50 Ом, сплошной центральный медный проводник


RG-58 А/U


Thinnet, 50 Ом, центральный многожильный проводник


RG-59


Broadband/Cable television (широковещательное и кабельное телевидение), 75 Ом


RG-59 /U


Broadband/Cable television (широковещательное и кабельное телевидение), 50 Ом


RG-62


ARCNet, 93 Ом


Кабель Thinnet, известный как кабель RG-58, является наиболее широко используемым физическим носителем данных. Сети при этом не требуют дополнительного оборудования и являются простыми и недорогими. Хотя тонкий коаксиальный кабель (Thin Ethernet) позволяет передачу на меньшее расстояние, чем толстый, но для соединений с тонким кабелем применяются стандартные байонетные разъемы BNC типа СР-50 и ввиду его небольшой стоимости он становится фактически стандартным для офисных ЛВС. Используется в технологии Ethernet 10Base2, описанной ниже.
 Толстый коаксиальный кабель (Thick Ethernet) имеет большую степень помехозащищенности, большую механическую прочность, но требует специального приспособления для прокалывания кабеля, чтобы создать ответвления для подключения к ЛВС. Он более дорогой и менее гибкий, чем тонкий. Используется в технологии Ethernet 10Base5, описанной ниже. Сети ARCNet с посылкой маркера обычно используют кабель RG-62 А/U. 

Оптоволоконный кабель

Оптоволоконный кабель (Fiber Optic Cable) обеспечивает высокую скорость передачи данных на большом расстоянии. Они также невосприимчивы к интерференции и подслушиванию. Воптоволоконном кабеле для передачи сигналов используется свет. Волокно, применяемое в качестве световода, позволяет передачу сигналов на большие расстояния с огромной скоростью, но оно дорого, и с ним трудно работать.
Для установки разъемов, создания ответвлений, поиска неисправностей в оптоволоконном кабеле необходимы специальные приспособления и высокая квалификация. Оптоволоконный кабель состоит из центральной стеклянной нити толщиной в несколько микрон, покрытой сплошной стеклянной оболочкой. Все это, в свою очередь, спрятано во внешнюю защитную оболочку.
Оптоволоконные линии очень чувствительны к плохим соединениям в разъемах. В качестве источника света в таких кабелях применяются светодиоды (LED - Light Emitting Diode), а информация кодируется путем изменения интенсивности света. На приемном конце кабеля детектор преобразует световые импульсы в электрические сигналы.
Существуют два типа оптоволоконных кабелей – одномодовые и многомодовые. Одномодовые кабели имеют меньший диаметр, большую стоимость и позволяют передачу информации на большие расстояния. Поскольку световые импульсы могут двигаться в одном направлении, системы на базе оптоволоконных кабелей должны иметь входящий кабель и исходящий кабель для каждого сегмента. Оптоволоконный кабель требует специальных коннекторов и высококвалифицированной установки.

Кабельные системы Ethernet

10Base-T, 100Base-TX

Неэкранированная витая пара (Unshielded Twisted Pair – UTP) – это кабель из скрученных пар проводов.
Характеристики кабеля:
-диаметр проводников 0.4 – 0.6 мм (22~26 AWG), 4 скрученных пары (8 проводников, из которых для 10Base-T и 100Base-TX используются только 4). Кабель должен иметь категорию 3 или 5 и качество data grade или выше;
-максимальная длина сегмента 100 м;

-разъемы восьми контактные RJ-45.

10Base2

-Тонкий коаксиальный кабель;

-Характеристики кабеля: диаметр 0.2 дюйма, RG-58A/U 50 Ом;

-Приемлемые разъемы – BNC;

-Максимальная длина сегмента – 185 м;

-Минимальное расстояние между узлами – 0.5 м;

-Максимальное число узлов в сегменте – 30.

10Base5
-Толстый коаксиальный кабель;
-Волновое сопротивление – 50 Ом;

-Максимальная длина сегмента – 500 метров;

-Минимальное расстояние между узлами –: 2.5 м;

-Максимальное число узлов в сегменте – 100.

Беспроводные технологии

Методы беспроводной технологии передачи данных (Radio Waves) являются удобным, а иногда незаменимым средством связи. Беспроводные технологии различаются по типам сигнала, частоте (большая частота означает большую скорость передачи) и расстоянию передачи. Большое значение имеют помехи и стоимость. Можно выделить три основных типа беспроводной технологии:

радиосвязь;
связь в микроволновом диапазоне;
инфракрасная связь.

Радиосвязь

Технологии радиосвязи пересылают данные на радиочастотах и практически не имеют ограничений по дальности. Она используется для соединения локальных сетей на больших географических расстояниях. Радиопередача в целом имеет высокую стоимость и чувствительна к электронному и атмосферному наложению, а также подвержена перехватам, поэтому требует шифрования для обеспечения уровня безопасности.

Связь в микроволновом диапазоне

Передача данных в микроволновом диапазоне (Microwaves) использует высокие частоты и применяется как на коротких, так и на больших расстояниях. Главное ограничение заключается в том, чтобы передатчик и приемник были в зоне прямой видимости. Используется в местах, где использование физического носителя затруднено. Передача данных в микроволновом диапазоне при использовании спутников может быть очень дорогой.

Инфракрасная связь

Инфракрасные технологии (Infrared transmission), функционируют на очень высоких частотах, приближающихся к частотам видимого света. Они могут быть использованы для установления двусторонней или широковещательной передачи на близких расстояниях. При инфракрасной связи обычно используют светодиоды (LED – Light Emitting Diode) для передачи инфракрасных волн приемнику. Инфракрасная передача ограничена малым расстоянием в прямой зоне видимости и может быть использована в офисных зданиях.

  1.  Модель открытых систем OSI

Модель взаимодействия открытых систем (Open System Interconnection, OSI) определяет различные уровни взаимодействия систем в сетях с коммутацией пакетов, дает им стандартные имена и указывает, какие функции должен выполнять каждый уровень.

Модель OSI была разработана на основании большого опыта, полученного при создании компьютерных сетей, в основном глобальных, в 70-е годы. 
В модели OSI средства взаимодействия делятся на семь уровней: прикладной, представительный, сеансовый, транспортный, сетевой, канальный и физический. Каждый уровень имеет дело с определенным аспектом взаимодействия сетевых устройств. 
Физический уровень имеет дело с передачей битов по физическим каналам связи, таким, как коаксиальный кабель, витая пара, оптоволоконный кабель или цифровой территориальный канал. К этому уровню имеют отношение характеристики физических сред передачи данных, такие как полоса пропускания, помехозащищенность, волновое сопротивление и другие. 
Одной из задач канального уровня является проверка доступности среды передачи. Другая задача канального уровня – реализация механизмов обнаружения и коррекции ошибок. Для этого на канальном уровне биты группируются в наборы, называемые кадрами (frames). Канальный уровень обеспечивает корректность передачи каждого кадра.
Сетевой уровень служит для образования единой транспортной системы, объединяющей несколько сетей, причем эти сети могут использовать различные принципы передачи сообщений между конечными узлами и обладать произвольной структурой связей. Внутри одной сети доставка данных обеспечивается канальным уровнем, а вот доставкой данных между различными сетями занимается сетевой уровень, который и поддерживает возможность правильного выбора маршрута передачи сообщения даже в том случае, когда структура связей между составляющими сетями имеет характер, отличный от принятого в протоколах канального уровня. 
Сети соединяются между собой специальными устройствами, называемыми маршрутизаторами. Маршрутизатор – это устройство, которое собирает информацию о топологии межсетевых соединений и пересылает пакеты сетевого уровня в сеть назначения. Чтобы передать сообщение от отправителя, находящегося в одной сети, получателю, находящемуся в другой сети, нужно совершить некоторое количество транзитных передач между сетями.
Транспортный уровень обеспечивает приложениям или верхним уровням стека – прикладному и сеансовому – передачу данных с той степенью надежности, которая им требуется. Модель OSI определяет пять классов сервиса, предоставляемых транспортным уровнем. Эти виды сервиса отличаются качеством предоставляемых услуг: срочностью, возможностью восстановления прерванной связи, наличием средств мультиплексирования нескольких соединений между различными прикладными протоколами через общий транспортный протокол, а главное – способностью к обнаружению и исправлению ошибок передачи, таких как искажение, потеря и дублирование пакетов. 
Сеансовый уровень обеспечивает управление диалогом: фиксирует, какая из сторон является активной в настоящий момент, предоставляет средства синхронизации. Последние позволяют вставлять контрольные точки в длинные передачи, чтобы в случае отказа можно было вернуться назад к последней контрольной точке, а не начинать все сначала. На практике немногие приложения используют сеансовый уровень, и он редко реализуется в виде отдельных протоколов, хотя функции этого уровня часто объединяют с функциями прикладного уровня и реализуют в одном протоколе. 
Представительный уровень имеет дело с формой представления передаваемой по сети информации, не меняя при этом ее содержания. За счет уровня представления информация, передаваемая прикладным уровнем одной системы, всегда понятна прикладному уровню другой системы. С помощью средств данного уровня протоколы прикладных уровней могут преодолеть синтаксические различия в представлении данных или же различия в кодах символов, например, в кодах ASCII и EBCDIC. На этом уровне может выполняться шифрование и дешифрование данных, благодаря которому секретность обмена данными обеспечивается сразу для всех прикладных служб. Примером такого протокола является протокол Secure Socket Layer (SSL), который обеспечивает секретный обмен сообщениями для протоколов прикладного уровня стека TCP/IP. 
Прикладной уровень – это набор разнообразных протоколов, с помощью которых пользователи сети получают доступ к разделяемым ресурсам, таким как файлы, принтеры или гипертекстовые Web-страницы, а также организуют совместную работу, например, с помощью протокола электронной почты. Единица данных, которой оперирует прикладной уровень, обычно называется сообщением. 

Функции всех уровней модели OSI могут быть отнесены к одной из двух групп: либо к функциям, зависящим от конкретной технической реализации сети, либо к функциям, ориентированным на работу с приложениями. 
Три нижних уровня – физический, канальный и сетевой – являются сетезависимыми, то есть протоколы этих уровней тесно связаны с технической реализацией сети и используемым коммуникационным оборудованием. 
Три верхних уровня – прикладной, представительный и сеансовый - ориентированы на приложения и мало зависят от технических особенностей построения сети. На протоколы этих уровней не влияют какие бы то ни было изменения в топологии сети, замена оборудования или переход на другую сетевую технологию. 
Транспортный уровень является промежуточным, он скрывает все детали функционирования нижних уровней от верхних. Это позволяет разрабатывать приложения, не зависящие от технических средств непосредственной транспортировки сообщений. 
Столь подробное рассмотрение модели OSI/ISO связано с тем, что при разработке стандартов и спецификации по сетевой безопасности специалисты ориентируются на эту перспективную модель. Так в "Общих критериях" приводится распределение функций безопасности по уровням эталонной семиуровневой модели OSI. 

  1.  Адресация. Структура IP-адреса. Расчет адреса подсети и адреса компьютера.

В сети на базе протокола TCP/IP конечные устройства получают уникальные адреса: четырехбайтный IP-адрес. Этот адрес используется на сетевом уровне эталонной модели OSI; Это уникальный 32-разрядный адрес. Данный адрес разбивается на две части. Первая часть адреса идентифицирует сеть, в которой располагается устройство; вторая - само устройство. Такая схема соответствует двухуровневой адресной иерархии.

В последнее время поле номера сети в адресе стало называться сетевым префиксом, так как первая порция каждого IP-адреса идентифицирует номер сети. Все хосты в определенной сети имеют один и тот же сетевой префикс, но при этом они должны иметь уникальные номера хостов. Аналогично, два любых расположенных в разных сетях хоста должны иметь различные сетевые префиксы, но они могут иметь одинаковые номера хостов.

Для обеспечения гибкости в назначении адресов компьютерным сетям разработчики определили, что адресное пространство протокола IP должно быть разделено на три основных класса - A, B и C. Каждый из этих основных классов фиксирует границу между сетевым префиксом и номером хоста в разных точках 32-разрядного адреса.

Адрес класса A предназначен для идентификации устройств в крупных сетях. Каждый адрес класса A имеет 8-разрядный префикс сети, в котором старший бит равен "0", а следующие семь бит используются для определения номера сети. Для задания номера хоста служат оставшиеся 24 бит. В настоящий момент все адреса класса А уже выделены, так что получить его вряд ли возможно. Сети класса А так же обозначаются, как "/8", поскольку адреса этого класса имеют 8-разрядный сетевой префикс.  Адресное пространство класса A занимает 50% общего адресного пространства в протоколе IP.

Адрес класса B предназначен для сетей среднего размера, например в институте или крупной организации. Каждая сеть класса B имеет 16-разрядный префикс сети, в котором два старших бита равны "10", а следующие 14 бит используются для определения номера сети. Для задания номера хоста служат оставшиеся 16 бит. Сети класса В так же обозначаются, как "/16", поскольку адреса этого класса имеют 16-раз-рядный сетевой префикс. Адресный блок класса B занимает 25% общего адресного пространства в протоколе IP.

Адреса класса C предназначены для сети с небольшим числом компьютеров. Каждая сеть класса C имеет 24-разрядный префикс сети, в котором три старших бита равны "110", а следующие 21 бит используются для определения номера сети. Для задания номера хоста служат оставшиеся 8 бит. Сети класса C так же обозначаются, как "/24", поскольку адреса этого класса имеют 24-разрядный сетевой префикс. Адресный блок класса С занимает 12,5% общего адресного пространства в протоколе IP.

Помимо этих трех наиболее популярных классов адресов существует еще два дополнительных класса - D и E. В классе D старшие четыре бита равны "1110"; этот класс используется для поддержки многоадресной передачи данных. В классе E старшие четыре бита равны "1111", и этот класс зарезервирован для экспериментального использования.

Для удобства восприятия адресов в технической литературе, в прикладных программах и т. д., IP-адреса обычно записываются в виде четырех десятичных чисел, разделенных точками, причем каждое из этих чисел представляет значение одного октета IP-адреса. (один октет соответствует 8 бит адреса, т. е. можно сказать, что весь IP-адрес состоит из четырех октетов.)

Диапазоны значений адресов трех классов:

  1.  для класса А: 1.XXX.XXX.XXX - 126.XXX.XXX.XXX
  2.  для класса B: 128.0.XXX.XXX - 191.255.XXX.XXX
  3.  для класса C: 192.0.0.XXX - 223.255.255.XXX

В 1985 году определен стандартный процесс поддержки формирования подсетей или разделения единственного номера сети классов А, B и C на меньшие части. Формирование подсетей было введено для разрешения следующих проблем:

  1.  разбухания таблиц маршрутизации в маршрутизаторов Internet;
  2.  дефицита номеров сетей при необходимости расширения их числа.

Обе эти проблемы решались за счет добавления еще одного уровня иерархии к адресной структуре протокола IP. Вместо двухуровневой иерархии концепция формирования подсетей вводит поддержку трехуровневой иерархии.

Организация подсетей решает проблему роста таблиц маршрутизации за счет того, что структура подсетей корпоративной сети никогда не видима за пределами организации. Маршруты из Internet до любой подсети данного IP-адреса одинаковы вне зависимости от того, в какой подсети расположен получатель. Это стало возможным благодаря тому, что все подсети данного номера сети используют один и тот же сетевой префикс, но с разными номерами подсетей. Маршрутизаторы в частной сети должны различать отдельные подсети, но у маршрутизаторов в Internet все данные подсети определены единственной записью в таблицах маршрутизации. Это позволяет администратору частной сети вносить любые изменения в логическую структуру сети без влияния на размер таблиц маршрутизации на маршрутизаторах в сети Internet.

Формирование подсетей позволяет также решить вторую проблему, связанную с выделением организации нового сетевого номера или номеров при ее росте. Организации можно выделить один номер сети, затем администратор имеет возможность произвольно присваивать номера подсетей для каждой из своих внутренних сетей. Это позволяет внедрять дополнительные подсети без необходимости получения нового сетевого номера.

Формирование подсетей внутри частной сети организации позволяет извлечь следующие преимущества:

  1.  ограничение размера глобальных таблиц маршрутизации в сети Internet, так как администратор частной сети не нуждается в получении дополнительной адресной информации;
  2.  возможность по своему усмотрению реализовывать дополнительные подсети без получения новых номеров сетей.

Изменение топологии частной сети не влияет на таблицы маршрутизации в сети Internet, поскольку маршрутизаторы в Internet не имеют маршрутов в индивидуальные подсети организации - они знают только маршрут к самой сети.

Если маршрутизаторы в Internet используют только сетевой префикс адреса получателя для передачи трафика в совокупность подсетей, то маршрутизаторы внутри этой совокупности анализируют расширенный сетевой префикс для передачи трафика индивидуальным подсетям.

 После того как класс определен, хост может легко найти границу между битами номера сети и номера хоста в этой сети. Однако класс адреса ничем не может помочь в определении номера подсети. Для решения данного вопроса служит 32-разрядная маска подсети, позволяющая однозначно определить требуемую границу. Для стандартных классов сетей маски имеют следующие значения:

  1.  255.0.0.0 - маска для сети класса А;
  2.  255.255.0.0 - маска для сети класса B;
  3.  255.255.255.0 - маска для сети класса C.
  4.  Определение алгоритма. Свойства алгоритма. Способы описаний алгоритмов. Типовые (базовые) структуры, используемые при записи алгоритмов. Принцип разработки схем алгоритмов программ. 

Под алгоритмом понимается конечная последовательность точно сформулированных правил решения некоторого касса задач. Алгоритм обладает следующими свойствами:

Определенность. Все действия, которые необходимо произвести должны быть строго определены.

Понятность. Все действия, которые необходимо произвести, должны быть однозначно поняты и выполнены каждым исполнителем алгоритма. Это свойство может быть интерпретировано как однозначность алгоритма, под которой понимается единственность толкования исполнителем правил выполнения действий и порядка их выполнения.

Конечность. Обязательность завершения каждого из действий, составляющих алгоритм и завершимость выполнения алгоритма в целом.

Результативность. Если алгоритм применим к данной задаче, то после конечного числа шагов должен быть получен результат.

Массовость. Возможность применения данного алгоритма для решения класса задач, отвечающих общей постановке задачи.

Правильность. Способность алгоритма давать правильные результаты решения поставленных задач.

Каждое правило алгоритма записывается в виде повелительного предложения, понимаемого исполнителем алгоритма как команда на выполнение.

  1.  Классификация типов данных в TURBO PASCAL. Порядковые типы данных. Функции ORD, PRED, SUCC.

При решении задач выполняется обработки информации различного характера. Это могут быть целые и дробные величины, строки. Для описания множества допустимых значений величины и совокупности операций, в которых может участвовать данная величина, используется указание ее типа данных. Тип данных (data type) - множество величин, объединенных определенной совокупностью допустимых операций. Каждый тип имеет свой диапазон значений и специальное зарезервированное слово для описания. В Паскале для описания типа в общем случае используется зарезервированное слово type.

Формат:

Type

<имя типа>=<значения типа>;

Все типы данных можно разделить на скалярные и структурированные (составные). Скалярные типы, в свою очередь, делятся на стандартные и пользовательские. К стандартным типам относятся целочисленные, вещественные, литерные, булевские типы данных и указатели.

Пользовательские типы разрабатываются пользователями системы Турбо Паскаль.

К порядковым типам относятся целые, логический, символьный, перечисляемый и тип-диапазон.

Целые типы. Диапазон возможных значений целых типов зависит от их внутреннего представления, которое может занимать один, два или четыре байта

ЦЕЛЫЕ ТИПЫ

НАЗВАНИЕ

Длина,

байт

Диапазон значений

Byte

1

0…255

ShortInt

1

-128…+127

Word

2

0…65535

Integer

2

-32768…+32767

LongInt

4

-2 147 483 648…+2 147 483 647

При использовании процедур и функций с целочисленными параметрами следует руководствоваться «вложенностью» типов, т.е. везде, где может использоваться Word, допускается использование Byte (но не наоборот), в LongInt “входит” Integer, который, в свою очередь, включает в себя ShortInt.

При действии с целыми числами тип результата будет соответствовать типу операндов, а если операнды относятся к различным целым типам,- типу того операнда, который имеет максимальную мощность (максимальный диапазон значений). Возможное переполнение никак не контролируется, что может привести к недоразумениям.

Логический тип

ЛОГИЧЕСКИЕ ТИПЫ

Название

Длина, Байт

OS

Значение

BOOLEAN

1

Linux, DOS

False, True

BYTEBOOL

1

Совместим с С

False, True

WORDBOOL

2

Win

False, True

LONGBOOL

4

Win

False, True

Значениями логического типа может быть одна из предварительно объявленных констант FALSE (ложь) или TRUE (истина).Поскольку логический тип относится к порядковым типам, его можно использовать в операторе счётного типа.

Символьный тип. CHAR – занимает 1 байт. Значением символьного типа является множество всех символов ПК. Каждому символу присваивается целое число в диапозоне 0…255. Это число служит кодом внутреннего представления символа.

Для кодировки используется код ASCII (American Standart Code for Information Interchange – американский стандартный код для обмена информацией). Это 7-битный код, т.е. с его помощью можно закодировать лишь 128 символов в диапазоне от 0 до 127. В то же время в 8-битном байте, отведенном для хранения символа в Турбо Паскале, можно закодировать в два раза больше символов в диапазоне от 0 до 255. Первая половина символов ПК с кодами 0…127 соответствует стандарту ASCII. Вторая половина символов с кодами 128ююю255 не ограничена жёсткими рамками стандарта и может меняется на ПК разных типов.

Перечисляемый тип. Перечисляемый тип задаётся перечислением тех значений, которые он может получать. Каждое значение именуется некоторым идентификатором и рапологается в списке, обрамлённом круглыми скобками, напримерЖ

Type

          Colors = (red, white, blue);

Применение перечисляемых типов делает программы нагляднее.

Соответствие между значениями перечисляемого типа и порядковыми номерами этих значений устанавливается порядком перечисления: первое значение списке получает порядковый номер 0, второе – 1 и т.д. максимальная мощность перечисляемого типа составляет 65536 значений, поэтому фактически перечисляемый тип задаёт некоторое подмножество целого типа WORD и может рассматриваться как компактное объявление сразу группы целочисленных констант со значениями 0,1 и т.д.

Использование перечисляемых типов повышает надёжность программы, благодаря возможности контроля тех значений, которые получают соответствующие переменные.

Тип-диапазон. Тип-диапазон есть подмножество своего базового типа, в качестве которого может выступать любой порядковый тип, кроме типа-диапазона.

Тип-диапазон задаётся границами своих значений внутри базового типа:

<мин.знач.>..<макс.знач.>

Здесь <мин.знач.> - минимальное значение типа-диапазона.

<макс.знач.> - максимальное его значение.

Type

          Digit = ‘0’ ..’9’;

          Dig2 = 48 .. 57;

При определении типа-диапазона нужно руководствоваться следующими правилами:

1.     два символа «..» рассматриваются как один символ, поэтому между ними недопустимы пробелы.

2.     левая граница диапазона не должна превышать его правую границу.

Тип-диапазон наследует все свойства базового итпа, но с ограничениями, связанными с его меньшей мощностью.

Для значений перечисляемых типов определены стандартные функции:

SUCC - получение следующего значения данного типа,

PRED - получение предыдущего значения данного типа,

ORD - порядковый номер значения данного типа (значения нумеруются, начиная с 0, в порядке их перечисления в определении типа). 

  1.  Классификация типов данных в TURBO PASCAL. Целые типы данных. Определение. Описание в программе. Операции, определенные над данными этого типа. 

При решении задач выполняется обработки информации различного характера. Это могут быть целые и дробные величины, строки. Для описания множества допустимых значений величины и совокупности операций, в которых может участвовать данная величина, используется указание ее типа данных. Тип данных (data type) - множество величин, объединенных определенной совокупностью допустимых операций. Каждый тип имеет свой диапазон значений и специальное зарезервированное слово для описания. В Паскале для описания типа в общем случае используется зарезервированное слово type.Формат:

Type

<имя типа>=<значения типа>;

Все типы данных можно разделить на скалярные и структурированные (составные). Скалярные типы, в свою очередь, делятся на стандартные и пользовательские. К стандартным типам относятся целочисленные, вещественные, литерные, булевские типы данных и указатели.

Пользовательские типы разрабатываются пользователями системы Турбо Паскаль.

Целочисленные типы данных

Целочисленные типы данных представляют собой значения, которые могут использоваться в арифметических выражениях и занимать в памяти от 1 до 4 байт (табл. 2)

Таблица 2

Целочисленные типы данных

Тип

Диапазон

Требуемая память (байт)

byte

0..255

1

shorint

- 128..127

1

integer

-32768..32767

2

word

0..65535

2

longint

2147483648..2147483647

4

Значения целых типов могут изображаться в программе двумя способами: в десятичном виде (последовательность цифр) и в шестнадцатеричном виде (в этом случае вначале числа ставится знак $, а цифры старше 9 обозначаются латинскими буквами от A до F).

Над данными целого типа определены следующие операции

- арифметические, возвращающие результат выполнения над целыми операндами в виде целого числа - + ; - ; *; /; div; mod;

- отношения - <; >; >=; <=; =; <>, вырабатывающие результат логического типа.

Над целыми числами определен ряд стандартных функций, например:

Сhr(x) - возвращает символ, ASCII-код которого равен х;

Sqr(x) - возвращает квадрат числа х;

Sqrt(x) - возвращает значение корня квадратного из х;

Exp(x) - возвращает е в степени х (экспоненту), результат вещественного типа;

и ряд других функций.

Для целых чисел определены следующие стандартные процедуры:

- dec (x,i) - уменьшает значение х на i, если i не задано, то на 1;

- inc (x,i) - увеличивает значение ч на i, если i не задано, то на 1.

  1.  Классификация типов данных в TURBO PASCAL. Символьный тип данных. Строковый тип данных в TURBO PASCAL.Определение. Описание в программе. Примеры использования.

При решении задач выполняется обработки информации различного характера. Это могут быть целые и дробные величины, строки. Для описания множества допустимых значений величины и совокупности операций, в которых может участвовать данная величина, используется указание ее типа данных. Тип данных (data type) - множество величин, объединенных определенной совокупностью допустимых операций. Каждый тип имеет свой диапазон значений и специальное зарезервированное слово для описания. В Паскале для описания типа в общем случае используется зарезервированное слово type.

Формат:

Type

<имя типа>=<значения типа>;

Все типы данных можно разделить на скалярные и структурированные (составные). Скалярные типы, в свою очередь, делятся на стандартные и пользовательские. К стандартным типам относятся целочисленные, вещественные, литерные, булевские типы данных и указатели.

Пользовательские типы разрабатываются пользователями системы Турбо Паскаль.

Литерный (символьный) тип

Литерный (символьный) тип Char  определяется множеством значений кодовой таблицы ПК. Каждому символу приписывается целое число в диапазоне от 0 до 255. Для кодировки используется код ASCII. Для размещения в памяти переменной литерного типа требуется один байт.

В программе значения переменных и констант типа char должны быть заключены в апострофы. Например, 'A' обозначает букву А, ' ' - пробел, ';' - точку с запятой.

Над данными символьного типа определены следующие операции отношения =, <>, <, >, <=, >=, вырабатывающие результат логического типа.

Для данных символьного типа определены следующие стандартные функции:

Chr(x) - преобразует выражение х типа byte в символ и возвращает значение символа;

Ord(ch) - преобразует символ ch в его код типа byte и возвращает значение кода;

Pred(ch) - возвращает предыдущий символ;

Succ(ch) - возвращает следующий символ.

Строковая константа Turbo Pascal - последовательность символов, заключенная в апострофы. Для описания строковых переменных в Turbo Pascal существует предопределенный тип string. 

Если при описании строки ее максимальная длина не указывается, то по умолчанию принимается максимально допустимая длина, равная 255 символам (переменная smax).

На строках оперделены функции:

length(s) - определяет текущую длину строки s. Результат - значение целого типа.

сopy(s, poz, n) - выделяет из строки s, начиная с позиции poz, подстроку из n символов. Здесь s - строковая переменная, poz, n - целочисленные значения.

сoncat(s1, s2, ..., sn) - выполняет объединение (слияние) строк s1, s2, ..., sn в одну строку.

pos(s1, s) - определяет позицию подстроки s1 в строке s. Результат - целое число, равное номеру позиции, где находится первый символ искомой подстроки. Если вхождение подстроки не обнаружено, то результат функции будет равен 0.

  1.  Классификация типов данных в TURBO PASCAL. Логический тип данных. Определение. Описание в программе. Операции, определенные над данными этого типа. Примеры использования. Построение выражений логического типа. Примеры выражений логического типа

При решении задач выполняется обработки информации различного характера. Это могут быть целые и дробные величины, строки. Для описания множества допустимых значений величины и совокупности операций, в которых может участвовать данная величина, используется указание ее типа данных. Тип данных (data type) - множество величин, объединенных определенной совокупностью допустимых операций. Каждый тип имеет свой диапазон значений и специальное зарезервированное слово для описания. В Паскале для описания типа в общем случае используется зарезервированное слово type.

Формат:

Type

<имя типа>=<значения типа>;

Все типы данных можно разделить на скалярные и структурированные (составные). Скалярные типы, в свою очередь, делятся на стандартные и пользовательские. К стандартным типам относятся целочисленные, вещественные, литерные, булевские типы данных и указатели.

Пользовательские типы разрабатываются пользователями системы Турбо Паскаль.

Логический тип

ЛОГИЧЕСКИЕ ТИПЫ

Название

Длина, Байт

OS

Значение

BOOLEAN

1

Linux, DOS

False, True

BYTEBOOL

1

Совместим с С

False, True

WORDBOOL

2

Win

False, True

LONGBOOL

4

Win

False, True

Значениями логического типа может быть одна из предварительно объявленных констант FALSE (ложь) или TRUE (истина).

Описание переменных: var a, b : Boolean

Арифметических операций нет, но допустимы логические операции: Not, And, Or, Xor, операции отношения =, <> и функции Ord, Pred, Succ.

Логическое отрицание (инверсия).

А

¬ А

И

Л

Л

И

Логическое умножение (конъюнкция)

А

В

А&B

И

И

И

И

Л

Л

Л

И

Л

Л

Л

Л

 Логическое сложение (дизъюнкция)

А

В

АVB

И

И

И

И

Л

И

Л

И

И

Л

Л

Л

 Логическое следование (импликация)

А

В

А=>В

И

И

И

И

Л

Л

Л

И

И

Л

Л

И

Логическое тождество (эквиваленция).

А

В

А<=>В

И

И

И

И

Л

Л

Л

И

Л

Л

Л

И

  1.  Массивы в TURBO PASCAL. Определение. Описание в программе. Операции, определенные над данными этого типа. Доступ к элементам одномерного массива. Примеры использования одномерных массивов.

массив — это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип.

Элементами массива могут быть данные любого типа, включая структурированные.

    Тип элементов массива называется базовым. Особенностью языка Паскаль является то, что число элементов массива фиксируется при описании и в процессе выполнения программы не меняется.

Элементы, образующие массив, упорядочены таким образом, что каждому элементу соответствует совокупность номеров (индексов), определяющих его местоположение в общей последовательности. Доступ к каждому отдельному элементу осуществляется путем индексирования элементов массива. Индексы представляют собой выражения любого скалярного типа (чаще целого), кроме вещественного.

<имя массива>:= array [<количество элементов>] of <тип переменной>;
Каждый элемент массива в общем виде описывается как А[I], где
А - имя массива,
I - номер или индекс массива (0<=I<=N, но практически употребляется 1<=I<=N)
A[I] - значение элемента массива.

Массив в Паскале

<имя массива>:= array [<количество элементов>] of <тип переменной>;
Каждый элемент массива в общем виде описывается как А[I], где
А - имя массива,
I - номер или индекс массива (0<=I<=N, но практически употребляется 1<=I<=N)
A[I] - значение элемента массива.

Действия над массивами

    Для работы с массивом как единым целым используется идентификатор массива без указания индекса в квадратных скобках. Массив может участвовать только в операциях отношения "равно", "не равно" и в операторе присваивания. Массивы, участвующие в этих действиях, должны быть идентичны по структуре, т. е. иметь одинаковые типы индексов и одинаковые типы компонентов.

    Например, если массивы А и В описаны как
var А, В: array[1..20] of real; то применение к ним допустимых операций даст следующий результат:

    Выражение Результат

    А=В True, если значение каждого элемента массива А равно соответствующему значению элемента массива В

    А<>В True, если хотя бы одно значение элемента массива А не равно значению соответствующего элемента массива В

    А:=В Все значения элементов массива В присваиваются соответствующим элементам массива А. Значения элементов массива В остаются неизменны.

Действия над элементами массива

    После объявления массива каждый его элемент можно обработать, указав идентификатор (имя) массива и индекс элемента в квадратных скобках. Например, запись Mas[2], VectorZ[10] позволяет обратиться ко второму элементу массива Mas и десятому элементу массива VectorZ.

    При работе с двумерным массивом указываются два индекса, с n-мерным массивом - n индексов. Например, запись MatrU[4,4] делает доступным для обработки значение элемента, находящегося в четвертой строке четвертого столбца массива MatrU.

    Индексированные элементы массива называются индексированными переменными и могут быть использованы так же, как и простые переменные. Например, они могут находиться в выражениях в качестве операндов, использоваться в операторах for, while, repeat, входить в качестве параметров в операторы Read, Readln, Write, Writeln; им можно присваивать любые значения, соответствующие их типу.

Одномерные массивы

    Массивом называется совокупность данных, выполняющих аналогичные функции, и обозначаемая одним именем. Если за каждым элементом массива закреплен только один его порядковый номер, то такой массив называется линейным, или одномерным.

  1.  Массивы в TURBO PASCAL. Определение. Описание в программе многомерных массивов. Доступ к элементам многомерных массивов. Примеры использования многомерных массивов.

Массивом называется совокупность данных, выполняющих аналогичные функции, и обозначаемая одним именем. Если за каждым элементом массива закреплен только один его порядковый номер, то такой массив называется линейным, или одномерным.

Элементами массива могут быть данные любого типа, включая структурированные.

    Тип элементов массива называется базовым. Особенностью языка Паскаль является то, что число элементов массива фиксируется при описании и в процессе выполнения программы не меняется.

Элементы, образующие массив, упорядочены таким образом, что каждому элементу соответствует совокупность номеров (индексов), определяющих его местоположение в общей последовательности. Доступ к каждому отдельному элементу осуществляется путем индексирования элементов массива. Индексы представляют собой выражения любого скалярного типа (чаще целого), кроме вещественного.

<имя массива>:= array [<количество элементов>] of <тип переменной>;
Каждый элемент массива в общем виде описывается как А[I], где
А - имя массива,
I - номер или индекс массива (0<=I<=N, но практически употребляется 1<=I<=N)
A[I] - значение элемента массива.

Массив в Паскале

<имя массива>:= array [<количество элементов>] of <тип переменной>;
Каждый элемент массива в общем виде описывается как А[I], где
А - имя массива,
I - номер или индекс массива (0<=I<=N, но практически употребляется 1<=I<=N)
A[I] - значение элемента массива.

Действия над массивами

    Для работы с массивом как единым целым используется идентификатор массива без указания индекса в квадратных скобках. Массив может участвовать только в операциях отношения "равно", "не равно" и в операторе присваивания. Массивы, участвующие в этих действиях, должны быть идентичны по структуре, т. е. иметь одинаковые типы индексов и одинаковые типы компонентов.

    Например, если массивы А и В описаны как
var А, В: array[1..20] of real; то применение к ним допустимых операций даст следующий результат:

    Выражение Результат

    А=В True, если значение каждого элемента массива А равно соответствующему значению элемента массива В

    А<>В True, если хотя бы одно значение элемента массива А не равно значению соответствующего элемента массива В

    А:=В Все значения элементов массива В присваиваются соответствующим элементам массива А. Значения элементов массива В остаются неизменны.

Действия над элементами массива

    После объявления массива каждый его элемент можно обработать, указав идентификатор (имя) массива и индекс элемента в квадратных скобках. Например, запись Mas[2], VectorZ[10] позволяет обратиться ко второму элементу массива Mas и десятому элементу массива VectorZ.

    При работе с двумерным массивом указываются два индекса, с n-мерным массивом - n индексов. Например, запись MatrU[4,4] делает доступным для обработки значение элемента, находящегося в четвертой строке четвертого столбца массива MatrU.

    Индексированные элементы массива называются индексированными переменными и могут быть использованы так же, как и простые переменные. Например, они могут находиться в выражениях в качестве операндов, использоваться в операторах for, while, repeat, входить в качестве параметров в операторы Read, Readln, Write, Writeln; им можно присваивать любые значения, соответствующие их типу.

Двумерные массивы

    Двумерным называется массив, элемент которого зависит от его местоположения в строке и в столбце. В общем виде элемент матрицы обозначается как A(I,J), где А — имя массива, I — индекс (номер) строки,
J — индекс (номер) столбца.

Описание матрицы на языке Паскаль

    Матрицу можно задать двумя способами:

  1.  <имя матрицы>: array [<количество строк>] of array [<количество столбцов>] of <тип переменной>;
  2.  <имя матрицы>: array [<количество строк >,<количество столбцов>] оf <тип переменной>].

Соотношение индексов в квадратной матрице

I=J элементы матрицы расположены на главной диагонали
I<J элементы матрицы расположены над главной диагональю
I>J элементы матрицы расположены под главной диагональю
I+J=N+I элементы матрицы расположены на побочной диагонали (N — количество строк или столбцов в квадратной матрице)
I+J<N+I элементы матрицы расположены над побочной диагональю
I+J>N+I элементы матрицы расположены под побочной диагональю.

  1.  Массивы в TURBO PASCAL. Организация сортировки элементов одномерного массива. Привести алгоритм какого-либо метода сортировки.

Сортировка – это упорядочивание последовательности элементов по заданному признаку. Например, дано множество чисел {5, 2, 4, 3, 1, 0, 6, 7, 9, 8}, т после выполнения сортировки по возрастанию будет получено множество {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.

"Трудоёмкость" этого алгоритма (число выполняемых сравнений элементов) можно оценить по формуле (n2-n)/2 для массива из n элементов.

Сортировка обменами (метод пузырька)

В этом методе организуется последовательный перебор элементов массива A1, A2, ... AN и сравнение значений 2 соседних элементов. Если впереди находится элемент с большим значением, выполняется перестановка (при сортировке по возрастанию). Сортировка по убыванию будет отличаться только знаком операции (<, а не >) в операторе сравнения соседних элементов. Переменная m теперь используется как буфер для перестановки 2 соседних элементов в массиве.

Этот метод называют также методом пузырька, так как при его реализации наибольшие или наименьшие текущие элементы как пузырьки "поднимаются" к началу массива (или "опускаются" к его концу).

procedure Sort2 (n:integer; var a:array of integer);

{Сортировка обменами (метод пузырька)}

var m,i,j,n1,n2:integer;

begin

n1:=Low(a); n2:=Low(a)+n-1;

for i:=n1 to n2-1 do

for j:=n1 to n2-i-1 do

if a[j]>a[j+1] then begin

  m:=a[j]; a[j]:=a[j+1]; a[j+1]:=m;

 end;

end;

Число сравнений оценивается аналогично. Вообще, при сравнении элементов массива по принципу "каждый с каждым" проще всего представить эти элементы в виде прямоугольной таблицы-матрицы. Поскольку сравнить элементы 1 и 3 - то же самое, что сравнить 3 и 1, а сравнивать элемент с самим собой не нужно, получаем, что из n2 всех возможных сравнений нужно отнять n элементов на главной диагонали ("сравнения элемента с самим собой") и взять от этой величины половину:

  1.  Условный оператор и оператор выбора в TURBO PASCAL. Назначение. Формат. Сравнительная характеристика. Примеры использования.

Оператор условного перехода в Турбо Паскаль имеет вид:

if условие then оператор 1 else оператор 2;

условие - это логическое выражение, в зависимости от которого выбирается одна из двух альтернативных ветвей алгоритма. Если значение условия истинно (TRUE), то будет выполняться оператор 1, записанный после ключевого слова then. В противном случае будет выполнен оператор 2, следующий за словом else, при этом оператор 1 пропускается. После выполнения указанных операторов программа переходит к выполеннию команды, стоящей непосредственно после оператора if.

Необходимо помнить, что перед ключевым словом else точка с запятой никогда не ставится!

else - часть в операторе if может отсутствовать:

if условие then оператор 1;

Тогда в случае невыполнения логического условия управление сразу передается оператору, стоящему в программе после конструкции if.

Следует помнить, что синтаксис языка допускает запись только одного оператора после ключевых слов then и else, поэтому группу инструкций обязательно надо объединять в составной оператор (окаймлять операторными скобками begin ... end). В противном случае возникает чаще всего логическая ошибка программы, когда компилятор языка ошибок не выдает, но программа тем не менее работает неправильно.

Оператор выбора

Часто возникают ситуации, когда приходится осуществлять выбор одного из нескольких альтернативных путей выполнения программы. Несмотря на то, что такой выбор можно организовать с помощью оператора if .. then, удобнее воспользоваться специальным оператором выбора. Его формат:

case выражение of

   вариант : оператор;

   ...

   вариант : оператор;

end;

или

case выражение of

   вариант : оператор;

   ...

   вариант : оператор;

   else оператор

end;

выражение, которое записывается после ключевого слова case, называется селектором, оно может быть любого перечисляемого типа. вариант состоит из одной или большего количества констант или диапазонов, разделенных запятыми. Они должны принадлежать к тому же типу, что и селектор, причем недопустимо более одного упоминания вариантав записи инструкции case. Из перечисленного множества операторов будет выбран только тот, перед которым записан вариант, совпадающий со значением селектора. Если такого варианта нет, выполняется оператор, следующий за словом else (если он есть).

  1.  Оператор цикла FOR... в TURBO PASCAL. Назначение. Формат. Примеры использования.

 

FOR <пар_цик> := <нач_знач> ТО <кон_знач> DO

<тело цикла>.

Здесь FOR, TO, DO - зарезервированные слова (для, до, выполнить);

<пар_цик> - параметр цикла - переменная типа INTEGER

<нач_знач> - начальное значение - выражение того же типа;

 <кон_знач> - конечное значение - выражение того же типа; 

<тело цикла> - произвольный оператор Турбо Паскаля.

При выполнении оператора FOR вначале вычисляется выражение <нач_знач> и осуществляется присваивание <пар_цик> : = <нач_знач>. После этого циклически повторяется:

1.проверка условия <пар_цик> <= <кон_знач>; если условие не выполнено, оператор FOR завершает свою работу;

2.выполнение оператора <тело цикла>;

3.наращивание переменной <пар_цик> на единицу.

Пример:

 Вычислить суммы всех целых чисел от 1 до N.

var

i, n, s : integer;

begin

Write('N = ');

ReadLn(n); .

s := 0;  

for i : =1 to n do  

s : = s + i; {использовали параметр цикла i}

writeln('Сумма = ',s);

readln;

end.

Существует другая форма оператора:

FOR<пар_цик>: = <нач_знач> DOWNTO <кон_знач> DO <оператор>

Замена зарезервированного слова ТО на DOWNTO означает, что шаг наращивания параметра цикла равен (-1).

Пример:

var

i, n, s : integer;

begin

Write('N = ');

ReadLn(n); .

s := 0;  

for i : =n downto 1 do  

s : = s + i; {использовали параметр цикла i}

writeln('Сумма = ',s);

readln;

end.

  1.  Операторы цикла WHILE ...и REPEAT... UNTIL в TURBO PASCAL. Назначение. Формат. Сравнительная характеристика. Примеры использования. 

WHILE <условие> DO

<тело цикла>

Здесь WHILE, DO - зарезервированные слова (пока [выполняется условие], делать);

<условие> - выражение логического типа;

 <тело цикла> - произвольный оператор Турбо Паскаля.

Если выражение <условие> имеет значение TRUE, то выполняется <тело цикла>, после чего вычисление выражения <условие> и его проверка повторяются. Если <условие> имеет значение FALSE , оператор WHILE прекращает свою работу.

Пример:

var

i, n, s : integer;

begin

Write('N = ');

ReadLn(n); .

s := 0;  

i : = 0;

while i<n do begin

   i:=i+1;  

  s : = s + i;

end;

writeln('Сумма = ',s);

readln;  

end.

Оператор цикла REPEAT... UNTIL с постпроверкой условия:

REPEAT <тело_цикла>

UNTIL <условие>.

Здесь REPEAT, UNTIL- зарезервированные слова (повторять до тех пор, пока не будет выполнено условие);

<тело_цикла> - произвольная последовательность операторов Турбо Паскаля; 

<условие> - выражение логического типа.

Операторы <тело_цикла> выполняются хотя бы один раз, после чего вычисляется выражение <условие>: если его значение есть FALSE, операторы <тело_цикла> повторяются, в противном случае оператор REPEAT. . . UNTIL завершает свою работу.

Пример:

var

i, n, s : integer;

begin

Write('N = ');

ReadLn(n); .

s := 0;

i:=0;

repeat

i:=i+1; 

s : = s + i;

until i=n;

writeln('Сумма = ',s);

readln;  

end.

  1.  Оператор присваивания. Совместимость и преобразование типов данных при выполнении присваивания. Стандартные процедуры BREAK, CONTINUE, EXIT, HALT. Их назначение. Примеры использования.

Основное преобразование данных, выполняемое компьютером, - присвоение переменной нового значения.

Общий вид оператора присваивания:

Имя_переменной:=арифметическое выражение;

При выполнении оператора присваивания рассматривается арифметические выражения, из ячеек оперативной памяти, соответствующих стоящим там именам, вносятся в процессор значения и выполняется указанные действия над данными. Полученный результат записывается в ячейку памяти, имя которой указано слева от знака присваивания.

Например:

x:=3.14

Переменной х присвоить значение 3.14

a:=b+c

Из ячеек b и c считываются заранее помещенные туда данные, вычисляется сумма, результат записывается в ячейку а

i:=i+1

Значение переменной увеличивается на единицу

  
Для типов переменной слева и арифметического выражения справа от знака присваивания существуют ограничения:

1) если переменная вещественного типа, то арифметическое выражение может быть как целого, так и вещественного типа, т. е. содержать либо целые переменные и допустимые для них операции, либо вещественные, либо и те, и другие (тогда выражение преобразуется к вещественному типу);

2) если переменная слева целого типа, то арифметическое выражение только целочисленное.

Это означает, что можно, например, вещественной переменной присвоить целое значение.

Если в процессе выполнения программы встречается пере присваивание (т.е. та же самая переменная принимает другое значение), то старое значение переменной стирается, на свободное место записывается новое значение. Команда присваивания позволяет лучше понять смысл слова переменная (т.е. меняющая своё значение по ходу программы).

 BREAK применяется для досрочного прекращения циклов WHILE, REPEAT…UNTIL и FOR.

Пример: Определение номера первого нулевого элемента в массиве А

VAR
  i, num : Integer;
  A : array[1..10] of Integer;
BEGIN
  . . . {
Ввод элементов массива А }
  num := 0;
  
FOR i:=1 TO 10 DO { Цикл для i от 1 до 10 }
   
IF A[i]=0 THEN begin { если найден нулевой элемент }
                    num := i; {
запоминаем его номер }
                    BREAK      {
прекращаем цикл }
                  
end;
  
IF num <> 0 THEN WriteLn(num)
              
ELSE WriteLn(‘Нулевых элементов нет’);
END.

Процедура CONTINUE вызывает переход к следующей циклической итерации игнорируя расположенные ниже операторы, составляющие тело цикла.

Пример: Определение наибольшего общего делителя (НОД) двух чисел

VAR
  CommDiv,        { кандидат в НОД }
  num1,           { первое число }
  num2 : Integer; { второе число }
BEGIN
  Write(‘Введите первое число: ’); ReadLn(num1);
  Write(‘Введите второе число: ’); ReadLn(num2);
  
FOR CommDiv := num1 DOWNTO 1 DO begin
    
IF (num2 mod CommDiv)<> 0 THEN CONTINUE;
    
IF (num1 mod CommDiv) = 0 THEN begin
       WriteLn(‘Наибольший общий делитель: ’, CommDiv);
       BREAK
    
end {if}
end {for}

EXIT

Процедура EXIT завершает работу своего программного блока. Если EXIT вызывается внутри процедуры или функции, то их работа завершается. Если EXIT вызывается в основном блоке программы, то это приводит к ее завершению.

HALT

Процедура HALT, завершает работу программы.




1. Охрана труда медицинского работника
2. на тему Стресс и его природа Исполнитель- Пешкина Вера Александровна.html
3.  19 25 ldquo; ldquo; ldquo; ldquo; ldquo; 27
4. психологическое общение социолога и респондента путем регистрации ответов на систему вопросов вытекающих
5. часть общества и в ней как в капле воды отражаются те же проблемы что и во всей стране
6. Контрольная работа- Сучасні психологічні теорії особистості
7. Естествознание
8. Методология маркетингового исследования.html
9. Налоговое право для студентов обучающихся по специальности Юриспруденция Понятие налогово
10. Задание 1 В книге Excel
11. Ключи от мира Азбучные истины для языка который остался без смысла
12. Столица Севера прекрасная Пальмира
13. На тему- Страхование в США
14. ТЕМА 5- БЮДЖЕТ І БЮДЖЕТНА СИСТЕМА ТЕРМІНОЛОГІЧНИЙ СЛОВНИК бюджет план формування та використання
15. Стороны в гражданском процессе2
16. РЕФЕРАТ дисертації на здобуття наукового ступеня кандидата економічних наук Харк
17. Тема- ПЛЮШЕВЫЙ МЕДВЕЖОНОК рисование поролоном Воспитатель- Царева Ю
18. Маркетинг гр
19. Зубец Т на электрокардиограммах
20. Источниковедческая характеристика Книги Чисел.html