Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
алгоритмы для студентов раздать.docx
Скачиваний:
18
Добавлен:
18.11.2019
Размер:
569.3 Кб
Скачать

Практикум по теме «Основы алгоритмизации»

Умение решать задачи – такое же практическое искусство, как умение плавать или бегать. Ему можно научиться только путем подражания или упражнения. Д.Пойа

1 Понятие алгоритма

1.1 Понятие и свойства алгоритма

ОПРЕДЕЛЕНИЕ: Алгоритмом будем называть конечный набор точных и понятных предписаний (правил, инструкций, команд), позволяющих решать конкретную задачу из определенного класса однотипных задач. При этом подразумевается:

  • Исходные данные могут изменяться в определенных пределах;

  • Процесс применения предписаний (правил, инструкций, команд) к исходным данным (путь решения задачи) определен однозначно в виде последовательности шагов;

  • На каждом шаге известно, что считать результатом.

Все алгоритмы обладают общими свойствами. Рассмотрим их подробнее.

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

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

2. Чтобы исполнитель мог выполнить указания алгоритма, он должен понять и выполнить команду. Поэтому каждый алгоритм должен составляться в расчете на конкретного исполнителя с учетом его возможностей. Это свойство алгоритма называется понятностью.

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

3. Команды, образующие алгоритм, должны быть предельно четкими и однозначными. Их результат не может зависеть от какой-либо дополнительной информации извне алгоритма.

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

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

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

5. Любой алгоритм создан для решения той или иной задачи, поэтому нам необходима уверенность, что это решение будет правильным для любых допустимых исходных данных. Указанное свойство алгоритма принято называть корректностью (правильностью). Таким образом,

Корректность алгоритма заключается в том, что решение задачи, полученное посредством использования алгоритма, должно соответствовать действительности.

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

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

Массовость алгоритма в отдельных случаях может нарушаться (например, автоматы по оплате телефонных счетов: для них входными данными служит единственный тип монет).

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

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

В качестве исполнителя может выступать и персональный компьютер. При этом нужно иметь ввиду, что алгоритм, по которому работает компьютер, должен быть задан на понятном ему (компьютеру) языке, что требует записи алгоритма в специальной форме.

Алгоритм, записанный на языке исполнителя, принято называть программой.

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

Компьютерные программы создают программисты — люди, обученные процессу их составления (программированию).

Вопросы для самопроверки:

        1. Дайте определение алгоритма и приведите примеры.

        2. Приведите пример математического выражения и составьте алгоритм его вычисления.

        3. Поясните на примерах свойства алгоритма.

        4. Как вы понимаете свойство результативности алгоритма? Приведите примеры.

        5. Как вы понимаете свойство массовости алгоритма? Приведите примеры.

Вопросы для размышления

  1. Какие из нижеперечисленных правил являются алгоритмами? Ответ обоснуйте:

    • орфографические правила;

    • правила выполнения арифметических операций;

    • правила техники безопасности;

    • правила перевода чисел из одной системы счисления в другую.

Задания

1. Составьте алгоритм преобразования слова «информатика» в слово форма.