14.
Глобальные вычислительные сети(ГВС) – вычислительная система состоящая из большого числа ПК и локальных сетей соединенных между собой и имеющую возможность обмена информацией.
Принципиальное различие между ЛВС и ГВС состоит в способах организации и взаимодействии между ПК.
ГВС делят на масштабы города, страны, континента, мира.
Целью использования ГВС является координация действий между пользователей территориально разнесенных по местности.
ГВС
- Корпоративные сети ( пользователи какой-либо организации, другие пользователи не могут к ней подключиться)
- Общедоступные (Интернет, каждый может подключиться)
Рассмотрим физические средства необходимые для автоматизации ГВС:
1. Модем (устройство преобразования цифровых сигналов ПК в аналоги, которые передаются по ЛС на большие расстояния) основной параметр работы модема – скорость передачи информации (измеряется в битах).
2. Мост (устройство соединяющий различные сегменты сети)
Решает следующие задачи:
а) расширяет объем сети
б) разбивает сеть на сегменты с целью уменьшения затрат времени
в) соединяет разнородные вычислительные сети
Мост работает на канальном уровне и допускает использование в сети различных протоколов.
3. Маршрутизатор (устройство, пересылающее пакеты данных между различными сегментами сети и определяющее его путь) работает на сетевом уровне модели ОС.
4. Шлюз (устройство позволяющее связывать между собой ПК различных типов, использующие различные ОС). По сути, шлюз – ПК, на котором работает специальное ПО, выполняющее функции преобразования данных из одного формата в другой.
15.
Для обработки ЭВМ данные представляются в виде величин и их совокупностей. С понятием величины связаны такая важная характеристика, как ее тип.
Тип определяет:
- возможные значения переменных, констант, функций, выражений, принадлежащих к данному типу;
- внутреннюю форму представления данных в ЭВМ;
- операции и функции, которые могут выполняться над величинами, принадлежащими к данному типу.
В языке Паскаль тип величины задают заранее. Все переменные, используемые в программе, должны быть объявлены в разделе описания с указанием их типа. Обязательное описание типа приводит к избыточности в тексте программ, но такая избыточность является важным вспомогательным средством разработки программ и рассматривается как необходимое свойство современных алгоритмических языков высокого уровня.
Иерархия типов в языке Паскаль такая:
- Простые
- Порядковые
- Целые
- Логические
- Символьные
- Перечисляемые
- Интервальные
- Массивы
- Строки
- Множества
- Записи
- Файлы
Простые типы данных
В таблице приведены простые типы данных Турбо Паскаль, объем памяти, необходимый для хранения одной переменной указанного типа, множество допустимых значений и применимые операции.
Идентификатор | Длина (байт) | Диапазон значений | Операции |
Целые типы | |||
integer | -32768..32767 | +, -, /, *, Div, Mod, =, | |
byte | 0..255 | +, -, /, *, Div, Mod, =, | |
word | 0..65535 | +, -, /, *, Div, Mod, =, | |
shortint | -128..127 | +, -, /, *, Div, Mod, =, | |
longint | -2147483648..2147483647 | +, -, /, *, Div, Mod, =, | |
Вещественные типы | |||
real | 2,9×10-39 — 1,7×1038 | +, -, /, *, =, | |
single | 1,5×10-45 — 3,4×1038 | +, -, /, *, =, | |
double | 5×10-324 — 1,7×10308 | +, -, /, *, =, | |
extended | 3,4×10-4932 — 1,1×104932 | +, -, /, *, =, | |
Логический тип | |||
boolean | true, false | Not, And, Or, Xor, =, | |
Символьный тип | |||
char | все символы кода ASCII | +, =, |
Перечисляемый и интервальный тип относятся к типам, определяемым пользователем и будут рассмотрены нами позже.
Дополнительные сведения о типах данных..
Порядковые типы, выделяемые из группы простых типов, характеризуются следующими свойствами:
- все возможные значения порядкового типа представляют собой ограниченное упорядоченное множество;
- к любому порядковому типу может быть применена стандартная функция Ord, которая в качестве результата возвращает порядковый номер конкретного значения в данном типе;
- к любому порядковому типу могут быть применены стандартные функции Pred и Succ, которые возвращают предыдущее и последующее значения соответственно;
- к любому порядковому типу могут быть применены стандартные функции Low и High, которые возвращают наименьшее и наибольшее значения величин данного типа.
В языке Паскаль введены понятия эквивалентности и совместимости типов. Два типа Т1 и Т2 являются эквивалентными (идентичными), если выполняется одно из двух условий:
- Т1 и Т2 представляют собой одно и то же имя типа;
- тип Т2 описан с использованием типа Т1 с помощью равенства или последовательности равенств. Например:
· type· T1 = Integer;· T2 = T1;· T3 = T2;
Менее строгие ограничения накладываются на совместимость типов. Так, типы являются совместимыми, если:
- они эквивалентны;
- являются оба либо целыми, либо действительными;
- один тип — интервальный, другой — его базовый;
- оба интервальные с общим базовым;
- один тип — строковый, другой — символьный.
В Турбо Паскаль ограничения на совместимость типов можно обойти с помощью приведения типов. Приведение типов позволяет рассматривать одну и ту же величину в памяти ЭВМ как принадлежащую разным типам. Для этого используется конструкция
Имя_Типа(переменная или значение)
Напрмер, Integer(‘Z’) представляет собой значение кода символа ‘Z’ в двухбайтном представлении целого числа, а Byte(534) даст значение 22, поскольку целое число 534 имеет тип Word и занимает два байта, а тип Byte занимает один байт, и в процессе приведения старший байт будет отброшен.
Встроенные типы данных
Обычно в состав встроенных типов данных включаются такие типы, операции над значениями которых напрямую или, по крайней мере, достаточно эффективно поддерживаются командами компьютеров. В современных компьютерах к таким машинным типам относятся целые числа разного размера (от одного до восьми байт), булевские значения (поддерживаемые обычно за счет наличия признаков условной передачи управления) и числа с плавающей точкой одинарной и двойной точности (обычно четыре и восемь байт соответственно). В более ранних компьютерах часто поддерживалась десятичная арифметика с фиксированной точкой (например, в мейнфреймах компании IBM и супер-миникомпьютерах компании Digital), но в настоящее время прямая аппаратная поддержка такой арифметики отсутствует практически во всех распространенных процессорах.
В соответствии с этим, в традиционный набор встроенных типов обычно входят следующие (мы будем говорить про размеры внутреннего представления значений этих типов, хотя в спецификациях языков такая информация, как правило, отсутствует):
Тип CHARACTER (или CHAR) в разных языках — это
либо набор печатных символов из алфавита, зафиксированного в описании языка (для большинства языков англоязычного происхождения этот алфавит соответствует кодовому набору ASCII);
либо произвольная комбинация нулей и единиц, размещаемых в одном байте.
В первой интерпретации (свойственной языкам линии Паскаль) для значений типа CHAR определены только операции сравнения в соответствии с принятым алфавитом. Например, при использовании ASCII выполняются соотношения 01
Во второй интерпретации (свойственной языкам линии Си) литеральными константами типа CHAR по-прежнему могут быть печатные символы из принятого в языке алфавита, но возможно использование и числовых констант, задающих желаемое содержимое байта. В этом случае, как правило, над значениями типа CHAR возможно выполнение не только операций сравнения, но и операций целочисленной арифметики.
Наконец, в некоторых языках явно различают тип CHAR как чисто символьный тип и тип сверхмалых целых (TINY INTEGER) как тип целых чисел со значениями, умещающимися в один байт.
В современных компьютерах, как правило, поддерживается целочисленная байтовая арифметика, обеспечивающая как первую, так и вторую интерпретацию типа CHAR.
Тип BOOLEAN в тех языках, где он явно поддерживается, содержит два значения — TRUE (истина) и FALSE (ложь). Несмотря на то, что для хранения значений этого типа теоретически достаточно одного бита, обычно в реализациях переменные этого типа занимают один байт памяти. Для всех типов данных, для которых определены операции сравнения, определены также и правила, по которым эти операции сравнения вырабатывают булевские значения. Над булевскими значениями возможны операции конъюнкции ( или AND), дизъюнкции (| или OR) и отрицания (~ или NOT), определяемые следующими таблицами истинности:
TRUE AND TRUE = TRUE
TRUE AND FALSE = FALSE
FALSE AND TRUE = FALSE
FALSE AND FALSE = FALSE
TRUE OR TRUE = TRUE
TRUE OR FALSE = TRUE
FALSE OR TRUE = TRUE
FALSE OR FALSE = FALSE
NOT FALSE = TRUE
NOT TRUE = FALSE
При работе с булевскими значениями в языках баз данных некоторую проблему вызывает то, что по причине возможности хранения в базе данных неопределенных значений операции сравнения могут вырабатывать не два, а три логических значения: TRUE, FALSE и UNKNOWN. Поэтому в языке SQL-92, например, используется не двухзначная, а трехзначная логика, в результате чего логические операции при их обработке в серверах баз данных определяются расширенными таблицами (мы приводим их с учетом коммутативности двуместных операций):
TRUE AND TRUE = TRUE
TRUE AND FALSE = FALSE
TRUE AND UNKNOWN = UNKNOWN
FALSE AND UNKNOWN = FALSE
TRUE OR TRUE = TRUE
TRUE OR FALSE = TRUE
TRUE OR UNKNOWN = TRUE
FALSE OR UNKNOWN = UNKNOWN
NOT FALSE = TRUE
NOT TRUE = FALSE
NOT UNKNOWN = UNKNOWN
Помимо общего возрастания сложности и недостаточной удовлетворительности трехзначной логики для целей работы с базами данных, неприятность состоит в отсутствии поддержки этой логики в языках программирования (как, впрочем, и в отсутствии явной поддержки неопределенных значений).
В языках линии Си прямая поддержка булевского типа данных отсутствует, но имеется логическая интерпретация значений целых типов. Значением операции сравнения может быть 0 (FALSE) или 1 (TRUE). Значение целого типа 0 интерпретируется как FALSE, а значения, отличные от нуля, — как TRUE. В остальном все работает как в случае наличия явной поддержки булевского типа.
Тип целых чисел в общем случае включает подмножество целых чисел, определяемое числом разрядов, которое используется для внутреннего представления значений. При определении типа целых чисел обычно стремятся к тому, чтобы множество его значений было симметрично относительно нуля (собственно, это стимулируется и стандартными свойствами машинной целочисленной арифметики). Поэтому приходится тратить один бит на значение знака числа и при использовании n бит для внутреннего представления целого соответствующий тип содержит значения в диапазоне от -2(n-1) до 2(n-1). В подавляющем большинстве современных процессоров отрицательные целые числа обычно представляют в дополнительном коде.
В языках, ориентированных на 32-разрядные компьютеры, в частности, в стандартных Си и Си++ для рационального использования памяти допускаются модификации целого типа short integer (обычно 16-разрядные), integer (обычно то же самое, что и long integer) и long integer (обычно 32-разрядные), а также байтовые целые (char). При этом поддерживаются автоматические преобразования значений типов меньшего размера к значениям типов большего размера. Пока не очень понятно, какие встроенные целые типы будут зафиксированы в будущем 64-разрядном стандарте языка Си, но многие компании считают разумным использовать модель под названием LP64, в которой предполагается размер char — 8 бит, размер short integer — 16 бит, размер integer — 32 бита и размер long integer и long long integer — 64 бита.
Наряду со знаковыми целыми типами в языках часто поддерживаются беззнаковые целые. Такие типы в линии языков Паскаль называются CARDINAL, а в линии языков Си именуются путем добавления модификатора unsigned к названию соответствующего целого типа. Таким образом, в последнем случае существуют типы unsigned char, unsigned short integer, unsigned integer и unsigned long integer. Поскольку множество значений типа unsigned в два раза мощнее множества значений соответствующего целого типа, то поддерживается их автоматическое преобразование только к целым типам большего размера.
Наконец, для поддержки численных вычислений в языках обычно специфицируется встроенный тип чисел с плавающей точкой с базовым названием REAL или FLOAT. Обычно в описании языков не фиксируется диапазон и точность значений такого типа. Они уточняются в реализации и обычно существенно зависят от особенностей целевого процессора. В языках семейства Си (32-разрядных) специфицированы три разновидности типа чисел с плавающей точкой — float (обычно с размером 16 бит), double float (размером в 32 бит) и long double float (размером 64 бит).
16.
Internet– всемирная информационная компьютерная сеть, представляющая собой объединение множества региональных компьютерных сетей и компьютеров, обменивающих друг с другом информацией по каналам общественных телекоммуникаций (выделенным телефонным аналоговым и цифровым линиям, оптическим каналам связи и радиоканалам, в том числе спутниковым линиям связи).
Информация в Internet хранится на серверах. Серверы имеют свои адреса и управляются специализированными программами. Они позволяют пересылать почту и файлы, производить поиск в базах данных и выполнять другие задачи.
Обмен информацией между серверами сети выполняется по высокоскоростным каналам связи (выделенным телефонным линиям, оптоволоконным и спутниковым каналам связи). Доступ отдельных пользователей к информационным ресурсам Internet обычно осуществляется через провайдера или корпоративную сеть.
Провайдер- поставщик сетевых услуг – лицо или организация предоставляющие услуги по подключению к компьютерным сетям. В качестве провайдера выступает некоторая организация, имеющая модемный пул для соединения с клиентами и выхода во всемирную сеть.
Основными ячейками глобальной сети являются локальные вычислительные сети. Если некоторая локальная сеть непосредственно подключена к глобальной, то и каждая рабочая станция этой сети может быть подключена к ней.
Существуют также компьютеры, которые непосредственно подключены к глобальной сети. Они называются хост — компьютерами (host — хозяин). Хост – это любой компьютер, являющийся постоянной частью Internet, т.е. соединенный по Internet – протоколу с другим хостом, который в свою очередь, соединен с другим, и так далее.
Структура глобальной сети Internet
Для подсоединения линий связи к компьютерам используются специальные электронные устройства, которые называются сетевыми платами, сетевыми адаптерами, модемами и т.д.
Практически все услуги Internet построены на принципе клиент-сервер. Вся информация в Интернет хранится на серверах. Обмен информацией между серверами осуществляется по высокоскоростным каналам связи или магистралям. Серверы, объединенные высокоскоростными магистралями, составляют базовую часть сети Интернет.
Отдельные пользователи подключаются к сети через компьютеры местных поставщиков услуг Интернета, Internet — провайдеров (Internet Service Provider — ISP), которые имеют постоянное подключение к Интернет. Региональный провайдер, подключается к более крупному провайдеру национального масштаба, имеющего узлы в различных городах страны. Сети национальных провайдеров объединяются в сети транснациональных провайдеров или провайдеров первого уровня. Объединенные сети провайдеров первого уровня составляют глобальную сеть Internet.
Передача информации в Интернет обеспечивается благодаря тому, что каждый компьютер в сети имеет уникальный адрес (IP-адрес), а сетевые протоколы обеспечивают взаимодействие разнотипных компьютеров, работающих под управлением различных операционных систем.
В основном в Интернет используется семейство сетевых протоколов (стек) TCP/IP. На канальном и физическом уровне стек TCP/IP поддерживает технологию Ethernet, FDDI и другие технологии. Основой семейство протоколов TCP/IP является сетевой уровень, представленный протоколом IP, а также различными протоколами маршрутизации. Этот уровень обеспечивает перемещение пакетов в сети и управляет их машрутизацией. Размер пакета, параметры передачи, контроль целостности осуществляется на транспортном уровне TCP.
Прикладной уровень объединяет все службы, которые система предоставляет пользователю. К основным прикладным протоколам относятся: протокол удаленного досткпа telnet, протокол передачи файлов FTP, протокол передачи гипертекста HTTP, протоколы электронной почты: SMTP, POP, IMAP, MIME.
17.
Для представления алгоритма в виде, понятном компьютеру, служат языки программирования. Сначала разрабатывается алгоритм действий, а потом он записывается на одном из таких языков. В итоге получается текст программы — полное, законченное и детальное описание алгоритма на языке программирования. Затем этот текст программы специальными служебными приложениями, которые называются трансляторами, либо переводится в машинный код (язык нулей и единиц), либо исполняется.
Транслятор — средство для преобразования текстов из одного языка, понятного человеку, в другой язык, «понятный» компьютеру. Трансляторы бывают двух типов — интерпретаторы и компиляторы. Отличие между ними заключается в том, что интерпретатор последовательно анализирует и исполняет каждую строку программы, а компилятор проводит полный анализ написанной программы и формирует уже готовый к исполнению машинный код.
Языки программирования — искусственные языки. От естественных они отличаются ограниченным числом слов, значение которых понятно транслятору, и очень строгими правилами записи команд (операторов).
Для написания текста программы можно использовать обычный текстовый редактор (например, Блокнот), а затем с помощью компилятора перевести её в машинный код, т.е. получить исполняемую программу. Но проще и удобнее пользоваться специальными интегрированными средами программирования.
На заре компьютерной эры, в 50-е годы XX века, программы писались на машинном языке и представляли собой очень длинные последовательности нулей и единиц. Составление и отладка таких программ было чрезвычайно трудоемким делом.
В 60—70-е годы для облегчения труда программистов начали создаваться языки программирования высокого уровня, формальные языки, кодирующие алгоритмы в привычном для человека виде (в виде предложений). Такие языки программирования строились на основе использования определенного алфавита и строгих правил построения предложений (синтаксиса).
Наиболее широко распространенным типом языков программирования высокого уровня являются процедурные языки. В таких языках широко используются управляющие конструкции (операторы), которые позволяют закодировать различные алгоритмические структуры (линейную, ветвление, цикл).
Одним из первых процедурных языков программирования был известный всем Бейсик (Basic), созданный в 1964 году. В течение последующего времени Бейсик развивался, появлялись его различные версии (MSX-Basic, Бейсик-Агат, QBasic и др.). Другим широко распространенным языком программирования алгоритмического типа является Pascal.
Первая версия языка Паскаль была разработана швейцарским ученым Никлаусом Виртом в 1968 году. Первоначально язык предназначался для целей обучения, поскольку он является достаточно детерминированным, т.е. все подчиняется определенным правилам, исключений из которых не так много. Основные характеристики: относительно небольшое количество базовых понятий, простой синтаксис, быстрый компилятор для перевода исходных текстов в машинный код.
В 1992 г. фирма Borland International выпустила два пакета, основанных на языке Паскаль: Borland Pascal 7.0 и Turbo Pascal 7.0. Первый может работать в трех режимах — обычном и защищенном режимах MS DOS и в системе Windows. Для него необходимо порядка 30 Мбайт на жестком диске и около 2 Мбайт оперативной памяти. Турбо Паскаль 7.0 работает только в обычном режиме MS DOS и менее требователен к характеристикам компьютера. Поскольку основные компоненты, которые мы будем рассматривать в нашем курсе, совпадают в обоих продуктах, в дальнейшем будет использоваться название Турбо Паскаль.
Пакет включает в себя алгоритмический язык программирования высокого уровня, встроенный редактор и среду, предназначенную для отладки и запуска программ. Кроме того, пакет содержит большой объем справочной информации (англоязычной). Как известно, языки программирования делятся на два типа: интерпретаторы и компиляторы. Турбо Паскаль относится к компиляторным языкам.
Благодаря языкам программирования высокого уровня, программы которые мы будем составлять, будут больше напоминать инструкции, обращенные к человеку, нежели к машине.
Однако следует иметь в виду, что в языках программирования не допускаются даже незначительные (с точки зрения человека) нарушения в правилах написания программ. Ведь даже маленькая неточность может вызвать невыполнимость программы или трудно уловимую ошибку.
В языках программирования высокого уровня программа — это перечень действий. Исполнение этих действий определено в самом языке программирования, и их принято называть операторами.
Статьи к прочтению:
- Указания к выполнению практических заданий
- Указания к выполнению задания. условный оператор if / then / else
Что такой почтовый индекс?
Похожие статьи:
-
Диапазоны значений и их применение
Диапазоны значений широко применяются в программировании для решения некоторых задач. Но самое важное их применение – распределение оперативной памяти…
-
Диапазоны значений целых чисел без знака
Формат числа в байтах Диапазон Запись с порядком Обычная запись 0 … 28-1 0 … 255 0 … 216-1 0 … 65535 Примеры: а) число 7210 = 10010002 в…