Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
билеты к шпаргалкам.docx
Скачиваний:
3
Добавлен:
14.04.2019
Размер:
138.44 Кб
Скачать
  • Глобальные компьютерные сети (WAN) используются для объединения абонентов разных типов: отдельных компьютеров разных классов - от мэйнфреймов до персональных компьютеров, локальных компьютерных сетей, удаленных терминалов.

  • Ввиду большой стоимости инфраструктуры глобальной сети существует острая потребность передачи по одной сети всех типов трафика, которые возникают на предприятии, а не только компьютерного: голосового трафика внутренней телефонной сети, работающей на офисных АТС (РВХ), трафика факс-аппаратов, видеокамер, кассовых аппаратов, банкоматов и другого производственного оборудования.

  • Для поддержки мультимедийных видов трафика создаются специальные технологии: ISDN, B-ISDN. Кроме того, технологии глобальных сетей, которые разрабатывались для передачи исключительно компьютерного трафика, в последнее время адаптируются для передачи голоса и изображения. Для этого пакеты, переносящие замеры голоса или данные изображения, приоритезируются, а в тех технологиях, которые это допускают, для их переноса создается соединение с заранее резервируемой пропускной способностью. Имеются специальные устройства доступа - мультиплексоры «голос - данные» или «видео - данные», которые упаковывают мультимедийную информацию в пакеты и отправляют ее по сети, а на приемном конце распаковывают и преобразуют в исходную форму - голос или видеоизображение.

  • Глобальные сети предоставляют в основном транспортные услуги, транзитом перенося данные между локальными сетями или компьютерами. Существует нарастающая тенденция поддержки служб прикладного уровня для абонентов глобальной сети: распространение публично-доступной аудио-, видео- и текстовой информации, а также организация интерактивного взаимодействия абонентов сети в реальном масштабе времени. Эти службы появились в Internet и успешно переносятся в корпоративные сети, что называется технологией intranet.

  • Все устройства, используемые для подключения абонентов к глобальной сети, делятся на два класса: DTE, собственно вырабатывающие данные, и DCE, служащие для передачи данных в соответствии с требованиями интерфейса глобального канала и завершающие канал.

  • Технологии глобальных сетей определяют два типа интерфейса: «пользователь-сеть» (UNI) и «сеть-сеть» (NNI). Интерфейс UNI всегда глубоко детализирован для обеспечения подключения к сети оборудования доступа от разных производителей. Интерфейс NNI может быть детализирован не так подробно, так как взаимодействие крупных сетей может обеспечиваться на индивидуальной основе.

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

  • На арендованных каналах можно построить сеть с промежуточной коммутацией на основе какой-либо технологии глобальной сети (Х.25, frame relay, АТМ) или же соединять арендованными каналами непосредственно маршрутизаторы или мосты локальных сетей. Выбор способа использования арендованных каналов зависит от количества и топологии связей между локальными сетями.

  • Глобальные сети делятся на магистральные сети и сети доступа.

  • Основы электронного бизнеса

  • 1. Основы работы глобальной сети Internet

  • Основные понятия

  • Что такое Internet? Интернет - это глобальная компьютерная сеть, в которой размещены различные службы или сервисы (E-mail, Word Wide Web, FTP, Usenet, Telnet и т.д.). Компьютерные сети предназначены для передачи данных, а телефонные сети и радиосети - для передачи голоса, телевизионные сети - для передачи изображения. В зависимости от расстояний между ПК различают локальные, территориальные и корпоративные вычислительные сети. Конвергенция телекоммуникационных сетей (компьютерных, радио, телефонных и телевизионных сетей) обеспечивает возможность качественной передачи данных, голоса и изображения по единым (мультисервисным) сетям нового поколения (сетям Internet). Глобальная сеть Интернет была создана в 1990 году на базе сети ARPANet, которую создало подразделение ARPA (Advanced Research Projects Agency) Министерства Обороны США совместно с университетскими учеными в 1969 году. Эта сеть была экспериментальной сетью для исследования методов построения высоконадежной национальной компьютерной сети (сети сетей) устойчивой к локальным повреждениям при ядерной войне. ARPANet была создана с применением технологии коммутации пакетов на основе Internet Protocol - IP или семейства протоколов (стека) TCP/IP т.е. основана на самостоятельном продвижении пакетов в сети. ARPANET - это первая сеть с пакетной коммутацией, которая связывала исследовательские лаборатории университетов в Лос-Анджелесе, Санта-Барбаре с лабораториями Стэндфордского университета и Университета штата Юта в Солт-Лейк Сити. Именно применение сетевых протоколов (сетевого программного обеспечения) TCP/IP обеспечило нормальное взаимодействие компьютеров с различными программными и аппаратными платформами в сети и, кроме того, стек TCP/IP обеспечил высокую надежность компьютерной сети (при выходе из строя нескольких компьютеров сеть продолжала нормально функционировать). После открытой публикации в 1974 году описания протоколов IP и TCP (описание взаимодействия компьютеров в сети) началось бурное развитие сетей, на основе семейства протоколов TCP/IP. Стандарты TCP/IP являются открытыми и постоянно совершенствуются. В настоящее время во всех операционных системах предусмотрена поддержка протокола TCP/IP. В 1983 году ARPANet разделилась на две сети, одна - MILNET стала частью оборонной сети передачи данных США, другая - была использована для соединения академических и исследовательских центров, которая постепенно развивалась и в 1990 году трансформировалась в Интернет. Протоколы TCP/IP обеспечили абсолютную децентрализацию глобальной сети Интернет, ни одно государство не контролирует ее работу. Интернет развивается демократично, к Интернет может подключиться любая компьютерная сеть или отдельный компьютер. Единого владельца и центра управления сети Интернет не существует.

  • Инфраструктура сети (структура и принципы построения сети Интернет)

  • Итак, Интернет - это множество компьютеров (хостов) и различных компьютерных сетей, объединенных сетью, которые взаимодействуют при помощи протоколов связи TCP/IP. Вся информация в Интернет хранится на Web-серверах. Серверы, объединенные высокоскоростными магистралями или каналами общественных телекоммуникаций (выделенным телефонным аналоговым и цифровым линиям, оптическим каналам связи и радиоканалам, в том числе спутниковым линиям связи), составляют базовую часть сети Интернет. Серверы имеют свои адреса и управляются специализированными программами. Они позволяют пересылать почту и файлы, производить поиск в базах данных и выполнять другие задачи. Доступ отдельных пользователей к информационным ресурсам Internet обычно осуществляется через Internet - провайдеров (Internet Service Provider - ISP) или корпоративную сеть. Провайдеры располагают компьютерной сетью, которая имеет постоянное соединение с Интернет. Компьютеры, входящие в сеть провайдера и служащие для подключения абонентов к Интернету, называются серверами доступа или маршрутизаторами. В качестве маршрутизаторов чаще всего используются компьютеры с сетевой операционной системой UNIX или аппаратные маршрутизаторы. Структура глобальной сети Internet и более подробное описание сети изложено в разделе Структура и основные принципы построения сети Интернет

  • Способы доступа

  • Доступ в Internet, как правило, получают через Internet - провайдеров. В настоящее время существует множество способов соединения с сетью Интернет. Способ подключения компьютера к сети Интернет зависит от используемого пользователем уровня услуг, которые он хочет получить от провайдера (поставщика услуг), от скорости и качества передачи данных. Способы подключения к Интернет можно классифицировать по следующим видам:

  •  коммутируемый доступ;

  •  доступ по выделенным линиям;

  •  доступ по широкополосной сети (DSL - Digital Subscriber Line);

  •  доступ к Интернет по локальной сети;

  •  спутниковый доступ в Интернет;

  •  доступ к Интернет с использованием каналов кабельной телевизионной сети;

  •  беспроводные технологии. Подробнее о способах подключения смотрите в разделе Способы доступа или подключения к Интернет

  • Адресация в сети

  • Каждый компьютер, подключенный к сети TCP/IP (Интернет), имеет свой уникальный IP-адрес или IP – номер. Адреса в Интернете могут быть представлены как последовательностью цифр из четырех чисел в диапазоне 0 - 255 разделенными точками (например, 223.255.255.0), так и именем (например, www.lessons-tva.info.), построенным по определенным правилам. Компьютеры при пересылке информации используют цифровые адреса, а пользователи в работе с Интернетом используют в основном имена. Метод связи имен и IP – номеров называется сервером имени домена (Domain Name Server, DNS). Сервер DNS поддерживает список имен компьютеров, локальных сетей и соответствующих им IP – номеров. Сервер DNS, как правило, устанавливается у сервис-провайдера, и он автоматически обслуживает ПК, которые подключаются к Интернет через сервер доступа данного провайдера. Браузер, прежде чем отправлять запрос узлу по введенному доменному имени, сначала обращается к серверу DNS сервис-провайдера, который сообщает браузеру IP-адрес узла соответствующий доменному имени, введенному в браузере. В Интернете применяется так называемая доменная система имен. Каждый уровень в такой системе называется доменом. Имя домена состоит из нескольких частей, расположенных в определенном порядке и разделенных точками. Домены отделяются друг от друга точками, например: www.lessons-tva.info. IP-адрес состоит из двух частей: номера сети и номера узла (компьютера) в сети. Если отдельный компьютер (хост-компьютер) или сеть являются составной частью сети Интернет, то IP-адрес присваивается специальным подразделением Интернета. Распределением IP адресов занимается организация ICANN (Internet Corporation for Assigned Names and Numbers), а в Европе распределением IP адресов между региональными провайдерами занимается RIPE. Адреса компьютеров, подключенных к локальной сети провайдера, определяют администраторы сети. IP-адреса бывают статические и динамические. Если за компьютером, подключенным к Интернет, закреплен постоянный IP-адрес, то такой адрес называется статическим. Если компьютеру присваивается новое значение IP-адреса при каждом подключении к Интернет, то этот адрес является динамическим. В Интернете используются не доменные имена, а Universal Resource Locator (URL). URL - это адрес любого ресурса (документа, файла) в Internet, он указывает, с помощью какого протокола следует к нему обращаться, какую программу следует запустить на сервере и к какому конкретному файлу следует обратиться на сервере. Общий вид URL: протокол://хост-компьютер/имя файла (например: http://www.lessons-tva.info/book.html). Более подробно об адресации в сети изложено в разделах IP-адресация и Адресация в сети Интернет.

  • Службы (сервисы или услуги) сети

  • Наиболее распространенными функциональными службами в Интернет являются: 1) Электронная почта E-mail - служба электронного общения в режиме оффлайн; 2) Распределенная система гипермедиа Word Wide Web (WWW); 3) Передача файлов - FTP; 4) Поиск данных и программ - Archie; 5) USENET, News - телеконференции, группы новостей (доски объявлений) или дискуссионные группы по различным темам; 6) Поиск данных по ключевым словам WAIS (WAIS реализует концепцию распределенной информационно-поисковой системы); 7) Whois - адресная книга сети Internet. По запросу пользователь может получить информацию о владельцах доменных имен; 8) Доступ к компьютерам в режиме удаленного терминала - Telnet; 9) Gopher - служба доступа к информации с помощью иерархических каталогов (иерархических меню). 10) Службы для электронного общения в режиме онлайн: мессенджеры и VoIP сервис.

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

  • К клиентским программам относятся:

  •  браузеры - программы для просмотра Web-серверов;

  •  ftp-клиенты;

  •  telnet-клиенты;

  •  почтовые клиенты;

  •  WAIS-клиенты.

  • E-mail

  • Электронная почта стала первой услугой Интернета, которая и в настоящее время является наиболее используемым сервисом Интернета. E-mail предназначена для обмена почтовыми сообщениями между абонентами сети Internet. С помощью E-mail можно посылать и получать сообщения, отвечать на полученные письма, рассылать копии письма сразу нескольким получателям, переправлять полученное письмо по другому адресу и так далее. Для работы с электронной почтой используют почтовые клиенты (Outlook Express, Microsoft Outlook, The Bat) и почтовые Web-интерфейсы, расположенные на почтовых веб - серверах (например, http://mail.ru/, http://www.hotmail.ru/ и другие). Суть работы почтовой системы изложена на страничке http://www.lessons-tva.info/edu/e-inf3/m3t2_6.html

  • Word Wide Web (WWW) - "Всемирная паутина"

  • Web (англ. сеть, паутина) является самой популярной службой Интернета. Многие пользователи Интернета считают, что Всемирная паутина (Word Wide Web) - это глобальная сеть Интернет. Надо отметить, что это не так. WWW - это одна из служб Интернета, но она является его основой, это распределенная система гипермедиа (гипертекста), в которой документы, размещены на серверах Интернет и связаны друг с другом ссылками. В 1991 году Европейская лаборатория физики элементарных частиц (CERN) в Швейцарии объявила о создании новой глобальной информационной среды World Wide Web. Создание "Всемирной паутины", в основу которой легла технология гипертекста и прикладной протокол HTTP для передачи Web-страниц, является важнейшее событие в истории Internet. Web-страницы создаются с помощью специального языка HTML. HTML или Hyper Text Markup Language является языком разметки гипертекста, разметка осуществляется с помощью тегов (tags). Эти теги обеспечивают форматирование элементов страницы и позволяют размещать на ней графические объекты, рисунки, гиперссылки и т.д. В настоящее время WWW стала средством доступа фактически ко всем ресурсам Интернет. Для просмотра Web-страниц используются прикладные программы - браузеры. К наиболее популярным обозревателям относятся: Internet Explorer, Mozilla Firefox, MyIE Web Browser, Opera и т.д. Более подробно о браузерах изложено на странице Прикладные программы просмотра Web-страниц

  • FTP

  • FTP - это служба или программа-клиент FTP, которая предназначена для пересылки файлов между компьютерами, работающими в сетях TCP/IP, при помощи прикладного протокола передачи файлов (File Transfer Protocol), который определяет правила передачи файлов с одного компьютера на другой. Другими словами FTP - это имя службы или клиентской программы и аббревиатура протокола передачи файлов. Для пересылки файлов с помощью ftp необходимо иметь доступ к удаленному компьютеру (серверу), с которого требуется перекачать файлы и авторизоваться на нем, т.е. ввести логин и пароль. С помощью клиентской программы ftp можно просматривать содержимое директорий на удаленном компьютере и переходить из директории в директорию, выбирая требуемые файлы. Выбранные файлы можно скачать на свой ПК. Для скачивания файлов можно использовать специализированные клиентские программы FTP или графические ftp-оболочек типа ftptool. Кроме того, клиентская программа FTP входит в состав современных мультипротокольных браузеров, менеджеров файлов типа Total Commander и в другие приложения. Таким образом, с помощью браузеров или менеджеров файлов можно закачивать файлы на удаленный компьютер или скачивать файлы с удаленного компьютера. Необходимо отметить, что в Интернете существуют так называемые анонимные ftp-серверы (файловые архивы), доступ к которым является открытым, т.е. доступ не требует ввода логина и пароля. На таких серверах могут быть размещены файлы различных прикладных программ, например свободное (free) или условно-свободное (shareware) программное обеспечение (ftp://ftp.microsoft.com/). Для поиска файлов на FTP-серверах по именам самих файлов и каталогов можно использовать, например поисковую систему http://www.filesearch.ru/. Кроме того, возможен и доступ к FTP серверам через электронную почту, некоторые FTP серверы могут пересылать файлы по E-mail.

  • Archie

  • Это прикладная служба, которая помогает находить файлы, хранящиеся на анонимных FTP-серверах в Internet. Archie-серверы ведут списки файлов многих FTP серверов, постоянно обновляя их в своих базах данных. Так как поиск требуемого файла в FTP-серверах является сложной задачей, то для поиска нужного файла в FTP-серверах используют средство - Archie. Задача Archie - сканировать FTP-архивы на предмет наличия в них требуемых файлов. Работать с Archie можно через telnet-сессию, через локального клиента или по электронной почте.

  • Usenet

  • USENET news - это система телеконференций (сеть тематических телеконференций, т.е. конференций удаленных пользователей Интернет) или группы новостей. USENET была образована в 1970 году для обмена информацией и обсуждения проекта между разработчиками ОС UNIX. USENET можно представить в виде доски объявлений, имеющей разделы, в которых находятся статьи на различные темы. Каждая телеконференция посвящена определенной теме. Обмен осуществляется при помощи прикладного протокола передачи NNTP (Net News Transfer Protocol). Работать с телеконференциями можно как в режиме on-line, так и off-line. Для чтения новостей в режиме on-line можно использовать специальные программы или навигаторы, а в режиме off-line можно работать через электронную почту (с помощью почтового клиента Outlook Express можно читать новости в группах Usenet). Участники тематических телеконференций могут читать сообщения или статьи и публиковать свои ответы на сообщения других авторов. Для работы с группами новостей необходимо найти требуемый сервер.

  • Wais

  • Wais (Wide-Area Information Servers - серверы информации) один из сервисов Интернет, который слабо используется пользователями Интернет. Служба построена по принципу клиент-сервер, обмен осуществляется по прикладному протоколу WAIS, который базируется на стандарте Z39.50. В Интернете более 250 WAIS-библиотек, основная часть материалов относится к области исследований и информационным технологиям.

  • Whois

  • WHOIS (от англ. who is — «кто?») — сетевой протокол прикладного уровня, базирующийся на протоколе TCP. WHOIS в основном применяется для получения данных о владельцах доменных имен, дате регистрации доменного имени, истечении срока регистрации домена и IP-адресах. Служба построена по принципу клиент-сервер и используется для доступа к публичным серверам баз данных (БД) регистраторов IP-адресов и регистраторов доменных имён. Для запроса обычно используются веб-формы, доступные пользователям на многих сайтах в Интернете, например http://netpromoter.ru/whois/, http://proverim.net/.

  • Gopher

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

  • Telnet

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

  • Поиск информации в сети

  • Поиск информации в Интернете является искусством. Средствами для нахождения информации в Интернете являются справочно-поисковые системы. Все существующие типы справочно-поисковых систем в Интернете могут быть разделены на следующие группы:

  • системы Web-поиска;

  •  системы поиска FTP-файлов;

  •  системы поиска в архивах Gopher;

  •  системы поиска в Usenet;

  •  каталоги;

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

  • VoIp сервис

  • VoIP (Voice-over-IP - передача голоса в сетях IP) или IP-телефония (цифровая телефония) - это технология, которая обеспечивает передачу голоса в сетях с пакетной коммутацией (в IP-сетях). VoIP сервисы - это сервисы, которые предназначены для выполнения интернет-звонков на обычные телефоны. На рынке IP телефонии имеется множество прикладных программ для интернет-звонков в режимах: компьютер - компьютер; компьютер - телефон и телефон - телефон.

  • Мессенджеры

  • Мессенджеры (Instant Messenger - мгновенное сообщение) - это прикладные программы или сервисы для мгновенного обмена сообщениями, голосовой связи и видеосвязи в сети Интернет (наиболее популярные: ICQ, Skype и другие).

  • Основные элементы языка Pascal

  • Алфавит и словарь языка Pascal

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

  • Символы в Pascal

  • В качестве букв в Pascal используются прописные и строчные буквы латинского алфавита:

  • A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

  • a b c d e f g h i j k l m n o p q r s t u v w x y z

  • и знак подчеркивания (_);

  • в качестве десятичных цифр: 0 1 2 3 4 5 6 7 8 9.

  • Шестнадцатеричные цифры включают десятичные цифры и буквы от A до F (или от a до f).

  • При написании программ применяются следующие специальные символы:

  • + Плюс , Запятая

  • - Минус . Точка

  • * Звездочка : Двоеточие

  • / Дробная черта [ ] Квадратные скобки

  • > Больше { } Фигурные скобки

  • < Меньше $ Знак денежной единицы

  • = Равно ( ) Круглые скобки

  • ; Точка с запятой ^ Тильда

  • # Номер @ Коммерческое а

  • ' Апостроф нет обозначения Пробел

  • Комбинации специальных символов могут образовывать составные символы:

  • := Присваивание <= Меньше или равно

  • <> Не равно >= Больше или равно

  • .. Диапазон значений (. .) Альтернатива [ ]

  • (* *) Альтернатива { }

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

  • ПРИМЕЧАНИЕ. Русские буквы в программе должны заключаться в апострофы, например 'Пример текста на русском языке'.

  • Примеры:

  • W - прописная латинская буква; R - прописная латинская буква; w - строчная латинская буква; 9 - цифра; $ - специальный символ; <> - составной символ.

  • Слова в Pascal

  • Неделимые последовательности знаков алфавита образуют слова, отделенные друг от друга разделителями и несущие определенный смысл в программе. Разделителями могут служить пробелы, символы конца строки или комментарии. Набор слов, используемый в Pascal, можно разделить на три группы: зарезервированные слова, стандартные идентификаторы и идентификаторы пользователя.

  • Зарезервированные слова являются составной частью языка, имеют фиксированное начертание и раз и навсегда определенный смысл. Они не могут изменяться программистом. Зарезервированные слова версии языка Pascal для персональных ЭВМ приведены ниже.

  • Зарезервированные слова версии языка Pascal

    absolute

    Абсолютный

    label

    метка

    and

    Логическое И

    library

    библиотека

    array

    Массив

    mod

    остаток от деления

    asm

    Ассемблер

    nil

    Отсутствие

    begin

    Начало блока

    not

    логическое НЕ

    case

    Вариант

    or

    Логическое ИЛИ

    const

    Константа

    of

    Из

    constructor

    Конструктор

    object

    Объект

    div

    Деление нацело

    packed

    Упакованный

    go to

    Переход на

    procedure

    Процедура

    do

    Выполнять

    program

    Программа

    downto

    Уменьшить до

    record

    Запись

    destructor

    Деструктор (разрушитель)

    repeat

    Повторять

    else

    Иначе

    set

    Множество

    end

    Конец блока

    shl

    Сдвиг разрядов влево

    exports

    Экспорт

    shr

    Сдвиг разрядов вправо

    external

    Внешний

    string

    Строка

    file

    Файл

    then

    То

    for

    Для

    to

    Увеличивая

    forward

    Опережающий

    type

    Тип

    function

    Функция

    unit

    Модуль

    if

    Если

    until

    До

    implementation

    Реализация

    uses

    Использовать

    in

    В (входит в ...)

    var

    Переменная

    inline

    Основной

    while

    Пока

    interrupt

    Прерывание

    with

    С

    interface

    Интерфейс

    xor

    Исключающее ИЛИ

    inherited

    Наследование

  • ВНИМАНИЕ. Зарезервированные слова нельзя использовать в качестве имен, вводимых программистом для обозначения величин, и т. д.

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

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

  • Формальные методы описания синтаксических конструкций языка программирования

  • Для описания синтаксических конструкций языка программирования в настоящее время наиболее распространены два формальных метода. Первый использует форму записи, предложенную Джоном Бэкусом и Питером Науром, когда они описывали синтаксис языка Алгол-60. С тех пор эта форма называется Backus Naur Form, или сокращенно BNF.

  • Другой формальный метод, наглядно представляющий синтаксические конструкции языка в графическом виде, использует синтаксические диаграммы. Популяризировал синтаксические диаграммы создатель языка Pascal Н. Вирт, и поэтому их часто называют синтаксическими диаграммами Вирта.

  • На синтаксических диаграммах используются два вида четырехугольников - с прямыми и скругленными углами (иногда их заменяют кружками или овалами). В прямоугольники заключаются элементы языка, значение которых должно быть определено (так называемые нетерминальные символы). В четырехугольниках со скругленными углами (или кружках, овалах) размещаются так называемые терминальные (базовые) символы, или иероглифы языка, значение которых в определении не нуждается. Направление движения по диаграмме при раскрытии структуры понятия, записанного при входе в диаграмму, указывают стрелки.

  • Например:

  • <Ch02_01>

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

  • Варианты представления синтаксических конструкций языка программирования методом BNF или методом синтаксических диаграмм являются тождественными.

  • Идентификаторы

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

  • Стандартные идентификаторы

  • Для обозначения заранее определенных разработчиками языка типов данных, констант, процедур и функций служат стандартные идентификаторы, например: integer, Sin, Cos, Ln, Sqr, Sqrt, Read, Readln, Write, Writeln. В этом примере стандартный идентификатор Sin вызывает функцию, вычисляющую синус заданного угла, Read, Readln вызывают процедуру, организующую ввод данных, Write, Writeln вызывают процедуру, организующую вывод данных. Любой из стандартных идентификаторов, в отличие от зарезервированных слов, можно переопределить, но это чаще всего приводит к ошибкам. Поэтому на практике стандартные идентификаторы лучше использовать без каких-либо изменений.

  • Пользовательские идентификаторы

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

  • Компилятор Turbo Pascal строго следит за этим, и если это требование не соблюдается, то компиляция прерывается, а на экран выводится сообщение об ошибке "Error 4: Duplicate identifier" и указывается дублирующийся идентификатор.

  • Синтаксическая диаграмма понятия "идентификатор" выглядит следующим образом:

  • <Ch02_02>

  • ВНИМАНИЕ. В идентификатор не могут входить пробелы и специальные символы. Обратите внимание, что буквы русского алфавита не могут входить в идентификатор Turbo Pascal.

  • При написании программ следует соблюдать общие правила написания идентификаторов.

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

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

  • 3. Между двумя идентификаторами должен быть по крайней мере один пробел.

  • 4. Максимальная длина идентификатора составляет 127 символов, но значимыми являются только первые 63 символа.

  • 5. При записи идентификаторов можно использовать как прописные, так и строчные буквы. Компилятор не делает различий между ними, хотя они и имеют различные ASCII-коды. На практике рекомендуется применять эту особенность для более простого чтения и понимания значений идентификаторов. Так, вместо идентификатора nomerotdela eo?oa iaienaou NomerOtdela, auaaeea i?iieniuie aoeaaie ea?ao? ec aaoo смысловых частей.

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

  • Примеры:

  • Metka12

  • 2graph - ошибка, идентификатор начинается с цифры

  • Block_56

  • Nomer.Doma - ошибка, идентификатор содержит точку

  • Сумма - ошибка, идентификатор содержит буквы русского алфавита.

  • Константы и переменные

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

  • Константами называются элементы данных, значения которых установлены в описательной части программы и в процессе выполнения программы не изменяются. Константы задаются пользовательскими идентификаторами. Например, если вы используете в программе ваше имя, то его лучше всего задать константой, так как имя не меняет своего значения.

  • Синтаксическая диаграмма определения константы выглядит следующим образом:

  • <Ch02_01>

  • Все константы должны быть описаны в специальном разделе, который начинается зарезервированным словом const (constant - константа).

  • Формат:

  • const

  • <идентификатор> = <значение константы>;

  • Например:

  • const

  • MyName = 'Петя Иванов';

  • MyBirthDay = '27 августа 1950 г';

  • Max = 1000;

  • Min = 0;

  • Center = ( Max - Min) / 2;

  • Num_School = 86;

  • В Pascal имеется ряд констант, к значениям которых можно обращаться без предварительного определения. Их называют зарезервированными константами. Наиболее употребительные из них приведены в табл. 2.1.

  • Таблица. 2.1. Зарезервированные константы

    Идентификатор

    Тип

    Значение

    Описание

    True

    boolean

    True

    "Истина"

    False

    boolean

    False

    "Ложь"

    Maxint

    integer

    32767

    Максимальное целое

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

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

  • Само название "переменная" подразумевает, что содержимое объявленной области памяти будет изменяться в ходе выполнения программы. Переменные описываются в специальном разделе, который начинается зарезервированным словом var (variable - переменная). Формат:

  • var

  • <идентификатор> : <тип>;

  • Пример.

  • var

  • A, B : integer;

  • Summa : real;

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

  • Синтаксическая диаграмма определения переменных выглядит следующим образом:

  • <Ch02_03>

  • Кроме констант и переменных существуют так называемые типизированные константы, которые являются своеобразным промежуточным звеном между переменными и константами. Слово "константа" означает, что данные этого типа описываются в разделе const, а слово "типизированная" указывает, что для них должен указываться и тип, как у переменных. Формат:

  • const

  • <идентификатор>:<тип>=<значение>;

  • Пример:

  • const

  • VideoSeg : word = $B800;

  • Ocenka : byte=4;

  • Predmet : string='Информатика';

  • Синтаксическая диаграмма определения типизированных констант записывается следующим образом:

  • <Ch02_04>

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

  • <Ch02_05>

  • СОВЕТ. Имена констант и переменных должны соответствовать их назначению, в этом случае программа будет проще для понимания.

  • Структура Pascal-программы

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

  • Программа на языке Pascal состоит из строк. Набор текста программы осуществляется с помощью встроенного редактора текстов системы программирования Turbo Pascal или любого другого редактора. В первом случае программа может после выхода из редактора (при нажатии клавиши F10) в главное меню компилироваться и выполняться; во втором случае программу следует записать в файл и затем вызвать для компиляции и выполнения в интегрированной среде программирования Turbo Pascal.

  • Набирая текст программы, программист может произвольно располагать строки на экране. Строка может начинаться с любой колонки, т. е. величина отступа от левой границы экрана для каждой строки устанавливается самим программистом с целью получить наиболее удобный для чтения текст программы. Количество операторов в строке произвольно, но если в строке записывается один оператор, то такая программа легче читается.

  • Существуют различные схемы написания программ на языке Pascal, все они отличаются количеством отступов слева в каждой строке и различным использованием прописных букв. В данном пособии применяется следующая схема:

  •  зарезервированные слова program, procedure, function пишутся строчными буквами;

  •  имена констант, переменных, процедур, функций начинаются с прописных букв;

  •  операторы записываются только строчными буквами;

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

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

  • Следует учитывать, что максимальный размер программы на Pascal ограничен. Компилятор позволяет обрабатывать программы и библиотечные модули, в которых объем данных и генерируемый машинный код не превышают 64 Кбайт каждый. Если программа требует большего количества памяти, следует использовать библиотечные модули (.TPU-файлы) или оверлейные структуры.

  • ПРИМЕЧАНИЕ. Оверлеи - части исполняемой программы, которые используют одну и ту же область оперативной памяти. В каждый момент времени в памяти может находиться только один оверлей, в зависимости от выполняемой функции. В процессе выполнения программы эти части могут замещать друг друга в памяти.

  • Синтаксически программа состоит из необязательного заголовка и блока.

  • <Ch02_06>

  • Блок может содержать в себе другие блоки. Блок состоит из двух частей: описательной и исполнительной. Первая часть может отсутствовать, без второй блок не имеет смысла. Блок, который не входит ни в какой другой блок, называется глобальным. Если глобальный блок содержит другие блоки, то они называются локальными. Глобальный блок - это основная программа, он должен присутствовать в любом случае. Локальные блоки - это процедуры и функции, их присутствие необязательно. Объекты программы (типы, переменные, константы и т. д.) тоже называются глобальными и локальными. Областью действия объектов является блок, в котором они описаны, и все вложенные в него блоки.

  • Блочная структура обеспечивает структуризацию программ на уровне исходных текстов. В идеальном случае программа на языке Pascal состоит из процедур и функций, которые вызываются для выполнения из раздела операторов основной программы.

  • Синтаксическая диаграмма блока выглядит следующим образом:

  • <Ch02_07>

  • Исходя из этого можно записать структуру программы следующим образом:

  • program <имя> (Input,Output);

  • uses <имя1, имя2,...>;

  • label ...;

  • const ...;

  • type ...;

  • var ...;

  • procedure <имя>;

  • <тело процедуры>

  • function <имя>;

  • <тело функции>

  • begin

  • <операторы>

  • end.

  • Рассмотрим структуру программы на примере программы решения задачи вычисления произведения двух целых чисел, созданной при выполнении упражнения во второй главе.

  • program Tutor3; {Заголовок программы}

  • var {Описание раздела переменных}

  • A,B, Proizved : integer; {Переменные A,B,Proizved - целые}

  • begin {Начало программы}

  • Write('Введите значение целого числа A >'); {Вывод запроса на экран}

  • Readln(A); {Ввод значения A с клавиатуры}

  • Write('Введите значение целого числа B >');

  • Readln(B);

  • Proizved := A * B; {Вычисление переменной Proizved}

  • Write('Произведение чисел ',A,' и ',B,' = ',Proizved); {Вывод ответа}

  • end. {Конец программы}

  • В начале программы находится заголовок, состоящий в общем случае из зарезервированного слова program, имени программы Tutor3 и параметров, с помощью которых программа взаимодействует с операционной системой. Заголовок программы не является обязательным и может отсутствовать, однако рекомендуется всегда его записывать для быстрого распознавания нужной программы среди листингов других программ. Параметрами программы обычно являются идентификаторы стандартных файлов ввода-вывода Input и Output (в программах на Turbo Pascal их можно не указывать).

  • После заголовка следует программный блок, состоящий в общем случае из семи разделов:

  •  списка имен подключаемых библиотечных модулей (он определяется зарезервированным словом uses);

  •  описания меток;

  •  описания констант;

  •  определения типов данных;

  •  описания переменных;

  •  описания процедур и функций;

  •  операторов.

  • Любой раздел, кроме раздела операторов, может отсутствовать. Разделы описаний (кроме uses, который всегда располагается после заголовка программы) могут встречаться в программе любое количество раз и следовать в произвольном порядке. Главное, чтобы все описания объектов программы были сделаны до того, как эти объекты будут использованы.

  • Раздел uses

  • Этот раздел состоит из зарезервированного слова uses и списка имен подключаемых стандартных и пользовательских библиотечных модулей.

  • Формат:

  • uses <имя1>,<имя2>,...;

  • Пример:

  • uses Crt, Dos, MyLib;

  • Подробно о структуре и организации библиотечных модулей будет рассказано ниже.

  • Раздел описания меток

  • Перед любым оператором языка Pascal можно поставить метку, что позволяет выполнить прямой переход на этот оператор с помощью оператора перехода go to из любого места программы.

  • ВНИМАНИЕ. Нельзя выполнять переход на оператор, находящийся в теле цикла, а также внутрь составного оператора.

  • Метка состоит из имени и следующего за ним двоеточия. Именем может служить идентификатор или цифра. Максимальная длина имени метки ограничена 127 символами. Перед использованием метка должна быть описана. Раздел описания меток начинается зарезервированным словом label (метка), за которым следуют имена меток, разделенные запятыми. За последним именем ставится точка с запятой.

  • Формат:

  • label <имя,...>;

  • Пример:

  • label

  • Metka1, Metka2, 111, Blok10;

  • После записи метки в разделе операторов следует двоеточие, показывающее компилятору, что идентификатор используется в качестве метки:

  • label

  • M1, M2; {Описание меток}

  • begin

  • ...

  • M1: <оператор> {Использование M1 в разделе операторов}

  • ...

  • M2: <оператор> {Использование M2 в разделе операторов}

  • end.

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

  • Раздел описания констант

  • В разделе описания констант производится присваивание идентификаторам констант постоянных значений. Раздел начинается зарезервированным словом const, за которым следует ряд выражений, присваивающих идентификаторам постоянные числовые или строковые значения. Выражения присваивания отделяются друг от друга точкой с запятой. Формат:

  • const <идентификатор> = <значение>;

  • Пример:

  • const

  • MaxInd: word = 100; {Типизированная константа}

  • Name = 'Петя'; {Строковая константа}

  • Code = $124; {Константа - шестнадцатеричное значение}

  • ПРИМЕЧАНИЕ. Удачное с точки зрения мнемоники именование констант делает программу лучше читаемой и позволяет быстро вносить в нее изменения при изменении алгоритма.

  • В Turbo Pascal имеется большое число стандартных констант, к которым можно обращаться без предварительного описания.

  • Раздел описания типов данных

  • Тип данных может быть либо описан непосредственно в разделе описания переменных, либо определяться идентификатором типа. Стандартные типы не требуют описания, в отличие от типов, определенных пользователем. Строго говоря, синтаксис языка Pascal не требует обязательного определения идентификатора типа и в последнем случае, так как тип можно задать перечислением в разделе описания переменных. Выбор описания типа зависит, таким образом, только от программиста и специфики программы.

  • Раздел описания типов данных начинается зарезервированным словом type, за которым следуют одно или несколько определений типов, разделенных точкой с запятой. Формат:

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

  • Пример:

  • type

  • LatLetter = ('A'..'z');

  • Days = 1..31;

  • Matr = array[1..10] of integer;

  • Каждое описание задает множество значений и связывает с этим множеством некоторое имя типа. Например, в данном описании тип LatLetter определяет множество букв латинского алфавита, Days - множество целых чисел от 1 до 31, Matr - массив из 10 целых чисел.

  • Типы данных, разрешенные в языке Pascal, и их описание рассмотрены в главе 3.

  • Раздел описания переменных

  • Каждая встречающаяся в программе переменная должна быть описана. Описание обязательно должно предшествовать использованию переменной. Раздел описания переменных начинается зарезервированным словом var (variable - переменная), затем через запятую перечисляются имена переменных и после двоеточия следуют их тип и точка с запятой. Формат:

  • var

  • <идентификатор,...> : <тип>;

  • В рассматриваемом примере программы три переменные A, B и Proizved, которые могут принимать целочисленные значения, описаны следующим образом:

  • var

  • A,B, Proizved : integer;

  • Раздел описания процедур и функций

  • В этом разделе размещаются тела подпрограмм. Подпрограммой называется программная единица, имеющая имя, по которому она может быть вызвана из других частей программы. В языке Pascal роль подпрограмм выполняют процедуры и функции. В общем случае подпрограмма имеет ту же структуру, что и программа. Для описания подпрограмм используются зарезервированные слова procedure и function, которые записываются в начале подпрограммы.

  • Формат процедуры:

  • procedure <имя процедуры> {<параметры>};

  • <разделы описаний>

  • <раздел операторов>

  • end;

  • Формат функции:

  • function <имя функции> {<параметры>} : <тип результата>;

  • <разделы описаний>

  • <раздел операторов>

  • end;

  • Процедуры и функции подразделяются на стандартные и определенные пользователем. Стандартные процедуры и функции являются частью языка и могут вызываться без предварительного описания. Описание пользовательских процедур и функций обязательно. Более подробно процедуры и функции рассмотрены в главе 5 "Процедуры и функции".

  • Раздел операторов

  • В программе на языке Pascal раздел операторов является основным, так как именно в нем с предварительно описанными переменными, константами, значениями функций выполняются действия, позволяющие получить результат, ради которого создавалась программа.

  • Раздел операторов начинается зарезервированным словом begin (начало), далее следуют операторы языка, отделенные друг от друга точкой с запятой. Завершает раздел зарезервированное слово end. (конец) с точкой.

  • Например:

  • begin {Начало программы}

  • Write('Введите значение целого числа A >');

  • {Вывод запроса на экран}

  • Readln(A); {Ввод значения A с клавиатуры}

  • Write('Введите значение целого числа B >');

  • Readln(B);

  • Proizved := A * B; {Вычисление переменной Proizved}

  • Write('Произведение чисел ',A,' и ',B,' = ',Proizved);

  • {Вывод ответа}

  • end. {Конец программы}

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

  • Слова begin и end являются аналогами открывающей и закрывающей скобок в обычных арифметических выражениях. Подробно операторы и правила их написания рассматриваются в главе 4 "Операторы".

  • Комментарии

  • Для лучшего понимания программы в нее включается пояснительный текст - комментарий. Комментарий можно записать в любом месте программы, где разрешено располагать пробелы. Текст комментария ограничивается символами { } или (* *) и может содержать любые комбинации латинских и русских букв, цифр и других символов алфавита языка Pascal. Ограничений на длину комментария нет, он может занимать несколько строк.

  • Примеры:

  • {Начало программы} или (*Начало программы*) {Вывод запроса на экран} {Ввод значения A с клавиатуры} {Вычисление произведения двух целых чисел Proizved} {Пример комментария, занимающего несколько строк}

  • В ограничителях (* *) пробелы между скобкой и звездочкой недопустимы. В тексте комментария не должно быть знаков ограничителей, с которых начинается комментарий. Например, текст комментария {Пример {1} задания {4}} вызовет ошибку при компиляции. Однако ограничители { } могут быть вложенными в (* *), и наоборот: (*Пример{1}задания {4} *) или { Пример (* 1 *) задания (* 4 *) }.

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

  • Ограничители { } и (* *) удобно использовать при отладке программ. В процессе отладки часто требуется временно исключить выполнение какой-либо части программы. Конечно, этого можно добиться, уничтожив временно ненужные операторы или обойдя их с помощью оператора go to. Однако оба этих способа неприемлемы по ряду причин: повторный ввод вновь понадобившихся операторов, путаница с операторами go to и т. д. Гораздо удобнее временно ограничить ненужную часть программы символами комментария {} или (* *), тогда она будет восприниматься компилятором как комментарий и не будет исполняться.

  • Например:

  • begin {Начало программы}

  • Write('Введите значение целого числа A >');

  • {Вывод запроса на экран}

  • Readln(A); {Ввод значения A с клавиатуры}

  • Write('Введите значение целого числа B >');

  • Readln(B);

  • Proizved := A * B; {Вычисление переменной Proizved}

  • {Временно невыполняемая часть программы

  • Write('Произведение чисел ',A,' и ',B,' = ',Proizved);

  • Вывод ответа}

  • end. {Конец программы}

  • При необходимости { } или (* *) можно убрать, и программа будет выполняться в полном объеме.

  • Директивы компилятора и управляющие символы

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

  • ПРИМЕЧАНИЕ. Директива компилятора - компонент программы, управляющий последующей компиляцией программы.

  • Директивы, как и комментарии, заключаются в фигурные скобки, но они имеют отличительный признак - знак "$", позволяющий компилятору интерпретировать их соответствующим образом.

  • Пример:

  • {$ R-} {$ V+, K-, R-}

  • В рассматриваемой версии языка Pascal директивы компилятора имеют большое значение как на стадии отладки, так и при выполнении программы. По умолчанию директивы находятся в состоянии, гарантирующем минимальный объем объектного модуля и минимальные затраты времени на компиляцию.

  • В программе могут также встречаться управляющие символы "#" и "^" . Знак "#" и следующее за ним целочисленное значение в диапазоне 0..255 обозначают символ таблицы ASCII, имеющий соответствующее десятичное значение.

  • Пример:

  • #23 - символ, имеющий десятичный код 23 #$08 - символ, имеющий шестнадцатеричный код $08

  • Знак "^" и следующий за ним какой-либо другой символ трактуются компилятором как управляющий символ, т. е. "^" указывает, что далее следует один управляющий символ. Управляющие символы могут группироваться в строке без разделителей между ними. Допустимо использование управляющих символов вместе со строковыми данными.

  • Пример:

  • ^I#25^Y^D - группа управляющих символов Writeln('Обнаружена ошибка в тексте!',^G,^G); Write(#234, #235, #236);

  • Библиотечные модули пользователя

  • Понятие библиотечного модуля является одним из основных в идеологии программных систем на языке Turbo Pascal. Именно они служат средством создания библиотек подпрограмм (процедур и функций). Библиотечный модуль - это результат компиляции в режиме Compile с установленной директивой Destination = Disk одной или нескольких процедур и функций. Модуль имеет имя, при упоминании которого в разделе uses любой программы можно получить доступ к каждой из находящихся в нем процедур или функций.

  • Создание библиотечного модуля требует определенной организации с применением зарезервированных слов unit, interface, implementation, begin, end. Система сама определяет структуру компилируемого файла и создает соответственно .TPU-файл (при обнаружении unit и т. д.) или .EXE-файл (при отсутствии unit, implementation и т. д.). В первом случае формируется библиотечный модуль, во втором - готовый к выполнению загрузочный модуль. Подробно структуру библиотечного модуля мы рассмотрим позднее.

  • Советы по стилю программирования

  • Для создания наглядных и легко читаемых программ на Pascal воспользуйтесь следующими советами.

  • 1. Стандартизация стиля программирования заключается в том, что необходимо всегда придерживаться одного способа записи текста программы.

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

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

  • 4. Имена для объектов программы надо выбирать так, чтобы они наилучшим образом соответствовали этим объектам, отражали их назначение.

  • 5. Списки идентификаторов в блоках описания следует упорядочивать - это облегчает поиск в них нужных элементов.

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

  • ПРИМЕЧАНИЕ. Иллюстрацией соблюдения данных правил могут послужить примеры программ в каталоге EXAMPLE, поставляемые фирмой Borland.

  • Упражнение 1. Загрузите интегрированную среду программирования, считайте с диска программу Tutor3. Измените ее таким образом, чтобы она выполняла целочисленное деление A на В и вычисляла остаток от деления A на B. Для этого в разделе описания переменных нужно ввести переменные Rezult и Ostatok целого типа:

  • var

  • A, B, Rezult, Ostatok : Integer; {Переменные A, B, Rezult, Ostatok - целые}

  • Операцию вычисления значений величин Rezult и Ostatok можно записать следующими операторами:

  • Rezult := A div B; Ostatok := A mod B;

  • Вывод результатов работы программы на экран можно запрограммировать следующим образом:

  • Write('Результат целочисленного деления чисел ',A,' и ',B,' =', Rezult); Write('Остаток от деления чисел ',A,' и ',B,' = ',Ostatok);

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

Стандартные функции Pascal-Паскаль

Стандартные математические функции Турбо Паскаля

Обращение

Тип аргумента

Тип результата

Примечание

Abs(x)

Real, integer

Тип аргумента

Модуль аргумента

ArcTan(x)

Real, integer

Real

Арктангенс (значение в радианах)

Cos(x)

Real, integer

Real

Косинус, угол в радианах

Exp(x)

Real, integer

Real

Экспонента

Frac(x)

Real

Real

Дробная часть числа

Int(x)

Real, integer

Real

Целая часть числа

Ln(x)

Real, integer

Real

Логарифм натуральный

Pi

Нет

Real

3,141592653

Sin(x)

Real, integer

Real

Синус, угол в радианах

Sqr(x)

Real, integer

Тип аргумента

Квадрат аргумента

Sqrt(x)

Real, integer

Real

Корень квадратный

Random

Нет

Real

Псевдослучайное число в интервале [0, 1]

Random(I)

Integer

Integer

Псевдослучайное число в интервале [0, I]

Round(x)

Real

Integer

Округление до ближайшего целого

Trunc(x)

Real

Integer

Отбрасывание дробной части числа

Порядок вычислений в выражениях следующий:

  1. вычисляются подвыражения, заключенные в скобки;

  2. затем выполняются операции с наибольшим приоритетом; обычно используются следующие уровни приоритетов (в порядке убывания):

    • возведение в степень;

    • мультипликативные операции: * , / , div , mod;

    • унарные операции: + , - , abs , not;

    • аддитивные операции: +, -;

    • операции отношения: = , <>, <, >, <=, >=;

    • логические операции: and, or, not;

  3. операции с одинаковым приоритетом выполняются слева направо.

Хотя нет ограничений на сложность выражений, однако выражения, содержащие более 7 операндов, трудны для чтения и понимания и поэтому такие выражения не рекомендуется использовать.

Замечание (это важно!)

  • в Паскале нет стандартной операции или стандартной функции возведения в степень, поэтому используется следующее математическое тождество: xy= eylnx

  • в Паскале существует только стандартная функция вычисления натурального логарифма, поэтому используется следующее математическое тождество: logab= ln b/ln a

Математическое выражение: x3/2 - 7x + tg (x+2)

Выражение на Паскале: exp(3*ln(x)/2)-7*x+sin(x+2)/cos(x+2)

Операторы действия

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

<имя_переменной>:=<выражение>

Пример оператора присваивания

a:=15+5;{переменной a присваиваем математическое выражение. Стоит заметить, что переменная a должна быть числового типа}

Оператор присваивания, несмотря на кажущуюся простоту, имеет очень важное алгоритмическое значение.

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

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

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

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

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

  5. К началу выполнения программы содержимое всех запоминающих ящиков считается неопределенным; в частности, их нельзя считать и пустыми, поскольку эти ящики могли использоваться при выполнении предыдущих программ, после чего в ящиках могло что-то остаться.

Еще один оператор действия, хотя его можно лишь условно назвать таковым: он не выполняет никакого действия, это - пустой оператор (в Паскале он обознается знаком ";"). В Паскале оператором действия является также оператор процедуры. Последний из простейших операторов действия - оператор останова, который прерывает работу программы (в Паскале это оператор halt).

Ввод и вывод данных

Ввод данных с клавиатуры производится с помощью стандартной процедуры read(<список ввода>) или ее разновидности readln(<список ввода>). Элементы списка ввода - идентификаторы (имена) переменных, перечисляемые через запятую. При выполнении этого оператора пользователь набирает на клавиатуре соответствующую последовательность значений, разделяя их пробелами (это важно!).

Пример ввода данных с клавиатуры

read(a,b,c);{где a,b,c - переменные. Ввод данных осуществляется через пробел}

readln(a,b,c);{где a,b,c - переменные. Ввод данных осуществляется через enter(возврат корретки)}

Вывод данных на экран производится с помощью стандартной процедуры write(<список вывода>) или ее разновидности writeln(<список вывода>).

Список вывода может содержать константы, переменные, выражения, формат вывода. Выражения в списке вывода разделяются запятыми.

Пример вывода данных на экран

write(a,b,c);{где a,b,c - переменные. После вывода данных на экран, курсор останется на последнем символе}

writeln(a,b,c);{где a,b,c - переменные. После вывода данных на экран, курсор перейдет на новую строку)}

Окончание ln в имени процедуры означает, что курсор автоматически будет переведен в начало следующей строки экрана.

Для обработки ЭВМ данные представляются в виде величин и их совокупностей. С понятием величины связаны такая важная характеристика, как ее тип.

Тип определяет:

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

  • внутреннюю форму представления данных в ЭВМ;

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

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

Иерархия типов в языке Паскаль такая:

  • Простые

    • Порядковые

      • Целые

      • Логические

      • Символьные

      • Перечисляемые

      • Интервальные

    • Вещественные

  • Структуированные

    • Массивы

    • Строки

    • Множества

    • Записи

    • Файлы

  • Указатели