- •ПРЕДИСЛОВИЕ
- •ВВЕДЕНИЕ
- •ЧАСТЬ ПЕРВАЯ
- •ГЛАВА 1 ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ИНФОРМАТИКИ
- •ВВЕДЕНИЕ
- •1.1. ИСТОРИЯ РАЗВИТИЯ ИНФОРМАТИКИ
- •1.2. ИНФОРМАТИКА КАК ЕДИНСТВО НАУКИ И ТЕХНОЛОГИИ
- •1.3. СТРУКТУРА СОВРЕМЕННОЙ ИНФОРМАТИКИ
- •1.4. МЕСТО ИНФОРМАТИКИ В СИСТЕМЕ НАУК
- •1.5. СОЦИАЛЬНЫЕ АСПЕКТЫ ИНФОРМАТИКИ
- •1.6. ПРАВОВЫЕ АСПЕКТЫ ИНФОРМАТИКИ
- •1.7. ЭТИЧЕСКИЕ АСПЕКТЫ ИНФОРМАТИКИ
- •Контрольные вопросы
- •§ 2. ИНФОРМАЦИЯ, ЕЕ ВИДЫ И СВОЙСТВА
- •2.1. РАЗЛИЧНЫЕ УРОВНИ ПРЕДСТАВЛЕНИЙ ОБ ИНФОРМАЦИИ
- •2.2. НЕПРЕРЫВНАЯ И ДИСКРЕТНАЯ ИНФОРМАЦИЯ
- •2.3. ЕДИНИЦЫ КОЛИЧЕСТВА ИНФОРМАЦИИ: ВЕРОЯТНОСТНЫЙ И ОБЪЕМНЫЙ ПОДХОДЫ
- •2.4. ИНФОРМАЦИЯ: БОЛЕЕ ШИРОКИЙ ВЗГЛЯД
- •2.5. ИНФОРМАЦИЯ И ФИЗИЧЕСКИЙ МИР
- •§ 3. СИСТЕМЫ СЧИСЛЕНИЯ
- •3.1. ПОЗИЦИОННЫЕ СИСТЕМЫ СЧИСЛЕНИЯ
- •3.2. ДВОИЧНАЯ СИСТЕМА СЧИСЛЕНИЯ
- •3.3. ВОСЬМЕРИЧНАЯ И ШЕСТНАДЦАТИРИЧНАЯ СИСТЕМЫ СЧИСЛЕНИЯ
- •§ 4. КОДИРОВАНИЕ ИНФОРМАЦИИ.
- •4.1. АБСТРАКТНЫЙ АЛФАВИТ
- •4.2. КОДИРОВАНИЕ И ДЕКОДИРОВАНИЕ
- •4.3. ПОНЯТИЕ О ТЕОРЕМАХ ШЕННОНА
- •4.4. МЕЖДУНАРОДНЫЕ СИСТЕМЫ БАЙТОВОГО КОДИРОВАНИЯ
- •§ 5. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ
- •5.1. ОСНОВНЫЕ ПОНЯТИЯ
- •5.2. ПРЕДСТАВЛЕНИЕ ГРАФОВ
- •§ 6. АЛГОРИТМ И ЕГО СВОЙСТВА
- •6.1. РАЗЛИЧНЫЕ ПОДХОДЫ К ПОНЯТИЮ «АЛГОРИТМ»
- •6.2. ПОНЯТИЕ ИСПОЛНИТЕЛЯ АЛГОРИТМА
- •6.3. ГРАФИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ АЛГОРИТМОВ
- •6.4. СВОЙСТВА АЛГОРИТМОВ
- •6.5. ПОНЯТИЕ АЛГОРИТМИЧЕСКОГО ЯЗЫКА
- •Контрольные вопросы
- •§7. ФОРМАЛИЗАЦИЯ ПОНЯТИЯ «АЛГОРИТМ»
- •7.1. ПОСТАНОВКА ПРОБЛЕМЫ
- •7.2. МАШИНА ПОСТА
- •73. МАШИНА ТЬЮРИНГА
- •7.4. НОРМАЛЬНЫЕ АЛГОРИТМЫ МАРКОВА
- •7.5. РЕКУРСИВНЫЕ ФУНКЦИИ
- •Контрольные вопросы и задания
- •8.1. ОПЕРАЦИОНАЛЬНЫЙ ПОДХОД
- •8.2. СТРУКТУРНЫЙ ПОДХОД
- •8.3. НОВЕЙШИЕ МЕТОДОЛОГИИ РАЗРАБОТКИ ПРОГРАММ ДЛЯ ЭВМ
- •Контрольные вопросы и задания
- •§ 9. СТРУКТУРЫ ДАННЫХ
- •9.1. ДАННЫЕ И ИХ ОБРАБОТКА
- •9.2. ПРОСТЫЕ (НЕСТРУКТУРИРОВАННЫЕ) ТИПЫ ДАННЫХ
- •9.3. СТРУКТУРИРОВАННЫЕ ТИПЫ ДАННЫХ
- •Контрольные вопросы и задания
- •§ 10. ПОНЯТИЕ ОБ ИНФОРМАЦИОННОМ МОДЕЛИРОВАНИИ
- •10.1. МОДЕЛИРОВАНИЕ КАК МЕТОД РЕШЕНИЯ ПРИКЛАДНЫХ ЗАДАЧ
- •10.2. ОСНОВНЫЕ ПОНЯТИЯ ИНФОРМАЦИОННОГО МОДЕЛИРОВАНИЯ
- •10.3. СВЯЗИ МЕЖДУ ОБЪЕКТАМИ
- •Контрольные вопросы и задания
- •§ 11. НЕКОТОРЫЕ КИБЕРНЕТИЧЕСКИЕ АСПЕКТЫ ИНФОРМАТИКИ
- •11.1. ПРЕДМЕТ КИБЕРНЕТИКИ
- •11.2. УПРАВЛЯЕМЫЕ СИСТЕМЫ
- •11.3. ФУНКЦИИ ЧЕЛОВЕКА И МАШИНЫ В СИСТЕМАХ УПРАВЛЕНИЯ
- •Контрольные вопросы и задания
- •§ 12. ПОНЯТИЕ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
- •12.3. МОДЕЛИРОВАНИЕ РАССУЖДЕНИЙ
- •12.4. ИНТЕЛЛЕКТУАЛЬНЫЙ ИНТЕРФЕЙС ИНФОРМАЦИОННОЙ СИСТЕМЫ
- •12.5. СТРУКТУРА СОВРЕМЕННОЙ СИСТЕМЫ РЕШЕНИЯ ПРИКЛАДНЫХ ЗАДАЧ
- •Контрольные вопросы и задания
- •Дополнительная литература к главе 1
- •ГЛАВА 2 ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ЭВМ
- •ВВЕДЕНИЕ
- •§ 1. ОПЕРАЦИОННЫЕ СИСТЕМЫ
- •1.1. НАЗНАЧЕНИЕ И ОСНОВНЫЕ ФУНКЦИИ ОПЕРАЦИОННЫХ СИСТЕМ
- •1.2. ПОНЯТИЕ ФАЙЛОВОЙ СИСТЕМЫ
- •1.3. ОПЕРАЦИОННЫЕ СИСТЕМЫ ДЛЯ КОМПЬЮТЕРОВ ТИПА IBM PC
- •1.4. ОБОЛОЧКИ ОПЕРАЦИОННЫХ СИСТЕМ
- •Контрольные вопросы и задания
- •§ 2. ПОНЯТИЕ О СИСТЕМЕ ПРОГРАММИРОВАНИЯ
- •2.1. ОСНОВНЫЕ ФУНКЦИИ И КОМПОНЕНТЫ
- •2.2. ТРАНСЛЯЦИЯ ПРОГРАММ И СОПУТСТВУЮЩИЕ ПРОЦЕССЫ
- •Контрольные вопросы
- •§3. ПРИКЛАДНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ОБЩЕГО НАЗНАЧЕНИЯ
- •3.1. КЛАССИФИКАЦИЯ
- •3.2. ИНСТРУМЕНТАЛЬНЫЕ ПРОГРАММНЫЕ СРЕДСТВА ОБЩЕГО НАЗНАЧЕНИЯ
- •3.3. ИНСТРУМЕНТАЛЬНЫЕ ПРОГРАММНЫЕ СРЕДСТВА СПЕЦИАЛЬНОГО НАЗНАЧЕНИЯ
- •3.4. ПРОГРАММНЫЕ СРЕДСТВА ПРОФЕССИОНАЛЬНОГО УРОВНЯ
- •3.5. ОРГАНИЗАЦИЯ «МЕНЮ» В ПРОГРАММНЫХ СИСТЕМАХ
- •Контрольные вопросы ч задания
- •§ 4. СИСТЕМЫ ОБРАБОТКИ ТЕКСТОВ
- •4.1. ЭЛЕМЕНТЫ ИЗДАТЕЛЬСКОГО ДЕЛА
- •4.2. ТЕКСТОВЫЕ РЕДАКТОРЫ
- •4.3. ИЗДАТЕЛЬСКИЕ СИСТЕМЫ
- •§ 5. СИСТЕМЫ КОМПЬЮТЕРНОЙ ГРАФИКИ
- •5.1. ПРИНЦИПЫ ФОРМИРОВАНИЯ ИЗОБРАЖЕНИЙ НА ЭКРАНЕ
- •5.2. ИЗОБРАЗИТЕЛЬНАЯ ГРАФИКА
- •5.3. ГРАФИЧЕСКИЕ РЕДАКТОРЫ
- •5.4. ДЕЛОВАЯ ГРАФИКА
- •5.5. ИНЖЕНЕРНАЯ ГРАФИКА
- •5.6. НАУЧНАЯ ГРАФИКА
- •Контрольные вопросы и упражнения
- •§ 6. БАЗЫ ДАННЫХ И СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ
- •6.1. ПОНЯТИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ
- •6.2. ВИДЫ СТРУКТУР ДАННЫХ
- •6.3. ВИДЫ БАЗ ДАННЫХ
- •6.4. СОСТАВ И ФУНКЦИИ СИСТЕМ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ
- •6.5. ПРИМЕРЫ СИСТЕМ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ
- •Контрольные вопросы и задания
- •§ 7. ЭЛЕКТРОННЫЕ ТАБЛИЦЫ
- •7.1. НАЗНАЧЕНИЕ И ОСНОВНЫЕ ФУНКЦИИ ТАБЛИЧНЫХ ПРОЦЕССОРОВ
- •7.2. ЭЛЕКТРОННЫЕ ТАБЛИЦЫ SUPERCALC
- •7.3. ЭЛЕКТРОННЫЕ ТАБЛИЦЫ EXCEL
- •§8. ИНТЕГРИРОВАННЫЕ ПРОГРАММНЫЕ СРЕДСТВА
- •8.1. ПРИНЦИПЫ ПОСТРОЕНИЯ ИНТЕГРИРОВАННЫХ ПРОГРАММНЫХ СИСТЕМ
- •8.2. ИНТЕГРИРОВАННЫЙ ПАКЕТ MS-WORKS
- •§ 9. ЭКСПЕРТНЫЕ СИСТЕМЫ
- •Контрольные вопросы и задания
- •§ 10. ИНСТРУМЕНТАЛЬНЫЕ ПРОГРАММНЫЕ СРЕДСТВА ДЛЯ РЕШЕНИЯ ПРИКЛАДНЫХ МАТЕМАТИЧЕСКИХ ЗАДАЧ
- •10.1. НАЗНАЧЕНИЕ ПРОГРАММ
- •10.2. ПАКЕТ MATHCAD
- •10.3. СИСТЕМА АНАЛИТИЧЕСКИХ ПРЕОБРАЗОВАНИЙ REDUCE
- •§ 11. КОМПЬЮТЕРНОЕ ТЕСТИРОВАНИЕ
- •11.1. ТЕХНОЛОГИЯ ПРОЕКТИРОВАНИЯ КОМПЬЮТЕРНЫХ ТЕСТОВ ПРЕДМЕТНОЙ ОБЛАСТИ
- •11.2. ТИПЫ КОМПЬЮТЕРНЫХ ТЕСТОВ
- •11.3. ИНСТРУМЕНТАЛЬНЫЕ ТЕСТОВЫЕ ОБОЛОЧКИ
- •11.4. ПРИМЕР ТЕСТА ПО ШКОЛЬНОМУ КУРСУ ИНФОРМАТИКИ
- •§12. КОМПЬЮТЕРНЫЕ ВИРУСЫ
- •12.1. ЧТО ТАКОЕ КОМПЬЮТЕРНЫЙ ВИРУС
- •12.2. РАЗНОВИДНОСТИ КОМПЬЮТЕРНЫХ ВИРУСОВ
- •12.3. АНТИВИРУСНЫЕ СРЕДСТВА
- •Контрольные вопросы и задания
- •§ 13. КОМПЬЮТЕРНЫЕ ИГРЫ
- •13.1. ВИДЫ И НАЗНАЧЕНИЕ КОМПЬЮТЕРНЫХ ИГР
- •13.2. ОБЗОР КОМПЬЮТЕРНЫХ ИГР
- •Контрольные вопросы
- •ГЛАВА 3 ЯЗЫКИ И МЕТОДЫ ПРОГРАММИРОВАНИЯ
- •ВВЕДЕНИЕ
- •§ 1. ИСТОРИЯ РАЗВИТИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
- •§2. ЯЗЫКИ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ
- •2.1. ПОНЯТИЕ О ЯЗЫКАХ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ
- •2.2. МЕТАЯЗЫКИ ОПИСАНИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
- •23. ГРАММАТИКА ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
- •§3. ПАСКАЛЬ КАК ЯЗЫК СТРУКТУРНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
- •3.1. ВВЕДЕНИЕ
- •Контрольные вопросы
- •3.2. ОСНОВНЫЕ КОНСТРУКЦИИ ЯЗЫКА
- •Контрольные вопросы
- •3.3. СТРУКТУРЫ ДАННЫХ
- •3.4. ПРОЦЕДУРЫ И ФУНКЦИИ
- •3.5. РАБОТА С ФАЙЛАМИ
- •3.6. ДИНАМИЧЕСКИЕ ИНФОРМАЦИОННЫЕ СТРУКТУРЫ
- •Контрольные вопросы
- •Контрольные вопросы и задания
- •Контрольные вопросы
- •§4. МЕТОДЫ И ИСКУССТВО ПРОГРАММИРОВАНИЯ
- •4.1. ПРОЕКТИРОВАНИЕ ПРОГРАММ
- •Контрольные вопросы и задания
- •4.2. ОСНОВНЫЕ ПРИНЦИПЫ РАЗРАБОТКИ И АНАЛИЗА АЛГОРИТМОВ
- •Задания
- •4.3. МЕТОДЫ ПОСТРОЕНИЯ АЛГОРИТМОВ, ОРИЕНТИРОВАННЫЕ НА СТРУКТУРЫ ДАННЫХ
- •Контрольные задания
- •4.4. РЕКУРСИВНЫЕ АЛГОРИТМЫ
- •Контрольные задания
- •4.5. ВАЖНЕЙШИЕ НЕВЫЧИСЛИТЕЛЬНЫЕ АЛГОРИТМЫ (ПОИСК И СОРТИРОВКА)
- •Контрольные вопросы и задания
- •5.1. ВВЕДЕНИЕ В БЕЙСИК
- •Контрольные вопросы
- •5.2. БАЗОВЫЕ ОПЕРАТОРЫ
- •Контрольные вопросы ч задания
- •5.3. МУЗЫКАЛЬНЫЕ ВОЗМОЖНОСТИ
- •Контрольные вопросы и задания
- •5.4. ГРАФИЧЕСКИЕ ВОЗМОЖНОСТИ
- •Контрольные вопросы и задания
- •5.5. ОБРАБОТКА СИМВОЛЬНОЙ ИНФОРМАЦИИ
- •Контрольные вопросы и задания
- •5.6. ПОДПРОГРАММЫ
- •Контрольные вопросы
- •5.7. РАБОТА С ФАЙЛАМИ
- •5.8. СРЕДСТВА И МЕТОДЫ ОРГАНИЗАЦИИ ДИАЛОГА
- •Контрольные задания
- •5.9. ВЕРСИИ БЕЙСИКА
- •5.10. БЕЙСИК И ПАСКАЛЬ
- •§ 6. ВВЕДЕНИЕ В ЯЗЫК ПРОГРАММИРОВАНИЯ СИ
- •6.1. ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА И ПРИМЕР ПРОГРАММЫ НА СИ
- •6.2. ЭЛЕМЕНТЫ СИ: АЛФАВИТ, ИДЕНТИФИКАТОРЫ, ЛИТЕРАЛЫ, СЛУЖЕБНЫЕ СЛОВА
- •6.3. ТИПЫ ДАННЫХ И ОПЕРАЦИИ В ЯЗЫКЕ СИ. ВЫРАЖЕНИЯ
- •6.4. ОПЕРАТОРЫ. УПРАВЛЯЮЩИЕ КОНСТРУКЦИИ ЯЗЫКА
- •6.5. СТРУКТУРА ПРОГРАММЫ НА СИ. ПОНЯТИЕ О ФУНКЦИЯХ
- •6.6. КЛАССЫ ПАМЯТИ
- •6.7. ФУНКЦИИ ВВОДA-ВЫВОДА
- •6.8. ДИРЕКТИВЫ ПРЕПРОЦЕССОРА
- •6.9. СИ И ПАСКАЛЬ
- •§ 7. ОСНОВЫ ЛОГИЧЕСКОГО ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ ПРОЛОГ
- •7.1. ОБЩИЕ СВЕДЕНИЯ
- •7.2. АЛГОРИТМ ВЫПОЛНЕНИЯ ПРОГРАММ НА ПРОЛОГЕ
- •7.3. РЕКУРСИЯ
- •7.4. ПРЕДИКАТ ОТСЕЧЕНИЯ И УПРАВЛЕНИЕ ЛОГИЧЕСКИМ ВЫВОДОМ В ПРОГРАММАХ
- •7.5. ОБРАБОТКА СПИСКОВ
- •7.6. РЕШЕНИЕ ЛОГИЧЕСКИХ ЗАДАЧ НА ПРОЛОГЕ
- •Контрольные вопросы и задания
- •§ 8. ВВЕДЕНИЕ В ФУНКЦИОНАЛЬНОЕ ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ЛИСП
- •8.1. НАЗНАЧЕНИЕ И ОБЩАЯ ХАРАКТЕРИСТИКА ЯЗЫКА
- •8.2. ОСНОВНЫЕ ЭЛЕМЕНТЫ ПРОГРАММЫ НА ЛИСПЕ. СПИСКИ
- •8.3. ФУНКЦИИ
- •8.4. ФОРМЫ. УПРАВЛЯЮЩИЕ КОНСТРУКЦИИ В ЛИСП-ПРОГРАММЕ
- •8.5. РЕКУРСИЯ И ЦИКЛ В ПРОГРАММАХ НА ЛИСПЕ
- •8.6. ВВОД-ВЫВОД ДАННЫХ
- •8.7. ПРИМЕР ПРОГРАММИРОВАНИЯ НА ЛИСПЕ
- •8.8. СВОЙСТВА СИМВОЛОВ
- •Контрольные вопросы и задания
- •§9. ВВЕДЕНИЕ В ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
- •9.1. ОСНОВНЫЕ ПОЛОЖЕНИЯ
- •9.2. ОСНОВЫ ОБЪЕКТНОГО ПРОГРАММИРОВАНИЯ В СИСТЕМЕ ТУРБО-ПАСКАЛЬ
- •9.3. ОБОЛОЧКА TURBO-VISION
- •9.4.* СРЕДА ОБЪЕКТНОГО ВИЗУАЛЬНОГО ПРОГРАММИРОВАНИЯ DELPHI
- •9.8. СИСТЕМА ОБЪЕКТНОГО ПРОГРАММИРОВАНИЯ SMALLTALK
- •Контрольные вопросы и задания
- •Дополнительная литература к главе 3
- •ЧАСТЬ ВТОРАЯ
- •ГЛАВА 4 ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА
- •ВВЕДЕНИЕ
- •§ 1. ИСТОРИЯ РАЗВИТИЯ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
- •1.1. НАЧАЛЬНЫЙ ЭТАП РАЗВИТИЯ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
- •1.2. НАЧАЛО СОВРЕМЕННОЙ ИСТОРИИ ЭЛЕКТРОННОЙ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
- •1.3. ПОКОЛЕНИЯ ЭВМ
- •1.4. ПЕРСОНАЛЬНЫЕ КОМПЬЮТЕРЫ
- •1.5. И НЕ ТОЛЬКО ПЕРСОНАЛЬНЫЕ КОМПЬЮТЕРЫ...
- •1.6. ЧТО ВПЕРЕДИ?
- •Контрольные вопросы
- •§2. АРХИТЕКТУРА ЭВМ
- •2.1. О ПОНЯТИИ «АРХИТЕКТУРА ЭВМ»
- •1.2. КЛАССИЧЕСКАЯ АРХИТЕКТУРА ЭВМ II ПРИНЦИПЫ ФОН НЕЙМАНА
- •2.3. СОВЕРШЕНСТВОВАНИЕ И РАЗВИТИЕ ВНУТРЕННЕЙ СТРУКТУРЫ ЭВМ
- •2.4. ОСНОВНОЙ ЦИКЛ РАБОТЫ ЭВМ
- •2.5. СИСТЕМА КОМАНД ЭВМ И СПОСОБЫ ОБРАЩЕНИЯ К ДАННЫМ
- •Контрольные вопросы
- •§3. АРХИТЕКТУРА МИКРОПРОЦЕССОРОВ
- •3.1. ИСТОРИЯ РАЗВИТИЯ МИКРОПРОЦЕССОРОВ
- •3.3. ВНУТРЕННЯЯ ОРГАНИЗАЦИЯ МИКРОПРОЦЕССОРА
- •3.3. РАБОТА МИКРОПРОЦЕССОРА С ПАМЯТЬЮ. МЕТОДЫ АДРЕСАЦИИ
- •3.4. ФОРМАТЫ ДАННЫХ
- •3.5. ОБРАБОТКА ПРЕРЫВАНИЙ
- •3.6. РАБОТА МИКРОПРОЦЕССОРА С ВНЕШНИМИ УСТРОЙСТВАМИ
- •3.7. ПРИМЕР: СИСТЕМА КОМАНД ПРОЦЕССОРОВ СЕМЕЙСТВА PDP
- •Контрольные вопросы и задания
- •§4. УЧЕБНАЯ МОДЕЛЬ МИКРОКОМПЬЮТЕРА
- •4.1. СТРУКТУРА УЧЕБНОГО МИКРОКОМПЬЮТЕРА
- •4.2. СИСТЕМА КОМАНД
- •4.3. АДРЕСАЦИЯ ДАННЫХ
- •4.4. РАБОТА С ВНЕШНИМИ УСТРОЙСТВАМИ
- •4.5. ПРИМЕРЫ ПРОГРАММ
- •Контрольные вопросы и задания
- •§ 5. ВНЕШНИЕ УСТРОЙСТВА ЭВМ: ФИЗИЧЕСКИЕ ПРИНЦИПЫ И ХАРАКТЕРИСТИКИ
- •5.1. ВНЕШНИЕ ЗАПОМИНАЮЩИЕ УСТРОЙСТВА
- •5.2. УСТРОЙСТВА ВВОДА ИНФОРМАЦИИ
- •5.3. УСТРОЙСТВА ВЫВОДА ИНФОРМАЦИИ
- •Контрольные вопросы и задания
- •§ 6. ЛОГИЧЕСКИЕ ОСНОВЫ ФУНКЦИОНИРОВАНИЯ ЭВМ
- •6.1. ЛОГИКА ВЫСКАЗЫВАНИЙ. ЭЛЕМЕНТАРНЫЕ ЛОГИЧЕСКИЕ ФУНКЦИИ
- •6.2. СХЕМНАЯ РЕАЛИЗАЦИЯ ЭЛЕМЕНТАРНЫХ ЛОГИЧЕСКИХ ОПЕРАЦИЙ. ТИПОВЫЕ ЛОГИЧЕСКИЕ УЗЛЫ
- •63. ПРИМЕР ЭЛЕКТРОННОЙ РЕАЛИЗАЦИИ ЛОГИЧЕСКОГО ЭЛЕМЕНТА
- •Контрольные вопросы и задания
- •Дополнительная литература к главе 4
- •ГЛАВА 5 КОМПЬЮТЕРНЫЕ СЕТИ И ТЕЛЕКОММУНИКАЦИИ
- •ВВЕДЕНИЕ
- •§ 1. ЛОКАЛЬНЫЕ СЕТИ
- •1.1. АППАРАТНЫЕ СРЕДСТВА
- •1.3. ЛОКАЛЬНЫЕ СЕТИ УЧЕБНОГО НАЗНАЧЕНИЯ
- •Контрольные вопросы
- •§2. ОПЕРАЦИОННЫЕ СИСТЕМЫ ЛОКАЛЬНЫХ СЕТЕЙ
- •Параметр
- •Контрольные вопросы ч задания
- •§3. ГЛОБАЛЬНЫЕ СЕТИ
- •3.1. ОБЩИЕ ПРИНЦИПЫ ОРГАНИЗАЦИИ
- •3.2. АППАРАТНЫЕ СРЕДСТВА И ПРОТОКОЛЫ ОБМЕНА ИНФОРМАЦИЕЙ
- •3.3. ЭЛЕКТРОННАЯ ПОЧТА
- •§ 4. ПРЕДСТАВЛЕНИЕ ОБ ОПЕРАЦИОННОЙ СИСТЕМЕ UNIX
- •§ 5. ИСПОЛЬЗОВАНИЕ КОМПЬЮТЕРНЫХ СЕТЕЙ В ОБРАЗОВАНИИ
- •5.1. ТЕЛЕКОММУНИКАЦИИ КАК СРЕДСТВО ОБРАЗОВАТЕЛЬНЫХ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
- •5.2. ПЕРСОНАЛЬНЫЙ ОБМЕН СООБЩЕНИЯМИ
- •5.3. ИНФОРМАЦИОННОЕ ОБЕСПЕЧЕНИЕ
- •5.4. СОВМЕСТНОЕ РЕШЕНИЕ ЗАДАЧ
- •ГЛАВА 6 ИНФОРМАЦИОННЫЕ СИСТЕМЫ
- •ВВЕДЕНИЕ
- •§ 1. БАНКИ ИНФОРМАЦИИ
- •1.1. БАНКИ ДАННЫХ
- •1.2. БАНКИ ДОКУМЕНТОВ
- •1.3. БАНК ПЕДАГОГИЧЕСКОЙ ИНФОРМАЦИИ
- •§ 2. БАЗЫ ДАННЫХ В СТРУКТУРЕ ИНФОРМАЦИОННЫХ СИСТЕМ
- •2.1. ОСНОВНЫЕ ПОНЯТИЯ
- •2.2. ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ
- •2.3. ПРЕДСТАВЛЕНИЕ ОБ ЯЗЫКАХ УПРАВЛЕНИЯ РЕЛЯЦИОННЫМИ БАЗАМИ ДАННЫХ ТИПА dBASE
- •§ 3. АВТОМАТИЗИРОВАННЫЕ ИНФОРМАЦИОННЫЕ СИСТЕМЫ
- •3.1. АВТОМАТИЗИРОВАННЫЕ СИСТЕМЫ УПРАВЛЕНИЯ
- •3.2. ИНФОРМАЦИОННЫЕ СИСТЕМЫ УПРАВЛЕНИЯ
- •3.3. АВТОМАТИЗИРОВАННЫЕ СИСТЕМЫ НАУЧНЫХ ИССЛЕДОВАНИЙ
- •3.4. СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ПРОЕКТИРОВАНИЯ
- •3.5. ГЕОИНФОРМАЦИОННЫЕ СИСТЕМЫ
- •Контрольные вопросы
- •§4. ЭКСПЕРТНЫЕ СИСТЕМЫ
- •Контрольные вопросы и задания
- •§ 5. КОМПЬЮТЕРНЫЕ ОБУЧАЮЩИЕ СИСТЕМЫ
- •5.2. ТИПЫ ОБУЧАЮЩИХ ПРОГРАММ
- •5.3. КОМПЬЮТЕРНОЕ ТЕСТИРОВАНИЕ
- •ГЛАВА 7 КОМПЬЮТЕРНОЕ МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ
- •ВВЕДЕНИЕ
- •§ 1. О РАЗНОВИДНОСТЯХ МОДЕЛИРОВАНИЯ
- •§2. ПОНЯТИЕ О КОМПЬЮТЕРНОМ МАТЕМАТИЧЕСКОМ МОДЕЛИРОВАНИИ
- •2.1. МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ И КОМПЬЮТЕРЫ
- •2.2. ЭТАПЫ И ЦЕЛИ КОМПЬЮТЕРНОГО МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ
- •2.3. КЛАССИФИКАЦИЯ МАТЕМАТИЧЕСКИХ МОДЕЛЕЙ
- •2.4. НЕКОТОРЫЕ ПРИЕМЫ ПРОГРАММИРОВАНИЯ
- •§3. МОДЕЛИРОВАНИЕ ФИЗИЧЕСКИХ ПРОЦЕССОВ
- •3.1. ФИЗИКА И МОДЕЛИРОВАНИЕ
- •3.2. СВОБОДНОЕ ПАДЕНИЕ ТЕЛА С УЧЕТОМ СОПРОТИВЛЕНИЯ СРЕДЫ
- •3.4. ДВИЖЕНИЕ ТЕЛА С ПЕРЕМЕННОЙ МАССОЙ: ВЗЛЕТ РАКЕТЫ
- •3.5. ДВИЖЕНИЕ НЕБЕСНЫХ ТЕЛ
- •3.6. ДВИЖЕНИЕ ЗАРЯЖЕННЫХ ЧАСТИЦ
- •3.7. КОЛЕБАНИЯ МАТЕМАТИЧЕСКОГО МАЯТНИКА
- •3.8. МОДЕЛИРОВАНИЕ ЯВЛЕНИЙ
- •3.9. МОДЕЛИРОВАНИЕ ПРОЦЕССА ТЕПЛОПРОВОДНОСТИ
- •Контрольные вопросы и задания
- •§ 4. КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ В ЭКОЛОГИИ
- •4.1. ЭКОЛОГИЯ И МОДЕЛИРОВАНИЕ
- •4.2. МОДЕЛИ ВНУТРИВИДОВОЙ КОНКУРЕНЦИИ
- •4.3. ЛОГИСТИЧЕСКАЯ МОДЕЛЬ МЕЖВИДОВОЙ КОНКУРЕНЦИИ
- •4.4. ДИНАМИКА ЧИСЛЕННОСТИ ПОПУЛЯЦИЙ ХИЩНИКА И ЖЕРТВЫ
- •4.5. ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ ДИНАМИКИ ПОПУЛЯЦИЙ
- •Контрольные вопросы и задания
- •§5. ГЛОБАЛЬНЫЕ МОДЕЛИ РАЗВИТИЯ ЧЕЛОВЕЧЕСТВА
- •§ 6. МОДЕЛИРОВАНИЕ СЛУЧАЙНЫХ ПРОЦЕССОВ
- •6.1. ТЕХНИКА СТОХАСТИЧЕСКОГО МОДЕЛИРОВАНИЯ
- •6.2. МОДЕЛИРОВАНИЕ СЛУЧАЙНЫХ ПРОЦЕССОВ В СИСТЕМАХ МАССОВОГО ОБСЛУЖИВАНИЯ
- •6.3. РАЗЛИЧНЫЕ ПРИМЕРЫ МОДЕЛИРОВАНИЯ СЛУЧАЙНЫХ ПРОЦЕССОВ
- •Контрольные вопросы и задания
- •§7. КОМПЬЮТЕРНОЕ МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ В ЭКОНОМИКЕ
- •7.1. ПОСТАНОВКА ЗAДAЧИ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ
- •7.2. СИМПЛЕКС-МЕТОД
- •Контрольные вопросы и задания
- •Дополнительная литература к главе 7
- •Содержание
Отметим, что в программах на Лиспе надо тщательно отличать значения от их обозначений. В Лиспе константы обозначают самих себя. Выражения типа (* 2 2) сразу вычисляются.
Чтобы избежать нежелательного вычисления выражения используется функция QUOTE или знак апострофа (') перед выражением:
(* 2 2) : 4 ' (* 2 2) :' (* 2 2) – список
Произвольный символ можно использовать как переменную, и он может обозначать произвольное выражение. При первом использовании символу должно быть присвоено или с ним связано некоторое значение с помощью функции SET, например,
(SET 'операции' (+ - * /))
Знак ' используется для подавления вычисления аргументов функции SET. Функция SETQ не вычисляет значения 1-го аргумента (а 2-го вычисляет).
На значение символа можно сослаться, указав его без апострофа (').
Для занесения значений в ячейку памяти, связанной с символом, можно пользоваться обобщенной функцией присваивания SETF, размещающей значения в соответствующей ячейке памяти:
(SETF ячейка_памяти значение).
Переменная «ячейка_памяти» без апострофа указывает на ячейку памяти. Присвоение, выполняемое функциям» SET, SETQ и SETF, является побочным эффектом , этих функций, помимо того, данные функции возвращают присваиваемые значения.
8.4. ФОРМЫ. УПРАВЛЯЮЩИЕ КОНСТРУКЦИИ В ЛИСП-ПРОГРАММЕ
Программа состоит не только из функций, но и из форм. Простейшими формами являются константы, переменные, лямбда-вызовы, вызовы функций.
Остановимся более подробно на специальных формах, предназначенных для управления обработкой программы и контекстом. У каждой формы определенный синтаксис и семантика, основанные на едином способе записи и интерпретации.
Управляющие предложения Лиспа внешне выглядят как вызовы функций - в виде скобочных выражений, первый элемент которых действует как имя управляющей структуры, а остальные элементы - как аргументы. Наиболее важные формы можно разделить на следующие группы:
работа с контекстом
•QUOTE или блокировка вычисления,
•вызов функции и лямбда-вызов,
•предложения LET и LET*;
последовательное исполнение
•предложения PROG1, PROG2 и PROGN;
разветвление исполнения
•условные предложения COND, IF, WHEN, UNLESS,
•выбирающее предложение CASE;
итерации
•циклические предложения DO, DO*, LOOP, DOTIMES, DOUNTIL;
передачи управления
•предложения PROG, GO и RETURN;
динамическое управление вычислением
• THROW, CATCH, а также BLOCK.
Эти управляющие формы (кроме QUOTE и лямбда-вызова, а также вызовов функций), в
361
основном, используются в теле лямбда-выражений, определяющих функции. Предложение LET используется для создания связи переменных внутри формы:
(LET ((пep1 знач1) (пер2 знач2)...) форма1 форма2 ...).
При вычислении этого выражения статические переменные пep1, пер2, ... связываются (одновременно) с соответствующими значениями знач1, знач2, ..., а затем вычисляются значения форм форма1, форма2, ... Значение последней формы возвращается как общий результат. Форма LET* отличается от LET лишь тем, что связывание переменных и вычисление форм происходит не одновременно, а последовательно, вначале 1-е, потом 2-е и т.д.
Например:
(let*((x2)(y(*3x))) (list x у) Результат: (2 6).
Предложения PROG1, PROG2 и PROGN позволяют организовывать последовательные вычисления из нескольких вычисляемых форм:
(PROG1 форма1 форма2 ... формаn) (PROG2 форма1 форма2 .. формаn) (PROGN форма1 форма2 . формаn).
Различие этих форм лишь в возвращаемых ими в качестве общего значения результатах. Форма PROG1 возвращает значение формы1, PROG2-формы2, PROGN -последней формы n.
Например:
(progn (setq x 2) (setq у (* 3 х))) Результат: 6.
Предложение COND является основным средством разветвления обработки. Структура условного предложения такова:
(COND (р1 а1) (р2 а2)... (pn an)).
pi - это предикаты (выражения-условия, которые могут быть либо истинными (Т), либо ложными (NIL)). Их значения вычисляются слева направо, пока не будет получено значение «истина» (Т), затем вычисляется и возвращается в качестве результата результирующее выражение ai. соответствующее 1-му истинному предикату pi. Если истинного предиката нет. то значение COND - NIL. Форма ai для соответствующего предиката может отсутствовать (тогда возвращается значение этого предиката в случае его истинности), или, наоборот, может быть задана последовательность форм для предиката pi - тогда эти формы вычисляются последовательно и возвращается значение последней.
В следующем примере с помощью предложения COND определена функция, устанавливающая тип выражения:
(defun тип (1)
(cond ((null 1) 'пусто) ((atom 1) 'атом)
(t 'список)))
Результат: ТИП.
Примеры применения этой функции:
(тип ' (a b с))
362
Результат: СПИСОК. (тип (atom ' (а т о м))) Результат: ПУСТО.
Для организации ветвления можно использовать и формулы IF, WHEN, UNLESS:
(IF условие то-форма иначе-форма),
что эквивалентно
(COND (условие то-форма) (Т иначе форма)); (WHEN условие форма1 форма2 ...),
что эквивалентно
(UNLESS (NOT условие) форма! форма2 ...)
или
(COND (условие форма1 форма2 ...)).
Можно применять и выбирающее предложение CASE:
(CASE ключ (список ключей1 форма11 форма12 ...) (список ключей2 форма21 форма22 . . .)
Вэтой форме сначала вычисляется значение ключевой формы «ключ», затем происходит сравнение с элементами списков ключей и, если найдено значение ключевой формы, вычисляется последовательность соответствующих форм, значение последней из которых возвращается как значение всего выражения CASE.
Предложения PROG, GO и RETURN аналогичны конструкциям неструктурных языков программирования (типа FORTRAN, Бейсик); пользоваться ими не рекомендуется.
8.5.РЕКУРСИЯ И ЦИКЛ В ПРОГРАММАХ НА ЛИСПЕ
В«чистом» функциональном программировании организация повторяющихся вычислений должна происходить лишь с помощью условных предложений и определения рекурсивных, вызывающих самих себя, функций. Рассмотрим в качестве примера функцию, просто определяемую через рекурсию, - факториал n!=1*2 * 3 *...* (n-1) * n = (n-1)! т n (0! = 1 по определению):
(defun ! (n) (if(= п 0) 1 (* п (! (. п 1))))) .
Имя функции - "!", ее аргументом является переменная n. Лямбда-выражение, определяющее функцию, представляет собой условную if-форму, которая в случае n=0 возвращает 1, а в противном случае вычисляет произведение n и результата вызова этой же функции ! для аргумента n-1.
Пример вызова этой функции:
(!5) Результат: 120.
В случае повторяющихся вычислений в Лиспе могут быть использованы не только рекурсивные функции, но и известные по процедурным языкам циклы. Самым общим циклическим предложением в Лиспе является DO, имеющее следующую форму:
363
(DO ((nepi знач! шаг1) (пер2 знач2 шаг 2) ...) (условие-окончания форма11 форма12 ...) форма21 форма22 ...)
Вычисление предложения DO начинается с присваивания переменным пep1, пер2, ...
начальных значений знач1, знач2, . . . соответственно; потом вычисляется условие окончания и, если оно истинно, последовательно вычисляются формы форма1i, и значение последней возвращается как результат DO-предложения. В противном случае вычисляются формы форма2i из тела предложения DO, затем значения переменных пep1, пер2, . . . изменяются на величину шага шаг1, шаг2, ... и все повторяется.
Для примера с помощью предложения DO определим функцию expt, вычисляющую n-ю степень числа х (n - целое положительное):
(defun expt (х n) |
|
(do ((результат 1)) |
; начальное значение |
((= n 0 ) результат ) |
; условие окончания |
(setq результат (* результат х)) (setqn(^nl))))
Результат задания функции: EXPT. Пример вызова:
(expt 2 3) Результат: 8.
Итеративные (циклические) и рекурсивные программы теоретически одинаковы по своим вычислительным возможностям, однако свойства итеративных и рекурсивных вариантов программ могут существенно различаться. Рекурсивные программы более короткие и содержательные. Особенно полезно использовать рекурсию в тех случаях, когда решаемая задача и обрабатываемые данные по своей сути рекурсивны, например, при обработке списков, так как списки могут рекурсивно содержать подсписки, при работе с другими динамическими структурами, которые заранее не полностью известны. Рекурсивные процедуры играют важнейшую роль почти во всех программах, связанных с искусственным интеллектом.
8.6. ВВОД-ВЫВОД ДАННЫХ
До сих пор рассматривался ввод и вывод данных в лисповских программах через параметры функций и свободные переменные. Для организации диалога человека с программой в Лиспе существуют специальные функции READ и PRINT.
Для вывода результатов можно использовать функцию PRINT. Это функция с одним аргументом, которая сначала вычисляет значение аргумента, а затем выводит это значение.
Например:
(PRINT (* 2 2)) Результат: 4.
Перед выводом происходит переход на новую строку.
Функция READ читает и возвращает выражение: (READ). Как только интерпретатор встречает такое предложение, вычисления приостанавливаются до тех пор, пока не будет введен какой-либо символ или целиком выражение. Аргументов у функции READ нет, ее использование построено на побочном эффекте, состоящем именно во вводе выражения. Прочитанное выражение можно сохранить для следующего использования и обработки, например, так:
(setq input (read));
364