Главная страница
Навигация по странице:

  • Дискретность

  • Детерминированность

  • Конечность (финитность)

  • Результативность (направленность)

  • Корректность

  • Лекции Булатицкий Дмитрий Иванович (во многом по материалам Прасолова А. Н.)


    Скачать 319.62 Kb.
    НазваниеЛекции Булатицкий Дмитрий Иванович (во многом по материалам Прасолова А. Н.)
    Дата11.01.2022
    Размер319.62 Kb.
    Формат файлаdocx
    Имя файлаLecture_Programming_2021_09_01.docx
    ТипЛекции
    #328427
    страница4 из 36
    1   2   3   4   5   6   7   8   9   ...   36

    Алгоритмы и их запись


    Алгоритм – это набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное число действий.

    Важнейшие свойства алгоритма:

    • Дискретность - означает, что алгоритм состоит из последовательности отдельных шагов - элементарных действий, выполнение которых не представляет сложности. Именно благодаря этому свойству алгоритм может быть реализован на ЭВМ.

    • Детерминированность (определенность, точность, однозначность). Это свойство заключается в том, что при задании одних и тех же исходных данных несколько раз алгоритм будет выполняться абсолютно одинаково и всегда будет получен один и тот же результат. Свойство детерминированности проявляется также и в том, что на каждом шаге выполнения алгоритма всегда точно известно, что делать дальше, а каждое действие однозначно понятно исполнителю и не может быть истолковано неопределенно. Благодаря этому свойству выполнение алгоритма носит механический характер.

    • Конечность (финитность)- заключается в том, что последовательность элементарных действий алгоритма не может быть бесконечной, неограниченной, хотя может быть очень большой (если требуется, например, большая точность вычислений).

    • Массовость - выражается в том, что с помощью алгоритма можно решать не одну конкретную задачу, а любую задачу из некоторого класса однотипных задач при всех допустимых значениях исходных данных.

    • Результативность (направленность) - означает, что выполнение алгоритма обязательно должно привести к решению поставленной задачи, либо к сообщению о том, что при заданных исходных величинах задачу решить невозможно. Алгоритмический процесс не может обрываться безрезультатно.

    • Корректность - означает, что если алгоритм создан для решения определенной задачи, то для всех исходных данных он должен всегда давать правильный результат и ни для каких исходных данных не будет получен неправильный результат. Если хотя бы один из полученных результатов противоречит хотя бы одному из ранее установленных и получивших признание фактов, алгоритм нельзя признать корректным.

    В зависимости от исполнителя решение одной и той же задачи может требовать выполнения разных действий. Таким образом алгоритм сильно зависит от исполнителя, для которого он составляется. Сегодня в качестве исполнителя большинства алгоритмов выступают электронные устройства, однако исполнителем алгоритма также может быть и человек.

    Существуют различные способы записи алгоритмов, среди которых можно выделить следующие:

    • описание на естественном языке;

    • графическая запись (блок-схемы, структурограммы).

    • формализованные и формальные языки (к которым также относятся и языки программирования).

    В рамках изучения программирования нам придётся сталкиваться в основном с программами, блок-схемами и структурограммами.

    1. Основы программирования на языке Си

      1. Правила записи программы на языке Си


    Программа перед обработкой компьютером должна быть помещена в файл на диске. Обычно этот файл имеет расширение <.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 должны всегда начинаться с новой строки, остальные же операторы программы могут иметь произвольное положение в файле вплоть до записи в одну строку. При записи не допускается разрывать слова, числа, двухсимвольные операции.

    Пробелы используются для отделения слов друг от друга и для придания тексту большей выразительности и могут использоваться везде, за исключением случаев, описанных в предыдущем абзаце. Там, где допускается один пробел, можно поставить любое их количество.

    В любом месте программы, там, где может стоять пробел, допускается записывать комментарии.
    /* Это комментарий */

    // Это тоже комментарии.
    Комментарии должны помогать понять смысл выполняемых программой действий и являются обязательной ее частью. При написании комментариев следует придерживаться ряда простых истин:

    • программы читаются людьми, компьютеру комментарии не нужны;

    • всегда необходимы вводные комментарии, в которых указывается назначение программы, ее автор, дата написания и изменения, краткое описание алгоритма, входных и выходных данных, основных переменных и вызываемых функций;

    • комментарии должны содержать дополнительную информацию, а не перефразировать программу;

    • комментарии должны быть расположены так, чтобы программа не была менее наглядной;

    • неправильные комментарии хуже, чем их отсутствие.

    Стиль программирования, расположение операторов в строках, использование пробелов, выбор имен переменных и т. д. должны быть направлены на то, чтобы сделать программу более понятной людям, ее читающим.

      1. 1   2   3   4   5   6   7   8   9   ...   36


    написать администратору сайта