Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lect5

.pdf
Скачиваний:
9
Добавлен:
27.03.2015
Размер:
487.39 Кб
Скачать

Функция сортировки целых чисел

void Sort::IntSort()

{

clrscr();

int size = 0;

printf("Quantity of elements: "); scanf("%d", &size);

int *array = new int[size];

for (int i=0; i<size; i++)

{

printf("[%d]: ", i); scanf("%d", &array[i]);

}

printf("\nArray before sorting:\n"); for (int i=0; i<size; i++)

printf("%d ", array[i]);

int tmp = 0;

for (int i=0; i<size - 1; i++)

for (int j=0; j<size - 1; j++) if (array[j] > array[j+1])

{

tmp = array[j]; array[j] = array[j+1]; array[j+1] = tmp;

}

printf("\n\nArray after sorting:\n"); for (int i=0; i<size; i++)

printf("%d ", array[i]);

delete []array; getch();

}

А.В.Гаврилов

41

Кафедра АППМ, НГТУ

Логическое программирование. Пролог (Prolog) – язык логического программирования

Базовым принципом языка Prolog является равнозначность представления программы и данных (декларативность), отчего утверждения языка одновременно являются и записями, подобными записям в базе данных, и правилами, несущими в себе способы их обработки

А.В.Гаврилов

42

Кафедра АППМ, НГТУ

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

Особенности языка

Описание проблемы и правил ее решения в виде предикатовфактов и правил логического вывода (в логике предикатов 1-го порядка)

Нахождение всех возможных решений с помощью механизма поиска с возвратом (backtracking) (или обратного логического вывода)

Интерпретируемый (обычно) язык с простым синтаксисом, хотя некоторые версии позволяют создавать исполняемый файл программы (exe-файл)

Запуск программы на Прологе осуществляется заданием т.н. целевого предиката, который надо доказать

А.В.Гаврилов

43

Кафедра АППМ, НГТУ

Пример программы на PDC-Prolog

Факты

Воробей – это птица.

Воробей – родитель птенца.

Правило вывода

Некто является птицей, если

него есть родитель – птица.

Программа

птица (воробей).

птица (X):– родитель (Y, X),

птица (Y).

родитель (воробей, птенец).

Запрос

птица (Z)

Все возможные решения:

Z = воробей

Z = птенец

А.В.Гаврилов

44

Кафедра АППМ, НГТУ

Пример программы на PDC-Prolog

• PREDICATES bird (symbol)

parent (symbol, symbol)

• CLAUSES

 

 

Факт

 

bird («воробей»).

 

 

 

 

 

bird (X):– parent (Y, X), bird (Y).

parent («воробей», «птенец»).

Факт

Правило вывода

• Goal: bird (Z)

Z = «воробей» Внешняя цель

Z = «птенец»

А.В.Гаврилов

45

Кафедра АППМ, НГТУ

Поиск с возвратом на PDC-Prolog

PREDICATES

РЕШЕНИЕ

 

tens (string)

 

ones (string)

Двадцать два

 

start

Двадцать три

CLAUSES

Тридцать два

 

tens («Двадцать»).

Тридцать три

 

tens («Тридцать»).

 

 

ones («два»).

 

 

ones («три»).

 

 

start :- tens (X), ones (Y), write (X, « », Y), nl, fail.

GOAL

 

 

start.

 

А.В.Гаврилов

46

Кафедра АППМ, НГТУ

Функциональное программирование. Язык программирования LISP

Особенности языка

Одинаковая форма представления данных и

программ – в виде списка или S-выражений

(вложенных друг в друга скобочных структур)

Не требуется явное описание типов данных,

используемых в программе

Основной способ решения – рекурсия

Интерпретируемый (обычно) язык с простым

синтаксисом, хотя некоторые версии позволяют

создавать исполняемый файл программы (exe-файл)

На нем написана система автоматизации проектирования AutoCAD

А.В.Гаврилов

47

Кафедра АППМ, НГТУ

Пример простой программы на LISP: Вычисление суммы 2+3

¾(+ 2 3)

можно рассматривать как список или

S-выражение или

программа или данные

>(+ 2 3) 5

>‘(+ 2 3) (+ 2 3)

>(quote (+ 2 3)) (+ 2 3)

А.В.Гаврилов

48

Кафедра АППМ, НГТУ

ТребованиякПО

Функциональность: программа должна выполнять ожидаемые функции. ФункцииФункции нужнонужно реализовывать в порядкеих необходимости заказчику, чтобы этосделать,, необходимонеобходимо «вникнуть» в предметнуюобластьиопределить, чтодействительно важноо заказчикузаказчику;; выделитьвыделить главные, вспомогательные ивторостепенные функции.

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

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

Эффективность: программа должна эффективно использовать память, процессорроцессор,, ««жёсткийжёсткий»» дискидругие ресурсысистемы. Вособых случаях (когда «медлительностьть»» системысистемы критичнакритична)) этотребование становитсяедвалине самым важным, важнее надёжностии,, ноно чащечаще онооно менееменее существенно, чем сопровождение.

Сопровождение: программа должна бытьпонятной, гибкой и «простой в сопровождениисопровождении,, переносена новые платформы иразвитии» - этотребование программистовтов,, вв отличиеотличие отот предыдущих, которые являютсятребованиямизаказчиков, пользователей.. УдобствоУдобство сопровождения, как правило, находится в противоречии с эффективностьюю ии длядля большинствабольшинства программ болееважно. Понятность программы позволяет быстроеё развиватьивать,, добавлятьдобавлять новые функции, исправлять ошибки.

А.В.Гаврилов

49

Кафедра АППМ, НГТУ

Критерии качества ПО

Внешние характеристики

–корректность

наличие/отсутствие дефектов в спецификации, проекте и реализации

–практичность

легкость изучения и использования

–эффективность

степень использования системных ресурсов

–надежность

способность системы выполнять необходимые функции; интервал между отказами

–целостность

способность предотвращать неавторизованный или некорректный доступ

–адаптируемость

возможность использования в других областях и средах

–правильность

степень безошибочности данных, выдаваемых системой

–живучесть

способность продолжать работу при недопустимых данных или в напряженных условиях

Внутренние

характеристики

–удобство сопровождения

–тестируемость

–удобочитаемость

–гибкость

–портируемость

–возможность повторного использования

–понятность

А.В.Гаврилов

50

Кафедра АППМ, НГТУ

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]