ЯЗЫК ПРОГРАММИРОВАНИЯ Паскаль

Физика
Элементы квантовой механики
Молекулярные спектры
Полупроводники
Ядерная физика конспект
Решение задач по ядерной физике
Физика атомного ядра и частиц
Примеры решения задач
Оптическая физика
Физика элементарных частиц
Законы радиоактивного распада
Задачи по теме Законы радиоактивного распада
Взаимодействие нейтронов с ядрами
Задачи на ядерные реакции
Деление и синтез ядер
Кинематика примеры задач
Электротехника
Общий курс
Теоретические основы электротехники
Расчет электрической цепи
Трехфазные цепи
Электрические машины и трансформаторы
Электрические двигатели и генераторы
Математика
Кратные интегралы
Векторный анализ
Аналитическая геометрия
Курс лекций математического анализа
ТФКП
Атомная энергетика
АЭС России
Развитие энергетики России
Курсовые по энергетике
Ядерные реакторы
РБМК
ВВЭР
Атомные реакторы на быстрых нейтронах
Физика ядерного реактора
Аварийные ситуации на АЭС
Повышение безопасности АЭС
Проблема снижения выбрасов АЭС
Системы контроля на атомной станции
Экологическая политика
Атомные батареи
Ядерные двигатели
Авария на ЧАЭС
Термоядерный синтез
Термоядерный реактор
Тепловая энергетика
Паровой котел
Тепловые станции
Системы теплоснабжения
Экологические проблемы в теплоэнергетике
Экологический аспект
Электрофильтры
Регенеративные методы
Математическое моделирование экологических систем
Ядерное оружие
Полигон Новая земля
История создания
Информатика
Архитектура ЭВМ
Операционная система
Вычислительные комплексы
Начертательная геометрия
Курс лекций
Практикум по решению задач
Геометрическое черчение
Инженерная графика
Каталог графических примеров

 

 

 

ЯЗЫК ПРОГРАММИРОВАНИЯ Паскаль

12.1. ОСНОВНЫЕ ПОНЯТИЯ

Основные понятия алгоритмического языка

Основные символы
Элементарные конструкции

12.2. ТИПЫ ДАННЫХ

Концепция типа для данных
Стандартные типы данных
Перечисляемый тип данных
Интервальный тип данных
Массивы
Строки
Множества
Записи
Указатели

12.3. КОНСТАНТЫ

12.4. ПЕРЕМЕННЫЕ. ИНИЦИАЛИЗАЦИЯ ПЕРЕМЕННЫХ>12.5. ВЫРАЖЕНИЯ

Битовая арифметика
12.6. ОПЕРАТОРЫ
Оператор присваивания
Операторы ввода и вывода
Условный оператор
Циклические конструкции в программах
Оператор варианта
Оператор перехода
Операторы выхода

12.7. СТРУКТУРА ПРОГРАММЫ

12.8. ПРОЦЕДУРЫ И ФУНКЦИИ

12.9. МОДУЛИ

12.10. ФАЙЛЫ

Текстовые файлы
Компонентные файлы
Бестиповые файлы
Последовательный и прямой доступ
12.11. ДИНАМИЧЕСКИЕ ПЕРЕМЕННЫЕ>12.12. ЭЛЕМЕНТЫ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ>12.13. ВВЕДЕНИЕ В ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
Объекты
Инкапсуляция
Наследование
Полиморфизм
Динамические объекты
Закрытие части объекта
12.14. Практические задачи на программирование
Задачи на программирование алгоритмов линейной структуры
Задачи на программирование алгоритмов ветвящейся структуры
Задачи на программирование алгоритмов циклической структуры
Задачи на использование одномерных массивов
Задачи на использование двумерных массивов
Задачи на обработку строк
Задачи на использование типа "запись"
Задачи на построение процедур и функций
Задачи на работу с файлами

12.15. Контрольные вопросы

12.16. Глоссарий

12.17. Библиографический список

ТЕСТ

Задача 1. Проверьте закон двойного отрицания в исчислении высказываний

не (не А) º А

Р е ш е н и е . Рассмотрим объединенную таблицу истинности высказываний

      А                       не А           не (неА)

да

нет

да

нет

да

нет

Сравнение крайних столбцов показывает, что всюду, где высказывание А истинно, там же истинно и двойное отрицание не (не А). И наоборот, всюду, где ложно А, там ложно и двойное отрицание не (не А). Следовательно, двойное отрицание тождественно исходному высказыванию: не (не А) º А.

Задача 2. Сравните с помощью таблиц истинности отрицание дизъюнкции и отрицание конъюнкции не (А и В) и не (А или В).

Р е ш е н и е .

А                                В                            А и В         не (А и В)         А или В                  не (А или В)

да

да

да

нет

да

нет

да

нет

нет

да

да

нет

нет

да

нет

да

да

нет

нет

нет

нет

да

нет

да

В о п р о с ы

1. Когда истинно отрицание?

2. Когда ложна дизъюнкция?

3. Когда истинна конъюнкция?

4. Когда ложна импликация?

З а д а н и е

1. Составьте таблицы истинности для утверждений:

а) (не А) и (не В);       в) (не А) или (не В);

б) А и (не В);               г) А или (не В).

2. Сравните с помощью таблиц истинности логические выражения:

а) не (А и В);               в) (не А) или (не В);

б) не (А и В);               г) (не А) или (не В).

3. Проверьте по таблицам истинности логические законы:

а) отрицание конъюнкции:

не (А и В) = (не А) или (не В);

б) отрицание дизъюнкции:

не (А или В) = (не А) и (не В);

в) отрицание импликации:

не (А ® В) º (не В) ® (не А).

3.3. Элементы языка Пролог

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

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

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

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

Факты - это конкретные сведения о ком-то либо о чем-то. Факты на языке Пролог записываются в форме предикатов с конкретными аргументами-значениями. Примеры записи фактов на Прологе:

папа (Вова, Лена);                            - Вова - папа Лены

любит (Лена, музыка);                     - Лена любит музыку

оценка (Лена, русский, 5);                              - У Лены 5 по русскому языку

Вопросы на Прологе - это запросы к совокупности данных или процедурам, хранящимся, в ЭВМ. Запись вопросов начинается со знака ?, за которым записывается предикат или группа предикатов, разделяемых запятыми. Примеры записи простых вопросов на языке Пролог:

? папа (х, Лена)                                                  - Кто папы Лены?

х = Вова

? мама (х, у)                                         - Кто у кого - мама ?

НЕТ

? оценка (х, _ , 5)                                                - Кто имеет оценки 5?

х = Лена

Здесь буквы х, у - обозначения переменных, а числа и слова - конкретные значения аргументов в соответствующих предикатах. Знак подчеркивания «_» представляет неопределенное значение, которое несущественно для ответа на вопросы.

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

                

? мама (х, у), мама (у, Оля)             - Кто мама у мамы Оли?

х = Зина у = Люба

? мама (х, у), папа (у, Оля)              - Кто мама у папы Оли?

НЕТ

Правила в Прологе - это правила логического вывода. Слева в правилах записывается следствие, а справа - предусловие. Предусловие может состоять из одного или нескольких предикатов, разделяемых запятыми. Примеры записи правил вывода на Прологе:

студент (х) ¬ занятие (х, учеба);                                 - Студент - тот, кто занят учебой;

нумизмат (х) ¬ собирает (х, монеты);                        - Нумизмат - тот, кто собирает монеты.

Примеры вопросов на использование этих правил:

? студент (х)                        - Кто - студент?

х = Алеша    

х = Лена

? нумизмат (у)                     - Кто - нумизмат?

у = Алеша

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

Приведем пример составления базы знаний о друзьях. Будем различать друзей по их именам: Алеша, Оля и т. д. Включим в базу данных следующие сведения о друзьях:

что им нравится;

что они коллекционируют;

чем они занимаются;

какие оценки они имеют.

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

нравится (<имя>, <вещь>);

собирает (<имя>, <вещь>);

занимается (<имя>, <предмет>);

оценка (<имя>, <предмет>, <балл>);

Вместо <имя>, <вещь>, <предмет>, <балл> при составлении базы знаний необходимо подставить конкретную информацию о конкретных друзьях. Записывать имена будем с большой буквы в именительном падеже. Далее, <вещь> и <предмет> - это существительные в именительном падеже, <балл> - целое число от 1 до 5.

Пусть об Оле и Алеше известно следующее:

1. Оле нравится музыка. Она собирает фотографии любимых певцов. Занимается домоводством. Оля имеет 4 по русскому языку и  5 по алгебре.

2. Алеше нравится история, он собирает монеты, естественно, имеет 5 по истории, занимается в археологическом кружке.

Соответствующая база данных на языке Пролог:

нравится (Оля, музыка);                  - Оле нравится музыка

нравится (Алеша, история);           - Алеше нравится история

собирает (Оля, фотографии);         - Оля собирает фотографии

собирает (Алеша, монеты);            - Алеша собирает монеты

собирает (Алеша, значки);             - Алеша собирает значки

оценка (Оля, русский, 4);                 - Оля имеет 4 по русскому языку

занимается (Алеша, бизнес);          - Алеша занимается бизнесом

оценка (Оля, алгебра, 5);                 - Оля имеет оценку 5 по алгебре

оценка (Алеша, история, 5);           - Алеша имеет оценку 5 по истории

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

? занимается (Алеша, футбол) - Занимается ли Алеша футболом?

нет

? нравится (Оля, музыка)     - Нравится ли Оле музыка?

да

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

? нравится (х, у)                                                                 - Кому что нравится?

х = Оля                                  у = музыка

х = Алеша                            у = история

Если какая-то часть информации по той или иной причине не нужна, то вместо соответствующей переменной в вопросе ставится знак подчеркивания «_»:

? собирает (_ , х)                                - Что собирают друзья?

 х = фотографии

х = монеты

х = значки

Наконец, в вопросах можно одновременно использовать как переменные, так и конкретные значения. Например:

? занимается (х, музыка)                 - Кто занимается музыкой ?

нет

? занимается (Алеша, у)                                   - Чем занимается Алеша ?

у = бизнес

? собирает (х, монеты)                                     - Кто собирает монеты ?

х = Алеша

? оценка (х, _ , 5)                                - Кто имеет пятерки?

х = Оля

х = Алеша

Примеры сложносоставных вопросов:

1. Кто занимается бизнесом и собирает монеты?

? занимается (х, бизнес), собирает (х, монеты)

х = Алеша

2. Какие оценки имеет тот, кто собирает монеты?

? собирает (х, монеты), оценка (х, р, z)

х = Алеша

р = история

z = 5

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

книголюб (х) ¬ нравится (х, книги),                            - Книголюб - тот, кто

собирает (х, книги)                                                                            любит и собирает книги

бизнесмен (х) ¬ собирает (х, монеты),                       - Бизнесмен - тот, кто

занятие (х, бизнес)                                                                             собирает монеты и занима             ется бизнесом

Примеры использования правил-определений:

? книголюб (х)                                    - Кто - книголюб?          

НЕТ

? бизнесмен (у)                                    - Кто - бизнесмен ?

у = Алеша

В о п р о с ы

1. Как записываются факты на языке Пролог?

2. Как записываются вопросы на языке Пролог?

3. Как записываются правила в языке Пролог?

З а д а ч и

1. Опишите на языке Пролог данные о своей семье: о маме, папе, сестрах, братьях, дедушках и бабушках - кто кому приходится мамой и папой. Укажите вопросы для определения родственных отношений.

2. Опишите данные о своих друзьях с указанием их увлечений (кто что любит), занятий (кто чем занимается). Подберите правила для определения понятий:

а) сластена;                         д) спортсмен;

б) филателист;                    е) бизнесмен;

в) математик;                      ж) музыкант;

г) программист;                  з) мусорщик.

3. Опишите в форме фактов для себя и своих ближайших друзей-одноклассников данные об оценках по предметам:

а) литература;                    г) физкультура;

б) математика;                   д) информатика;

в) физика;                             е) история.

4. Подберите правила определения понятий:

а) математик;                      д) физик;

б) историк;                           е) лирик;

в) двоечник;                         ж) троечник.

г) отличник;

 

На главную