Для решения любой задачи нужно прежде всего ее сформулировать. Для реализации любого алгоритма на компьютере необходимо его представить в какой-либо форме. И как для задачи важна ее формулировка, так и для алгоритма чрезвычайно важна форма его записи. Она должна быть по возможности наглядной, но главное - однозначно понятной исполнителю, будь то человек или компьютер.
Этим требованиям удовлетворяет словесно-формульная форма записи алгоритмов. Она допускает некоторый произвол в используемых словах и обозначениях. Проиллюстрируем это на примере алгоритма определения максимального числа.
Пусть задано n (n≥2) чисел: с2, с2, ..., с. Требуется найти число с, равное наибольшему из них. Алгоритм решения этой задачи можно записать в виде:
Здесь символом := обозначено часто используемое выражение "положить равным". Согласно данному алгоритму п. 1, 2 и 7 выполняются однократно, а остальные образуют цикл, выполняющийся n-1 раз и охваченный для наглядности скобкой.
Для графического представления структуры алгоритмов часто используются блок-схемы. Эта форма записи представляет собой унифицированный набор геометрических блоков (прямоугольники, ромбы и т. п.), соединенных стрелками. В блоке записывается текст или формула, выражающие то, что нужно сделать на данном шаге выполнения алгоритма. Стрелки указывают последовательность перехода от одного блока к другому.
Построим блок-схему рассмотренного выше алгоритма определения максимального числа. Она представлена на рис. на с. 29. Ее преимущество - наглядность представления всех фрагментов алгоритма и логических связей между ними.
Рис. 5. Блок-схема алгоритма определения максимального числа
Процесс широкого внедрения компьютеров в различные сферы деятельности человека иногда называют информацией общества. Главной составной частью этого процесса является компьютерная информатика, т. е. все то, что связано с разработкой моделей, алгоритмов и программ, необходимых для решения задач обработки информации на компьютерах.
Мы познакомились с двумя важнейшими элементами "триады" компьютерной информатики - информационными моделями и алгоритмами решения задач.
Теперь охарактеризуем третий элемент триады - программы, реализующие на компьютере модели и алгоритмы обработки информации. Схема взаимодействия этих элементов в процессе решения задач изображена на рис. на с. 29. Что же касается логической связи между ними, то ее можно наглядно представить формулой
модель V алгоритм −−> программа (*)
Здесь символ V означает дизъюнкцию (логическую операцию "или"), а символ −−> - импликацию (логическую операцию "следует"). Эта формула выражает сущность компьютерной информатики. Она хорошо согласуется с концепцией книги Н. Вирта с необычным (по форме) названием - "Алгоритмы + Структуры данных = Программы".
Формуле (*) можно дать физическое толкование. Из физики мы знаем, что энергия означает способность совершать работу. Аналогично ПРОГРАММА, реализующая МОДЕЛЬ и АЛГОРИТМ, означает способность компьютера решить задачу. Чем больше накоплено энергии, тем больше потенциальных возможностей выполнить работу. По аналогии можно сказать, что чем больше информации о задаче заключено в МОДЕЛИ и АЛГОРИТМЕ, тем больше возможностей у компьютера решить задачу, руководствуясь соответствующей ПРОГРАММОЙ. И наоборот, если энергия недостаточна, то работа невыполнима. Аналогично, если информация неполна, то задача может оказаться неразрешимой, каким бы совершенным ни был компьютер.
ПРОГРАММА относительно информации, заключенной в МОДЕЛИ и АЛГОРИТМЕ, выступает в роли "силы", прикладываемой к компьютеру. При ее отработке совершается "работа", обеспечивающая решение задачи. Эту "работу" можно количественно оценить, если известны "сила" и "отрезок пути", на котором она совершается. Соответственно можно оценить эффективность решения задачи, зная сложность ПРОГРАММЫ и время ее обработки на данном компьютере.