Оценить:
 Рейтинг: 0

История развития законов. ТРИЗ

Год написания книги
2018
<< 1 2 3 4 5 >>
На страницу:
4 из 5
Настройки чтения
Размер шрифта
Высота строк
Поля
Описание алгоритма нахождения НОД делением.

– Большое число делим на меньшее.

– Если делится без остатка, то меньшее число и есть НОД (следует выйти из цикла).

– Если есть остаток, то большее число заменяем на остаток от деления.

– Переходим к пункту 1.

Например, необходимо найти НОД для 30 и 18.

30/18 = 1 (остаток 12)

18/12 = 1 (остаток 6)

12/6 = 2 (остаток 0). Конец: НОД – это делитель. НОД (30, 18) = 6

Пример 2.15. Компилятор

Большинство компиляторов переводит программу с некоторого высокоуровневого языка программирования в машинный код, который может быть непосредственно выполнен процессором.

Компилятор состоит из следующих этапов.

1. Лексический анализ. На этом этапе последовательность символов исходного файла преобразуется в последовательность лексем. Цель лексического анализа – подготовить входную последовательность к грамматическому анализу.

2. Синтаксический (грамматический) анализ. Последовательность лексем преобразуется в дерево разбора.

3. Семантический анализ. Дерево разбора обрабатывается с целью установления его семантики (смысла) – например, привязка идентификаторов к их декларациям, типам, проверка совместимости, определение типов выражений и т. д. Результат обычно называется «промежуточным представлением/кодом», и может быть дополненным деревом разбора, новым деревом, абстрактным набором команд или чем-то еще, удобным для дальнейшей обработки.

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

5. Генерация кода. Из промежуточного представления порождается код на целевом языке. В конкретных реализациях компиляторов эти этапы могут быть разделены или, наоборот, совмещены в том или ином виде.

Каждый из этих этапов имеет свою программу, работающую по определенному алгоритму – процессу.

Продолжим рассматривать понятие функции

Функции можно классифицировать:

– по полезности;

– степени их выполнения.

Опишем классификацию функций:

1. по полезности:

– полезные;

– бесполезные;

– вредные.

2. по степени выполнения полезных функций:

– достаточные;

– избыточные;

– недостаточные.

Полезная функция – функция, обеспечивающая работоспособность системы.

Бесполезная функция – функция, не обеспечивающая работоспособность системы. Иногда такие функции называют лишними.

Вредная функция – функция, создающая нежелательный эффект.

Достаточная функция – функция, создающая необходимое (достаточное) действие.

Избыточная функция – функция, создающая избыточное действие.

Недостаточная функция – функция, создающая недостаточное действие.

Следует отметить, что избыток и недостаток полезной функции следует рассматривать как вредную функцию.

Пример 2.16. Холодильник

Функция холодильника – это охлаждать продукт, например мясо.

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

Вреднаяфункция холодильника – шум компрессора.

Достаточная функция холодильника – нормальное охлаждение до заданной температуры.

Избыточная функция холодильника – избыточное охлаждение (переохлаждение) – ниже требуемой температуры.

Недостаточная функция холодильника – недостаточное охлаждение – выше требуемой температуры.

Пример 2.17. Газовая плита

Функция газовой плиты – греть объект, например воду или мясо.

Бесполезная функция газовой плиты – нагрев окружающей среды (лишний расход тепла).

Вреднаяфункция газовой плиты – утечка газа.

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

<< 1 2 3 4 5 >>
На страницу:
4 из 5