- •Предисловие
- •Тема 13 посвящена актуальной в настоящее время проблеме компьютерных вирусов, также рассмотрены некоторые свойства компьютерных вирусов, их классификация, программы обнаружения и защиты от них.
- •Тема 1. Обработка данных средствами электронных таблиц Область применения
- •Основные понятия электронных таблиц
- •Общая характеристика интерфейса ms Excel
- •Технология ввода данных в ms Excel
- •Формулы, функции, мастер функций
- •Контрольные вопросы
- •Тема 2. Введение в технологию баз данных Базы данных и системы управления базами данных
- •Основные понятия теории баз данных
- •Модели данных
- •Средства ускорения доступа к данным
- •Язык запросов
- •Программные системы управления базами данных
- •Структура простейшей базы данных
- •Объекты базы данных
- •Режимы работы с базами данных
- •Разработка схемы данных
- •Контрольные вопросы
- •Тема 3. Этапы создания программ
- •Контрольные вопросы
- •Тема 4. Системы и языки программирования Системы программирования
- •Классификация языков программирования
- •Контрольные вопросы
- •Тема 5. Методологии программирования
- •Структурное программирование
- •Нисходящее проектирование
- •Концепция модульного программирования
- •Объектно-ориентированное программирование (ооп)
- •Декларативное программирование
- •Параллельное программирование
- •Case-системы
- •Индустрия искусственного интеллекта
- •Данные и знания
- •Модели представления знаний
- •Экспертные системы
- •Контрольные вопросы
- •Тема 6. Паскаль – структурный язык программирования высокого уровня Структура программы
- •Константы и переменные
- •Основные типы данных
- •Выражения, операнды, операции
- •Совместимость и преобразование типов
- •Основные операторы языка
- •Массивы
- •Процедуры и функции
- •Контрольные вопросы
- •Тема 7. Основные принципы построения компьютерных сетей
- •Основные показатели качества ивс
- •Виды информационно-вычислительных сетей
- •Контрольные вопросы
- •Тема 8. Способы связи компьютеров
- •Контрольные вопросы
- •Тема 9. Модель взаимодействия открытых систем osi
- •Физический уровень
- •Канальный уровень
- •Сетевой уровень
- •Транспортный уровень
- •Сеансовый уровень
- •Представительский уровень
- •Прикладной уровень
- •Контрольные вопросы
- •Тема 10. Техническое и программное обеспечение ивс Техническое обеспечение информационно-вычислительных сетей
- •Серверы и рабочие станции
- •Маршрутизаторы и коммутирующие устройства
- •Модемы и сетевые карты
- •Аналоговые модемы
- •Модемы для цифровых каналов связи
- •Сетевые карты
- •Устройства межсетевого интерфейса
- •Программное обеспечение информационно-вычислительных сетей
- •Контрольные вопросы
- •Тема 11. Локальные вычислительные сети
- •Виды локальных сетей
- •Базовые технологии локальных сетей
- •Построение локальных сетей Структуризация локальных сетей средствами канального уровня
- •Построение локальных сетей средствами сетевого уровня
- •Системное программное обеспечение вычислительных сетей
- •Контрольные вопросы
- •Тема 12. Глобальная сеть Интернет Основные понятия
- •Информационные ресурсы (службы) Интернет
- •Програмное обеспечение работы в Интернете
- •Адресация и протоколы в Интернете
- •Контрольные вопросы
- •Тема 13. Вирусы и антивирусное программное обеспечение Свойства компьютерных вирусов
- •Классификация вирусов
- •Программы обнаружения и защиты от вирусов
- •Контрольные вопросы
- •Библиографический список
Контрольные вопросы
Что такое системы программирования и к какому классу программ они относятся?
Что входит в состав систем программирования?
На каком языке программирования создавались первые программы?
На какие языки подразделяются процедурные языки?
Охарактеризуйте языки низкого уровня.
Какой язык относится к языку низкого уровня?
Достоинства языков низкого уровня.
Охарактеризуйте языки высокого уровня.
Достоинства языков высокого уровня.
Приведите примеры языков высокого уровня.
Для чего предназначены трансляторы?
Чем отличается компилятор от интерпретатора?
Недостатки интерпретации (как вид транслятора).
Что представляет собой процесс компиляции программы?
Какие действия выполняются при компиляции?
Чем отличается загрузочный модуль от объектного?
Чем отличается процедурное программирование от непроцедурного?
Какие виды программирования относятся к непроцедурному программированию?
Особенность декларативных языков.
Охарактеризуйте кратко языки программирования: Фортран, Бейсик, Паскаль, Кобол.
Охарактеризуйте кратко языки программирования: Ада, Си, Си++, Delphi, Java.
Приведите примеры объектно-ориентированных языков.
К какому классу языков относится язык Лисп?
К какому классу языков относится язык Пролог?
Тема 5. Методологии программирования
Подходы к созданию алгоритмов претерпели изменения в ходе эволюции компьютеров.
В эпоху 1-го и 2-го поколений программы составлялись из команд (машинный язык), непосредственно или почти непосредственно исполнявшихся компьютером (процессором). Такой подход в программировании, ориентированный на непосредственно выполняемые компьютером операции, можно назвать операциональным.
Структурное программирование
С появлением массовых ЭВМ 3-го поколения устаревшая технология программирования оказалась основным фактором, сдерживающим развитие и распространение компьютерных (информационных) технологий, что подтолкнуло ведущие в этой сфере деятельности фирмы, в первую очередь IBM, к разработке новых методологий программирования. Появившийся в начале 1970-х годов новый подход к разработке алгоритмов получил название структурного. Эта методология оказалась настолько жизнеспособной, что и до сих пор является основной в большом количестве проектов. Основу этой технологии составляют следующие положения.
Сложная задача разбивается на более мелкие, функционально лучше управляемые задачи. Каждая задача имеет один вход и один выход. В этом случае управляющий поток программы состоит из совокупности элементарных подзадач с ясным функциональным назначением.
Простота управляющих структур, используемых в задаче. Логическая структура программы может быть выражена комбинацией трех базовых структур: следования, ветвления и цикла.
Р азработка программы должна вестись поэтапно. На каждом этапе должно решаться ограниченное число четко поставленных задач с ясным пониманием их значения и роли в контексте всей задачи. Если такое понимание не достигается, это говорит о том, что данный этап слишком велик и его нужно разделить на более элементарные шаги. Согласно требованиям структурного программирования, детально проработанные алгоритмы изображаются в виде блок-схемы. При их разработке используются следующие условные обозначения.
Следование – самая важная из структур. Она означает, что действия могут быть выполнены друг за другом (рис. 5.1).
Эти прямоугольники могут представлять как одну единственную команду, так и множество операторов, необходимых для выполнения сложной обработки данных.
Ветвление – это структура, обеспечивающая выбор между двумя альтернативами. Выполняется проверка, а затем выбирается один из путей (рис. 5.2).
Эта структура называется также «ЕСЛИ – ТО – ИНАЧЕ», или «развилка». Каждый из путей (ТО или ИНАЧЕ) ведет к общей точке слияния, так что выполнение программы продолжается независимо от того, какой путь был выбран.
Может оказаться, что для одного из результатов проверки ничего предпринимать не надо. В этом случае можно применять только один обрабатывающий блок (рис. 5.3).
Цикл (или повторение) предусматривает повторное выполнение некоторого набора команд программы. Если бы циклы не существовали, вряд ли занятие программированием было бы оправданным: циклы позволяют записать длинные последовательности операций обработки данных с помощью небольшого числа повторяющихся команд. Разновидности цикла изображены на рис. 5.4 и 5.5.
Цикл «Пока» начинается с проверки логического выражения. Если оно истинно, то выполняется «Выполнить а», затем все повторяется снова, пока логическое выражение сохраняет значение «истина». Как только оно становится ложным, управление передается по программе дальше (см. рис. 5.4).
В цикле «До» проверка условия выполняется после операторов цикла («Выполнить а»). Цикл повторяется, если условие ложно. Как только оно становится истинным, управление передается по программе дальше (см. рис. 5.5).
Эти три структуры можно комбинировать одну с другой – как путем организации их следований, так и путем создания суперпозиций (вложений одной структуры в другую) – сколь угодно разнообразно для выражения логики алгоритма решения любой задачи. Используя описанные структуры, можно полностью исключить использование безусловного перехода, что является важным признаком структурного программирования.
Направление выполнения команд часто изображают сверху вниз. Умение образовывать из базовых структур их суперпозиции в соответствии с условиями конкретной задачи – одно из важнейших в программировании.
Пожалуй, самым важным достижением структурного подхода к разработке алгоритмов является нисходящее проектирование программ.