Операции сравнения для поиска минимума среди четырех значений

Выражение Minimum
(Ch1 < Ch2) AND (Ch1 < Ch3) AND (Ch1 < Ch4) Ch1
(Ch2 < Ch3) AND (Ch2 < Ch4) Ch2
Ch3 < Ch4 Ch3
{else} Ch4

Поэтому количество операторов WRITE в программе MinSort4B требуется всего лишь 4 + 3+ 2 = 9. В общем количество операторов WRITE для сортировки n-строки будет

n + (n – 1) + … + 3 + 2

Сравнение с IFSort и MinSort:

Количество операторов Write
N IFSortN MinSortN MINSortNB
       
       
       
       
  5 040    
  40 320    
  362 880    
  3 628 800 1 022  

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

Заключение.

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

Комментарии состояния – это пример использования Булевой логики для рассуждения о действии программы. Всякий раз, когда сложная ситуация включает отрицание, объединение или выбор, булевы операторы NOT, AND и OR делают возможным формальный анализ. Булевы выражения могут всегда быть поняты путем построения таблиц истинности, но многие факты булевых условий могут быть наилучшим образом выражены из булевых тождеств и свойств операторов сравнения.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: