
- •(Конспект лекций)
- •Список сокращений
- •Введение
- •Лекция 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
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Литература
Вопросы на самостоятельную проработку
Вызов Java Script –программ при активизации гиперсвязей
К оглавлению
Лекция 18. Различные аспекты применения скриптов Управление окнами
Окна можно создавать программно. Первоначально, после загрузки документа, открыто главное окно, к которому можно обращаться с помощью префикса top (окно верхнего уровня) или window (текущее активное окно), или вообще его не указывать. Первый из указанных префиксов, а также parent (окно-родитель) имеет смысл использовать при обращении к фреймам в пределах некоторой фреймовой структуры. Окно включает следующие свойства (см. дополнительно «Объектная модель документа»):
status – текст сообщения в строке состояния окна,
defaultStatus - текст сообщения по умолчанию в строке состояния,
frames – массив фреймов фреймсодержащего документа,
name – заголовок окна (можно устанавливать посредством одного из параметров метода open),
location – URL, открытого в окне документа,
history – представляет собой объект «истории» отображения документов в текущем окне,
navigator – представляет собой объект «навигатор»,
screen - представляет собой объект «окно» (используя методы этого объекта можно выяснить текущие параметры открытого окна),
event – объект «событие», создаваемый броузером для каждого системного или пользовательского события, и т.д.
В случае применения перечисленных свойств в процессе программирования необходимо учитывать, что в младших версиях броузера некоторые свойства представлены данными, обычно строкового типа, в старших версиях свойствам соответствуют объекты и необходимо применять методы этих объектов.
Пример
Определение версии броузера.
var browser=””;
if((navigator.appVersion.charAt(0)==”4”)
&& (navigator.appVersion.charAt(0)==”5”))
{
if(navigator.appName==”Netscape”)
browser=”netscape”;
else if(navigator.appName==”Microsoft Internet Explorer”)
browser=”ie”;
else alert(“Это сценарий только для броузеров версий 4.0 и выше!”);
}
Пример
Следующий программный код определяет ссылку и ее описание в строке состояния.
<a href=”order.html”
onMouseOver=”window.status=’Allow you to order products’; return true”
onMouseOver=”window.status=’’; ”
Order form </a>
Возвращаемое значение true позволяет отобразить текущее сообщение вместо сообщения по умолчанию (URL страницы).
Пример
Следующий код позволяет моделировать программно работу кнопок «Back» и «Forward» на панели инструментов.
<a href=”javascript:history.go(-1);”>
<img border=0 scr=”left.gif”>
</a>
<a href=”javascript:history.go(1);”>
<img border=0 scr=”right.gif”>
</a>
Рисунки кнопок (left.gif и right.gif) должны быть подготовлены заранее. Вместо метода go, примененного в вышепредставленной программе, можно использовать методы объекта history – back (соответствует go(-1)>) и forward (соответствует go(1)).
Пример
Следующий оператор дает указание загрузить страницу в текущее окно:
window.location.href=”http://www.sterlighttech.com”;
Объект location имеет метод reload (по действию соответствует кнопке «Reload» на панели инструментов; чтобы инициировать загрузку с сервера необходимо указать параметр true) и метод replace:
window.location.replace(”http://www.sterlighttech.com”);
В отличие от оператора представленного в начале данного примера, - текущая замещаемая в окне страница удаляется из списка history. В список history попадает новая страница.
Объект window обладает целым рядом методов (неполный их список приводится ниже):
alert(String) – отображает окно с кнопкой «OK» и заданной строкой String,
blur() – удаляет фокус ввода из заданного окна и формирует ситуацию onBlur,
close() – закрывает текущее активное окно (навигатор не закрывает главное окно без надлежащего подтверждения пользователем),
confirm(String) – отображает окно с 2 кнопками «OK» и «Cancel» и заданной строкой String, возвращает true, если был выбор кнопки «OK» и возвращает false, если был выбор кнопки «Cancel»,
focus() – передает фокус ввода окну, в окне появляется курсор, с которым можно активно работать,
open(URL, winName[, winFeatures]) – первый параметр представляет собой URL документа, загружаемого в новом созданном окне (если URL представлен пустой строкой, то создается пустое окно), параметр winName представляет собой идентификатор окна, который можно использовать как значение атрибута target, свойства окна winFeatures должны быть представлены строкой, в которой каждое свойство задается подобно тому, как атрибуты в тэгах, но еще разделяться запятыми, например так: “height=500, width=800, toolbar=no”,
prompt(message, defaultReply) - отображает окно с кнопками «OK» (или «YES») и «Cancel», заданным сообщением message и текстовым полем для ввода данных (в поле отображается значение по умолчанию defaultReply); щелчок по кнопке «Cancel» приводит к тому, что функция возвращает в качестве результата значение null, щелчок по кнопке «OK» (или «YES») приводит к тому, что функция возвращает в качестве результата значение введенное в текстовое поле,
setTimeout(expr, msecs[, args | language]) – после выполнения задержки msecs, заданной в миллисекундах, выполняется выражение expr; в качестве результата возвращается идентификатор таймера, который может быть использован в программе для останова таймера при помощи метода clearTimeout (основная программа выполняется параллельно с выполнением тайм-аута); параметр args используется в Netscape Navigator и представляет собой строку, содержащую параметры, разделяемые запятыми для функции, указанной в качестве выражения expr, для Internet Explorer указывается параметр language, представляющий язык для вычисления скрипта expr.
Пример
В данном примере представлено отображение в строке состояния «бегущей строки».
………………………..
var msg = ”Это пример бегущей строки. Запрограммируйте смену содержимого!”;
var spacer = “… …”;
var pos = 0;
function ScrollMessage()
{
window.status = msg.substring(pos, msg.length) + spacer + msg.substring(0, pos);
pos++;
if(pos > msg.length) pos = 0;
window.setTimeout(“ScrollMessage”, 200);
return true;
}
………………………..
Естественно, что для отображения указанной выше «бегущей строки» необходимо инициировать вызов функции ScrollMessage.
Помимо перечисленных выше атрибутов, при создании окон можно указывать следующие параметры, задавая для них значения «YES» или «NO» (ниже приводится неполная таблица дополнительных параметров).
Параметр |
Что определяет |
copyhistory |
Сохранение истории загрузки документов |
directories |
Наличие кнопок групп новостей |
location |
Наличие поля «Location:» |
menubar |
Наличие меню |
resizable |
Наличие рамки с возможностью изменения размеров окна |
scrollbars |
Наличие линеек прокрутки |
status |
Наличие строки состояния |
toolbar |
Наличие кнопок управления – «BACK», «FORWARD» и т.п. |
Пример
………………………..
var win = window.open(“”, “Something title”, “toolbar=no, width=300, height=400, scrollbars=yes”);
win.document.open();
………………………..
В данном примере выполняется создание нового окна, затем применяется оператор для создания документа в этом окне. Далее может располагаться необходимое количество операторов для динамического (программного) формирования документа.
Если некоторые параметры для создаваемого окна не указаны, то они наследуются от окна-родителя.