- •Информация
- •Свойства информации
- •Преобразования сигнала
- •Системы счисления
- •Перевод из двоичной и шестнадцатеричной систем счисления в десятичную.
- •Перевод из двоичной системы счисления в шестнадцатеричную:
- •Правила вычитания
- •Правила умножения
- •Кодирование сигнала
- •Сложение по модулю
- •Ascii-коды
- •Коды Грея
- •Коды, учитывающие частоту символов
- •Код Штибица
- •Метод Вижинера
- •Метод Шеннона-Фано
- •Метод Хаффмена
- •Декодирование эффективных кодов
- •Методы эффективного кодирования словарей
- •Кодовое расстояние и корректирующая способность кода
- •Обнаружение ошибки
- •Коды, исправляющие ошибки
- •Комбинаторная мера
- •Аддитивная мера
- •Статистический подход к измерению информации
- •Полезность информации
- •Истинность информации
- •Виды современных компьютеров
- •Персональные компьютеры
- •Устройство управления
- •Арифметико-логическое устройство
- •Формы представления вещественных чисел
- •Коды представления числовых данных в алу
- •Сложение вещественных чисел
- •Поскольку старший числовой разряд мантиссы равен 0, она требует нормализации. Для этого:
- •Офисные пакеты
- •Настольные издательские системы
- •Системы автоматизации проектирования (сапр)
- •Инструментарий технологии программирования
- •Первое поколение эвм
- •Второе поколение эвм
- •Третье поколение эвм
- •Четвертое поколение эвм
- •Технология проектирования программ
- •Формализация задачи
- •Структурно-стилизованный способ
- •Операторный язык
- •Команда комментарии
- •Методы проектирования алгоритмов
- •Модуль Ввод и размещение
- •Модуль Ввод и анализ
- •Модуль Упорядочение
- •Модуль Определение
- •Лексический анализ
- •Синтаксический анализ
- •Семантический анализ
- •Генерация промежуточного кода
- •Оптимизация промежуточного кода
- •Компоновка
- •Выполнение и тестирование программы
- •Эволюция использования компьютеров. Проект эвм пятого поколения
- •Структура информационного процесса
- •Сбор информации
- •Первичное восприятие информации
- •Методы классификации
- •Иерархическая классификация
- •Фасетная классификация
- •Распознавание и кодирование объектов
- •Регистрация информации
- •Запись информации оператором
- •Контроль правильности записи данных
- •Первичное восприятие и измерение информации
- •Анализ результатов первичного восприятия и измерения
- •Распознавание символов
- •Восприятие информации клавиатурой
- •Первичное восприятие и измерение
- •Компьютерные сети
- •Топология сетей
- •Методы передачи данных в сетях
- •Организация обмена информацией в сети
- •Обработка информации
- •Хранение информации
- •Операции над данными
- •Линейные списки
- •Блочный способ
- •Двоичный способ
- •Индексно-последовательный способ
- •Индексно-произвольный способ
- •Размещение элементов в упорядоченном списке
- •Исходный список представлен таблицей 11:
- •Рандомизация
- •Фамилия (ключ) Числовое значение ключа
- •3) Формирование реальных номеров бакетов. Для определения константы с выполним следующие вычисления:
- •Метод квадратов. Распределение элементов по бакетам показано в таблице 20:
- •Сдвиг разрядов. Распределение элементов по бакетам показано в таблице 21:
- •Метод складывания. Распределение элементов по бакетам показано в таблице 22:
- •Оптимизированные цепочки элементов
- •Инвертированные списки
- •Иерархические структуры
- •Множественные ссылки на порожденные элементы
- •Ссылки на подобные и порожденные элементы
- •Кольцевые структуры
- •Справочники
- •Битовые отображения
- •Сетевые структуры
- •Множественные ссылки на порожденные элементы
- •Кольцевые структуры
- •Справочники
- •Битовые отображения
- •Жидкокристаллические мониторы
- •Плазменные мониторы
- •Технология вывода изображений на мониторы, использующие элт
- •Принципы организации текстовых видеорежимов
- •Принципы организации графических видеорежимов
- •Манипуляторы курсора
- •Механическая мышь
- •Устройства вывода на бумажный носитель
- •Матричные принтеры
- •Струйная технология
- •Термическая технология
- •Электрографическая технология
- •Технология формирования цвета
Выполнение и тестирование программы
Выполнение программы с целью определения логических ошибок осуществляется после успешной компоновки или по ходу интерпретации каждого оператора. При этом выявляются такие ошибки, как, например, деление на ноль или вычисление логарифма отрицательного числа. Здесь же апробируется корректность описания используемых переменных, а также законченность циклов.
Пример 1. Для программы
var CHISLO: integer;
CHISLO:=CHISLO + 1;
и (ее кода) будут выявлены две логические ошибки:
неизвестность результата ввиду отсутствия в программе оператора вывода, например, write (CHISLO);
после добавления оператора вывода в программу и выполнения последней, полученное потребителем значение переменной CHISLO имеет произвольный характер, так как не определено начальное значение этой переменной.
Тогда правильная программа вместо той, которая приведена в примере 1, могла бы иметь вид:
var CHISLO: integer;
input (CHISLO);
CHISLO:=CHISLO+1;
write (CHISLO); .
Тестирование программы имеет целью определение работоспособности программы на всем требуемом диапазоне исходных данных. Программистом составляется представительная выборка исходной информации, которая позволит определить корректность программы при любых входных параметрах.
Для программы из примера 1 задаются набором переменной CHISLO. Так, если среди этих значений будет такое, которое превышает допустимый диапазон типа integer, при выполнении программы в процессе тестирования возникает переполнение разрядной сетки (overflow), что обсуждалось ранее. Это потребует от программиста переделки исходной программы в части описания переменной CHISLO.
Эволюция использования компьютеров. Проект эвм пятого поколения
Рассмотренная технология проектирования программ реализует последовательное преобразование целого ряда сигналов, т.е. их кодирование:
Эта схема имеет два недостатка:
процесс подготовки задачи к решению на ЭВМ несоизмеримо продолжительнее самого решения: многие месяцы подготовки задачи несопоставимы с несколькими минутами ее решения компьютером;
цепочка «заказчик – ЭВМ» работает в общем случае как неисправный телефон в силу того, что в процессе общения участники этой цепочки используют несколько языков (естественный, математический, язык графических символов, язык программирования и т.д.), часть из которых неоднозначна по смыслу высказываний. Из-за этого результаты решения задачи требуется согласовывать с заказчиком и, возможно, вносить в программу изменения. Это также удлиняет процесс подготовки программного продукта.
Таким образом, продолжительность подготовки задачи к ее автоматизированному решению - одна из причин совершенствования традиционной технологии этой процедуры.
Вторая причина связана с объективной эволюцией использования компьютеров, которая показана в таблице:
Параметр |
Эволюция использования компьютеров |
||||
50-е г.г. |
60-е г.г. |
70-е г.г. |
80-е г.г. |
с 90-х г.г. 20-го века |
|
Критерий эффективности использования ЭВМ |
Машинные ресурсы |
Машинные ресурсы |
Человеческие ресурсы: трудоемкость разработки и сопровождения программ |
Трудоемкость формализации профессиональных знаний |
Полнота и скорость доступа к информации |
Расположение пользователя |
Машинный зал |
Отдельное помещение |
Терминальный зал |
Рабочий стол |
Произвольное мобильное |
Тип пользователя |
Инженер- программист |
Профессиональный программист |
Программист -пользователь |
Пользователь с общей компьютерной подготовкой |
Слабо обученный пользователь
|
Тип диалога |
Работа за пультом |
Обмен перфоносителями и машинными программами |
Интерактивный (клавиатура и экран) |
Интерактивный по жесткому меню |
Интерактивный, графический интерфейс |
Как видно из таблицы, компьютер «приближается» к конечному пользователю, который не является хорошо подготовленным в области общения с компьютером и испытывает значительные затруднения в решении своих прикладных задач с использованием компьютера. В этой связи возникает проблема организации нового типа взаимодействия конечного пользователя и компьютера. Эта проблематика получила выражение в проекте ЭВМ пятого поколения, который был опубликован в начале 80-х годов 20-го столетия в Японии.
Основная идея этого проекта – сделать общение конечного пользователя с компьютером максимально простым, подобным общению с любым бытовым прибором. Для решения поставленной задачи предлагались следующие направления:
разработка простого интерфейса, позволяющего конечному пользователю вести диалог с компьютером для решения своих задач. Подобный интерфейс может быть организован двумя способами: естественно-языковым и графическим. Поддержка естественно-языкового диалога – очень сложная и не решенная пока задача. Реальным является создание графического интерфейса, что и сделано в ряде программных продуктов, например, в ОС Windows’xx. Этот интерфейс обладает наглядностью, не требует специальных знаний. Однако разработка доступных интерфейсов решает проблему только наполовину – позволяет конечному пользователю обращаться к заранее спроектированному программному обеспечению, не принимая участие в его разработке;
привлечение конечного пользователя к проектированию программных продуктов. Это направление позволило бы включить заказчика непосредственно в процесс создания программ, что в конечном итоге сократило бы время разработки программных продуктов и, возможно, повысило бы их качество. Подобная технология связана с автоформализацией профессиональных знаний конечного пользователя и предполагает два этапа проектирования программных продуктов:
программистом создается «пустая» универсальная программная оболочка, способная наполняться конкретными знаниями и с их использованием решать практические задачи. Например, эту оболочку можно было бы заполнить правилами составления квартальных и иных балансов предприятий, и тогда она могла бы решать задачи бухгалтерского учета. Либо можно было внести туда правила зачисления абитуриентов, которые изложены ранее и использованы в примерах. В этом случае мы бы получили программный продукт, аналогичный тому, что проектировали выше, и т.д.;
конечный пользователь заполняет созданную программистом программную оболочку, вводя в нее знания, носителем которых (в некоторой предметной области) он является. Здесь может использоваться понятный интерфейс, который обсуждался выше. После этого программный продукт готов к эксплуатации.
Таким образом, предлагаемая в проекте ЭВМ пятого поколения технология подготовки прикладных задач к решению на компьютере включает два этапа и представлена на рисунке:
Программист
а) программист создает пустую программную оболочку;
Заказчик
б) заказчик (конечный пользователь) наполняет оболочку знаниями
Наполненная знаниями конечного пользователя программная оболочка готова к решению тех прикладных задач, правила решения которых внес в нее конечный пользователь. Таким образом, начинается эксплуатация программного продукта.
Предлагаемая технология имеет много серьезных проблем, связанных с представлением и манипулированием знаниями. Тем не менее, с ней связывают прорыв в области проектирования прикладных программных продуктов.
