Лекции Булатицкий Дмитрий Иванович (во многом по материалам Прасолова А. Н.)
Скачать 319.62 Kb.
|
Алгоритмы и их записьАлгоритм – это набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий. Важнейшие свойства алгоритма: Дискретность - означает, что алгоритм состоит из последовательности отдельных шагов - элементарных действий, выполнение которых не представляет сложности. Именно благодаря этому свойству алгоритм может быть реализован на ЭВМ. Детерминированность (определенность, точность, однозначность). Это свойство заключается в том, что при задании одних и тех же исходных данных несколько раз алгоритм будет выполняться абсолютно одинаково и всегда будет получен один и тот же результат. Свойство детерминированности проявляется также и в том, что на каждом шаге выполнения алгоритма всегда точно известно, что делать дальше, а каждое действие однозначно понятно исполнителю и не может быть истолковано неопределенно. Благодаря этому свойству выполнение алгоритма носит механический характер. Конечность (финитность)- заключается в том, что последовательность элементарных действий алгоритма не может быть бесконечной, неограниченной, хотя может быть очень большой (если требуется, например, большая точность вычислений). Массовость - выражается в том, что с помощью алгоритма можно решать не одну конкретную задачу, а любую задачу из некоторого класса однотипных задач при всех допустимых значениях исходных данных. Результативность (направленность) - означает, что выполнение алгоритма обязательно должно привести к решению поставленной задачи, либо к сообщению о том, что при заданных исходных величинах задачу решить невозможно. Алгоритмический процесс не может обрываться безрезультатно. Корректность - означает, что если алгоритм создан для решения определенной задачи, то для всех исходных данных он должен всегда давать правильный результат и ни для каких исходных данных не будет получен неправильный результат. Если хотя бы один из полученных результатов противоречит хотя бы одному из ранее установленных и получивших признание фактов, алгоритм нельзя признать корректным. В зависимости от исполнителя решение одной и той же задачи может требовать выполнения разных действий. Таким образом алгоритм сильно зависит от исполнителя, для которого он составляется. Сегодня в качестве исполнителя большинства алгоритмов выступают электронные устройства, однако исполнителем алгоритма также может быть и человек. Существуют различные способы записи алгоритмов, среди которых можно выделить следующие: описание на естественном языке; графическая запись (блок-схемы, структурограммы). формализованные и формальные языки (к которым также относятся и языки программирования). В рамках изучения программирования нам придётся сталкиваться в основном с программами, блок-схемами и структурограммами. Основы программирования на языке СиПравила записи программы на языке СиПрограмма перед обработкой компьютером должна быть помещена в файл на диске. Обычно этот файл имеет расширение <.c>. Рассмотрим типичную структуру файла с программой на языке Си и правила его оформления на следующем простом примере: /* Включить описания функций стандартного ввода-вывода */ #include /* Включить описания математических функций */ #include /* Другие включаемые файлы */ . . . /* Собственно текст программы */ void main( void ) /* <-- заголовок главной функции */ { float num; /* <-- описание типов данных */ /* Исполняемые операторы -* */ num = 2.345; /* Присвоим переменной num значение 2.345 */ printf( " sin(%f) = %f\n", num, sin(num) ); /* Вывод на экран */ } Любой файл начинается с директив #include, вставляющих в текст программы так называемые заголовочные файлы, которые содержат описания функций, используемых в этом файле. В нашем примере это описания стандартных функций ввода-вывода Далее следует заголовок главной функции программы main, операторы описания типов данных и исполняемые операторы. Директивы #include должны всегда начинаться с новой строки, остальные же операторы программы могут иметь произвольное положение в файле вплоть до записи в одну строку. При записи не допускается разрывать слова, числа, двухсимвольные операции. Пробелы используются для отделения слов друг от друга и для придания тексту большей выразительности и могут использоваться везде, за исключением случаев, описанных в предыдущем абзаце. Там, где допускается один пробел, можно поставить любое их количество. В любом месте программы, там, где может стоять пробел, допускается записывать комментарии. /* Это комментарий */ // Это тоже комментарии. Комментарии должны помогать понять смысл выполняемых программой действий и являются обязательной ее частью. При написании комментариев следует придерживаться ряда простых истин: программы читаются людьми, компьютеру комментарии не нужны; всегда необходимы вводные комментарии, в которых указывается назначение программы, ее автор, дата написания и изменения, краткое описание алгоритма, входных и выходных данных, основных переменных и вызываемых функций; комментарии должны содержать дополнительную информацию, а не перефразировать программу; комментарии должны быть расположены так, чтобы программа не была менее наглядной; неправильные комментарии хуже, чем их отсутствие. Стиль программирования, расположение операторов в строках, использование пробелов, выбор имен переменных и т. д. должны быть направлены на то, чтобы сделать программу более понятной людям, ее читающим. |