
- •Глава 1. Информация и общественное развитие
- •Информация и живая природа
- •Письменность
- •Книгопечатание
- •Механизация и автоматизация обработки информации
- •Информационный взрыв
- •Появление эвм
- •Дальнейшее развитие средств обработки информации
- •Персональный компьютер
- •Информатика
- •Контрольные вопросы
- •Глава 2. Основные понятия информатики
- •Информация
- •Информационная модель
- •Алгоритм
- •Компьютер
- •Классификация компьютеров
- •Контрольные вопросы
- •Глава 3. Основные области применения вычислительной техники
- •Гипертекст
- •Мультимедиа
- •Электронная почта
- •Контрольные вопросы
- •Глава 4. Архитектура эвм
- •Основы хранения информации в компьютере
- •Текстовая информация
- •Числовая информация
- •Графическая информация
- •Звуковая и видеоинформация
- •Объем памяти
- •Виды памяти в компьютере
- •Оперативная память
- •Внешняя память
- •Процессор
- •Материнская плата
- •Системный блок
- •Устройства ввода/вывода
- •Дисплей
- •Клавиатура
- •Принтер
- •Манипулятор мышь
- •Другие устройства ввода/вывода
- •Семейство персональных компьютеров ibm pc
- •Другие архитектуры
- •Контрольные вопросы
- •Глава 5. Программное обеспечение компьютера
- •Структура программного обеспечения
- •Контрольные вопросы
- •Глава 6. Операционные системы
- •Включение и выключение персонального компьютера
- •Типы операционных систем
- •Интерфейс пользователя
- •Действия с файлами
- •Атрибуты файла
- •Каталог
- •Путь к файлу
- •Спецификация файла
- •Контрольные вопросы
- •Глава 7. Операционная оболочка Norton Commander
- •Назначение оболочки Norton Commander
- •Основные возможности Norton Commander
- •Интерфейс оболочки Norton Commander
- •Управление меню
- •Работа с диалоговыми панелями
- •Общий вид экрана в Norton Commander
- •Управление содержанием основной панели
- •Упорядочение файлов в каталогах
- •Управление видимостью панелей
- •Перемещения между панелями
- •Настройка панели на дисковое устройство
- •Перемещения по текущему каталогу панели
- •Перемещения между подкаталогами разных уровней
- •Запуск программы
- •Определение свободного объема на дисках
- •Получение справки
- •Просмотр текстовых файлов
- •Редактирование файлов
- •Ввод текста
- •Изменение текста
- •Перемещения по тексту
- •Удаления в тексте
- •Включение новых строк
- •Сохранение изменений
- •Формирование группы файлов
- •Копирование файлов и подкаталогов
- •Перемещение и переименование файлов и подкаталогов
- •Создание подкаталогов
- •Удаление файлов и подкаталогов
- •Выход из оболочки
- •Копирование дисков
- •Форматирование дисков
- •Основные команды оболочки Norton Commander
- •Контрольные вопросы
- •Глава 8. Операционная система Windows и основы графического интерфейса
- •Основные свойства и возможности Windows
- •Элементы интерфейса Windows
- •Рабочий стол
- •Элементы управления окном
- •Значок (пиктограмма)
- •Приложение и документ
- •Технические приемы работы в Windows
- •Основные операции с меню
- •Открытие и закрытие меню
- •Перемещение в меню
- •Выбор в меню
- •Некоторые особенности структуры меню
- •Горячие клавиши
- •Функциональные клавиши и сочетания клавиш
- •Значки инструментальных панелей
- •Подгруппы пунктов меню
- •Взаимоисключающие пункты
- •Переключающие пункты
- •Блокирование пунктов
- •Запрос дополнительной информации
- •Каскадное меню
- •Вызов диалогового окна
- •Дополнительные способы работы с меню
- •Типы и формы окон в Windows
- •Общая структура окна Windows
- •Основные операции над окнами
- •Работа с диалоговыми окнами
- •Основные сочетания клавиш интерфейса операционной системы Windows
- •Контрольные вопросы
- •Глава 9. Основы работы в операционной системе Windows
- •Справочная система
- •Структура справочной системы
- •Вызов справочной системы
- •Структура окна справки
- •Работа с вкладкой Содержание
- •Работа с вкладкой Указатель
- •Работа с вкладкой Поиск
- •Работа с разделом справки
- •Переходы по разделам
- •Особенности справочной системы диалоговых окон
- •Работа с основным меню
- •Завершение работы Windows
- •Работа с окном Мой компьютер
- •Открытие окна Мой компьютер
- •Структура окна Мой компьютер
- •Изменение вида рабочей зоны
- •Действия в списке ресурсов окна Мой компьютер
- •Выбор текущего уровня списка ресурсов
- •Перемещение по строкам текущего уровня
- •Переход на один уровень вниз
- •Переход на один уровень вверх
- •Работа с программой Проводник
- •Запуск программы Проводник
- •Структура окна программы Проводник
- •Действия в окне программы Проводник
- •Запуск программ и открытие документов
- •Запуск с рабочего стола
- •Запуск из основного меню
- •Запуск из окна Мой компьютер и окна программы Проводник
- •Поиск файлов и папок
- •Операции с ярлыками
- •Переименование ярлыков
- •Удаление ярлыков
- •Упорядочение ярлыков на рабочем столе
- •Ручное упорядочение
- •Упорядочение средствами операционной системы
- •Файловые операции
- •Создание папок и пустых файлов
- •Создание файлов в приложениях Windows
- •Открытие, сохранение и закрытие файлов в приложениях Windows
- •Определение текущих свойств файлов и папок
- •Переименование файлов и папок
- •Выделение группы файлов и папок
- •Копирование и перемещение файлов и папок
- •Удаление папок и файлов. Работа с Корзиной
- •Печать документов
- •Буфер обмена
- •Основные операции в операционной системе Windows
- •Контрольные вопросы
- •Глава 10. Уход за дисковыми устройствами
- •Форматирование дисков
- •Копирование гибких дисков
- •Определение свободного объема диска
- •Очистка диска от «мусора»
- •Проверка рабочих поверхностей дисков
- •Дефрагментация диска
- •Борьба с вирусами
- •Антивирусные средства
- •Семейство антивирусных программ Doctor Web
- •Архивация файлов
- •Контрольные вопросы
- •Глава 11. Графический редактор Paint
- •Назначение и основные возможности редактора Paint
- •Запуск редактора Paint и завершение его работы
- •Структура окна редактора Paint
- •Область рисования
- •Панель инструментов для рисования
- •Палитра
- •Строка состояния
- •Файловые операции
- •Создание рисунка
- •Первичное сохранение
- •Открытие файла
- •Сохранение файла
- •Печать рисунка
- •Общий порядок работы над рисунком
- •Особенности использования отдельных инструментов
- •Карандаш
- •Распылитель
- •Прямоугольник
- •Скругленный прямоугольник
- •Многоугольник
- •Заливка
- •Надпись
- •Выбор цветов
- •Масштаб
- •Удаление элементов рисунка
- •Фрагменты и работа с ними
- •Выделение фрагмента
- •Отмена выделения
- •Перемещение и копирование фрагмента в другое место рисунка
- •Вставка из файла
- •Отражение и поворот
- •Инвертирование фрагмента
- •Растяжение и наклон
- •Другие возможности Paint
- •Просмотр рисунка
- •Работа с пикселами
- •«Фотографирование» экрана
- •Контрольные вопросы
- •Набор заданий для лабораторных работ по теме «Графический редактор Paint»
- •Глава 12. Текстовый редактор Microsoft Word
- •Назначение редактора ms Word
- •Основные возможности редактора ms Word
- •Запуск редактора ms Word и завершение его работы
- •Справочная подсистема редактора
- •Внешний вид окна редактора ms Word
- •Режимы работы с документами
- •Структура строки состояния
- •Макрокоманды
- •Режим исправлений
- •Другие режимы
- •Горизонтальная и вертикальная линейки
- •Управление внешним видом окна редактора
- •Масштабирование рабочей зоны
- •Окно Параметры
- •Файловые операции
- •Создание документа
- •Открытие документа
- •Перемещения между окнами документов
- •Операции сохранения документа
- •Закрытие документа
- •Стандартные действия в редакторе
- •Ввод нового текста
- •Переключение между строчными и прописными буквами
- •Переключения между русским и латинским алфавитами
- •Перенос слов
- •Перемещения по документу
- •Перемещения с помощью мыши
- •Перемещения с помощью клавиатуры
- •Простейшие вставки и удаления в тексте
- •Фрагменты и их выделение
- •Действия с фрагментами
- •Вырезка фрагмента
- •Копирование фрагмента
- •Вставка фрагмента
- •Удаление фрагмента
- •Замена фрагмента
- •Перемещение фрагмента
- •Изменение регистра
- •Повторение, отмена и возврат изменений
- •Печать документов
- •Форматирование документов
- •Форматирование символов
- •Установка шрифта
- •Установка размера символов
- •Установка стиля, подчеркивания и эффекта символов
- •Копирование формата символов
- •Форматирование абзацев
- •Табуляция
- •Дополнительные способы форматирования абзацев
- •Границы и заливка абзаца
- •Маркер абзаца
- •Форматирование страниц
- •Нумерация страниц
- •Колонтитулы
- •Колонки
- •Стандартная разметка делового документа
- •Работа с таблицами
- •Создание таблиц
- •Создание пустых таблиц
- •Преобразование текста в таблицу
- •Рисование таблицы
- •Перемещения по таблице
- •Ввод в таблицу
- •Выделение ячеек, строк и столбцов
- •Выделение с помощью мыши
- •Клавиатурные способы выделения
- •Выделение строк и столбцов с помощью команд меню Таблица
- •Изменение таблицы
- •Вставка ячеек в таблицу
- •Добавление строк в таблицу
- •Добавление столбцов в таблицу
- •Удаление ячеек, строк и столбцов
- •Удаление таблицы
- •Объединение и разбиение ячеек
- •Перенос или копирование содержимого ячеек, строк и столбцов
- •Изменение высоты строки
- •Центрирование таблицы и изменение выравнивания ее строк
- •Изменение ширины столбца
- •Добавление обрамлений и заливок в таблицу
- •Вывод или отмена вывода линий сетки в таблице
- •Вставка текста перед таблицей
- •Разбиение таблицы
- •Повторение заголовков таблицы
- •Перенос строки таблицы на новую страницу документа
- •Удаление содержимого ячеек таблицы
- •Преобразование таблицы в абзацы текста
- •Сортировка
- •Отмена сортировки
- •Выполнение вычислений в таблице
- •Другие возможности подготовки текстов
- •Закладки и переходы
- •Поиск и замена
- •Автотекст
- •Автозамена
- •Буквица
- •Вставки
- •Вставка символов
- •Вставка документа
- •Вставка даты и времени
- •Вставка рисунков
- •Вставка объектов
- •Текстовые эффекты
- •Вставка математических формул
- •Проверка правописания
- •Синонимы
- •Краткая сводка команд редактора ms Word
- •Контрольные вопросы
- •Набор заданий для лабораторных работ по теме «Текстовый редактор ms Word» Задание 1
- •Задание 24
- •Назначение ms Excel
- •Основные возможности ms Excel
- •Запуск программы ms Excel и завершение ее работы
- •Справочная подсистема ms Excel
- •Внешний вид окна ms Excel
- •Рабочая книга ms Excel
- •Общие операции над таблицей
- •Перемещения внутри таблицы
- •Ввод, редактирование и удаление данных
- •Выделение фрагментов
- •Выделение группы смежных фрагментов с помощью мыши
- •Клавиатурные способы выделения группы смежных фрагментов
- •Выделение несмежных фрагментов
- •Снятие выделения
- •Автозаполнение
- •Копирование, перемещение данных
- •Вставка ячеек, строк и столбцов в таблицу
- •Форматирование данных
- •Форматирование текста
- •Форматирование чисел
- •Автоформат
- •Создание нестандартного формата и стиля
- •Копирование форматирования
- •Автоматизация вычислений
- •Автосуммирование
- •Формулы в ms Excel
- •Операции и функции
- •Ошибки в формулах
- •Редактирование формул
- •Автопересчет
- •Относительная и абсолютная адресация
- •Диаграммы в Excel
- •Базы данных в ms Excel
- •Статистическая обработка данных с помощью ms Excel
- •Краткая сводка команд программы ms Excel
- •Контрольные вопросы
- •Набор заданий для лабораторных работ по теме «Программа обработки электронных таблиц ms Excel» Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Задание 5
- •Глава 14. Основы работы в сети Интернет
- •Основные понятия и определения
- •Основные возможности и проблемы работы в сетях
- •Линии связи
- •Топология сети
- •Классификация сетей по дальности передачи
- •Пропускная способность
- •Функциональные структуры сетей
- •Сетевая операционная система
- •Администратор сети
- •Входное имя и пароль
- •Сетевой адрес компьютера
- •Протокол
- •Всемирная сеть Интернет
- •Доменный адрес
- •Узел Интернета
- •Получение доступа к Интернету
- •Информационные ресурсы сети Интернет
- •Электронная почта
- •Сообщения
- •Структура сообщения
- •Почтовый сервер
- •Операции с выходными сообщениями
- •Операции с входными сообщениями
- •Почтовые программы
- •Всемирная Паутина
- •Адрес ресурса
- •Электронные доски объявлений
- •Телеконференции
- •Пересылка файлов
- •Удаленный доступ
- •Поиск серверов
- •Базы данных в Интернете
- •Вход в Интернет
- •Обозреватель Internet Explorer
- •Назначение и основные функции Internet Explorer
- •Запуск программы Internet Explorer и завершение ее работы
- •Справочная система Internet Explorer
- •Структура окна Internet Explorer
- •Запрос ресурса
- •Просмотр web-страницы
- •Перемещение по гиперссылкам
- •Перемещение по ранее просмотренным страницам
- •Папка Избранное
- •Работа с содержанием страницы
- •Поиск в Интернете
- •Загрузка файлов из сети
- •Работа с почтовым web-узлом
- •Настройка программы
- •Программа электронной почты Outlook Express
- •Назначение и основные функции Outlook Express
- •Запуск программы Outlook Express
- •Стандартный вход в Outlook Express
- •Автономная работа с Outlook Express
- •Прекращение работы Outlook Express
- •Справочная подсистема Outlook Express
- •Структура основного окна Outlook Express
- •Работа с областями основного окна и папками
- •Адресная книга
- •Создание сообщений в Outlook Express
- •Выбор кодировки
- •Проверка правописания
- •Присоединение файлов
- •Назначение приоритета сообщению
- •Отправка сообщения
- •Просмотр сообщения
- •Работа с присоединенными файлами
- •Сохранение и печать сообщения
- •Ответ на сообщение
- •Переадресация сообщения
- •Удаление сообщения
- •Контрольные вопросы
- •Литература
- •Глава 5. Программное обеспечение компьютера 57
- •Глава 6. Операционные системы 62
- •Глава 7. Операционная оболочка Norton Commander 76
- •Глава 8. Операционная система Windows и основы графического интерфейса 106
- •Глава 9. Основы работы в операционной системе Windows 139
- •Глава 10. Уход за дисковыми устройствами 178
- •Глава 11. Графический редактор Paint 200
- •Глава 12. Текстовый редактор Microsoft Word 226
- •Глава 13. Программа обработки электронных таблиц Microsoft Excel 324
- •Глава 14. Основы работы в сети Интернет 363
- •Степанов Анатолий Николаевич
- •953005 - Литература учебная.
- •197110, Санкт-Петербург, Чкаловский пр., 15.
Алгоритм
Построение информационной модели представляет собой первый, но не единственный этап изучения или использования в практических целях рассматриваемого объекта, явления. После построения информационной или математической модели почти всегда приходится выполнять соответствующую модели обработку конкретной информации (данных).
Осознанная обработка информации до последнего времени происходила в основном в мозгу человека, или же применялись достаточно простые приспособления — пальцы на руках, камешки, счеты, арифмометры, логарифмические линейки и т. д. Однако схему обработки информации, последовательность действий, которые необходимо выполнить, человек либо запоминал, либо записывал на бумаге для долговременного хранения или для передачи в другие руки.
ВНИМАНИЕ
Последовательность действий, которую необходимо выполнить над исходными данными, чтобы достичь поставленной цели, принято называть алгоритмом.
Отметим, что приведенное определение понятия алгоритма является нестрогим. Его можно считать скорее объяснением на уровне бытового использования термина. Приводить и обсуждать более строгие определения этого понятия в рамках настоящего пособия нецелесообразно.
Возникновение термина «алгоритм» связывают с именем великого узбекского математика IX века Аль Хорезми, который дал определение правил выполнения основных арифметических операций. В европейских странах его имя трансформировалось в слово «алгорифм», а затем уже в «алгоритм». В дальнейшем этот термин стали использовать для обозначения совокупности правил, определяющих последовательность действий, выполнение которых приведет к достижению поставленной цели. Имеется несколько в общем сходных объяснений понятия алгоритм, которые акцентируют внимание на различных аспектах этого понятия. Для большей полноты восприятия понятия «алгоритм» приведем еще два достаточно часто используемых его объяснения.
Под алгоритмом понимается строгая, конечная система правил, инструкций для исполнителя, определяющая некоторую последовательность действий и после конечного числа шагов приводящая к достижению поставленной цели.
Можно также сказать, что алгоритм есть описание способа решения задачи, достижения цели, а собственно решение задачи или выполнение действий по данному способу является исполнением алгоритма.
Важным моментом в последних объяснениях является использование еще одного понятия — исполнителя алгоритма. В общем случае исполнять алгоритмы может не только человек. Животные, насекомые и даже растения в процессе своей жизнедеятельности выполняют определенные алгоритмы. В принципе, поручить исполнение алгоритма можно и неодушевленным механизмам и устройствам.
Если провести более или менее внимательный анализ, то окажется, что подавляющее большинство своих действий человек выполняет по определенным алгоритмам, иногда даже не осознавая этого. По определенным рецептам готовятся те или иные кулинарные изделия, по определенным схемам осуществляется пошив одежды, выплавка стали, выращивается зерно, выполняются лабораторные работы на занятиях по физике, химии, биологии, решаются математические задачи. Различные справочники в значительной мере являются сборниками алгоритмов, которые представляют собой способы решения тех или иных задач, разработанные той или иной научной или технической дисциплиной. Можно утверждать, что алгоритмы — это способ фиксации и передачи знаний, накопленных человечеством, это богатство культуры, науки и техники.
Роль алгоритмов в жизни человека весьма многогранна и не сводится только к обработке информации. Однако в процессе обработки информации алгоритмы играют первостепенную роль.
Алгоритмы обладают важнейшим качеством — исполнение одного и того же алгоритма в одних и тех же условиях различными людьми (в общем случае — исполнителями), как правило, приводит к одинаковым результатам. Следовательно, можно утверждать, что алгоритмы обладают (точнее, должны обладать) некоторыми свойствами, которые обеспечивают этот эффект. Кроме указанного качества, которое принято называть определенностью (однозначностью) алгоритма, можно указать еще понятность задания алгоритма его исполнителю, возможность исполнения алгоритма в тех или иных конкретных условиях, принципиальную достижимость результата и некоторые другие качества. Наличие этих свойств, собственно говоря, и делает некоторый набор правил, указаний алгоритмом.
При задании алгоритма необходимо позаботиться о том, чтобы алгоритм воспринимался всеми возможными исполнителями однозначно и точно, чтобы его можно было исполнить при любых допустимых исходных условиях и чтобы необходимый результат был получен за приемлемое время. Способы задания (записи) алгоритмов также весьма разнообразны. В частности, можно отметить словесный способ задания алгоритма — на уровне естественного языка; запись музыкальной мелодии в виде нот, графические способы задания алгоритма: чертеж, используемый для изготовления какой-либо детали, маршрут геологической партии, нанесенный на карту, нарисованная по специальным правилам схема выполнения какой-либо последовательности действий (заметим, что такую схему принято называть блок-схемой алгоритма) и т. д.
Как будет выяснено далее, процессор компьютера «понимает» только алгоритмы, которые заданы в виде двоичных машинных кодов. Однако этот «естественный» для компьютеров, обладающий всеми необходимыми свойствами способ задания алгоритмов очень сложен для использования человеком. Поэтому в информатике применяется ряд специальных способов, языков задания, записи алгоритмов, которые, во-первых, призваны обеспечить соответствие алгоритма всем необходимым требованиям, а во-вторых, приспособлены для их использования как человеком, так и — после специальной обработки — процессором компьютера. Искусственные языки, использующиеся для записи алгоритмов и обеспечивающие им наличие всех необходимых свойств, называются алгоритмическими языками. Существует очень большое число различных по своим возможностям и классам решаемых задач алгоритмических языков. В частности, можно упомянуть такие популярные языки, как Паскаль, Модула, Си.
Если имеется алгоритм обработки информации или выполнения тех или иных действий, то, в точности выполняя все предписания алгоритма, можно получить требуемый результат, не имея ни малейшего представления о том, зачем нужно выполнять те или иные действия. Важно только абсолютно точно выполнять предписанные в алгоритме действия и соблюдать порядок их выполнения. Итак, исполнение алгоритмов относительно несложно. Именно поэтому процесс исполнения алгоритмов удается формализовать и поручить его неодушевленным механизмам, автоматическим станкам, электронно-вычислительным машинам и т. д. Разработка же алгоритма, то есть плана выполнения действий, представляет собой весьма сложный творческий процесс, на который иногда затрачиваются годы и десятилетия человеческой жизни. Разработка алгоритмов решения практических задач в различных областях человеческой деятельности осуществляется высококвалифицированными специалистами в сфере обработки данных, которых называют проблемными программистами.
В качестве иллюстрации процесса разработки алгоритмов рассмотрим, например, построение алгоритма решения часто встречающейся на практике задачи поиска вхождения какой-либо последовательности символов в другую последовательность. С этой задачей приходится сталкиваться при поиске в различного рода словарях объяснения неизвестного слова или при переводе с одного языка на другой. Мы ищем неизвестное слово, которое можно рассматривать как одну последовательность символов, в словаре, который можно рассматривать как другую последовательность символов. Значительно упрощая ситуацию, будем считать, что словарь — это текст, состоящий из какого-либо числа символов N, например, из одной тысячи символов (N=1000), а искомое слово пусть состоит всего из трех символов. То есть последовательность символов, в которой осуществляется поиск, будем называть текстом, а последовательность символов, вхождение которой ищется, будем называть словом. Естественно считать, что текст содержит больше символов, чем слово (в крайнем случае — столько же). Заметим, что конкретные длины рассматриваемых последовательностей символов при решении данной задачи не имеют принципиального значения.
При решении задачи поиска нас будет интересовать только факт наличия или отсутствия искомого слова в тексте. Дополнительные действия, возникающие, ;кажем, при переводе слова с одного языка на другой, мы обсуждать не будем. Вначале предположим, что мы уже умеем сравнивать одну группу из трех символов с другой группой, также состоящей из трех символов, и делать вывод о том, совпадают они или нет. Введем в рассмотрение величину i, которую мы будем трактовать как номер первого из трех очередных символов текста. Закрепим за этой величиной значение единица и сравним заданное слово с начальными тремя буквами текста. Если они совпадают, то наша задача уже решена, и делается вывод о вхождении заданного слова в рассматриваемый текст. Если имеется несовпадение, то нужно сдвинуться по тексту на одну букву. Другими словами, нужно увеличить номер i на единицу (теперь его текущее значение равно двум) и сравнить с искомым словом вторую, третью и четвертую буквы текста. Если есть совпадение, то задача решена. Если нет, то вновь увеличим номер i на единицу (теперь его текущее значение равно трем) и сравним с искомым словом третью, четвертую и пятую буквы текста. И опять при совпадении заканчиваем решение, а при несовпадении продолжим сдвиг по тексту. Очевидно, этот процесс будет продолжаться до тех пор, пока мы не доберемся до конца текста (при условии, что где-нибудь ранее не найдем совпадения). Завершит в этом случае решение задачи последнее сравнение 998, 999 и 1000 символов текста с заданным словом. Другими словами, сравнение каждой очередной тройки символов текста продолжается до значения номера i, равного N-2 (в нашем случае это 998). При этом значении номера i сравнение осуществляется последний раз. Если и этот последний отрезок не совпадает, то делается вывод об отсутствии искомого слова в тексте.
а б
Рис. 2.1. Поиск вхождения слова в текст: слово в текст не входит (а); слово входит в текст (б)
Посмотрим, как выполняются описанные действия на конкретном примере. Для наглядности еще больше упростим задачу и возьмем текст, состоящий всего из N=5 символов. Еще раз отметим, что работа с текстом из N=1000 символов в принципе выполняется точно так же, как и с текстом из N=100 000 000 или из N=5 символов — разница только в количестве повторений одних и тех же действий. Чтобы проиллюстрировать возможные ситуации, возьмем два текста — «кокос» и «осока» — и будем искать вхождение в эти тексты слова «сок». Выполняющиеся в этих случаях последовательности действий показаны на рис. 2.1. Величина i, играющая роль номера первого символа сравниваемого со словом участка текста, в данном примере должна пробегать значения от 1 до N-2, то есть до 3. В случае а ни один из участков текста не совпал со словом «сок». В самом деле, при i-1 участок образуют 1, 2 и 3 буквы текста — «кок», при i=2 участок состоит из 2, 3 и 4 букв текста — «око», и наконец, последнее сравнение при i=3 — 3, 4, и 5 буквы текста образуют «кос». Дальнейшее смещение невозможно, так как при выделении последнего участка достигнута правая граница текста. Итак, в случае а делается вывод о том, что данное слово «сок» в данный текст «кокос» не входит. В случае 6 совпадение участка текста с заданным словом отмечается при i-2, и дальнейшие сравнения уже не выполняются. Для завершения обсуждения задачи необходимо еще определить, каким образом следует сравнивать между собой две группы символов. Поскольку в нашем случае эти группы состоят всего из трех букв, можно предложить следующий план действий - взять первую букву слова и первую букву текущей тройки символов текста. Если они не совпадают, следует закончить сравнение с выводом о несовпадении всей группы. При совпадении первых символов перейдем ко вторым символам слова и текущей тройки. И точно так же при их несовпадении нужно закончить сравнение с выводом о несовпадении всей группы, а при совпадении перейти к рассмотрению последних символов. Сравнением третьего символа слова и третьего символа текущей тройки заканчивается процедура сравнения групп.
Примечания: 1) T[i:i+2] - -> участок текста от i-гo до i+2 символов;
2)с--> слово
а
………
i:=l; flag: = false;
while [i < = N - 2] and not flag do
if t [i : i + 2] = c then flag: = true
else i: = i + l;
if flag then
writeln ('слово входит в текст')
else
writeln ('слово в текст не входит')
…….
б
Рис. 2.2. Блок-схема алгоритма и фрагмент программы решения задачи поиска: упрощенная блок-схема основного узла алгоритма (а); фрагмент соответствующей программы на языке Паскаль (б)
Итак, для решения сформулированной задачи поиска мы построили алгоритм, последовательность действий, проработанную до элементарных операций, которые могут быть выполнены процессором компьютера — сравнение двух символов, сравнение двух чисел, закрепление за величиной ее текущего значения, увеличение текущего значения на единицу и т. д. Правда, этот алгоритм записан в словесной форме. На рисунке 2.2 изображены упрощенная блок-схема основного участка алгоритма и фрагмент программы решения задачи поиска, записанный на языке Паскаль. Читателям рекомендуется обратить внимание на то, сколько места занимают и насколько понятны записи алгоритма на уровне естественного языка, в виде блок-схемы, а также в виде программы. Если же задать действия алгоритма или программы в соответствующих им машинных кодах, то будет получена программа на машинном языке, которую «понимает» и может выполнять процессор.