русс | укр

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

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Design part 3.2


Дата добавления: 2015-06-12; просмотров: 589; Нарушение авторских прав


 

BEGIN {Сортируем Ch1, Ch2 в OUTPUT }

IF Ch1 < Ch2

THEN

WRITE(Ch1, Ch2)

ELSE

WRITE(Ch2, Ch1)

END

 

После сборки разработочной программы Minsort3 будет иметь 6 операторов WRITE, как и IFSort3. На что же будет похода процедура MinSort4? Нам нужно только поменять раздел проекта 3, для того чтобы включить в него дополнительную переменную Ch3. Новый раздел проекта потребуется для нахождения минимального значения из Ch1, Ch2, Ch3, Ch4. Затем разделы проекта 3.1 и 3.1.1 могут быть повторно использованы для того, чтобы оставить оставшиеся символы в Ch1, Ch2 и Ch3. Т.е. Minsort4 просто записывает минимум и уменьшает сложности до уровня MinSort3.

Для того, чтобы найти минимум из 4-х переменных, потребуется оператор IF вложенностью как минимум 3 уровня в глубину, потому что минимальное значение должно предшествовать или быть равно трем другим переменным. Фактичести, 3 уровня вложенности достаточны, поскольку условия операторов IF могут быть организованы в таблице:

 

Сравнения для поиска минимума из четырех переменных
Условие Минимум
Ch1 < Ch2  
Ch1 < Ch3  
Ch1 < Ch4 Ch1
Ch4 <= Ch1 Ch4
Ch3 <= Ch1  
Ch3 < Ch4 Ch3
Ch4 <= Ch3 Ch4
Ch2 <= Ch1  
Ch2 < Ch3  
Ch2 < Ch4 Ch2
Ch4 <= Ch2 Ch4
Ch3 <= Ch2  
Ch3 < Ch4 Ch4
Ch4 <= Ch3 Ch4

 

Трехуровневой оператор IF потребует 8 операторов Write, поэтому количество операторов Write в программе MinSort4 будет 8 + 4 + 2 = 14, по сравнению с 4 * 3 * 2 * 1 = 24 для программы IFSort4.

 

Таблица ниже показывает количество операторов Write в двух семействах программ:

2 + 4 + 8 + 16 + … + 2^N-1 (MinSortN)



2 * 3 * 4 * 5 * … * N (IFSortN)

 

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

 

Как видите, изменения проекта может привести к уменьшению размера программ. Однако даже программы MinSort растут довольно быстро.

Программы семейства MinSort были открыты с использованием другой стратегии проектирования:

Для решения одной задачи семейства, подумайте о способе решения меньших задач.

Подход IFSort трансформирует решения для меньших задач семейства в решения для более сложных задач, а программа MinSort – напротив, идет в противоположном направлении.

 

Анализируя эти простые стратегии сортировки, мы приходим к двум принципам проектирования программ:

  1. Тщательно поразмышляйте о проекте, который может привести к программе меньшего размера.
  2. Хорошая стратегия проектирования – это решение задачи путем уменьшения ее до более простого случая.

 



<== предыдущая лекция | следующая лекция ==>
Семейство программ IFSort | Оператор AND


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.332 сек.