Указание диапазона значений индекса

      Комментарии к записи Указание диапазона значений индекса отключены

14.

Глобальные вычислительные сети(ГВС) – вычислительная система состоящая из большого числа ПК и локальных сетей соединенных между собой и имеющую возможность обмена информацией.

Принципиальное различие между ЛВС и ГВС состоит в способах организации и взаимодействии между ПК.

ГВС делят на масштабы города, страны, континента, мира.

Целью использования ГВС является координация действий между пользователей территориально разнесенных по местности.

ГВС

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

Рассмотрим физические средства необходимые для автоматизации ГВС:

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 и менее требователен к характеристикам компьютера. Поскольку основные компоненты, которые мы будем рассматривать в нашем курсе, совпадают в обоих продуктах, в дальнейшем будет использоваться название Турбо Паскаль.

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

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

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

    В языках программирования высокого уровня программа — это перечень действий. Исполнение этих действий определено в самом языке программирования, и их принято называть операторами.

    Статьи к прочтению:

    Что такой почтовый индекс?


    Похожие статьи: