Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика 1 семестр.doc
Скачиваний:
33
Добавлен:
10.05.2015
Размер:
1.62 Mб
Скачать

Язык программирования Пролог

Является представителем семейств языков логического программирования. Его особенности в сравнении с традиционными алгоритмическими языками:

  • программа на Прологе не является алгоритмом, а представляет собой запись условия задачи на языке формальной логики;

  • язык Пролог предназначен не для решения вычислительных или графических задач, а для решения логических задач, для моделирования процесса логического умозаключения человека;

  • Пролог требует особого стиля мышления программиста. Изучению Пролога должно предшествовать изучение математической логики.

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

  1. объявление фактов об объектах и отношениях между ними;

  2. определение правил взаимосвязи объектов и отношений между ними;

  3. формулировка вопроса об объектах и отношениях между ними.

Основные понятия языка:

Предикат – конструкция вида P(t, t, … t), выражающая какую-то связь между некоторыми объектами или свойствами объектов.

Факты – это предикаты с аргументами-константами, обозначающие отношения между объектами или свойства объектов, именованные этими константами.

Правила – логические формулы с заголовками и одной или несколькими подцелями-предикатами.

Вопрос – отправная точка логического вывода, происходящего при выполнении программы.

Пример 1.

В базе знаний используются два предиката: нравится и носит; и одно правило – крутойпарень.

Определим факты:

нравится(сергей, рэп)31.

нравится(юрий, джаз).

носит(сергей, блейзер)32.

носит(юрий, пиджак).

Определим правило

крутойпарень(Х):-нравиться(Х,рэп),носит(Х, блейзер)

Правило трактуется следующим образом: «если Х нравится рэп и он носит блейзер, то он крутой парень».

Сформулируем вопрос

? – крутойпарень(юрий)33.

База данных сформулирует ответ «Нет».

На вопрос

? – крутойпарень(А)34.

будет получен ответ «А=сергей»

Отметим, что машина не понимает используемых в программе имен «нравиться», «носит» и т.д. Можно использовать любые другие обозначения. Для интерпретатора существенны только совпадения имен и связи между предикатами.

Список – множество объектов. Может задаваться через перечисление объектов и понятия головы и хвоста списка.

Например, в списке [X|Y] X – голова списка, Y- хвост. Хвост списка всегда является списком. Пустой список обозначается как []

Пример 2. Определение числа элементов в списке

сколько ( [ ], 0 ).

сколько ( [ A | B ], N ):= сколько (B, M), N is M+1.

сколько ( [саша, игорь, лена], X ):

Ответ Х=3.

Тесты для самопроверки

1. Одним из пяти основных свойств алгоритма является

а) информативность

б) оперативность

в) конечность

г) адекватность

д) цикличность

2. Какая каноническая (базовая) структура изображена на рисунке?

а) следование

б) выбор

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

г) цикл с предусловием

д) цикл с постусловием

3. В объектно-ориентированном программировании каждый объект по отношению к своему классу является

а) кодом

б) фрагментом

в) функцией

г) экземпляром

д) свойством

4. Переменная – это …

а) описание действий, которые должна выполнять программа

б) порядковый номер элемента в массиве

в) область памяти в которой хранится некоторое значение

г) законченное минимальное смысловое выражение на языке программирования

д) служебное слово на языке программирования

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

а) Const pi = 3,14159;

б) Const число = 'плавающая';

в) Var abc : real;

г) Type a : real;

6. В каком случае завершается выполнение тела цикла Repeat..Until?

а) условие истинно

б) условие ложно

7. Сколько раз выполнится тело цикла?

a := 13 ;

b := 7 ;

for i:=a downto b do

8. Чему будет равно значение переменной а после выполнения фрагмента программы на Паскале?

а := -5;

j := 10;

k := 19;

for i:=j to k do

a:=a+1;

9. Задан одномерный массив X1, X2, … XN. Фрагмент алгоритма

определяет

а) количество отрицательных элементов

б) индекс первого отрицательного элемента

в) минимальный элемент массива

г) индекс минимального элемента массива

д) индекс последнего отрицательного элемента

Задания для самопроверки

1. Разработать базу знаний на Прологе для описания взаимоотношений в семье (рис 2.4)

Рис. 2.4. Родственные отношения в семье

Используя предикаты МАМА, ПАПА, ПОЛ определить факты, описывающие членов семьи.

Определить правила БАБУШКА, ДЕДУШКА, ДОЧЬ, СЫН.

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

? бабушка (Сережа)

? бабушка (Надя)

? дочь (Надя)

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

      • ввод N целых чисел,

      • вычисление суммы четных из введенных чисел,

      • вычисление произведения нечетных из введенных,

      • вывод результата вычислений.

Тема 3. Технические средства реализации информационных процессов

План

  1. Офисная техника

  2. История развития средств вычислительной техники

  3. Методы классификации компьютеров

  4. Архитектура ЭВМ

  5. Базовая аппаратная конфигурация ПК

  6. Внутренние устройства системного блока ПК

  7. Системы, расположенные на материнской плате ПК

  8. Периферийные устройства ПК

  9. Общая схема ПК

3.1. Офисная техника

Офисная техника – неотъемлемая часть технического оборудования любого офиса. К офисной технике35 можно отнести любые технические средства, облегчающие работу в офисе, начиная от карандашей и авторучек и кончая компьютерами и их сетями (рис.3.1).

Офисная организационная техника (оргтехника) - технические средства, применяемые для механизации и автоматизации управленческих и инженерно-технических работ.

Рис. 3.1. Классификация средств оргтехники

3.2. История развития средств вычислительной техники

История счётных устройств насчитывает много веков. Приведем некоторые наиболее значимые события этой истории.

1642 г. Французский ученый Блез Паскаль приступил к созданию арифметической машины — механического устройства с шестернями, колёсами, зубчатыми рейками и т.п. Она умела "запоминать" числа и выполнять элементарные арифметические операции.

В 1694 г. немецкий математик и философ Готфрид Вильгельм Лейбниц, используя чертежи и рисунки Паскаля, улучшил машину Паскаля, добавив возможность перемножать числа. Вместо обычных шестеренок Лейбниц использовал пошаговый барабан.

1834 г. Английский ученый Чарльз Бэббидж составил проект "аналитической" машины, в которую входили: устройства ввода и вывода информации, запоминающее устройство для хранения чисел, устройство, способное выполнять арифметические операции, и устройство, управляющее последовательностью действий машины. Команды вводились с помощью перфокарт. Проект не был реализован.

1936 г. английский математик Алан Тьюринг и независимо от него Э. Пост выдвинули и разработали концепцию абстрактной вычислительной машины. Они доказали принципиальную возможность решения автоматами любой проблемы при условии возможности её алгоритмизации.

1938 г. Американский математик и инженер Клод Шеннон показал возможность применения аппарата математической логики для синтеза и анализа релейно-контактных переключательных схем.

1944 г. Под руководством американского математика Говарда Айкена создана автоматическая вычислительная машина "Марк—1" с программным управлением. Она была построена на электромеханических реле, а программа обработки данных вводилась с перфоленты.

1945 г. Джон фон Нейман в отчёте "Предварительный доклад о машине ЭНИАК" сформулировал основные принципы работы и компоненты современных компьютеров.

1948 г. Норберт Винер (Norbert Wiener) опубликовал книгу "Кибернетика", оказавшую влияние на все последующие исследования в области искусственного интеллекта.

1951 г. В Киеве построен первый в континентальной Европе компьютер МЭСМ (малая электронная счетная машина), имеющий 600 электронных ламп. Создатель Сергей Аалександрович Лебедев.

В 1974 г фирмой Intel (INTegrsted Electronics) создан микропроцессор i8080, который использовался в первом в мире персональном компьютере (ПК) «Альтаир».

В 1977 г. была основана фирма Apple Computer. Был запущен в серийное производство ПК Apple-II. В том же году началась продажа компьютеров фирм Commodore, Tandy и др.

В 1981 г. появился ПК фирмы IBM (International Business Machines), названный IBM PC (Personal Computer), который стал фактически стандартом этого класса машин.

Как уже было сказано выше, в основу построения подавляющего большинства современных компьютеров положены следующие общие принципы, сформулированные в 1945 г. американским ученым Джоном фон Нейманом.

1. Принцип программного управления. Из него следует, что программа состоит из набора команд, которые выполняются процессором автоматически друг за другом в определенной последовательности.

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

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

Таким образом, процессор исполняет программу автоматически, без вмешательства человека.

2. Принцип однородности памяти. Программы и данные хранятся в одной и той же памяти. Поэтому компьютер не различает, что хранится в данной ячейке памяти — число, текст или команда. Над командами можно выполнять такие же действия, как и над данными. Это открывает целый ряд возможностей. Например, программа в процессе своего выполнения также может подвергаться переработке, что позволяет задавать в самой программе правила получения некоторых ее частей (так в программе организуется выполнение циклов и подпрограмм). Более того, команды одной программы могут быть получены как результаты исполнения другой программы. На этом принципе основаны методы трансляции — перевода текста программы с языка программирования высокого уровня на язык конкретной машины.

3. Принцип адресности. Структурно основная память состоит из перенумерованных ячеек; процессору в произвольный момент времени доступна любая ячейка. Отсюда следует возможность давать имена областям памяти, так, чтобы к запомненным в них значениям можно было впоследствии обращаться или менять их в процессе выполнения программ с использованием присвоенных имен.