
- •(Конспект лекций)
- •Список сокращений
- •Введение
- •Лекция 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
- •Вопросы для самоконтроля
- •Вопросы на самостоятельную проработку
- •Литература
Адресная модель css
Когда документ принимается броузером, - создается его объектное древовидное представление. С помощью селекторов и свойств из утверждений CSS можно получить доступ:
к элементам и отношениям между элементами в древовидной структуре документа,
к атрибутам элементов и их значениям,
к некоторым частям содержимого элементов,
к элементам, когда они находятся в определенных состояниях,
к элементам пространства, где отображается документ,
к системной информации.
Содержимое css-файла или style-контейнера
CSS-файл или style-контейнер содержат последовательность утверждений 2-х типов: at-правил и множеств правил. Утверждения могут размещаться в окружении любого числа пробелов. At-правила начинаются с маркера @ и следующего за ним ключевого слова. За ключевым словом размещается значение некоторого параметра.
Пример
@import “subs.css”; // указывается дополнительный файл для импорта css-стилей
h1 {color: blue}
@import “list.css”;
2-е утверждение @import не обрабатывается согласно соглашениям, принятым для CSS2.
Все утверждения @import должны располагаться до блоков {…}. Другое важное соглашение применения правил в CSS2 состоит в том, что любые утверждения с ошибками пропускаются.
Внутри блоков элементы разделяются точкой с запятой. Любые элементы с ошибками (например неправильные параметры или имена атрибутов) внутри блоков пропускаются.
Пример
h1 {color: red; font-style: 12 pt}
p {color: blue; font-vendor: any; font-variant: small-caps}
В данном примере в процессе обработки утверждений выбрасываются атрибуты и их значения: font-style: 12 pt и font-vendor: any, т.к. в 1-м случае значение не соответствует названию атрибута, а во 2-м случае не существует атрибута с font-vendor.
Комментарий в CSS2 указывается так же, как в языке С: /*………………………*/.
Селекторы
Селекторы указывают к каким элементам древовидной структуры документа применяются стилевые элементы. Селекторы определяются различными вариантами шаблонов. Наиболее употребимы следующие.
* - Универсальный селектор. Указывает применение к любым элементам. Обычно используется в сочетании с атрибутными образцами.
Пример
*[lang=fr] {display: none}
Данное утверждение означает, что не отображаются любые элементы связанные с тегами у которых атрибут lang имеет значение fr.
E-селекторы типов. Применимы к именам тегов.
Пример
h1 {font-family: font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold; color: blue }
Все тексты в пределах контейнеров h1 отображаются шрифтами , или какими-то другими без засечек. Используется полужирный стиль шрифта и синий цвет.
А В селекторы наследования. Применяются к тем элементам, которые являются наследниками других. Обычно это ситуация для отдельных тегов или контейнеров внутри других контейнеров.
Пример
h1 em {color: blue}
В данном примере указано, что стиль применим к контейнеру <em>…</em>, который располагается внутри контейнера <h1>…</h1>.
Пример
h1 * * em {…}
В данном случае стиль применяется к контейнеру <em>…</em>, расположенному внутри контейнера <h1>…</h1> и еще внутри двух, произвольных контейнеров.
E1 + E2 селекторы следования. Применяются в том случае, если необходимо указать ситуацию, когда элемент расположен за некоторым или некоторыми другими.
Пример
h1.opener + h2 { margin-top: -5mm }
Указано уменьшение области разделения на 5мм, между текстами представленными контейнерами h1 и h2 , если они следуют один за другим и если h1 имеет атрибут class со значением opener.
Атрибутные селекторы. Атрибутные селекторы позволяют определять правила доступа к элементам в документах через сопоставление атрибутов в тегах. Можно указать следующие 3 варианта шаблонов для указания атрибутов и/или их значений:
[att] – ссылка через указание имени атрибута att,
[att = val] – ссылка указанием имени атрибута att и его значения val,
[att ~= val] – ссылка к тем элементам документа, которые содержат атрибут att, значением которого является список токенов, один из которых в точности соответствует значению val.
Примеры
См. пример, рассмотренный ранее, для универсального селектора.
h1[title] {color: blue}
Примененный выше селектор позволяет ссылаться ко всем элементам h1, в которых указан атрибут title.
span[hello = "Cleveland"][goodbye ~= "Columbus"] { color: blue; }
В данном случае ссылочным является, например, следующий элемент:
<span goodbye="Columbus Orion Tetra" hello = "Cleveland"> произвольный текст…………………………………………………….. </span>
Для ссылок к элементам, содержащим атрибуты class или id в CSS предусмотрены специальные нотации. Так, указание точки означает ссылку к классу и сразу после точки необходимо указать значение этого атрибута. Однако, поскольку атрибут class может быть представлен списком слов, то ссылку можно организовать указав некоторое подмножество слов, перечисляя их с лидирующей точкой.
Примеры
*.pastoral { color: green }
p.pastoral.marine { color: green }
В первом случае выполняется ссылка ко всем элементам атрибут класса которых содержит слово pastoral. Во втором случае, например, ссылка выполняется для тех элементов у которых атрибут class имеет значение “pastoral blue aqua marine”, но не выполняется если этот атрибут имеет значение “pastoral blue”.
Для ссылок через значение атрибута id используется символ #, предшествующий значению атрибута.
Примеры
h1#chapter1 { text-align: center }
*#z98y { letter-spacing: 0.3em }
В 1-м из приведенных примеров ссылка выполняется к тому тегу h1, у которого значение атрибута id “chapter1”, во 2-м случае ссылка выполняется ко всем тегам документа, у которых значение атрибута id равно z98y.
Группирование. Когда несколько селекторов сопоставлены одинаковым декларациям, то в этом случае они объединяются в список, элементы которого разделяются запятыми.
Пример
В этом примере три правила могут быть объединены списком селекторов.
h1 { font-family: Helvetica }
h2 { font-family: Helvetica }
h3 { font-family: Helvetica }
эквивалентно:
h1, h2, h3 { font-family: Helvetica }
Псевдо-элементы и псевдо-классы. В CSS имеются набор селекторов - псевдо-элементов и псевдо-классов (:first-line, :first-letter, :before, :after, :link, :visited, :hover, and :active), которые позволяют ссылаться к некоторым объектам документа вне древовидной структуры документа, - например к первой букве текста параграфа и т.п.