Основы информатики

Определение предмета, объекта и характеристика составных частей информатики как научной дисциплины о системах счисления. Изучение форм предоставления информации и архитектуры современной вычислительной техники. Средства программного обеспечения ЭВМ.

Рубрика Программирование, компьютеры и кибернетика
Вид курс лекций
Язык русский
Дата добавления 03.04.2012
Размер файла 760,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

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

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

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

8.3 Интернет и основные понятия, связанные с глобальной сетью

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

Web-страница - это электронный документ, основу которого составляет файл, записанный в специальном HTML-формате.

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

Браузер - прикладная программа для просмотра Web-страниц. Клиентская программа для работы со службой WWW.

Провайдер - организация, обеспечивающая доступ в Интернет.

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

Электронная почта

Электронная почта - это средство организации связи между удаленными абонентами

E-Mail

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

Адрес электронной почты. Записывается следующим образом: argun_ruslan@mail.ru. Надо читать так: почтовый ящик argun_ruslan на почтовом сервере mail в домене ru. Значок @ (коммерческое эт, собачка) обозначает предлог «в» домене или «на» сервере.

Web-Mail

Здесь нет необходимости в почтовых клиентах. В качестве серверов почты Web-Mail выступают обычные Web-серверы. Преимущества Web-Mail: простота использования, относительная анонимность, мобильность и т.д.

Защита информации в Интернете.

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

8.4 Принципы защиты информации

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

- Перехват информации - целостность информации сохраняется, но ее конфиденциальность нарушена;

- Модификация информации - исходное сообщение изменяется либо полностью подменяется другим и отсылается адресату;

- Подмена авторства информации. Данная проблема может иметь серьезные последствия. Например, кто-то может послать письмо от вашего имени (этот вид обмана принято называть спуфингом) или Web-сервер может притворяться электронным магазином, принимать заказы, номера кредитных карт, но не высылать никаких товаров.

В соответствии с перечисленными проблемами при обсуждении вопросов безопасности под самим термином «безопасность» подразумевается совокупность трех различных характеристик обеспечивающей безопасность системы:

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

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

3. Секретность - предотвращение несанкционированного доступа к информации. В случае передачи данных под этим термином обычно понимают предотвращение перехвата информации.

Криптография

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

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

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

Количество возможных ключей для данного алгоритма зависит от числа бит в ключе. Например, 8-битный ключ допускает 256 (28) комбинаций ключей. Чем больше возможных комбинаций ключей, тем труднее подобрать ключ, тем надежнее зашифровано послание. Так, например, если использовать 128-битный ключ, то необходимо будет перебрать 2128 ключей, что в настоящее время не под силу даже самым мощным компьютерам. Важно отметить, что возрастающая производительность техники приводит к уменьшению времени, требующегося для вскрытия ключей, и системам обеспечения безопасности приходится использовать все более длинные ключи, что, в свою очередь, ведет к увеличению затрат на шифрование.

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

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

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

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

Электронная подпись

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

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

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

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

Аутентификация

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

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

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

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

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

Защита сетей

В последнее время корпоративные сети все чаще включаются в Интернет или даже используют его в качестве своей основы. Учитывая то, какой урон может принести незаконное вторжение в корпоративную сеть, необходимо выработать методы защиты. Для защиты корпоративных информационных сетей используется брандмауэры. Брандмауэр - это система или комбинация систем, позволяющие разделить сеть на две или более частей и реализовать набор правил, определяющих условия прохождения пакетов из одной части в другую. Как правило, эта граница проводится между локальной сетью предприятия и Интернетом, хотя ее можно провести и внутри. Однако защищать отдельные компьютеры невыгодно, поэтому обычно защищают всю сеть.

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

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

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

Брандмаузер обычно состоит из нескольких различных компонентов, включая фильтры или экраны, которые блокируют передачу части трафика.

Все брандмаузеры можно разделить на два типа:

1. Пакетные фильтры, которые осуществляют фильтрацию IP - пакетов средствами фильтрующих маршрутизаторов;

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

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

- Весь трафик из внутренней сети во внешнюю и из внешней сети во внутреннюю должен пройти через эту систему;

- Только трафик, определенный локальной стратегией защиты, может пройти через эту систему;

Система надежно защищена от проникновения.

Тема №9. Основы защиты информации. Безопасность и защита информации. Защита информации в локальных сетях

9.1 Компьютерные вирусы

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

Вирус - программа, обладающая способностью к самовоспроизведению. Такая способность является единственным средством, присущим всем типам вирусов. Но не только вирусы способны к самовоспроизведению. Любая операционная система и еще множество программ способны создавать собственные копии. Копии же вируса не только не обязаны полностью совпадать с оригиналом, но и могут вообще с ним не совпадать!

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

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

9.2 Классификация вирусов

В настоящее время известно более 5000 программных вирусов, их можно классифицировать по следующим признакам:

- среде обитания

- способу заражения среды обитания

- воздействию

- особенностям алгоритма

В зависимости от среды обитания вирусы можно разделить на сетевые, файловые, загрузочные и файлово-загрузочные. Сетевые вирусы распространяются по различным компьютерным сетям. Файловые вирусы внедряются главным образом в исполняемые модули, т. е. В файлы, имеющие расширения COM и EXE. Файловые вирусы могут внедряться и в другие типы файлов, но, как правило, записанные в таких файлах, они никогда не получают управление и, следовательно, теряют способность к размножению. Загрузочные вирусы внедряются в загрузочный сектор диска (Boot-сектор) или в сектор, содержащий программу загрузки системного диска (Master Boot Record). Файлово-загрузочные вирусы заражают как файлы, так и загрузочные сектора дисков (запускают себя путем включения в файл конфигурации дополнительной строки).

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

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

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

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

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

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

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

- загрузочные

- файловые

- файлово-загрузочные

Теперь по подробнее об каждой из этих групп.

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

- выделяет некоторую область диска и помечает ее как недоступную операционной системе, это можно сделать по-разному, в простейшем и традиционном случае занятые вирусом секторы помечаются как сбойные (bad)

- копирует в выделенную область диска свой хвост и оригинальный (здоровый) загрузочный сектор

- замещает программу начальной загрузки в загрузочном секторе (настоящем) своей головой

- организует цепочку передачи управления согласно схеме.

Таким образом, голова вируса теперь первой получает управление, вирус устанавливается в память и передает управление оригинальному загрузочному сектору. В цепочке ПНЗ (ПЗУ) - ПНЗ (диск) - СИСТЕМА

появляется новое звено: ПНЗ (ПЗУ) - ВИРУС - ПНЗ (диск) - СИСТЕМА

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

9.3 Основные меры по защите от вирусов

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

- оснастите свой компьютер современными антивирусными программами, например Aidstest, Doctor Web, и постоянно возобновляйте их версии

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

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

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

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

- обязательно делайте архивные копии на дискетах ценной для вас информации

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

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

- для обеспечения большей безопасности применения Aidstest и Doctor Web необходимо сочетать с повседневным использованием ревизора диска Adinf.

Вирус (вирусная программа) - это специально написанная небольшая по размерам программа, обладающая следующими свойствами:

- Возможность создавать свои копии и внедрять их в другие программные объекты.

- Обеспечение скрытости до определенного момента ее существования и распространения.

- Несанкционированность (со стороны пользователя) производимых ею действий.

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

Основные причины существования и развития «индустрии» вирусов:

- Причины технического характера (слабая защита ранних версий ОС, предназначенных для ПК с ограниченными возможностями)

- Причины экономического характера (например, борьба с конкурентами)

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

Антивирусное обеспечение должно обладать следующими свойствами:

- Проверка на наличие вируса любого объекта, к которому осуществляется доступ

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

- Возможность настройки антивируса в соответствии с потребностями пользователя.

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

Тема №10. Системы искусственного интеллекта

10.1 Искусственный интеллект

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

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

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

10.2 Экспертные системы

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

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

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

Обобщенная структура ЭС представлена на рис.

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

Определим основные термины.

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

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

Интерфейс пользователя - комплекс программ, реализующих диалог пользователя с ЭС как на стадии ввода информации, так и получения результатов.

База знаний (БЗ) - ядро ЭС, совокупность знаний предметной области, записанная на машинный носитель в форме, понятной эксперту и пользователю (обычно на некотором языке, приближенном к естественному). Параллельно такому «человеческому» представлению существует БЗ во внутреннем «машинном» представлении.

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

Подсистема объяснений - программа, позволяющая пользователю получить ответы на вопросы: «Как была получена та или иная рекомендация?» и «Почему система приняла такое решение?» Ответ на вопрос «как» - это трассировка всего процесса получения решения с указанием использованных фрагментов БЗ, т.е. всех шагов цепи умозаключений. Ответ на вопрос «почему» - ссылка на умозаключение, непосредственно предшествовавшее полученному решению, т.е. отход на один шаг назад.

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

В коллектив разработчиков ЭС входят как минимум 4 человека:

- Эксперт;

- Инженер по знаниям;

- Программист;

- Пользователь.

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

10.3 Классификация экспертных систем

Класс «ЭС» сегодня объединяет несколько тысяч различных программных комплексов, которые можно классифицировать по различным критериям.

Рис. Классификация экспертных систем

Классификация по решаемой задаче:

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

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

Мониторинг. Основная задача мониторинга - непрерывная интерпретация данных в реальном масштабе и сигнализация о выходе тех или иных параметров за допустимые пределы. Главные проблемы - «пропуск» тревожной ситуации и инверсная задача «ложного» срабатывания. Сложность этих проблем в размытости симптомов тревожных ситуаций и необходимость учета временного контекста.

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

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

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

Обучение. Системы обучения диагностируют ошибки при изучении какой-либо дисциплины с помощью ЭВМ и подсказывают правильные решения. Они аккумулируют значения о гипотетическом «ученике» и его характерных ошибках, затем в работе способны диагностировать слабости в знаниях обучаемых и находить соответствующие средства для их ликвидации. Кроме того, они планируют акт общения с учеником в зависимости от успехов ученика с целью передачи знаний.

Классификация по связи с реальным временем:

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

Квазидинамические ЭС интерпретируют ситуацию, которая меняется с некоторым фиксированным интервалом времени.

Динамические ЭС работают в сопряжении с датчиками объектов в режиме реального времени с непрерывной интерпретацией поступаемых данных.

Тема №11. Современные программные средства. Инструментарий технологии программирования. Современные языки высокого уровня

11.1 Программа и программирование

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

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

Вычислительная техника используется сейчас не только в инженерных расчетах и экономических науках, но и таких традиционно нематематических специальностях, как медицина, лингвистика, психология. В связи с этим можно констатировать, что применение ЭВМ приобрело массовый характер. Возникла многочисленная категория специалистов - пользователей ЭВМ, которым необходимы знания по применению ЭВМ в своей отрасли - навыки работы с уже имеющимся программным обеспечением, а так же создания своего собственного ПО, приспособленного для решения конкретной задачи. И здесь на помощь пользователю приходят описания языков программирования высокого уровня (далее ЯВУ) и численные методы (далее ЧМ).

Язык программирования Pascal создан швейцарским физиком Николасом Виртом в 1970 году и назван в честь французского математика XVII века Блеза Паскаля.

Оригинальная версия языка программирования была предложена в 1970 году. Впоследствии появилось множество версий и расширений этого языка. Наиболее популярным из них стал пакет Turbo Pascal фирмы Borland, выпущенный в 1983 году. Первая версия этого пакета предназначалась для операционной системы СР/М, но уже через год (в 1984 г.) появилась версия для MS DOS. С тех пор было выпущено несколько версий этого пакета, последнюю из которых -Turbo Pascal 7.0 - мы как раз собираемся изучать.

Таблица 1.

Begin

Начало блока

Or

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

Case

Вариант

Of

Из

Const

Константа

Object

Объект

Div

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

Procedure

Процедура

Go to

Переход на

Program

Программа

Do

Выполнять

Repeat

Повторять

Downto

Уменьшить до

String

Строка

Else

Иначе

Then

То

End

Конец блока

To

Увеличивая

File

Файл

Type

Тип

For

Для

Until

До

Function

Функция

Uses

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

If

Если

Var

Переменная

Interrupt

Прерывание

While

Пока

Interface

Интерфейс

With

С

Label

Метка

Xor

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

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

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

Основные требования, предъявляемые к программе:

- точность полученного результата;

- время выполнения;

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

Структура программы:

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

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

1. Раздел описаний, в котором должны быть описаны все идентификаторы, встречающиеся в программе. Он представляет собой:

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

- описание меток; описание констант; определение типов данных; описание переменных; описание процедур и функций;

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

Любой элемент данного списка в программе может отсутствовать.

2. Раздел операторов.

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

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

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

- идентификаторы начинаются с прописных букв;

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

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

ТИПЫ ДАННЫХ

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

Турбо Паскаль характеризуется разветвлённой структурой типов данных.

Простые типы

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

Указатели

Строки

Процедурные

Объекты

Порядковые

Вещественны

Массивы

Записи

Множества

Файлы

Целые

Логический

Символьный

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

Тип-диапазон

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

ПРОСТЫЕ ТИПЫ

К простым типам относятся порядковые и вещественные типы.

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

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

ПОРЯДКОВЫЕ ТИПЫ

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

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

ЦЕЛЫЕ ТИПЫ

НАЗВАНИЕ

Длина, байт

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

Byte

1

0...255

Shortlnt

1

-128. .. + 127

Word

2

0... 65535

Integer

2

-32768. ..+32767

Longlnt

4

-2 147 483 648. ..+2 147 483 647

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

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

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

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

Название

Длина, Байт

OS

Значение

BOOLEAN

1

Linux, DOS

False, True

BYTEBOOL

1

Совместим

False, True

WORDBOOL

2

Win

False, True

LONGBOOL

4

Win

False, True

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

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

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

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

Символы с кодами 0...31 относятся к служебным кодам. Если эти коды использовать в символьном тексте программы, они считаются пробелами.

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

идентификатором и располагается в списке, обрамлённом круглыми скобками, например:

Туре

Colors = (red, white, blue);

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

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

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

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

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

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

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

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

Туре

Digit = '0' ..'9'; Dig2 = 48 .. 57;

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

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

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

ВЕЩЕСТВЕННЫЕ ТИПЫ

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

Длина, байт

Название

Количество значащих цифр

Диапазон десятичного порядка

6

Real

11. ..12

-39. ..+38

4

Single

7. ..8

-45. ..+38

8

Double

15. ..16

-324. ..+308

10

Extended

19. ..20

-4951. ..+4932

8

comp

19. ..20

-2*10"+1...+2*106М

СТРУКТУРИРОВАННЫЕ ТИПЫ

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

МАССИВЫ

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

Описание массива задаётся следующим образом:

<имя типа> = array [<сп.инд.типов>] of <тип>

Здесь <имя типа> - правильный индификатор;

Array, of- зарезервированные слова (массив, из);

<сп.инд.типов> - список из одного или нескольких индексных типов, разделённых запятыми; квадратные скобки, обрамляющие список, - требование синтаксиса;

<тип> - любой тип Турбо Паскаля.

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

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

ЗАПИСИ

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

Структура объявления типа записи такова:

<имя типа> = RECORD <СП.полей> END

Здесь <имя типа> - правильный идентификатор;

RECORD, END - зарезервированные слова (запись, конец);

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

МНОЖЕСТВА

Множества - это набор однотипных логических связанных друг с другом объектов. Характер связей между объектами лишь подразумевается программистом и никак не контролируется Турбо Паскалем. Количество элементов, входящих в множество, может, меняется в пределах от 0 до 256 (множество, не содержащее элементов, называется пустым). Именно непостоянством количества своих элементов множества отличаются от массивов и записей.

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

Описание типа множества имеет вид:

<имя типа> = SET OF <баз.тип>

Здесь <имя типа> - правильный индификатор;

SET, OF - зарезервированные слова (множество, из);

<баз.тип> - базовый тип элементов множества, в качестве которого может использоваться любой порядковый тип, кроме WORD, INTEGER и LONGINT.

Для задания множества используется так называемый конструктор множества: список спецификаций элементов множества, отделяемых друг от друга запятыми; список обрамляется квадратными скобками. Спецификациями элементов могут быть константы или выражения базового типа, а также - тип-диапазон того же базового типа.

СТРОКИ

Тип STRING (строка) в Турбо Паскале широко используется для обработки текстов. Он во многом похож на одномерный массив символов ARRAY [O..N] OF CHAR, однако, в отличие от последнего, количество символов в строке - переменной может, меняется от 0 до N, где N -максимальное количество символов в строке. Значение N определяется объявлением типа STRING[N] N и может быть любой константой порядкового типа, но не больше 255. Турбо Паскаль разрешает не указывать N, в том случае длина строки принимается максимально возможной, а именно N=255.

Строка в Турбо Паскале трактуется как цепочка символов. К любому символу в строке можно обратиться точно так же, как к элементу одномерного массива ARRAY [O..N] OF CHAR.

ФАЙЛЫ

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

Любой файл имеет три характерные особенности. Во-первых, у него есть имя, что даёт возможность программе работать одновременно с несколькими файлами. Во-вторых, он содержит компоненты одного типа. Типом компонентов может быть любой тип Турбо Паскаля, кроме файлов. Иными словами, нельзя создать «файл файлов». В-третьих, длина вновь создаваемого файла никак не оговаривается при его объявлении и ограничивается только ёмкостью устройств внешней памяти.

Файловый тип или переменную файлового типа можно задать одним из трёх способов:

<имя>= FILE OF <тип>;

<имя>=ТЕХТ;

<имя> = FILE;

Здесь <имя> - имя файлового типа (правильный индификатор);

FILE, OF - зарезервированные слова (файл, из);

TEXT - имя стандартного типа текстовых файлов;

<тип> - любой тип Турбо Паскаля, кроме файлов.

В зависимости от способа объявления можно выделить три вида файлов:

- типизированные файлы (задаются предложением FILE OF...);

- текстовые файлы (определяются типом TEXT);

- нетипизированные файлы (определяются типом FILE).

11.3 Операторы языка Pascal

В операторе if часть, начинающаяся словом else, может отсутствовать. Часть, следующая за словом then, выполняется, если логическое условие, стоящее после слова if, имеет значение true. Если это логическое выражение имеет значение false, непосредственно выполняется оператор, следующий за if.

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

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

ОПЕРАТОР ВЫБОРА CASE

Оператор if - - один из наиболее часто используемых структурных элементов языка обеспечивает ветвление алгоритма только на два направления. Вместе с тем ясно, что первый алгоритм решения задачи удачнее выражает ее сущность. Для реализации подобных алгоритмов необходим оператор множественного ветвления (выбора из нескольких ветвей команд). Таким оператором в Паскале является оператор выбора case. Общий вид этого оператора: case <селектор> of < альтернатива 1 > : < оператор 1>;


Подобные документы

  • История развития информатики и вычислительной техники. Общие принципы архитектуры ПЭВМ, ее внутренние интерфейсы. Базовая система ввода-вывода. Материнская плата. Технологии отображения и устройства хранения информации. Объем оперативной памяти.

    презентация [9,3 M], добавлен 26.10.2013

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

    контрольная работа [28,9 K], добавлен 10.06.2014

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

    реферат [29,0 K], добавлен 09.07.2012

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

    учебное пособие [1,4 M], добавлен 25.12.2009

  • Исследование истории развития систем счисления. Изучение математического аспекта теории информатики. Характеристика информационных систем счисления. Основные операции над двоичными числами. Разработка программного обеспечения для проведения тестирования.

    курсовая работа [995,4 K], добавлен 24.05.2015

  • Составные части информатики и направления ее применения. Классы компьютеров, примеры команд. Принтер, сканер и плоттер. Виды топологий сетей. Системы счисления. Способы соединения с Интернетом. Категории программного обеспечения. Значение базы данных.

    шпаргалка [184,0 K], добавлен 16.01.2012

  • Основные определения и понятия информатики. Вычислительная техника, история и этапы ее развития. Методы классификации компьютеров, их типы и функции. Разновидности системного и прикладного программного обеспечения. Представление информации в ЭВМ.

    учебное пособие [35,3 K], добавлен 12.04.2012

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

    реферат [19,5 K], добавлен 17.03.2011

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

    контрольная работа [629,1 K], добавлен 11.02.2010

  • Предистория и этапы развития информатики. Уровни информации Д.С. Робертсона. Информатика как неотъемлемый фрагмент культуры общества. Методы и методологии дисциплины, структурная схема ее научной базы. Святой Исидор Севильский – покровитель Интернета.

    контрольная работа [113,0 K], добавлен 11.12.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.