понедельник, 19 марта 2012 г.

Локальные и глобальные сети


Основные понятия
При физическом соединении двух или более компьютеров образуется компьютерная сеть. В общем случае, для создания компьютерных сетей необходимо специальное аппаратное обеспечение (сетевое оборудование) и специальное программное обеспечение (сетевые программные средства). Простейшее соединение двух компьютеров для обмена данными называется прямым соединением.
Основной задачей, решаемой при создании компьютерных сетей, является обеспечение совместимости оборудования по электрическим и механическим характеристикам и обеспечение совместимости информационного обеспечения (программ и данных) по системе кодирования и формату данных. Решение этой задачи относится к области стандартизации и основано на так называемой модели OSI (модель взаимодействия открытых систем — Model of Open System Interconnections). (создана на основе технических предложений Международного института стандартов ISO (International Standards Organization).
Согласно модели ISO/OSI архитектуру компьютерных сетей следует рассматривать на разных уровнях (общее число уровней — до семи). Самый верхний уровень — прикладной. На этом уровне пользователь взаимодействует с вычислительной системой. Caмый нижний уровень — физический. Он обеспечивает обмен сигналами между устройствами. Обмен данными в системах связи происходит путем их перемещения с верхнего уровня на нижний, затем транспортировки и, наконец, обратным воспроизведением на компьютере клиента в результате перемещения с нижнего уровня на верхний.
Для обеспечения необходимой совместимости на каждом из семи возможных уровней архитектуры компьютерной сети действуют специальные стандарты, называемые протоколами. Они определяют характер аппаратного взаимодействия компонентов сети (аппаратные протоколы) и характер взаимодействия программ и данных (программные протоколы). Физически функции поддержки протоколов исполняют аппаратные устройства (интерфейсы) и программные средства (программы поддержки протоколов). Программы, выполняющие поддержку протоколов, также называют протоколами.
Так, например, если два компьютера соединены между собой прямым соединением, то на низшем (физическом) уровне протокол их взаимодействия определяют конкретные устройства физического порта (параллельного или последовательного) и механические компоненты (разъемы, кабель и т.п.). На более высоком уровне взаимодействие между компьютерами определяют программные средства, управляющие передачей данных через порты. Для стандартных портов они находятся в базовой системе ввода/вывода (BIOS). На самом высоком уровне протокол взаимодействия обеспечивает операционная система.
В соответствии с используемыми протоколами компьютерные сети принято разделять на локальные (LAN — Local Area Network) и глобальные (WAN — Wide Area Network). Компьютеры локальной сети преимущественно используют единый комплект протоколов для всех участников. По территориальному признаку локальные сети отличаются компактностью. Они могут объединять компьютеры одного помещения, этажа, здания, группы компактно расположенных сооружений. Глобальные сети имеют, как правило, увеличенные географические размеры. Они могут объединять как отдельные компьютеры, так и отдельные локальные сети, в том числе и использующие различные протоколы.
Назначение всех видов компьютерных сетей определяется двумя функциями:
  • обеспечение совместного использования аппаратных и программных ресурсов сети;
  • обеспечение совместного доступа к ресурсам данных.
Так, например, все участники локальной сети могут совместно использовать одно общее устройство печати (сетевой принтер) или, например, ресурсы жестких дисков одного выделенного компьютера (файлового сервера). Это же относится и к программному, и к информационному обеспечению. Если в сети имеется специальный компьютер, выделенный для совместного использования участниками сети он называется файловым сервером. Компьютерные сети, в которых нет выделенного сервера, а все локальные компьютеры могут общаться друг с другом на «равных правах» (обычно это небольшие сети), называются одноранговыми.
Группы сотрудников, работающих над одним проектом в рамках локальной сети называются рабочими группами. В рамках одной локальной сети могут работа несколько рабочих групп. У участников рабочих групп могут быть разные права для доступа к общим ресурсам сети. Совокупность приемов разделения и ограничения прав участников компьютерной сети называется политикой сети. Управление сетевыми политиками (их может быть несколько в одной сети) называет администрированием сети. Лицо, управляющее организацией работы участников локальной компьютерной сети, называется системным администратором.
Создание локальных сетей характерно для отдельных предприятий или отдельных подразделений предприятий. Если предприятие (или отрасль) занимает обширную территорию, то отдельные локальные сети могут объединяться в глобальные сети. В этом случае локальные сети связывают между собой с помощью любых традиционных каналов связи (кабельных, спутниковых, радиорелейных и т. п.). При соблюдении специальных условий для этой цели могут бы использованы даже телефонные каналы, хотя они в наименьшей степени удовлетворяют требованиям цифровой связи.
Для связи между собой нескольких локальных сетей, работающих по разным протоколам, служат специальные средства, называемые шлюзами. Шлюзы могут бы: как аппаратными, так и программными. Например, это может быть специальный компьютер (шлюзовый сервер), а может быть и компьютерная программа. В последнем случае компьютер может выполнять не только функцию шлюза, но и какие-то иные функции, типичные для рабочих станций.
При подключении локальной сети предприятия к глобальной сети важную роль играет понятие сетевой безопасности. В частности, должен быть ограничен доступ в локальную сеть для посторонних лиц извне, а также ограничен выход за пределы локальной сети для сотрудников предприятия, не имеющих соответствующих прав. Для обеспечения сетевой безопасности между локальной и глобальной сетью устанавливают так называемые брандмауэры. Брандмауэром может быть специальный компьютер или компьютерная программа, препятствующая несанкционированному перемещению данных между сетями.
Эволюция сетей
Первоначально сети представляли собой нестандартизованные средства взаимодействия автономных компьютеров в нескольких же нестандартизованных вычислительных системах (в настоящее время их называют терминальными сетями. В таких средах прикладное программное обеспечение работало только под управлением единственной операционной системы. Эта операционная система, в свою очередь, могла надежно функционировать только на аппаратных платформах одного и того же производителя.
В период царствования таких цельных систем отдельных изготовителей произошло два события, изменивших ход развития компьютерных технологий. Во-первых, начали появляться первые примитивные предшественники современных персональных компьютеров (с начала 70-х гг.). Новизна этих устройств заключалась в том, что вся их вычислительная мощность сосредотачивалась непосредственно на рабочем столе. Во-вторых, ученые в исследовательском центре компании Xerox приступили к поискам средств повышения производительности отдельных коллективов. В частности, они начали новый способ совместного использования файлов и данных: рабочими станциями. Как стало известно впоследствии, основной причиной принципиально нового технологического решения оказалась обычная человеческая лень - ученым просто надоело бегать между компьютерами с дискетами.
В результате появилась на свет первая локальная сеть (Local Area Network - LAN), которая получила название "ethernet". Это была примитивная сеть, но рыночный потенциал этой технологии был очевиден и первоначальная версия ethernet, известная сейчас как Ethernet I, была вытеснена улучшенной Ethernet II. Эта версия разработана компаниями Xerox, Digital и Intel, которые совместными усилиями установили "стандарты" для Ethernet II и разработали соответствующие технологии.
Интеллектуальные пользовательские устройства в сочетании с локальными сетями породили новую парадигму — открытые распределенные вычислительные системы.
Интересна история появления первой распределенной сети, впоследствии превратившейся в сеть Internet. В разгар "холодной войны", в конце 60-х гг. по заказу министерства обороны США началась разработка сети, которая должна была связать между собой компьютеры военного ведомства, и в первую очередь компьютеры исследовательских центров, для ускорения научных исследований в интересах обороны. В январе 1969 г. была запущена система, связавшая между собой четыре компьютера в разных концах США (испытания длились 10 мин.). А через год новая информационная сеть, названная APRANet, уже приступила к работе. С каждым годом APRANet росла и развивалась. В сеть включались все новые и новые участники: право доступа в сеть начали требовать сначала все крупные лаборатории, потом - более мелкие, затем -учебные заведения... В 1973 году впервые через сеть оказались соединены компьютеры разных стран: сеть стала международной. В итоге, когда в сеть оказались соединены тысячи компьютеров, стало ясно: необходимо полностью переработать механизм доступа в APRANet. Такой механизм, названный "протоколом TCP/IP" (Transmission Control Protocol/Internet Protocol), был введен в 1983 году.
Рождение протокола ТСР/IР, позволяющего пользователям с легкостью подключаться к сети при помощи обыкновенной телефонной линии, совпало с другим событием - разделением APRANet. Военные выделили часть компьютеров в новую сеть, получившую название MILNet, а остальное пространство Сети оставили на усмотрение жаждущей коммуникаций общественности. Так родился Internet.
14 апреля 1998 года история Internet вышла на второй виток: в США состоялся торжественный "запуск" новой сети, получившей название "Internet -2". Создателями новой сети стали крупнейшие учебные заведения, научные и исследовательские учреждения, крупные корпорации США. Скорость передачи информации в Internet-2 просто потрясает воображение, - она превышает более чем в 1000 раз возможности самых быстрых каналов сегодняшней сети. Понятно, что с приходом Internet-2 такие понятия, как "компьютерное телевидение", передача "живого видео" в реальном времени и даже "Internet-кинематограф" переходит из области фантастики в разряд бытовых, привычных явлений.
Модель передачи данных
Рассмотрим простой пример взаимодействия двух корреспондентов с помощью обычной почты. Если они регулярно отправляют друг другу письма и, соответственно, получают их, то они могут полагать, что между ними существует соединение на пользовательском (прикладном уровне). Однако это не совсем так. Такое соединение можно назвать виртуальным. Оно было бы физическим, если бы каждый из корреспондентов лично относил другому письмо и вручал в собственные руки. В реальной жизни он бросает его в почтовый ящик и ждет ответа.
Сбором писем из общественных почтовых ящиков и доставкой корреспонденции в личные почтовые ящики занимаются местные почтовые службы. Это другой уровень модели связи, лежащий ниже. Для того чтобы наше письмо достигло адресата в другом городе, должна существовать связь между нашей местной почтовой службой и его местной почтовой службой. Это еще один пример виртуальной связи, поскольку никакой физической связью эти службы не обладают — поступившую почтовую корреспонденцию они только сортируют и передают на уровень федеральной почтовой службы.
Федеральная почтовая служба в своей работе опирается на службы очередного уровня, например на почтово-багажную службу железнодорожного ведомства. И только рассмотрев работу этой службы, мы найдем, наконец, признаки физического соединения, например железнодорожный путь, связывающий два города.
Это очень простой пример, поскольку в реальности даже доставка обычного письма может затронуть гораздо большее количество служб. Но нам важно обратить внимание на то, что в нашем примере образовалось несколько виртуальных соединений между аналогичными службами, находящимися в пунктах отправки и приема. Не вступая в прямой контакт, эти службы взаимодействуют между собой. На каком-то уровне письма укладываются в мешки, мешки пломбируют, к ним прикладывают сопроводительные документы, которые где-то в другом городе изучаются и проверяются на аналогичном уровне.
Выше мы упомянули о том, что согласно рекомендациям Международного института стандартизации ISO системы компьютерной связи рекомендуется рассматривать на семи разных уровнях. Ниже в таблице дано объяснение этим уровням в форме аналогии с почтовой службой.
Уровень
Аналогия
Прикладной уровень
Письмо написано на бумаге. Определено его содержание
Уровень представления
Письмо запечатано в конверт. Конверт заполнен. Наклеена марка. Клиентом соблюдены необходимые требования протокола доставки
Сеансовый уровень
Письмо опущено в почтовый ящик. Выбрана служба доставки (письмо можно было бы запечатать в бутылку и бросить в реку, но избрана другая служба)
Транспортный уровень
Письмо доставлено на почтамт. Оно отделено от писем, с доставкой которых местная почтовая служба справилась бы самостоятельно
Сетевой уровень
После сортировки письмо уложено в мешок. Появилась новая единица доставки - мешок
Уровень соединения
Мешки писем уложены в вагон. Появилась новая единица доставки - вагон
Физический уровень
Вагон прицеплен к локомотиву. Появилась новая единица доставки - состав. За доставку взялось другое ведомство, действующее по другим протоколам
Из таблицы видно, что каждый новый уровень все больше и больше увеличивает функциональность системы связи. Местная почтовая служба работает не только с письмами, но и с бандеролями и посылками. Почтово-багажная служба занимается еще и доставкой грузов. Вагоны перевозят не только почту, но и людей. По рельсам ходят не только почтово-пассажирские поезда, но и грузовые составы и т. д. То есть чем выше уровень в модели связи, тем больше различных функциональных служб его используют.
Возвращаясь к системам компьютерной связи, рассмотрим, как в модели ISO/OSI происходит обмен данными между пользователями, находящимися на разных континентах.
  1. На прикладном уровне с помощью специальных приложений пользователь создает документ (сообщение, рисунок и т. п.).
  2. На уровне представления операционная система его компьютера фиксирует, где находятся созданные данные (в оперативной памяти, в файле на жестком диске и т. п.), и обеспечивает взаимодействие со следующим уровнем.
  3. На сеансовом уровне компьютер пользователя взаимодействует с локальной или глобальной сетью. Протоколы этого уровня проверяют права пользователя на «выход в эфир» и передают документ к протоколам транспортного уровня.
  4. На транспортном уровне документ преобразуется в ту форму, в которой положено передавать данные в используемой сети. Например, он может нарезаться на небольшие пакеты стандартного размера.
  5. Сетевой уровень определяет маршрут движения данных в сети. Так, например если на транспортном уровне данные были «нарезаны» на пакеты, то на сетевом уровне каждый пакет должен получить адрес, по которому он должен быть доставлен независимо от прочих пакетов.
  6. Уровень соединения необходим для того, чтобы промодулировать сигналы, циркулирующие на физическом уровне, в соответствии с данными, полученным с сетевого уровня. Например в компьютере эти функции выполняет сетевая карта или модем.
  7. Реальная передача данных происходит на физическом уровне. Здесь нет ни документов, ни пакетов, ни даже байтов — только биты, то есть, элементарные единицы представления данных. Восстановление документа из них произойдет постепенно, при переходе с нижнего на верхний уровень на компьютер клиента.
Средства физического уровня лежат за пределами компьютера. В локальных сетях это оборудование самой сети. При удаленной связи с использованием телефонных модемов это линии телефонной связи, коммутационное оборудование телефонных станций и т. п.
На компьютере получателя информации происходит обратный процесс преобразования данных от битовых сигналов до документа.
Разные уровни протоколов сервера и клиента не взаимодействуют друг с другом напрямую, но они взаимодействуют через физический уровень. Постепенно переходя с верхнего уровня на нижний, данные непрерывно преобразуются, «обрастают» дополнительными данными, которые анализируются протоколами соответствующих уровней на сопредельной стороне. Это и создает эффект виртуального взаимодействия уровней между собой. Однако, несмотря на виртуальность, это все-таки соединения, через которые тоже проходят данные.
Это очень важный момент с точки зрения компьютерной безопасности. Одновременно с теми запросами на поставку данных, которые клиент направляет серверу, передается масса служебной информации, которая может быть как желательной, так и нежелательной. Например, обязательно передаются данные о текущем адресе клиента, о дате и времени запроса, о версии его операционной системы, о его правах доступа к запрашиваемым данным и прочее. Передается и немало косвенной информации, например о том, по какому адресу он посылал предыдущий запрос. Известны случаи, когда даже передавались идентификационные коды процессоров компьютеров.
На использовании виртуальных соединений основаны такие позитивные свойства электронных систем связи, как возможность работать по одному физическому каналу сразу с несколькими серверами. Но на них же основаны и такие негативные средства, как «троянские программы». Троянская программа — разновидность «компьютерного вируса», создающая во время сеансов связи виртуальные соединения для передачи данных о компьютере, на котором установлена. Среди этих данных может быть парольная информация, информация о содержании жесткого диска и т. п. В отличие от обычных компьютерных вирусов троянские программы не производят разрушительных действий на компьютере и потому лучше маскируются.
На виртуальных соединениях основаны все службы современного Интернета. Так, например, пересылка сообщения от сервера к клиенту может проходить через десятки различных компьютеров. Это совсем не означает, что на каждом компьютере сообщение должно пройти через все уровни — ему достаточно «подняться» до сетевого уровня, (определяющего адресацию) при приеме и вновь «опуститься» до физического уровня при передаче. В данном случае служба передачи сообщений основывается на виртуальном соединении сетевого уровня и соответствующих ему протоколах.
Локальные вычислительные сети
Локальная вычислительная сеть (ЛВС) представляет собой систему распределенной обработки данных, охватывающую небольшую территорию (диаметром до 10 км) внутри учреждений, НИИ, вузов, банков, офисов и т. д. Это система взаимосвязанных и распределенных на фиксированной территории средств передачи и обработки информации, ориентированных на коллективное использование общесетевых ресурсов — аппаратных, информационных, программных. ЛВС можно рассматривать как коммуникационную систему, которая поддерживает в пределах одного здания или некоторой ограниченной территории один или несколько высокоскоростных каналов передачи информации, предоставляемых подключенным абонентским системам.
В обобщенной структуре ЛВС выделяются совокупность абонентских узлов или систем (их число может быть от десятков до сотен), серверов и коммуникационная подсеть.
Основными компонентами сети являются передающие среды (кабели), рабочие станции, платы интерфейса сети (сетевые адаптеры), серверы сети.
Рабочими станциями (РС) в ЛВС служат, как правило, персональные компьютеры. На PC пользователями сети реализуются прикладные задачи. Иногда вместо PC называют "клиент" - это любой компьютер, который через локальную сеть обращается к ресурсам, хранящимся на сервере.
Серверы сети - это аппаратно-программные системы, выполняющие функции управления распределением сетевых ресурсов общего доступа, но могут работать и как обычная абонентская система. Сервер - это любой компьютер, подключенный к локальной сети, на котором находятся ресурсы, используемые другими устройствами локальной сети. В качестве аппаратной части сервера используется достаточно мощные компьютеры. В ЛВС может быть несколько различных серверов для управления сетевыми ресурсами, однако всегда имеется один или несколько файл-серверов (сервер баз данных) для управления внешними данными общего доступа.
Слово "сервер" часто используется для обобщенного описания всех многопользовательских компьютеров. Однако следует отметить, что серверы могут выполнять совершенно различные задачи. Они обычно специализируются по своим функциям и описываются дополнительным образом, например, файл-сервер, сервер печати или сервер приложений.
Через локальную сеть можно также обращаться к множеству других устройств, таких как принтеры, накопители CD-ROM.
Основные понятия и службы Интернет
Интернет это глобальная компьютерная сеть, объединяющая большое количество локальных сетей. Каждая локальная сеть называется узлом или сайтом, а юридическое лицо, обеспечивающее работу сайта – провайдером. Сайт состоит из нескольких компьютеров – серверов, каждый из которых предназначен для хранения информации в определенном формате. Для подключения к Интернет пользователь должен заключить контракт на обслуживание с одним из провайдеров в своем регионе.
Компьютер, подключенный к Интернет и используемый для связи с другими компьютерами сети называется хостом. Для идентификации хоста в сети совместно используются следующие два способа адресации:
  • IP-адрес, аналогичный телефонному номеру. IP-адрес назначается провайдером и состоит из четырех групп цифр, разделенных точками. Каждый хост должен иметь свой уникальный IP-адрес;
  • доменное имя или DNS, тоже назначаемое провайдером и состоящее из простых доменов, разделенных точками, например, "win.smtp.dol.ru". Каждый домен представляет некоторое множество компьютеров, являющееся подмножеством домена, расположенного правее его.
Указание способа организации информации на конкретном хосте и идентификация размещенного на нем определенного информационного ресурса осуществляются посредством системы адресации, называемой URL (Uniform Resource Locator), например: http://home.microsoft.com/intl/ru/www_tour.html. Здесь http:// - тип протокола, указывающий, что адрес относится к хосту, являющемуся WWW-сервером; home.microsoft.com – доменное имя хоста; /Intl/ru/ - подкаталоги хоста; www_tour.html – имя файла.
Основной протокол, по которому работает Интернет, - это протокол TCP/IP, совмещающий протоколы передачи TCP (Transmission Control Protocol) и идентификации хостов IP (Internet Protocol). 
Рассмотрим основные службы Интернет.
  • Электронная почта (E-mail) - это одна из служб Интернет. Каждому абоненту назначается электронный адрес, аналогичный почтовому. Абоненту может пересылаться текстовая информация, а также файлы произвольного типа. Посланная абоненту информация сохраняется на специальном почтовом сервере в "почтовом ящике" абонента. Сервером может быть личный компьютер, сервер по месту работы или специализированный почтовый сервер. Например, почтовым является сервер mail.ru. Любой пользователь, имеющий доступ к Интернет, может организовать на нем свой почтовый ящик. Для этого следует обратиться по адресу http://www.mail.ru, зарегистрироваться, указав данные о себе, а также имя почтового ящика и пароль для доступа к нему. Допустим, введено имя Ivanov, тогда электронный адрес будет выглядеть так: Ivanov@mail.ru. Если такое имя уже зарегистрировано, через некоторое время Вам будет предложено изменить имя. Основное достоинство использования специализированного сервера - возможность доступа к своему почтовому ящику в любое время и из любой точки земного шара. По сравнению с обычной почтой, электронная является более оперативной и дешевой.
  • World Wide Web (WWW) - это всемирная информационная паутина. Посредством WWW можно просматривать видеофильмы, слушать музыку, играть в игры, обращаться к различным информационным источникам. Информация в WWW организована в виде гипертекста: в просматриваемом документе имеются гиперссылки (это могут быть слова или рисунки), щелчок по которым мышью выводит на экран документ, на который сделана ссылка. При этом этот документ может храниться совсем на другом сайте.
  • Служба FTP или File Transfer Protocol предназначена пересылки файлов. При этом способе пересылки файлы становятся доступными только после их копирования на свой компьютер. Несмотря на то, что пересылка файлов может быть выполнена и средствами WWW, FTP - системы остаются популярными из-за их быстродействия, простоты и наличия развитых средств защиты файлов.
  • Система телеконференций представляет собой совокупность документов, сгруппированных по определенным темам. Пользователь, указав интересующие его темы, может просматривать соответствующие документы и публиковать свои. Очень часто за возможность публикации требуется дополнительная оплата.
Интернет имеет и другие службы, однако, перечисленные выше являются наиболее популярными.
Описание: http://miit.bsu.edu.ru/resources/inf/images/vopros.gifКонтрольные вопросы
  1. Что такое компьютерная сеть?
  2. Что необходимо для создания компьютерных сетей?
  3. Что такое прямое соединение?
  4. Какова основная задача, решаемая при создании компьютерных сетей?
  5. Как решается эта задача?
  6. Как следует рассматривать архитектуру компьютерных сетей согласно модели ISO/OSI?
  7. Для чего предназначается верхний (седьмой) уровень архитектуры – прикладной?
  8. Каково назначение физического уровня архитектуры?
  9. Что такое протоколы? Для чего они предназначены?
  10. Что такое интерфейсы?
  11. По какому принципу компьютерные сети делятся на локальные и глобальные?
  12. Каково назначение всех видов компьютерных сетей?
  13. Какой компьютер называется файловым сервером?
  14. Какие сети называются одноранговыми?
  15. Что такое рабочая группа?
  16. Каковы функции системного администратора?
  17. С помощью каких каналов связи локальные сети могут объединяться в глобальные?
  18. Что такое шлюзы? Какими могут быть шлюзы?
  19. Как обеспечивается сетевая безопасность?
  20. Назовите основные этапы развития компьютерных сетей?
  21. Как в модели ISO/OSI проходит обмен данными между пользователями?
  22. Каковы достоинства и недостатки использования виртуального соединения?
  23. Что представляет собой локальная вычислительная сеть (ЛВС)?
  24. Каковы основные компоненты ЛВС?
  25. Что такое рабочие станции (РС) – клиенты?
  26. Что такое серверы сети?
  27. Что такое Интернет?
  28. Охарактеризуйте основные понятия Интернет: сайт, провайдер, хост, способы адресации, система адресации (URL)?
  29. Каковы основные службы сети Интернет?

вторник, 13 марта 2012 г.

Методы представления графических изображений


В этом разделе:
    • принцип растровой графики;
    • основные понятия растровой графики;
    • достоинства растровой графики;
    • недостатки растровой графики;
    • описание рисунков в векторных программах;
    • достоинства векторной графики;
    • недостатки векторной графики;
    • особенности растровых и векторных программ.

Растровая графика

Растровое изображение представляет из себя мозаику из очень мелких элементов — пикселей. Растровый рисунок похож на лист клетчатой бумаги, на котором каждая клеточка закрашена определённым цветом, и в результате такой раскраски формируется изображение.
Принцип растровой графики чрезвычайно прост. Он был изобретен и использовался людьми за много веков до появления компьютеров. Во-первых, это такие направления искусства, как мозаика, витражи, вышивка. В любой из этих техник изображение строится из дискретных элементов. Во-вторых, это рисование «по клеточкам» — эффективный способ переноса изображения с подготовительного картона на стену, предназначенную для фрески. Суть этого метода заключается в следующем. Картон и стена, на которую будет переноситься рисунок, покрываются равным количеством клеток, затем фрагмент рисунка из каждой клетки картона тождественно изображается в соответствующей клетке стены.
Создание изображения в растровом графическом редакторе (PaintFractal Design PainterCorel Photo-PAINTAdobe PhotoShopпохоже на работу художника, когда он пишет картину на настоящем холсте настоящими красками. Здесь компьютерный художник водит «кистью» — курсором мыши по «электронному полотну» — экрану, закрашивая каждый из пикселей рисунка в нужный цвет. Таким образом каждому пикселю присваивается цвет. Этот цвет закрепляется за определённым местом экрана и как бы «высыхает» подобно тому, как высыхает краска на настоящем холсте. Перемещение фрагмента изображения «снимает» краску с электронного холста и, следовательно, разрушает рисунок.
Растровая графика (Рис. 1.) работает с сотнями и тысячами пикселей, которые формируют рисунок. Пиксели «не знают», какие объекты (линии, эллипсы, прямоугольники и т. д.) они составляют.

Рис. 1. Растровое изображение (вверху увеличенный глаз)
В компьютерной графике термин «пиксель», вообще говоря, может обозначать разные понятия:
  • наименьший элемент изображения на экране компьютера;
  • отдельный элемент растрового изображения;
  • точка изображения, напечатанного на принтере.
Поэтому, чтобы избежать путаницы, будем пользоваться следующей терминологией:
  • видеопиксель— наименьший элемент изображения на экране;
  • пиксель — отдельный элемент растрового изображения;
  • точка — наименьший элемент, создаваемый принтером.
При этом для изображения одного пикселя на экране компьютера может быть использован один или несколько видеопикселей .
Экран дисплея разбит на фиксированное число видеопикселей , которые образуют графическую сетку (растр) из фиксированного числа строк и столбцов. Размер графической сетки обычно представляется в форме NxM , где N — количество видеопикселей по горизонтали, а М — по вертикали. На современных дисплеях используются, например, такие размеры графической сетки: 640 х 480, 800 х 600, 1024 х 768, 1240 х 1024 и др. Изображение на экране дисплея создается путем избирательной засветки электронным лучом определенных видеопикселей экрана. Чтобы изображение могло восприниматься глазом, его необходимо составить из сотен или тысяч видеопикселей , каждый из которых должен быть подсвечен.

Достоинства растровой графики

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


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

Недостатки растровой графики

1. В файле растрового изображения запоминается информация о цвете каждого видеопикселя в виде комбинации битов. Бит — наименьший элемент памяти компьютера, который может принимать одно из двух значений: включено или выключено. Наиболее простой тип изображения имеет только два цвета (например, белый и чёрный). В этом случае каждому видеопикселю соответствует один бит памяти (21). Если цвет видеопикселя определяется двумя битами, то мы имеем четыре (22) возможных комбинаций значений включено /выключено. Используя для значения выключено символ 0, а для включено — 1, эти комбинации можно записать так: 00, 01, 10, 11 . Четыре бита памяти позволяют закодировать 16 (24) цветов, восемь бит — 28 или 256 цветов, 24 бита — 224 или 16777216 различных цветовых оттенков.
Простые растровые картинки занимают небольшой объём памяти (несколько десятков или сотен килобайт). Изображения фотографического качества часто требуют несколько мегабайт. Например, если размер графической сетки — 1240 х 1024, а количество используемых цветов — 16777216, то объём растрового файла составляет около 4 Мб, так как информация о цвете видеопикселей в файле занимает
1240 х 1024 х 24 = 30474240 бит или
30474240 бит : 8 = 3809280 байт или
3809280 байт : 1024 = 3720 Кб или
3720 Кб : 1024 = 3,63 Мб.
Таким образом, для хранения растровых изображений требуется большой объём памяти.
Самым простым решением проблемы хранения растровых изображений является увеличение ёмкости запоминающих устройств компьютера. Современные жесткие и оптические диски предоставляют значительные объёмы памяти для данных. Оборотной стороной этого решения является стоимость, хотя цены на эти запоминающие устройства в последнее время заметно снижаются.
Другой способ решения проблемы заключается в сжатии графических файлов, т. е. использовании программ, уменьшающих размеры файлов растровой графики за счет изменения способа организации данных. Существует несколько способов сжатия графических данных. В простейшем из них последовательность повторяющихся величин (в нашем случае — набор бит для представления видеопикселей ) заменяется парой — единственной величиной и количеством её повторений. На рис. 3 показано, как подобным образом может быть сжата одна строка чёрно-белого растрового рисунка.

Рис. 3. Сжатие последовательности пикселей
Такой метод сжатия лучше всего работает с изображениями, которые содержат большие области однотонной закраски, но намного хуже с его помощью сжимаются фотографии, так как в них почти нет длинных строк из одинаковых пикселей. Сильно насыщенные узорами изображения хорошо сжимаются методом LZ W (назван так по первым буквам фамилий его разработчиков — Lempel , Ziv и Welch ). Объединённая группа экспертов по фотографии ( Joint Photographic Experts Group ) предложила метод JPEG для сжатия изображений фотографического качества.
2. Растровое изображение после масштабирования или вращения может потерять свою привлекательность. Например, области однотонной закраски могут приобрести странный («муаровый») узор; кривые и прямые линии, которые выглядели гладкими, могут неожи -
данно стать пилообразными. Если уменьшить, а затем снова увеличить до прежнего размера растровый рисунок, то он станет нечётким и ступенчатым (рис. 4), а закрашенные области могут быть искажены. Причина в том, что изменение размеров растрового изображения производится одним из двух способов:
  • все пиксели рисунка одинаково изменяют свой размер (одновременно становятся больше или меньше);
  • пиксели добавляются или удаляются из рисунка (это называется выборкой пикселей в изображении).
При первом способе масштабирование изображения не меняет количество входящих в него пикселей, но изменяется количество элементов ( видеопикселей или точек), необходимых для построения отдельного пикселя (рис. 5), и при увеличении рисунка «ступенчатость» становится всё более заметной — каждая точка превращается в квадратик.

Рис. 4. Эффект, появляющийся при уменьшении, а затем увеличении растрового изображения (рисунок получен в графическом редакторе Paint) 
Рис. 5. При изменении размеров изображения количество входящих в него пикселей не меняется
Выборка же растрового изображения может быть сделана двумя способами. Во-первых, можно просто продублировать или удалить необходимое число пикселей. Во-вторых, с помощью определенных вычислений программа может создать пиксели другого цвета, определяемого первоначальным пикселем и его окружением. При этом возможно исчезновение из рисунка мелких деталей и тонких линий, появление «муарового» узора или уменьшение резкости изображения (размытие).
Так как графический редактор Paint (стандартная программа WINDOWS ) является растровым, то в нем легко продемонстрировать результаты масштабирования изображений и объяснить причины возникающих искажений.
Итак, растровые изображения имеют очень ограниченные возможности при масштабировании, вращении и других преобразованиях.

Векторная графика

В векторной графике изображения строятся из простых объектов — прямых линий, дуг, окружностей, эллипсов, прямоугольников, областей однотонного или изменяющегося цвета (заполнителей) и т. п., называемых примитивами. Из простых векторных объектов создаются различные рисунки (рис. 6).
Рис. 5. При изменении размеров изображения количество входящих в него пикселей не меняется
Выборка же растрового изображения может быть сделана двумя способами. Во-первых, можно просто продублировать или удалить необходимое число пикселей. Во-вторых, с помощью определенных вычислений программа может создать пиксели другого цвета, определяемого первоначальным пикселем и его окружением. При этом возможно исчезновение из рисунка мелких деталей и тонких линий, появление «муарового» узора или уменьшение резкости изображения (размытие).
Так как графический редактор Paint (стандартная программа WINDOWS ) является растровым, то в нем легко продемонстрировать результаты масштабирования изображений и объяснить причины возникающих искажений.
Итак, растровые изображения имеют очень ограниченные возможности при масштабировании, вращении и других преобразованиях.





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


Рис. 7. Рисунок, составленный из векторных примитивов
В трёхмерной компьютерной графике могут использоваться «пространственные» примитивы — куб, сфера и т. п.
Векторные примитивы задаются с помощью описаний. Например:
рисовать линию от точки А до точки В;
рисовать эллипс, ограниченный заданным прямоугольником.
Для компьютера подобные описания представляются в виде команд, каждая из которых определяет некоторую функцию и соответствующие ей параметры. Символические команды для приведённых выше примеров описаний в векторном формате WMF (Windows Metafile) записываются так:
MOVETO XI , Y1Установить текущую позицию (XI , Y 1).
LINETO X2, Y2Нарисовать линию от текущей позиции до позиции (X 2, Y 2).
ELLIPSE X3 , Y3 , X4, Y4Нарисовать эллипс, ограниченный прямоугольником, где (ХЗ, Y3) — координаты левого верхнего, а (Х4, Y4) — правого нижнего угла этого прямоугольника.
Информация о цвете объекта сохраняется как часть его описания, т. е. в виде векторной команды (сравните: для растровых изображений хранится информация о цвете каждого видеопикселя ).
Векторные команды сообщают устройству вывода о том, что необходимо нарисовать объект, используя максимально возможное число элементов (видеопикселей или точек). Чем больше элементов используется устройством вывода для создания объекта, тем лучше этот объект выглядит.

Кто же составляет последовательность векторных команд?

Для получения векторных изображений, как правило, используются программы иллюстративной графики (CorelDraw, Adobe IllustratorMacromedia Freehand), которые широко применяются в области дизайна, технического рисования, а также для оформительских работ. Эти векторные программы предоставляют в распоряжение пользователя набор инструментов и команд, с помощью которых создаются рисунки. Одновременно с процессом рисования специальное программное обеспечение формирует векторные команды, соответствующие объектам, из которых строится рисунок.
Вероятнее всего, что пользователь такой программы никогда не увидит векторных команд. Однако знания о том, как описываются векторные рисунки, помогают понять достоинства и недостатки векторной графики.
Файлы векторной графики могут содержать растровые изображения в качестве одного из типов объектов (рис. 8).

Рис. 8. Фотография, вставленная в документ векторного редактора
Большинство векторных программ позволяют только разместить растровый рисунок в векторной иллюстрации, изменить его размер, выполнить перемещение и поворот, обрезку, однако изменить в нём отдельные пиксели невозможно. Дело в том, что векторные изображения состоят из отдельных объектов, с которыми можно работать порознь. С растровыми же изображениями так поступать нельзя, так как пиксели нельзя классифицировать подобным образом (объектом здесь является весь растровый фрагмент в целом). Пиксель же обладает одним свойством — цветом. Поэтому в некоторых векторных редакторах к растровым объектам допускается применять специальные эффекты размытия и резкости, в основе которых лежит изменение цветов соседних пикселей.

Достоинства векторной графики

1. Векторные рисунки, состоящие из тысяч примитивов, занимают память, объём которой не превышает нескольких сотен килобайт. Аналогичный растровый рисунок требует памяти в 10-1000 раз больше. Таким образом, векторные изображения занимают относительно небольшой объём памяти.
2. Векторные объекты задаются с помощью описаний. Поэтому, чтобы изменить размер векторного рисунка, нужно исправить его описание. Например, для увеличения или уменьшения эллипса достаточно изменить координаты левого верхнего и правого нижнего угла прямоугольника, ограничивающего этот эллипс. И снова для рисования объекта будет использоваться максимально возможное число элементов (видеопикселей или точек). Следовательно, векторные изображения могут быть легко масштабированы без потери качества.
Замечание. В ряде случаев возможно преобразование растровых изображений в векторные . Этот процесс называется трассировкой. Программа трассировки растровых изображений отыскивает группы пикселей с одинаковым цветом, а затем создаёт соответствующие им векторные объекты. Однако получаемые результаты чаще всего нуждаются в дополнительной обработке.

Недостатки векторной графики

1. Прямые линии, окружности, эллипсы и дуги являются основными компонентами векторных рисунков. Поэтому до недавнего времени векторная графика использовалась для построения чертежей, диаграмм, графиков, а также для создания технических иллюстраций. С развитием компьютерных технологий ситуация несколько изменилась: сегодняшние векторные изображения по качеству приближаются к реалистическим. Однако векторная графика не позволяет получать изображений фотографического качества. Дело в том, что фотография — мозаика с очень сложным распределением цветов и яркостей пикселей и представление такой мозаики в виде совокупности векторных примитивов — достаточно сложная задача.
2. Векторные изображения описываются десятками, а иногда и тысячами команд. В процессе печати эти команды передаются устройству вывода (например, лазерному принтеру). При этом может случиться так, что на бумаге изображение будет выглядеть совсем иначе, чем хотелось пользователю, или вообще не распечатается. Дело в том, что принтеры содержат свои собственные процессоры, которые интерпретируют переданные им команды. Поэтому сначала нужно проверить, понимает ли принтер векторные команды данного стандарта, напечатав какой-нибудь простой векторный рисунок. После успешного завершения его печати можно уже печатать сложное изображение. Если же принтер не может распознать какой-либо примитив, то следует заменить его другим — похожим, но понятным принтеру. Таким образом, векторные изображения иногда не печатаются или выглядят на бумаге не так, как хотелось бы.

Сравнение растровой и векторной графики

Критерий сравненияРастровая графикаВекторная графика
Способ представления изображенияРастровое изображение строится из множества пикселейВекторное изображение описывается в виде последовательности льности команд
Представлениеобъектов реального мираРастровые рисунки эффективно используются для представления реальных образовВекторная графика не позволяет получать изображения фотографического качества
Качество редактирования изображенияПри масштабировании и вращении растровых картинок возникают искаженияВекторные изображения могут быть легко преобразованы без потери качества
Особенности печати изображенияРастровые рисунки могут быть легко распечатаны на принтерахВекторные рисунки иногда не печатаются или выглядят на бумаге не так, как хотелось бы

Особенности растровых и векторных программ

Графические программы — это инструменты компьютерного художника, с помощью которых он создаёт и редактирует изображения. В настоящее время существует много различных графических программ. Поэтому важно знать, какая программа наилучшим образом подходит для решения конкретной задачи. Улучшение качества изображений, а также монтаж фотографий выполняются в растровых программах. Для создания иллюстраций обычно используются векторные программы, которые также называют программами рисования.
Любая графическая программа содержит набор инструментов для работы с изображениями. Инструмент «Кривая» («Кисть» или «Карандаш») предназначен для рисования прямых и кривых линий. Инструменты «Прямоугольник», «Эллипс», «Многоугольник» используются для построения геометрических фигур. Закраска выполняется инструментом «Заливка». Для создания надписей и заголовков используется инструмент «Текст». При работе с изображением часто возникает необходимость увеличить его фрагмент, чтобы лучше рассмотреть мелкие детали. В этом случае нужно воспользоваться инструментом «Масштаб». Несмотря на то, что растровые и векторные программы могут использовать одинаковые инструменты, способ представления создаваемых ими изображений различен.
В графических программах реализованы возможности, позволяющие перемещать, копировать, удалять, масштабировать, зеркально отражать, вращать отдельные части изображений. Прежде, чем выполнить операцию над фрагментом изображения, его необходимо выделить. В векторных программах выделяют объекты (векторные примитивы), а в растровых — области (наборы пикселей). Чтобы выделить объект, достаточно щёлкнуть по нему мышью. Выделение же области — более сложная задача, так как в этом случае необходимо точно указать, какая группа пикселей составляет область (например, цветок или яблоко). Вот почему в растровых программах встречаются разнообразные инструменты выделения. Некоторые из них используются для выделения областей простой формы (прямоугольников или эллипсов), другие — для областей со сложной криволинейной границей.
Так как основное понятие растровой графики — пиксель, большинство инструментов и команд растровых программ изменяют яркость и цветовые оттенки отдельных пикселей. Это даёт возможность улучшать резкость изображений, осветлять или затемнять отдельные его фрагменты, а также удалять небольшие дефекты (морщинки, царапины и т. д.).
Основное понятие векторной графики — объект. Поэтому векторные программы содержат команды упорядочивания, взаимного выравнивания, пересечения объектов, исключения одних объектов из других. Таким образом, можно создавать новые объекты сложной формы из более простых .
Как правило, в растровых и векторных программах имеются средства для получения эффекта объёма. Однако трёхмерные образы реальных объектов (персонажи, интерьеры и т. д.) следует создавать в программах трёхмерного моделирования.
Контрольные вопросы
1. В чём состоит принцип растровой графики?
2. Что обозначают понятия пиксель, видеопиксель , точка?
3. Почему растровая графика эффективно представляет изображения фотографического качества?
4. Почему для хранения растровых изображений требуется большой объём памяти?
5. Почему растровое изображение искажается при масштабировании?
6. Как хранится описание векторных изображений?
7. Кто составляет последовательность векторных команд?
8. Почему векторные изображения могут быть легко масштабированы без потери качества?
9. Почему векторная графика не позволяет получать изображений фотографического качества?
10. Для решения каких задач используются растровые программы?
11. Почему векторные программы называют программами рисования?
12. Почему в растровых и векторных программах выделение фрагментов изображения выполняется по-разному?
13. Какие программы предоставляют возможность улучшать резкость изображения, осветлять или затемнять отдельные его фрагменты?











Основные понятия программирования

Программирование - это раздел информатики, изучающий методы и приемы составления программ для компьютеров. Кроме того, программирование - это подготовка задачи к решению ее на компьютере.
Программа - это последовательность команд, понятных компьютеру.
Программа записывается в виде символов, к числу которых относятся латинские и русские буквы, цифры, знаки препинания и знаки операций.
Требования, предъявляемые к программе
1. Минимальные требования к компьютеру, на котором работает программа.
2. Ясность входных и выходных данных и простота программы.
3. Минимальное время создания программы и простота ее изменения.
4. Минимальное время работы программы, минимум занимаемой памяти и минимум использованных в программе операторов.
Чтобы программа удовлетворяла этим противоречивым требованиям, необходимо обладать искусством программирования.
Свойства программ - выполнимость, мобильность, правильность, эффективность.
Выполнимость - возможность выполнения программы на данном типе компьютеров.
Мобильность - возможность переноса программы на другой тип компьютеров.
Правильность программы - правильность результатов, получаемых с помощью данной программы.
Эффективность - минимум времени выполнения, минимум машинной памяти и других ресурсов компьютера.
Языки программирования - языки для записи программ для компьютеров. Это совокупность средств и правил представления алгоритма в виде, приемлемом для компьютера.
Оператор - выражение обозначающее и описывающее какую-либо операцию.
Типы языков программирования: машинные, машинно-ориентированные, алгоритмические, логические, функциональные, учебные, инструментальные, диалоговые, графические и т.д.
Алгоритмический язык - это формальный язык, предназначенный для записи алгоритмов.
Системы программирования - это набор средств ввода, редактирования, трансляции и выполнения программ на ЭВМ.
Транслятор - это комплекс программ, обеспечивающий перевод программы, написанной на символическом языке, в совокупность машинных команд.
Компилятор - это транслятор, обеспечивающий перевод программы, написанной на алгоритмическом языке, в совокупность машинных команд без ее выполнения в компьютере.
Интерпретатор - это транслятор, обеспечивающий перевод каждой конструкции алгоритмического языка в машинные команды и одновременное выполнение этой конструкции в компьютере.
Все системы (языки) программирования имеют свой транслятор, компилятор и интерпретатор.
Виды языков программирования:
1. Машинно-ориентированные языки (языки ассемблера).
2. Языки высокого уровня.
3. Командные языки баз данных.
Примеры языков программирования высокого уровня: Фортран, Алгол, Бейсик (Basic), Паскаль (Pascal), Си++, Пролог, Лисп, Форт и др.

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


Некоторые сведения о системе программирования Турбо Паскаль.
Структура программы на Паскале.
Элементы языка Турбо Паскаль.
Арифметические операции и выражения.
Стандартные функции.
Оператор присваивания.


1. Некоторые сведения о системе программирования Турбо Паскаль


Язык Паскаль был разработан в 1971 году Никласом Виртом первоначально для целей обучения программированию. В настоящее время он получил широкое распространение по ряду объективных причин.
Во-первых, по своей идеологии Паскаль наиболее близок к современной методике и технологии программирования. В частности, он достаточно полно отражает идеи структурного программирования, что довольно хорошо видно даже из основных управляющих структур языка.
Во-вторых, Паскаль хорошо приспособлен для применения технологии разработки программ сверху-вниз (пошаговой детализации).
В-третьих, Паскаль содержит большое разнообразие различных структур данных, что обеспечивает простоту алгоритмов, а следовательно снижение трудоемкости при разработке программ.
Система программирования Turbo Pascal предназначена для выполнения этапов решения задачи на алгоритмическом языке Паскаль и включает в себя три главные компоненты: 1) редактор текстов; 2) компилятор; 3) исполнительную систему.
С помощью встроенного в систему текстового редактора можно формировать в памяти любые тексты, не только программы на Паскале. В частности, это могут быть исходные данные решаемой задачи в текстовой форме. Текст программы, созданный редактором, можно сохранить на диске в виде файла с именем следующего формата <имя файла>.раs, где pas — это стандартное расширение имени файла, созданного системным редактором. Имя файла задается пользователем.
Компиляция - это процесс перевода программы на язык машинных команд. Компилятор переводит программу с языка Паскаль на язык машинных команд. При этом проверяется соответствие программы правилам языка программирования (синтаксический и семантический контроль). При обнаружении ошибки компьютер выдает сообщение о ней пользователю и прекращает работу. В результате компиляции Turbo Pascal создает исполняемый файл с тем же именем, что и файл, содержащий программу, но с расширением ехе. Впоследствии этот файл может быть выполнен, как любой другой исполняемый файл.
Выполнение программы остается под контролем исполнительной системы. Она, в частности, помогает обнаружить ошибку в программе, если при исполнении произошел сбой. Пользователю сообщается причина сбоя и указывается место, где он случился в Паскаль-программе, происходит автоматический возврат в режим редактирования.
Turbo Pascal позволяет редактировать, компилировать, компоновать и выполнять Паскаль-программы. При этом пользователю предоставляется высокая скорость компиляции, удобство работы с компьютером и мощная библиотека процедур и функций.


2. Структура программы на Паскале


Программа на Паскале в общем случае состоит из нескольких файлов. Один из них содержит главную программу, а остальные – модули. Главная программа состоит из заголовка, блока и заканчивается точкой — признаком конца программы. В свою очередь, блок содержит разделы описаний и раздел операторов. В общем случае «скелет» программы можно представить следующим образом:
Спецификация программы }
program <имя программы> (заголовок программы);
uses (раздел объявления модулей);
label (раздел объявления меток);
const (раздел объявления констант);
type (раздел объявления типов);
var (раздел объявления переменных);
procedure(function) (раздел объявления подпрограмм: процедур или функций);
begin
<операторы > (раздел операторов, обязательная часть);
end.
Все указанные разделы отделяются друг от друга точкой с запятой.
Раздел операторов должен обязательно присутствовать в любой программе и является основным. Предшествующие разделы носят характер описаний и не обязательно содержаться в программе.
Заголовок программы состоит из зарезервированного слова program и имени программы (со списком параметров, заключенных в круглые скобки). Завершается заголовок точкой с запятой.
В Turbo Pascal имеются особенности в структуре программы. Так, заголовок программы необязателен и игнорируется компилятором. Порядок размещения разделов произвольный, можно создавать несколько одинаковых разделов. Единственное правило, которое необходимо выдерживать, - в любом месте программы можно использовать лишь элементы (метки, типы, константы, переменные, подпрограммы и т. д.), которые были определены ранее по тексту программы или являются предопределенными элементами языка. Исключением из этого правила может быть лишь определение типа-указателя через неопределенный до этого тип. Однако этот тип в дальнейшем должен быть обязательно определен.
Операторы в разделе операторов отделяются друг от друга точкой с запятой. Перед end точка с запятой не ставится, однако ее наличие не является ошибкой, а лишь означает присутствие между последним исполняемым оператором и служебным словом end еще одного оператора - пустого оператора. Заканчивается программа словом end, после которого обязательно ставится точка.
В начале программы необходимо располагать ее спецификацию – комментарий в фигурных скобках, содержащий назначение программы, данные о программисте, дату создания программы.
Язык программирования Паскаль является языком структурного программирования. В нем есть все необходимые управляющие конструкции для структурного построения программы. Наглядность такому построению придает структуризация внешнего вида текста программы. Основной используемый для этого прием — сдвиги строк, которые должны подчиняться следующим правилам:
конструкции одного уровня вложенности записываются на одном вертикальном уровне (начинаются с одной позиции в строке);
вложенная конструкция записывается смещенной по строке на несколько позиций вправо относительно внешней для нее конструкции.


3. Элементы языка Турбо Паскаль


Алфавит языка состоит из множества символов, включающих:
Латинские буквы: от A до Z (прописные) и от а до z. (строчные);
Знак подчеркивания _;
Цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;
Специальные символы: + — * / (знаки арифметических операций), = <> <= >= (операции отношения), : = (операции присваивания), [ ] . , ( ) : ; { } ^ @ $ # ‘ (ограничители). К спецсимволам относятся служебные слова, смысл которых определен однозначно (begin, end, for, div и т.д.).
Пробел — символ пробела (ASCI1-32) и все управляющие символы кода ASCII (от 0 до 31).
Идентификаторы. Идентификатором называется символическое имя определенного программного объекта. Такими объектами являются имена констант, переменных, типов данных, процедур и функций, программ. Идентификатор — это любая последовательность букв и цифр, начинающаяся с буквы. В Турбо Паскале к буквам приравнивается также знак подчеркивания. Строчные и прописные буквы в идентификаторах и служебных словах не различаются. Например: max, MAX, MaX и mAx — одно и то же имя. Длина идентификатора может быть произвольной, но значащими являются только первые 63 символа.
Комментарии. Конструкции, заключенные в фигурные скобки {} или в скобки вида (* *) являются комментариями, могут занимать несколько строк и игнорируются компилятором.
Строка, начинающаяся с символов {$ или (*$, является директивой компилятора. За этими символами следует мнемоника команды компилятора. Буквы русского алфавита употребляются только в комментариях, в литерных и текстовых константах.


4. Арифметические операции и выражения


Знаки операций предназначены для обозначения тех или иных арифметических, логических или других действий. Они бывают двух типов: состоящие из небуквенных символов (например, +, -, * и т.д.) и буквенные операции (например, not, mod, div и т. д.), представляющие собой зарезервированные слова. Операции над данными делятся на унарные (применимые к одному операнду) и бинарные (применимые к двум операндам). Приведем примеры бинарных арифметических операций (в таблице буква I обозначает целые типы, R — вещественные типы):

Знак
Выражение
Типы операндов
Тип результата
Операция
+
А+В
R,R
I,I
I,R; R,I
R
I
R
Сложение
-
А-В
R,R
I,I
I,R; R,I
R
I
R
Вычитание
*
А*В
R,R
I,I
I,R; R,I
R
I
R
Умножение
/
А/В
R,R
I,I
I,R; R,I
R
R
R
Вещественное деление
Div
A div B
I, I
I
Целое деление
Mod
A mod B
I, I
I
Остаток от деления


Арифметическое выражение задает порядок выполнения действий над числовыми величинами. Арифметические выражения содержат арифметические операции, функции, операнды, круглые скобки. Одна константа или одна переменная — простейшая форма арифметического выражения.
Порядок выполнения операций в арифметическом выражении подчиняется трем правилам:
Правилу скобок. Оно гласит, что первыми выполняются операции в скобках. Если имеется несколько пар вложенных скобок, вычисления начинаются с самых внутренних скобок.
Правилу учета приоритета операций: вначале вычисляются значения функций, затем выполняются операции умножения и деления и в последнюю очередь - операции сложения и вычитания.
Правилу следования: операции одинакового старшинства (приоритета) выполняются слева направо в порядке их следования.
Пример. Цифрами сверху указан порядок выполнения операций:


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


Выражение имеет целый тип, если в результате его вычисления получается величина целого типа. Выражение имеет вещественный тип, если результатом его вычисления является вещественная величина.


5. Стандартные функции


В качестве операндов в выражении, кроме констант и переменных, можно использовать стандартные функции. Аргументы функций обязательно заключаются в круглые скобки. Приоритет выполнения функции выше, чем приоритет выполнения арифметических операций. Рассмотрим стандартные функции Турбо Паскаля (в таблице буква I обозначает целые типы, R — вещественные типы):

Обращение
Тип аргумента
Тип результата
Тип действия
pi
-
R
Число π
abs(x)
I, R
I, R
Модуль (абсолютная величина) числа х
sqr(x)
I, R
I, R
Квадрат х
sqrt(x)
I, R
R
Корень квадратный из х (х≥0)
sin(x)
I, R
R
Синус х (х в радианах)
cos(x)
I, R
R
Косинус х (х в радианах)
arctan(x)
I, R
R
Арктангенс х (результат в радианах)
exp(x)
I, R
R
Экспонента е в степени х (е≈2,71828)
ln(x)
I, R
R
Натуральный логарифм х (x>0)
trunc(x)
R
I
Целая часть х
int(x)
I, R
R
Целая часть х
round(x)
R
I
Округление х до ближайшего целого
frac(x)
I, R
R
Дробная часть х
random
-
I
Случайное число [0,1)
random(x)
I
R
Случайное число [0,х)
dec(x,[n])
I
I
Уменьшение х на n, при отсутствии n – на 1
inc(x,[n])
I
I
Увеличение х на n, при отсутствии n – на 1
odd(x)
Longint
Boolean
true, если значение x нечетное;
false, если x четное
ord(x)
любой порядковый
Longint
Порядковый номер значения х в его типе. Если х – символ, то функция возвращает код символа
pred(x)
любой порядковый
тот же, что для x
Предыдущее относительно х значение в его типе
succ(x)
любой порядковый
тот же, что для x
Следующее относительно х значение в его типе
chr(x)
Byte
Char
Определяет символ с указанным кодом (х – число, определяющее код символа)


Турбо Паскале не содержит некоторые часто используемые математические функции, поэтому при их вычислении используют эквивалентные математические формулы:

Функция
Эквивалентная математическая формула
Запись в программе
ax
Описание: Основные понятия языка программирования Турбо Паскаль
exp(x*ln(a))
tg(x)
Описание: Основные понятия языка программирования Турбо Паскаль
sin(x)/cos(x)
arcsin(x)
Описание: Основные понятия языка программирования Турбо Паскаль
arctan(x/sqrt(1-x*x))
arccos(x)
Описание: Основные понятия языка программирования Турбо Паскаль
arctan(sqrt(1-x*x)/x)
logax
Описание: Основные понятия языка программирования Турбо Паскаль
ln(x)/ln(a)


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


6. Оператор присваивания


Значение переменной может быть задано или изменено с помощью оператора присваивания, который имеет вид:
<имя>:=<выражение>;
где <имя> - это имя переменной или функции;
:= - знак операции присваивания.
Оператор присваивания позволяет заменить текущее значение переменной, стоящей слева от знака присваивания, новым значением, задаваемым выражением, стоящим справа.
С правой стороны располагается выражение, которое после вычисления дает некоторое значение. С левой стороны указывается имя переменной, которой это значение присваивается. Данное обстоятельство позволяет использовать с левой и правой стороны знака присваивания имя одной и той же переменной. Пусть, например, имеются следующие операторы:


Var
х, а : real;
. . . . .
х:=2.5;
а:=1.25;
х:=х+а;


После выполнения этих операторов переменная х будет иметь значение 3.75, так как первоначально произойдет вычисление выражения х + а в виде сложения двух констант: 2.5+ 1.25 = 3.75, а затем это значение присваивается переменной х (предыдущее значение х, равное 2.5, заменится новым - 3.75).
Следует обратить внимание на следующее правило: типы переменной и выражения должны быть одинаковыми. Исключение составляет случай, когда выражение имеет целый тип, а переменная — вещественный.