
- •Предисловие
- •Лабораторная работа 1
- •Темы для предварительной проработки
- •1.1. Порядок выполнения работы
- •1.2. Содержание отчета
- •1.3. Индивидуальные задания
- •1.4. Пример решения задачи
- •Контрольные вопросы
- •Приложение 1а
- •Приложение 1б
- •Приложение 1в
- •Приложение 1г
- •Лабораторная работа 2
- •Темы для предварительной проработки
- •2.1. Порядок выполнения работы
- •2.2. Содержание отчета
- •2.3. Индивидуальные задания
- •2.4. Пример решения задачи
- •Контрольные вопросы
- •Приложение 2а
- •Приложение 2б
- •Лабораторная работа 3
- •1.4. Пример решения задачи
- •Контрольные вопросы
- •Приложение 3а
- •Приложение 3б
- •Приложение 3в
- •Приложение 3г
- •Лабораторная работа 4
- •4.4. Пример решения задачи
- •Контрольные вопросы
- •Лабораторная работа 5
- •Темы для предварительной проработки
- •5.1. Порядок выполнения работы
- •5.2. Содержание отчета
- •5.3. Индивидуальные задания
- •5.4. Пример решения задачи
- •Контрольные вопросы
- •Приложение 5а
- •Лабораторная работа 6
- •Темы для предварительной проработки
- •6.1. Порядок выполнения работы
- •6.2. Содержание отчета
- •6.3. Индивидуальные задания
- •6.4. Пример решения задачи
- •Контрольные вопросы
- •Приложение 6а
- •Приложение 6б
- •Константы типа драйвера
- •Константы режимов драйвера
- •Константы цветов
- •Константы стиля и толщины линий (для предикатов GetLineStyle, SetLineStyle)
- •Константы типа шрифта (задаются в предикате settextstyle(Font,Direction,Charsize))
- •Лабораторная работа 7
- •Темы для предварительной проработки
- •7.1. Порядок выполнения работы
- •7.2. Содержание отчета
- •7.3. Индивидуальные задания
- •7.4. Пример решения задачи
- •Контрольные вопросы
- •Приложение 7а
- •Приложение б
- •Редактор о.І. Шпільова
- •61002 Харків, вул. Фрунзе, 21
Контрольные вопросы
Что такое строковый тип данных?
Чем отличается строковый тип данных в Прологе от строкового типа данных в процедурных языках программирования?
Назовите характеристики машины логического вывода Пролога.
Как выделить первый символ текста?
Как выделить первое слово текста?
Как выполнить конкатенацию строк текста?
Какую роль играет унификация переменных при выполнении операций над строками?
Как разделить текст на несколько подстрок?
Какова роль рекурсии при обработке строк?
Какие стандартные типы данных используют в Прологе?
Как выполнить преобразование типов данных?
Приложение 5а
Предикаты для работы со строками и преобразование типов
Таблица 5А.1 – Предикаты для работы со строками
Предикат |
Назначение |
frontchar(Строка, Перв_символ, Ост_строки) (string,char,string) – (i,o,o) (i,i,o) (i,o,i) (i,i,i) (o,i,i) |
В зависимости от конкретизации переменных выполняет действия: (i,o,o) – строку разделяет на первый символ и отстаток строки; (i,i,o) – если Перв_символ является первым символом строки Строка, то выделяется остаток строки; (i,o,i) – если Ост_строки является остатком строки Строка, то выделяется первый символ Перв_символ; (i,i,i) – проверяет, является ли соединение символа Перв_символ и остаток строки Ост_строки строкой Строка; (o,i,i) – соединяет Перв_символ и Ост_строки и возвращает строку Строка |
fronttoken(Строка,Токен, Ост_строки) (string,string,string) – (i,o,o) (i,i,o) (i,o,i) (i,i,i) (o,i,i) |
В зависимости от конкретизации переменных выполняет действия: (i,o,o) – Строка разделяется на Токен (слово) и остаток строки Ост_строки; (i,i,o) – если первое слово строки равно Токену, то выделяется остаток строки Ост_строки; (i,o,i) – если остаток строки Ост_строки равен остатку строки Строка, то выделяется первое слово Токен; (i,i,i) – проверяет, равно ли соединение Токена и Ост_строки Строке; (o,i,i) – соединяет Токен и Ост_строки и возвращает Строку |
Продолжение табл. 5А.1
Предикат |
Назначение |
frontstr(Длина,Вх_строка, Нач_строки,Ост_строки) (integer,string,string,string) – (i,i,o,o) |
Из входной строки Вх_строка выделяет начальную часть Нач_строка длиной Длина и остаток строки Ост_строки |
concat(Стр1,Стр2,Стр3) (string,string,string) – (i,i,o) (i,o,i) (o,i,i) (i,i,i) |
В зависимости от конкретизации переменных выполняет действия: (i,i,o) – Стр3 = Стр1 + Стр2; (i,o,i) – если Стр3 имеет начало, равное Стр1, то выделяется остаток строки, равный Стр2; (o,i,i) - если Стр3 имеет остаток Стр2, то выделяется начало строки, равное Стр1; (i,i,i) – выполняется проверка, может ли Стр3 состоять из Стр1 и Стр2 |
str_len(Строка,Длина) (string,integer) – (i,i) (i,o) |
В зависимости от конкретизации переменных выполняет действия: (i,i) – определяет, имеет ли Строка заданную Длину; (i,o) – определяет Длину Строки |
Таблица 5А.2 - Преобразование типов
Предикат |
Назначение |
char_int(Символ,Код) (char,integer) - (i,o) (o,i) (i,i) |
В зависимости от конкретизации переменных выполняет действия: (i,o) – определяет Символ по Коду; (o,i) – определяет Код по Символу; (i,i) – определяет, соответствует ли Код Символу |
str_int(Строка,Ц_Число) (string,integer) - (i,o) (o,i) (i,i) |
В зависимости от конкретизации переменных выполняет действия: (i,o) – преобразует строку из цифр в целое число; (o,i) – преобразует целое число в строку из цифр; (i,i) – определяет, соответствует ли целое число строке из цифр |
Продолжение табл. 5А.2
Предикат |
Назначение |
str_char(Строка,Символ) (string,char) - (i,o) (o,i) (i,i) |
В зависимости от конкретизации переменных выполняет действия: (i,o) – преобразует строку в символ; (o,i) – преобразует символ в строку; (i,i) – определяет, соответствует символ строке |
str_real(Строка,В_Число) (string,real) - (i,o) (o,i) (i,i) |
В зависимости от конкретизации переменных выполняет действия: (i,o) – преобразует строку из цифр в вещественное число; (o,i) – преобразует вещественное число в строку из цифр; (i,i) – определяет, соответствует ли вещественное число строке из цифр |
upper_lower(Строка_прописные , Строка_строчные) (string,string) - (i,i) (i,o) (o,i) |
В зависимости от конкретизации переменных выполняет действия: (i,o) – преобразует прописные буквы в строке Строка_прописные в строчные в строке Строка_строчные; (o,i) – преобразует строчные буквы в строке Строка_строчные в прописные в строке Строка_прописные; (i,i) – проверяет, совпадают ли прописные и соответствующие строчные буквы в строках |