- •552800 И 654600 - Информатика и вычислительная техника
- •Введение
- •Часть 1. Информатика и современное общество
- •1. Информатизация общества и информатика
- •1.1. Информационное общество
- •1.2. Понятие информатики
- •Средства для преобразования информации
- •Часть 2. Информация, ее представление и измерение
- •2. Информация
- •2.1. Понятие и характерные черты информации
- •2.2. Классификация информации
- •2.3. Свойства информации
- •3. Сигнал как материальный носитель информации
- •3.1. Виды сигнала
- •3.2. Преобразования сигнала
- •3.3. Системы счисления
- •3.3.1. Правила перевода чисел из одной системы счисления в другую
- •3.3.1.1. Правила перевода целых чисел
- •3.3.1.2. Правила перевода правильных дробей
- •3.3.1.3. Правило перевода дробных чисел
- •3.3.2. Правила выполнения простейших арифметических действий
- •3.3.2.1. Правила сложения
- •3.3.2.2. Правила вычитания
- •3.3.2.3. Правила умножения
- •3.3.2.4. Правила деления
- •4. Кодирование дискретного сигнала
- •4.1. Кодирование по образцу
- •4.1.1. Прямые коды
- •4.1.2. Ascii-коды
- •4.1.3. Коды, учитывающие частоту информационных элементов
- •4.1.4. Коды Грея
- •4.1.5. Код Штибица
- •4.2. Криптографическое кодирование
- •4.2.1. Метод простой подстановки
- •4.2.2. Метод Вижинера
- •4.3. Эффективное кодирование
- •4.3.1. Метод Шеннона-Фано
- •4.3.2. Метод Хаффмена
- •4.3.3. Повышение эффективности кодирования
- •4.3.4. Декодирование эффективных кодов
- •4.3.5. Специальные методы эффективного кодирования
- •4.3.5.1. Методы эффективного кодирования числовых последовательностей
- •4.3.5.2. Методы эффективного кодирования словарей
- •Основной вспомогательный
- •4.3.5.3. Методы эффективного кодирования естественно-языковых текстов
- •4.4. Помехозащитное кодирование
- •4.4.1. Искажение кодовых комбинаций
- •4.4.2. Кодовое расстояние и корректирующая способность кода
- •4.4.3. Коды, исправляющие ошибки
- •5. Измерение информации
- •5.1. Структурный подход к измерению информации
- •5.1.1. Геометрическая мера
- •5.1.2. Комбинаторная мера
- •5.1.3. Аддитивная мера
- •5.2. Статистический подход к измерению информации
- •5.3. Взаимосвязь структурного и статистического подходов к измерению информации
- •5.4. Семантический подход к измерению информации
- •5.4.1. Целесообразность информации
- •5.4.2. Полезность информации
- •5.4.3. Истинность информации
- •6. Качество информации
- •Часть 3. Компьютер как основной элемент информационного процесса
- •7. Структура компьютера и принципы его функционирования
- •8. Виды современных компьютеров
- •9. Структурные элементы компьютера
- •9.1. Память
- •9.1.1. Внутренняя память
- •9.1.2. Внешняя память
- •9.1.2.1. Физическая и логическая структура магнитных дисков
- •9.2. Устройство управления
- •9.3. Арифметико-логическое устройство
- •9.3.1. Структура и принцип действия
- •9.3.2. Формы представления числовых данных
- •9.3.2.1. Формы представления целых чисел
- •9.3.2.2. Формы представления вещественных чисел
- •9.3.3. Коды представления числовых данных
- •9.3.4. Принципы выполнения арифметической операции сложения
- •9.3.4.1. Сложение целых чисел
- •9.3.4.2. Сложение вещественных чисел
- •10. Виды программного обеспечения компьютера
- •Инструментарий технологии программирования.
- •10.1. Системное программное обеспечение
- •Системное по базовое по сервисное по (утилиты) операционные системы операционные оболочки
- •10.2. Пакеты прикладных программ
- •10.3. Инструментарий технологии программирования
- •Инструментарий технологии программирования
- •11. Поколения эвм
- •12. Технология проектирования программ
- •12.1. Формализация задачи
- •12.2. Программирование задачи
- •12.2.1. Разработка алгоритма
- •12.2.1.1. Способы описания алгоритма
- •12.2.1.2. Методы проектирования алгоритмов
- •12.3. Отладка программы
- •13. Эволюция использования компьютеров. Проект эвм пятого поколения
- •Часть 4. Фазы обращения информации
- •14. Структура информационного процесса
- •15. Сбор информации
- •15.1. Методы классификации
- •15.1.1. Иерархическая классификация
- •15.1.2. Фасетная классификация
- •15.2. Методы кодирования
- •15.3. Распознавание и кодирование объектов
- •15.4. Регистрация информации
- •16. Восприятие информации
- •16.1. Сканер как устройство восприятия информации
- •16.1.1. Первичное восприятие и измерение информации
- •16.1.2. Анализ результатов первичного восприятия и измерения
- •16.1.3. Распознавание символов
- •16.2. Восприятие информации клавиатурой
- •16.2.1. Первичное восприятие и измерение
- •16.2.2. Анализ
- •16.2.3. Распознавание
- •17. Передача информации
- •17.1. Модуляция и демодуляция сигнала
- •17.2. Уплотнение сигнала и выделение уплотненного сигнала
- •17.4. Компьютерные сети
- •17.4.1. Топология сетей
- •17.4.2. Методы передачи данных в сетях
- •17.4.3. Организация обмена информацией в сети
- •18. Обработка информации
- •19. Представление информации
- •19.1. Устройства вывода на электронный носитель
- •19.1.1. Мониторы, использующие элт
- •19.1.2. Жидкокристаллические мониторы
- •19.1.3. Плазменные мониторы
- •19.1.4. Технология вывода изображений на мониторы, использующие элт
- •19.1.4.1. Принципы организации текстовых видеорежимов
- •19.1.4.2. Принципы организации графических видеорежимов
- •19.2. Устройства вывода на бумажный носитель
- •19.2.1. Технология формирования цвета
- •19.2.2. Матричные принтеры
- •19.2.3. Струйная технология
- •19.2.4. Термическая технология
- •19.2.5. Электрографическая технология
- •Приложение 1. Определения информатики
- •Приложение 2. Определения информации
- •Приложение 3. Положения комбинаторики, используемые в измерении информации
- •Список литературы
- •Оглавление
- •Часть 1. Информатика и современное общество 6
- •Часть 2. Информация, ее представление и измерение 11
- •Часть 3. Компьютер как основной элемент информационного процесса 81
- •Часть 4. Фазы обращения информации 154
12. Технология проектирования программ
При включении компьютера в тот или иной информационный процесс для решения некоторой прикладной задачи, как следует из предыдущего изложения, он должен быть снабжен соответствующим ПО.
Для разработки программы в целях решения конкретной прикладной задачи сложилась традиционная технология, показанная на рис. 12.1.
Заказчик Математик или Программист
системотехник
Рис. 12.1. Традиционная технология подготовки задачи к решению на ЭВМ
Здесь связи означают:
1 – заказчик на естественном (например, русском) языке объясняет математику или системотехнику, какую прикладную задачу он хочет решить. Эта задача из некоторой предметной области, например, задача бухгалтерского учета или зачисления абитуриентов в ВУЗ;
2 – математик (или системотехник) формализует задачу, представляя ее в виде математической модели или составляя строгое формальное описание процедуры ее решения, входных и выходных данных. Этот этап называется формализацией задачи;
3 - программист на основании математической модели или другого формального описания поставленной задачи разрабатывает программу. Он выполняет также отладку программы, используя для этого ЭВМ. Этот этап называется программированием задачи;
4 – результаты решения задачи на ЭВМ сообщаются заказчику для определения того, удовлетворен ли он решением. Результаты решения задачи, будучи доведены до заказчика, могут его не удовлетворить в силу ряда причин. Это означает, что процесс, изображенный на рис. 12.1, является циклическим: он завершается тогда, когда заказчик примет результаты решения задачи автоматизированным образом. В этом случае оформляется документация на эксплуатацию программного продукта. В ней описываются следующие характеристики программного продукта:
-
основные характеристики программы, сведения об ее эксплуатации;
-
сведения о назначении программы, области ее применения, используемых методах решения, ограничениях на применение, минимальной конфигурации технических средств;
-
сведения для проверки работоспособности и корректности выполнения программы, для обеспечения функционирования и настройки программы на условия конкретного применения;
-
сведения о необходимых запросах со стороны программы и форматах ответов пользователя;
-
данные о нештатных ситуациях и поведении пользователя в них.
Этот этап называется сдачей программы в эксплуатацию.
Как видно, все связи на рис. 12.1 двунаправлены. Это означает, что в процессе проектирования программы идет диалог, в ходе которого уточняется и/или корректируется предмет общения.
12.1. Формализация задачи
Этот этап самый непростой, для его выполнения нужно умение выделять в предметной области наиболее важные характеристики для решения задачи и выявлять способы решения задач, принятые на практике, а также требуются специальные знания и умения моделирования предметной области. Поэтому часто привлекаются математики, если предметная область слишком сложна. В результате моделирования создается математическая модель предметной области, которая записывается средствами различных видов математических моделей, либо просто формируется строгое описание задачи.
Пример 12.1. Пусть в качестве предметной области рассматривается процесс зачисления абитуриентов в ВУЗ, который хорошо знаком читателю, а потому не требует пространных комментариев. Попробуем формализовать его, определив исходные данные, требуемые для решения задачи, результаты решения, а также сам процесс решения (при этом возможны некоторые упрощения относительно реального положения дел, которые не должны смущать читателя).
Итак, процесс зачисления происходит описанным ниже образом:
-
в приемную комиссию поступают сведения об абитуриенте, включающие данные о его оценках из аттестата о среднем образовании;
-
по мере сдачи вступительных экзаменов оценки, если они положительны, добавляются к имеющимся сведениям об абитуриенте, либо абитуриент исключается из претендентов на зачисление, если экзамен не сдан;
-
когда все вступительные экзамены сданы, список абитуриентов упорядочивается по мере убывания общей суммы оценок по сданным экзаменам с учетом среднего балла по аттестату;
-
первые элементы из списка в количестве, соответствующем объему набора на первый курс, и есть студенты первого курса, фамилии которых вносятся в приказ на зачисление.
Таким образом, для решения задачи требуются следующие исходные данные: фамилия, имя, отчество студента (для различения в списке), оценки из аттестата, оценки за вступительные экзамены, объем набора на первый курс.
Результат решения – список студентов первого курса в виде списка фамилий, имен, отчеств.
Формализация выполнена. Ее результат – описание решения в виде последовательности шагов, входные и выходные данные.
Пример 12.2. Пусть на первый курс по некоторой специальности зачислено N студентов. По результатам каждой сессии в течение первых четырех семестров часть студентов отчисляется за неуспеваемость в указанных среднестатистических количествах:
семестр, x 1 2 3 4
число отчисленных, y 20 5 2 1.
Построить модель изменения численности студентов для определения их количества к дипломному проектированию.
Эта задача относится к классу задач экстраполяции функций: определить значение функции y в точке x (x x0, xn), если известны (n+1) значений функции y в точках x0, x1 x2, …, xn.
Решим задачу двумя способами.
П ервый способ. Используем возможности табличного процессора EXCEL, который позволяет аппроксимировать функцию y, если известны значения функции и ее аргументов в определенном количестве точек. Для этого занесем в таблицу EXCEL исходные данные, построим диаграмму точечного типа и сформируем линию тренда, запросив вывод в диаграмму установленной табличным процессором функциональной зависимости (см. рис. 12.2).
Рис. 12.2. Диаграмма для задачи 12.2
Как видно из рис. 12.2, сформированная функциональная зависимость имеет вид:
y(x) = 20,777 x-2,1513,
где y – число отчисленных студентов;
x – номер семестра.
Тогда для определения числа оставшихся студентов к пятому курсу (дипломному проектированию) может быть построена модель:
st = N – y (10),
где st – число оставшихся к дипломному проектированию студентов.
Формальная постановка задачи выполнена.
Второй способ. Используем интерполяционный многочлен Лагранжа для формализации задачи (несмотря на то, что этот многочлен решает задачу интерполяции, его можно использовать и для экстраполяции, если экстраполяционная точка не слишком отдалена от исходных точек).
В соответствии с принятыми выше обозначениями имеем:
где yi – число отчисленных студентов в i-м семестре;
p i(10) – коэффициент Лагранжа, который рассчитывается по формуле:
и имеет значения из множества {p1(10), p2(10), p3(10), p4(10)}.
Задача решена.