Файл: Конспект лекций введение.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 07.11.2023

Просмотров: 86

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Рис. 20

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

Примечание: необходимо выполнить 94 операции.

Примером инварианта цикла является вычисление выражения 2*j. Результат вычисления этого выражения зависит только от операнда j, значение которого не изменяется во время выполнения цикла. Таким образом, мы можем поместить четвёрку 5 непосредственно перед началом выполнения цикла. Аналогичные соображения относительно четвёрок 6 и 7.

В результате получим новую последовательность четверок
(рис. 21). Общее количество четвёрок остаётся тем же, но количество четвёрок в цикле уменьшилось с 12 до 9. Каждое выполнение предложения
FOR вызывает десятикратное выполнения тела цикла. Это означает, что общее количество операций, необходимых для выполнения FOR, сократилось со 121 до 94.

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

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


1)

*

#2

J

i3

вычисление инвариантов

2)

-

i3

#1

i4




3)

-

i4

#1

i5




4)

: =

#1




I

инициализация цикла

5)



I

#10

(14)




6)

-

I

#1

i1

вычисление индексов для Х

7)

*

i1

#10

i2




8)

+

i2

i5

i6




9)

+

i2

i4

i12

вычисление индексов для Y

10)

: =

Y[i12]




X[i6]

операция присваивания

11)

+

#1

I

i14

конец цикла

12)

: =

i14




I




13)

GOTO







(5)




14)












следующая операция



Рис. 21

Контрольные вопросы


  1. В чем заключается основная цель фазы оптимизации?

  2. Какие существуют критерии эффективности для оптимизации кода?

  3. Преобразования, осуществляемые на фазе оптимизации, должны приводить к программе, эквивалентной исходной или иной?

  4. Что такое машинно-зависимая оптимизация?

  5. Что такое машинно-независимая оптимизация?

  6. Что такое оптимизация константные вычисления

  7. В чем принцип уменьшения силы операций?

  8. Что такое общие подвыражения?

  9. Что такое инварианты циклов?


Лекция 5. ОРГАНИЗАЦИЯ ДИАЛОГА

В ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ


План:

  1. Этапы проектирования.

  2. Типы диалога.

  3. Проектирование диалога типа «меню».

  4. Проектирование диалога типа «вопрос-ответ».

  5. Проектирование диалога типа «заполнение бланка».

  6. Проектирование диалога типа «прямой режим».

  7. Средства помощи и поддержки в интерактивной системе.


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

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

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

1) Прежде всего важна окупаемость затраченных средств.

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

3) Важной является скорость выполнения поставленных перед системой задач.

4) Должна быть высокой наглядность представления данных.

5) Существенно, чтобы новая интерактивная система не вносила
путаницы там, где уже есть другие системы, к которым пользователи привыкли. Возможными источниками такой путаницы может быть:

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

б) нестандартное использование клавиш специального назначения или других клавиш;

в) различие в размещении данных на экране монитора.

6) Система должна быть гибкой, особенно, если она создается для долговременного использования. При этом, необходимо оговорить, что стоимость системы окажется выше, чем первоначально ожидалось, так как ее модернизация потребует дополнительных расходов.

7) Если создаваемая система при работе создает собственные системы, то должен осуществляться контроль за ресурсами.
1. Проектирование интерактивных систем
Этапы проектирования интерактивной системы;

1) предложение новой системы;

2) постановка задачи;

3) детальная разработка системы;

4) тестирование системы;

5) внедрение системы.

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

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

  • выбор из меню;

  • вопрос-ответ;

  • заполнение бланков

  • с произвольным порядком заполнения;

  • с указанием порядка заполнения автоматическим перемещением курсора

  • “прямой режим” с использованием языка команд.

При организации диалога используются различные режимы вывода информации на экран монитора:

  • режим “весь экран” (при этом после каждого ответа изменяется вся информация на экране или добавляется информация в определенное место экрана);

  • режим “строка за строкой” (на экран выводится одна строка и после каждого шага диалога одна строка изменяется на другую, при этом вся информация на экране стирается и новая строка появляется в определенном месте экрана);

  • переход от одной страницы к другой (очередная вводимая или выводимая строка появляется на экране внизу и одновременно теряется одна строка вверху; недостаток этого варианта в том, что информация на экране кажется непрерывно движущейся, так, что данные
    трудно рассмотреть; с другой стороны, всегда видна последняя часть диалога);

  • редактирование содержимого экрана (это своего рода экранные редакторы, позволяющие изменять информацию на экране).



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

Общепринято, что системы, основанные на выборе меню, являются подходящими для новичков и случайных пользователей по двум причинам:

1) обычно наряду со списком действий, которые нужно предпринять, имеется достаточное число инструкций;

2) одно меню похоже на другое и это придает уверенности пользователю.

Но такие системы не лишены и недостатков:

1) такой тип диалога может показаться скучным для опытных пользователей;

2) они требуют больше компьютерных ресурсов, чем системы, использующие менее многословные типы диалога.

Режим “весь экран” больше подходит для меню, так как он допускает широкое использование инструкций и других средств помощи пользователю.

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

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

Меню могут существовать внутри других типов диалога. В частности, они могут появляться внутри диалога “вопрос-ответ” в момент, когда нужно перейти по одному из нескольких направлений. Это позволит сократить число вопросов.
3. Диалог типа "вопрос-ответ"
Диалог "вопрос-ответ" ведется точно так, как подразумевает название: система задает вопрос, пользователь дает ответ.

Достоинства такого типа диалога:

  1. пригоден для неопытных пользователей;

  2. легок при обучении.

Не лишен такой диалог и недостатков:

  1. неудобен, если требуется неоднозначный или обширный ответ;

  2. диалог должен соответствовать каждому конкретному приложению;

  3. интерактивная система с таким диалогом лишена гибкости, так как структура диалога зафиксирована.