
- •(Конспект лекций)
- •Список сокращений
- •Введение
- •Лекция 1. Языки штучного интеллекта и основы логического программирования Некоторые сведения о языках искусственного интеллекта
- •Введение в логическое программирование Историческая справка
- •Базовые объекты данных
- •Вопросы
- •Переменные
- •Правила
- •Зоны видимости имен
- •Логическая программа
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 2. Процедурная семантика интерпретатора Пролога
- •Метод резолюций
- •Унификация и подстановка
- •Композиция подстановок
- •Вычисление резольвенты
- •Алгоритмы Пролога
- •Стратегии доказательств
- •Процедура поиска доказательства в глубину
- •Пример выполнения логической программы с пошаговым анализом
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 3. Основы программирования в среде Турбо-Пролога
- •Разделы программы
- •Опции компилятора
- •Имена переменных
- •Раздел описаний доменов
- •Разделы описания предикатов и правил
- •Рекурсивные процедуры
- •Моделирование итеративных процедур
- •Основные сведения об арифметических предикатах
- •Внелогические предикаты
- •Работа с файлами
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 4. Списки и управление выводом в Турбо-Пролог-программах Списки
- •Описания списков
- •Шаблон для работы со списками
- •Примеры программ работы со списками
- •Управление формированием вывода Отсечение
- •«Зеленые» и «Красные» отсечения
- •Предикаты not и fail
- •«Циклы» управляемые отказом
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 5. Динамическая база данных в Турбо-Пролог-программах Составные области
- •Операции с динамической базой данных
- •Пример построения проекта с динамической базой данных
- •Ограничения Турбо-Пролога
- •«Циклы» с возвратами
- •Лисп – язык функционального программирования
- •Правильные выражения
- •Базовые предикаты и конструкторы
- •Определяющие выражения функций
- •Условные выражения
- •Выражения для представления циклов
- •Встроенные и определяемые пользователем функции
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 7. Функциональное программирование в среде Лиспа
- •Виды рекурсий Рекурсии по значению и по аргументам
- •Простая рекурсия
- •Параллельная рекурсия
- •Взаимная рекурсия
- •Рекурсии высших порядков
- •Метод накапливающих параметров
- •Функционалы
- •Применяющие функционалы
- •Отображающие функционалы
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 8. Функциональные абстракции и процедурное программирование в Лиспе Представление функции в процессе вычислений Понятие замыкания
- •Создание замыканий
- •Функции с функциональным результатом вычислений и частичные вычисления
- •Функциональные абстракции
- •Формы блоков и связывания переменных
- •Присваивание значений переменным
- •Прочие процедурные формы в Лиспе
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 9. Лисп-методы программирования Программирование, управляемое данными
- •Программирование, управляемое событиями
- •Сопоставление с образцом
- •Списочные образцы
- •Переменные в образцах
- •Образцы с предикатами
- •Продукционное и логическое программирование в Лисп-системах
- •Объектное программирование
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 10. Представление знаний в программах на Лиспе Процедурный подход к представлению знаний
- •Представление знаний на основе продукций
- •Представление продукций
- •Интерпретатор продукций
- •Методы поиска решений
- •Функция для загрузки
- •Разрыв командного цикла и отладка
- •Вычисление s-выражений
- •Функции и формы
- •Типы данных
- •Макросы ввода
- •Lambda-списки
- •Функции ввода/вывода
- •Вычисление форм catch и throw
- •Объектное программирование в Xlisp Создание класса
- •Добавление методов в интерактивном режиме
- •Вопросы для самоконтроля
- •Html-документ Инструментарий создания и редактирования
- •Структура документа
- •Html тэги
- •Информация игнорируемая браузерами
- •Свойства страницы в целом
- •Информация для поисковых систем и стандарты
- •Элементы управления размещением текста и графики
- •Ссылки и протоколы
- •Задание цвета в html
- •Подготовка графики и анимация Графические форматы
- •Подготовка изображений для применения в документе
- •Анимация
- •Вопросы для самоконтроля
- •Управление шрифтами
- •Физические текстовые стили
- •Специальные символы
- •Графика
- •Управление взаимным размещением текста и графики
- •Гипертекстовые и графические ссылки Организация ссылок
- •Графические ссылки
- •Расширенная работа с гиперссылками Типы ссылок в документе
- •Якоря (метки)
- •Атрибут target
- •Изображения-карты
- •Списки и таблицы Виды списков
- •Элементы таблиц
- •Вопросы для самоконтроля
- •Элементы создаваемые тэгом input
- •Простые и графические кнопки
- •Списки выбора
- •Текстовые области
- •Приемы для выравнивания элементов
- •Методы передачи данных к серверу
- •Дизайн web-сайтов Типы сайтов
- •Топология и распределение материала
- •Формат страницы
- •Заглавия и заголовки
- •Навигация
- •Блоки текста
- •Средства позиционирования
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 15. Элементы языка css Язык управления структурой и стилями
- •Размещение css-элементов
- •Адресная модель css
- •Содержимое css-файла или style-контейнера
- •Селекторы
- •Комментарии
- •Применение css в оформлении документов Управление визуализацией
- •Схемы позиционирования
- •Текст и шрифты
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 16. Основы языка Java Script Назначение языка программирования Java Script
- •Тэги для программ на Java Script
- •Основные конструкции языка JavaScript
- •Декларации функций
- •Операторы, операции и выражения
- •Массивы
- •Объектная модель документа
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 17. Объекты и скрипты в html-документах Объекты пользователя
- •Создание объектов
- •Добавление новых свойств и методов
- •Проверка наличия свойств и методов
- •Встроенные объекты языка программирования
- •Обработка особых ситуаций в документе
- •Классификация ситуаций
- •Установление реакции на ситуацию
- •Методы объекта String
- •Программирование работы с метками и гиперссылками
- •Динамическое создание меток и гиперссылок
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Лекция 18. Различные аспекты применения скриптов Управление окнами
- •Динамическое формирование документа
- •Управление слоями
- •Объект, соответствующий форме
- •Адресация и именование
- •Свойства и методы
- •Динамическое изменение надписей и изображений на кнопках
- •Форматы документов отличающиеся от html
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Литература
Html-документ Инструментарий создания и редактирования
В качестве инструментария для разработки html-документов можно использовать такие простые средства как «Блокнот» (Windows), Microsoft Word, специализированный инструментарий Macromedia Dreamviewer Ultra Dev, Front Page фирмы Microsoft, Golive Superstudio, Claris Home Page и ряд других. Так, в «Блокноте» достаточно набрать произвольный текст и сохранить его указав тип файла «Все файлы» в кодировке ANSI и указать расширение сохраняемого файла htm или html и будет создан html-документ. Более мощный инструментарий обеспечивает технологию WYSIWYG (What You See Is What You Get – что видишь, то и получишь), с возможностью указания на каких броузерах какие тэги и каким образом поддерживаются. В любом случае, разработка надежного сайта требует его всеобъемлющего тестирования на возможно большом количестве броузеров различных фирм и версий. Тестирование валидных html-документов, включающих тэг !doctype (см. далее), обеспечивает ряд сайтов, наиболее популярные из которых следующие:
The World Wide Web Consortium’s HTML Validator – http://validator.w3.org/
WebSiteGarage – http://www.websitegarage.com/
NetMechanic – http://www.imagiware.com/RxHTML/
Большой список средств контроля содержится, также, на Yahoo! – http://www.yahoo.com/Computers_and_Internet/Information_and_Documentation/Data_Formats/HTML/Validation_and_Checkers/
Структура документа
Документ HTML содержит текст и встроенные тэги с инструкциями о структуре, внешнем виде, используемой графике и функциях. Документ HTML разделяется на две основные части: заголовок и тело. Заголовок содержит содержит такие сведения о документе, как его название и метаинформация, описывающая содержимое и тип документа. В теле находится само содержимое документа, то, что отображается в окне броузера:
<html>
<head>
<title> Название документа</title>
</head>
<body>
Содержимое документа
</body>
</html>
Следует отметить, что MSIE может обрабатывать и отображать документы не имеющие представленной выше структуры. HTML-документы, однако, в этом случае не соответствуют синтаксическим требованиям представления html-документов и могут не восприниматься другими броузерами. Перед тэгом html может располагаться информация о версии html – тэг !doctype, которая позволяет привлечь программы-верификаторы, которые проверят документ на соответствие версии HTML. Последние версии языка HTML позволяют не использовать тэги html и head.
Html тэги
В теле html-документов размещаются тэги различного функционального назначения – для размещения графики, указания применяемого шрифта, взаимного выравнивания элементов документа и т.д. Каждый тэг располагается в пределах угловых скобок. За первой скобкой располагается имя тэга, затем, возможно, располагается набор атрибутов, часть из которых характерны только для данного тэга, другая часть присуща всем тэгам. Имя тэга и имена атрибутов могут записываться как строчными так и прописными буквами.
Пример
Записи тэгов <BODY BGCOLOR=white> и <body bgcolor=white> эквивалентны.
Следует, однако, учитывать, что значения некоторых атрибутов могут быть чувствительны к регистрам, например имена файлов и гипертекстовые ссылки.
Большинство тэгов являются контейнерами, т.е. имеют открывающий и закрывающий тэги. Закрывающий тэг заключается в угловые скобки и имеет то же имя, что и открывающий тэг. Имени закрывающего тэга предшествует символ «/». Некоторые тэги не имеют закрывающего тэга.
Атрибуты добавляются в тэг для расширения или модификации его действия, определяемого по умолчанию. Порядок размещения атрибутов не играет роли. Для некоторых тэгов необходимо указывать значения, а другие – являются самоопределенными (или булевскими). Значение от атрибута отделяется символом «=». Правила записи значений атрибутов следующие:
если значение представлено одним словом, состоящим из букв, цифр и включает точку или дефис, то оно записывается без кавычек,
если первое требование нарушено, например значение включает несколько слов, то применяются обрамляющие кавычки.
Пример
The weather is <i>gorgeous </i>today. –применен контейнер i
<img src=”graphics/pixie.gif” align=right width=45 height=60> -автономный тэг с атрибутами
<body bgcolor=”#000000”> -тэг body с атрибутом bgcolor
<font face=”Trebuchet MS, Arial, Helvetica” size=4>
В контейнеры могут вкладываться другие контейнеры или автономные тэги. Ошибкой является перекрытие контейнеров, когда закрывающие тэги нарушают порядок вложения контейнеров.
Пример
В примере представлено перекрытие тэгов, что может отразиться на отображении документа в окне броузера.
The weather is <b><i> gorgeous </b></i>today.
Атрибуты идентификации и классов. Атрибут id определяет имя элемента, которое должно быть уникальным в документе. Атрибут class определяет имя класса или имена нескольких классов для элемента. Любое число тэгов в документе может иметь те же имена классов. Основное назначение имен – возможность применения утверждений стилей к элементам. Атрибут id, кроме того, позволяет ссылаться к элементам документа из программ-скриптов и определять метки-якоря для внутренних гипертекстовых переходов.
Пример
<p><span id="msg1" class="err" >Variable declared twice</span>
< span id="msg2" class="warning info" >Undeclared variable</span > </p>
В этом примере во втором тэге span атрибут class имеет 2 значения: warning и info.