Представление алгоритмов на алгоритмическом языке

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

Одним из способов представления алгоритма является его запись на алгоритмическом языке (псевдокоде).

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

Алгоритмический язык имеет свой словарь. Его составляют слова, употребляемые для записи команд, входящих в систему команд исполнителя того или иного алгоритма. Такие команды называют простыми командами. В алгоритмическом языке используют слова, смысл и способ употребления которых задан раз и навсегда. Эти слова называют служебными. Использование служебных слов делает запись алгоритма более наглядной, а форму представления различных алгоритмов – единообразной.

Алгоритм, записанный на алгоритмическом языке, имеет название. Для выделения названия алгоритма перед ним записывают служебное слово АЛГ (АЛГоритм). За названием алгоритма (обычно с новой строки) записывают его команды. Для указания начала и конца алгоритма его команды заключают в пару служебных слов НАЧ (НАЧало) и КОН (КОНец). Команды записывают последовательно, например:

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

Пример записи полного и неполного ветвления приведен ниже.

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

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

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

Алгоритмы, при исполнении которых отдельные команды или серии команд выполняются неоднократно, называют циклическими. Для организации циклических алгоритмов в алгоритмическом языке используют специальную составную команду цикла. Она соответствует блок-схемам типа «итерация» и может принимать следующий вид:

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

Свойства алгоритма

1. Одно из первых требований – описываемый процесс должен быть разбит на последовательность отдельных шагов. Это свойство алгоритмов называют дискретностью.

2. Запись алгоритма для определенного исполнителя (можно использовать лишь те команды, которые имеются в его СКИ). Свойство алгоритмов называют понятностью.

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

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

5. Наиболее распространены алгоритмы, обеспечивающие решение не одной конкретной задачи, а некоторого класса задач данного типа. Это свойство алгоритма называют массовостью.

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

Источник

Урок 15
§ 2.2. Способы записи алгоритмов

Ключевые слова:

• словесное описание
• построчная запись
• блок-схема
• школьный алгоритмический язык

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языкеСуществуют различные способы записи алгоритмов. Основными среди них являются:

• словесные;
• графические;
• на алгоритмических языках.

Теоретические исследования нашего соотечественника Андрея Андреевича Маркова (младшего) (1903-1979), выполненные в середине прошлого века, показали, что в общем случае алгоритмы должны содержать предписания двух видов:

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

Именно эти операторы положены в основу большинства способов записи алгоритмов.

2.2.1. Словесные способы записи алгоритма

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языкеСловесное описание. Самой простой является запись алгоритма в виде набора высказываний на обычном разговорном языке. Словесное описание имеет минимум ограничений и является наименее формализованным. Однако все разговорные языки обладают неоднозначностью, поэтому могут возникнуть различные толкования текста алгоритма, заданного таким образом. Алгоритм в словесной форме может оказаться очень объёмным и трудным для восприятия.

Пример 1. Словесное описание алгоритма нахождения наибольшего общего делителя (НОД) пары натуральных чисел (алгоритм Евклида).

Чтобы найти НОД двух чисел, составьте таблицу из двух столбцов и назовите столбцы X и У. Запишите первое из заданных чисел в столбец X, а второе — в столбец У. Если данные числа не равны, замените большее из них на результат вычитания из большего числа меньшего. Повторяйте такие замены до тех пор, пока числа не окажутся равными, после чего число из столбца X считайте искомым результатом.

Построчная запись. Это запись на естественном языке, но с соблюдением некоторых дополнительных правил:

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

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

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

1. Обозначить первое из заданных чисел X, второе обозначить Y.

2. Если X = Y, то перейти к п. 8.

3. Если X > Y, то перейти к п. 4, иначе перейти к п. 6.

8. Считать X искомым результатом.

Построчная запись алгоритма позволяет избежать ряда неопределённостей; её восприятие не требует дополнительных знаний.

Вместе с тем использование построчной записи требует от человека большого внимания.

2.2.2. Блок-схемы

Наилучшей наглядностью обладают графические способы записи алгоритмов; самый распространённый среди них — блок-схема.

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языкеБлок-схема представляет собой графический документ, дающий представление о порядке работы алгоритма. Здесь предписания изображаются с помощью различных геометрических фигур, а последовательность выполнения шагов указывается с помощью линий, соединяющих эти фигуры. Направления линий связи слева направо и сверху вниз считаются стандартными, соответствующие им линии связи можно изображать без стрелок. Линии связи справа налево и снизу вверх изображаются со стрелками.

Рассмотрим некоторые условные обозначения, применяемые в блок-схемах.

Выполнение алгоритма всегда начинается с блока начала и оканчивается при переходе на блок конца (рис. 2.2, а). Из начального блока выходит одна линия связи; в конечный блок входит одна линия связи.

Внутри блока данных (рис. 2.2, б) перечисляются величины, значения которых должны быть введены (исходные данные) или выведены (результаты) в данном месте схемы. В блок данных входит одна линия связи, и из блока исходит одна линия связи.

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

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

Комментарии (рис. 2.2, д) используются для добавления пояснительных записей, делающих блок-схему более понятной.

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

Рис. 2.2. Обозначения на блок-схемах

Пример 3. Запись алгоритма Евклида с помощью блок-схемы (рис. 2.3).

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

Рис. 2.3. Запись алгоритма Евклида с помощью блок-схемы

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

2.2.3. Алгоритмические языки

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языкеАлгоритмические языки — формальные языки, предназначенные для записи алгоритмов. Каждый из них характеризуется:

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

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

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

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

Пример 4. Алгоритм, позволяющий из полного сосуда ёмкостью 12 л отлить половину, пользуясь двумя пустыми сосудами ёмкостью 8 и 5 л.

алг переливания

наполнить сосуд ёмкостью 8 л из сосуда ёмкостью 12 л

наполнить сосуд ёмкостью 5 л из сосуда ёмкостью 8 л

вылить всё из сосуда ёмкостью 5 л в сосуд ёмкостью 12 л

вылить всё из сосуда ёмкостью 8 л в сосуд ёмкостью 5 л

наполнить сосуд ёмкостью 8 л из сосуда ёмкостью 12 л

долить из сосуда ёмкостью 8 л в сосуд ёмкостью 5 л

вылить всё из сосуда ёмкостью 5 л в сосуд ёмкостью 12 л

По ссылке http://www.niisi.ru/kumir/ вы можете скачать систему КуМир (Комплект учебных Миров) или скачать архив программы с сайта, в которой используется школьный алгоритмический язык, со встроенными исполнителями Робот, Чертёжник, Водолей и др. Кумир работает в операционных системах Windows и Linux.

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

САМОЕ ГЛАВНОЕ

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

Вопросы и задания

1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Что вы можете сказать о формах представления информации в презентации и в учебнике? Какими слайдами вы могли бы дополнить презентацию?

2. Каковы основные способы записи алгоритмов?

3. Чем вызвано существование многих способов записи алгоритмов?

4. Дайте словесное описание алгоритма сложения двух обыкновенных дробей а/b и c/d.

5. Представьте в виде построчной записи алгоритм решения следующей задачи: «Имеются четыре арбуза различной массы. Как, пользуясь чашечными весами без гирь, путём не более пяти взвешиваний расположить их по возрастанию веса?».

6. Представьте с помощью блок-схемы алгоритм решения следующей задачи: «Из трёх монет одинакового достоинства одна фальшивая (более лёгкая). Как её найти с помощью одного взвешивания на чашечных весах без гирь?».

7. Запишите на алгоритмическом языке алгоритм построения окружности заданного радиуса r, проходящей через заданные точки А и В.

8. В среде КуМир запишите и выполните алгоритм переливаний (пример 4) для исполнителя Водолей.

9. Подготовьте краткую биографическую справку о Маркове А. А. (младшем).

Электронное приложение к уроку

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языкеПредставление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языкеПредставление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке
Презентации, плакаты, текстовые файлыВернуться к материалам урокаРесурсы ЭОР

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

Cкачать материалы урока
Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

Источник

Способы представления алгоритмов

Алгоритмом (algorithm) называют чёткое описание последовательности действий, направленных на решение конкретной задачи. О важности и типах алгоритмических последовательностей сказано уже немало. В этой статье пойдёт речь о способах их представления при записи алгоритмов.

Словесный способ

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

Все эти примеры можно назвать словесным способом представления. У такого способа есть недостаток: отсутствие наглядности выполнения процесса и чёткой формализации объектов алгоритма.

Формульно-словесный способ

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

Для примера составим формульно-словесный алгоритм вычисления выражения: z=2∙x–(y+6): • вводим значения х и y; • находим сумму (y+6); • находим произведение (2∙x); • вычисляем z как разность уже полученных выше значений: z=2∙x–(y+6); • выводим z как результат вычисления выражения.

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

Табличный способ

В случае применения табличного метода алгоритм задаётся в виде входных данных: расчётных форм и таблиц. Способ широко применяется в экономических расчетах. Исходные данные, как и результаты, заносятся в заголовки столбцов используемой таблицы. Простейший пример такого способа представления — та же таблица умножения:

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

Графический способ

Этот метод ещё называют способом блок-схем. В данной ситуации каждый этап прохождения алгоритма представляется в виде геометрических фигур — так называемых «блоков», причём конкретная форма фигур зависит от выполняемой операции. Существует стандарт, регламентирующий размеры используемых графических блоков, а также их отображение, функции, формы и взаимное расположение. Направление работы алгоритма показывают линии соединения блоков.

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

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языкеПредставление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

Графический способ представления имеет практическое значение и используется не только в случае программирования. Его применяют при составлении информационных и структурных схем, инфографики и в иных ситуациях, когда нужно обеспечить чёткую визуализацию данных и графически отобразить последовательность расположения объектов алгоритма.

Создание блок-схемы алгоритма — важный и нужный этап решения поставленной задачи. Но при некоторых обстоятельствах этот этап можно считать промежуточным, так как в таком виде описанный алгоритм невозможно выполнить средствами ЭВМ. Зато графический способ представления значительно облегчает процесс дальнейшего создания компьютерной программы. О ней ниже.

Программный способ (текстовая запись)

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

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

Пример — простейший алгоритм сложения 2-ч чисел, который записан средствами языка программирования Qbasic:

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

О взаимодополнении способов представления

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

Источник

Информационные технологии копия 2

Основы алгоритмизации и технологии программирования

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

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

Любой алгоритм существует не сам по себе, а предназначен для определенного исполнителя (человека, робота, компьютера, языка программирования и т.д.). Свойством, характеризующим любого исполнителя, является то, что он умеет выполнять некоторые команды. Совокупность команд, которые данный исполнитель умеет выполнять, называется системой команд исполнителя. Алгоритм описывается в командах исполнителя, который будет его реализовывать. Объекты, над которыми исполнитель может совершать действия, образуют так называемую среду исполнителя. Исходные данные и результаты любого алгоритма всегда принадлежат среде того исполнителя, для которого предназначен алгоритм.

Значение слова «алгоритм» очень схоже со значениями слов «рецепт», «метод», «процесс». Однако, в отличие от рецепта или процесса, алгоритм характеризуется следующими свойствами: дискретностью, массовостью, определенностью, результативностью, формальностью.

Дискретность (разрывность – противоположно непрерывности) – это свойство алгоритма, характеризующее его структуру: каждый алгоритм состоит из отдельных законченных действий, говорят: «Делится на шаги».

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

Определенность (детерминированность, точность) – свойство алгоритма, указывающее на то, что каждый шаг алгоритма должен быть строго определен и не допускать различных толкований; также строго должен быть определен порядок выполнения отдельных шагов. Помните сказку про Ивана-царевича? «Шел Иван-царевич по дороге, дошел до развилки. Видит большой камень, на нем надпись: «Прямо пойдешь – голову потеряешь, направо пойдешь – жену найдешь, налево пойдешь – разбогатеешь. Стоит Иван и думает, что дальше делать». Таких инструкций алгоритм содержать не может.

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

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

Способы описания алгоритмов

Рассмотрим следующие способы описания алгоритма: словесное описание, псевдокод, блок-схема, программа.

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

Никаких правил составления словесного описания не существует. Запись алгоритма осуществляется в произвольной форме на естественном, например, русском языке. Этот способ описания не имеет широкого распространения, так как строго не формализуем (под «формальным» понимается то, что описание абсолютно полное и учитывает все возможные ситуации, которые могут возникнуть в ходе решения); допускает неоднозначность толкования при описании некоторых действий; страдает многословностью.

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

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

Блок-схема – описание структуры алгоритма с помощью геометрических фигур с линиями-связями, показывающими порядок выполнения отдельных инструкций. Этот способ имеет ряд преимуществ. Благодаря наглядности, он обеспечивает «читаемость» алгоритма и явно отображает порядок: выполнения отдельных команд. В блок-схеме каждой формальной конструкции соответствует определенная геометрическая фигура или связанная линиями совокупность фигур.

Рассмотрим некоторые основные конструкции, использующиеся для построения блок-схем (рис. 1).

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

(1) Блок, характеризующий начало/конец алгоритма (для подпрограмм – вызов/возврат);

(8) Блок – решение (проверка условия или условный блок);

(9) Блок, описывающий блок с параметром;

(10) Блок – границы цикла, описывающий циклические процессы типа: «цикл с предусловием», «цикл с постусловием»;

Описания алгоритма в словесной форме, на псевдокоде или в виде блок-схемы допускают некоторый произвол при изображении команд. Вместе с тем она настолько достаточна, что позволяет человеку понять суть дела и исполнить алгоритм. На практике исполнителями алгоритмов выступают компьютеры. Поэтому алгоритм, предназначенный для исполнения на компьютере, должен быть записан на «понятном» ему языке, такой формализованный язык называют языком программирования.

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

Основные алгоритмические конструкции

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

Линейная алгоритмическая конструкция

Линейной называют алгоритмическую конструкцию, реализованную в виде последовательности действий (шагов), в которой каждое действие (шаг) алгоритма выполняется ровно один раз, причем после каждого i- гo действия (шага) выполняется (i+ 1)-е действие (шаг), если i-e действие – не конец алгоритма.

Опишем алгоритм сложения двух чисел на псевдокоде в виде блок-схемы (рис. 2).

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

Разветвляющаяся алгоритмическая конструкция

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

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

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

Заданы три числа. Найти значение наименьшего из них Заданные числа обозначим: а, b, с; результирующее наименьшее – min. На рис. 5 представлена блок-схема алгоритма решения данной задачи.

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

Алгоритмическая конструкция «Цикл»

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

Арифметический цикл

В арифметическом цикле число его шагов (повторений) однозначно определяется правилом изменения параметра, которое задается с помощью начального (N) и конечного (К) значений параметра и шагом (h) его изменения. Т.е., на первом шаге цикла значение параметра равно N, на втором – N + h, на третьем – N + 2h и т.д. На последнем шаге цикла значение параметра не больше К, но такое, что дальнейшее его изменение приведет к значению, большему, чем К.

Вывести 10 раз слово «Привет!».

Параметр цикла обозначим i, он будет отвечать за количество выведенных слов. При i=1 будет выведено первое слово, при i=2 будет выведено второе слова и т. д. Так как требуется вывести 10 слов, то последнее значение параметра i=10. В заданном примере требуется 10 раз повторить одно и то же действие: вывести слово «Привет!». Составим алгоритм, используя арифметический цикл, в котором правило изменения параметра i=1,10, 1. т. е. начальное значение параметра i=1; конечное значение i=10; шаг изменения h=1. На рис. 6 представлена блок-схема алгоритма решения данной задачи.

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

Цикл с предусловием

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

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

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

Цикл с постусловием

Как и в цикле с предусловием, в циклической конструкции с постусловием заранее не определено число повторений тела цикла, оно зависит от входных данных задачи. В отличие от цикла с предусловием, тело цикла с постусловием всегда будет выполнено хотя бы один раз, после чего проверяется условие. В этой конструкции тело цикла будет выполняться до тех пор, пока значение условного выражения ложно. Как только оно становится истинным, выполнение команды прекращается. Блок-схема данной конструкции представлена на рис. 8 двумя способами: с помощью условного блока а и с помощью блока управления б.

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

Рекурсивный алгоритм

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

Простые типы данных: переменные и константы

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

Объем памяти для каждого типа определяется таким образом, чтобы в него можно было поместить любое значение из допустимого диапазона значений данного типа. Например, тип «байт» может принимать значения от О до 255, что в двоичном коде (255(10)=11111111(2)) соответствует ячейке памяти длиной в 8 бит (или 1 байт).

В описанных выше алгоритмах (примеры 1-3) все данные хранятся в виде переменных. Например, инструкция «Ввод двух чисел а, b » означает введение пользователем значений двух переменных, а инструкция «К=К + 1» означает увеличение значения переменной К на единицу.

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

Все остальные данные в программе, значения которых не изменяются на протяжении ее работы, называют константами или постоянными. Константы, как и переменные, имеют тип. Их можно указывать явно, например, в инструкции «К=К+1» 1 есть константа, или для удобства обозначать идентификаторами: pi=3,1415926536. Только значение pi нельзя изменить, так как это константа, а не переменная.

Структурированные данные и алгоритмы их обработки

Одномерный массив (шкаф ящиков в один ряд) предполагает наличие у каждого элемента только одного индекса. Примерами одномерных массивов служат арифметическая i) и геометрическая (bi) последовательности, определяющие конечные ряды чисел. Количество элементов массива называют размерностью. При определении одномерного массива его размерность записывается в круглых скобках, рядом с его именем. Например, если сказано: «задан массив A (10)», это означает, что даны элементы: a 1 , a 2 , …, a 10 . Рассмотрим алгоритмы обработки элементов одномерных массивов.

Ввод элементов одномерного массива осуществляется поэлементно, в порядке, необходимом для решения конкретной задачи. Обычно, когда требуется ввести весь массив, порядок ввода элементов не важен, и элементы вводятся в порядке возрастания их индексов. Алгоритм ввода элементов массива А(10) представлен на рис.9.

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

В заданном числовом массиве A(l0) найти наибольший элемент и его индекс, при условии, что такой элемент в массиве существует, и единственный.

Обозначим индекс наибольшего элемента т. Будем считать, что первый элемент массива является наибольшим = 1). Сравним поочередно наибольший с остальными элементами массива. Если оказывается, что текущий элемент массива а i (тот, c которым идет сравнение) больше выбранного нами наибольшего ат, то считаем его наибольшим =i) (рис.10).

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

Рассмотрим двумерный массив (шкаф с множеством ящиков, положение которых определяется двумя координатами – по горизонтали и по вертикали). В математике двумерный массив (таблица чисел) называется матрицей. Каждый ее элемент имеет два индекса а ij , первый индекс i определяет номер строки, в которой находится элемент (координата по горизонтали), а второй j – номер столбца (координата по вертикали). Двумерный массив характеризуется двумя размерностями N и М, определяющими число строк и столбцов соответственно (рис. 11).

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

Представление алгоритмов на алгоритмическом языке. Смотреть фото Представление алгоритмов на алгоритмическом языке. Смотреть картинку Представление алгоритмов на алгоритмическом языке. Картинка про Представление алгоритмов на алгоритмическом языке. Фото Представление алгоритмов на алгоритмическом языке

Задана матрица символов (100х100), представляющая собой карту ночного неба; звездам на карте соответствует символы «*». Определить: сколько звезд на карте?

Алгоритм решения задачи достаточно прост, необходимо перебрать все элементы матрицы и посчитать, сколько среди них символов «*». Обозначим К переменную – счетчик. На рис 13. представлена блок-схема решения этой задачи.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *