Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Алгоритмизация как обязательный этап разработки

Содержание:

Введение

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

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

Тем не менее, взаимовлияние теоретических областей, связанных с вычислительной техникой, и теории алгоритмов также, несомненно.

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

Для достижения поставленной цели были сформулированы следующие задачи:

- изучить понятие алгоритмизации, как процесса построения алгоритма решения задачи;

- рассмотреть основные алгоритмические конструкции в программировании;

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

Объектом исследования курсовой работы является технологии программирования.

Предметом исследования является алгоритмизация как обязательный этап разработки программы.

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

Нормативную базу составили акты федерального законодательства в области гражданского права.

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

Глава 1 Алгоритмизация - это процесс построения алгоритма решения задачи

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

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

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

Слово можно расшифровать не только описанным выше способом. В частности, в соответствии со словарными определениями, алгоритмизация – это этап работы над задачей, во время которого формулируют алгоритм, позволяющий решить проблему. Альтернативная трактовка – область информатики, посвященная методикам, способам создания алгоритмов. Кроме того, алгоритмизация рассматривает свойства алгоритмов. Иногда эту науку называют алгоритмикой [7].

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

1.1 Процессы и этапы

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

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

•Какие системы информационной обработки будут эффективными в конкретном случае?

•Каковы математические методики функционирования применительны к крупным системам?

Рассматривая методы информобработки, следует сперва создать алгоритм, который бы детально описывал, как система работает. Затем формируется последовательность действий, позволяющая определить оптимальные решения, а также алгоритмизируется управленческий процесс. В некоторых случаях требуется создание последовательности для выявления значений, характеризующих управление [4].

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

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

Процедуры, операции, включенные в описание процесса через алгоритм, наиболее удобно фиксировать, применяя специальные языки программирования. Особенно актуально это, если процесс построения алгоритма необходим для последующего воплощения кода на электронно-вычислительной машине. Созданный человеком код затем обрабатывается транслятором и переводится в операционный язык, понятный для заданной машины. Нередко один шаг алгоритма – это несколько реализуемых машиной операций [2].

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

•анализ исходных данных;

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

•формализацию ключевых моментов;

•представление данных символами;

•формирование цельной последовательности операций.

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

Где можно встретить примеры алгоритмизации на практике? Иным может показаться, что это «наука в себе», не слишком применимая для чего-либо. На самом деле алгоритмизация – это эффективный метод автоматизации широчайшего спектра задач, рабочих процессов, в которых участвуют люди. Формирование программ, алгоритмов в первую очередь используется для упрощения вычислительных задач, которые раньше можно было решить только вручную. Несколько реже алгоритмизация позволяет создать последовательность действий управления машинами [9].

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

1.2 Информация и алгоритмы

Представленные в алгоритмической форме сведения – данные, продуцируемые алгоритмизацией. Для них невозможны многозначные интерпретации. Что такое алгоритм в информатике, математике, логике? Это такая последовательность, которую исполнитель может понять, имея перед собой только этот документ и никаких сторонних источников, условий, объяснений операциям. В алгоритме всегда указывается порядок действий. Без этой информации система не может считаться полноценной и применимой на практике [10].

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

•линейные;

•циклические;

•ветвления;

•смешанные.

Если внимательно изучить основы алгоритмизации, можно найти подробное описание всех типов последовательностей действий. Разберем их детальнее.

Линейная предполагает наличие четкой последовательности по шагам: есть первая операция, вторая и так далее. Отклонения от схемы не допускаются, вариантов корректировки не предусмотрено.

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

Цикл практически идентичен ветвлению, но позволяет возвращаться к операции, уже пройденной в ходе исполнения алгоритма [15].

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

1.3 Инструкции и алгоритмы

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

Исполнительные инструкции обычно составляются применительно к разнообразным объектам – клапанам, агрегатам, вытяжкам, двигателям. В инструкции описываются физические операции – взять, поднять, закрыть. Когда речь идет о вычислительной машине, объекты в алгоритме будут математические, действия, соответственно, такие же. Алгоритм может быть посвящен формулам, таблицам, в которые скомпонованы значения, а действия бывают самыми разными – от простейших вычислений до довольно сложных для человека матричных табличных операций. Инструкция обычно содержит условие, соответствующее правилам логики. Если удалось достигнуть необходимого показателя – можно продолжать движение по алгоритму или завершить его, в противном случае придется пройти еще один цикл. Также алгоритмы в норме имеют «запасной выход» на случай внештатной ситуации. Применительно к человеческой повседневности можно найти аналог в виде «Сообщить руководству о неполадке» [4].

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

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

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

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

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

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

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

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

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

Слово «алгоритм» пошло от латинского algoritmi. Что же оно означает? Аутентичное слово произошло от имени математика, деятельность которого пришлась на IX век. Благодаря трактату аль-Хорезми человечество смогло познакомиться с основным типом алгоритмической конструкции и вообще с общим понятием [6].

Ранее была принята форма написания слова – «алгорифм». Сейчас она используется лишь в некоторых случаях.

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

2.1 Виды алгоритмов

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

1.Информационные. Такие алгоритмы работают с большим количеством данных, но сам объем процесса их обработки маленький по длине и несложный.

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

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

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

Все основные алгоритмические конструкции должны иметь действия, которые им «подчиняются». Рассмотрим этот вопрос более подробно.

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

Какие же свойства должны иметь основные алгоритмические конструкции для максимально точной работы?

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

2.Результативность. Что подразумевает данное свойство? Обязательное получение результата. Алгоритм не может не привести к какому-то ответу. Из-за ошибки можно получить не тот результат, который был желаемым, но все же он будет. Более того, ответ должен быть получен через определенное число шагов.

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

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

5.Дискретность. Алгоритм – последовательное выполнение шагов. Каждый шаг является командой, пропускать или добавлять новые нельзя [11].

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

Если говорить о способах записи алгоритмов, то следует выделить следующие:

•Словесный. Иными словами, на языке, которым удобно изъясняться составляющему.

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

•Формульно-словесный. В основу взят словесный способ изъяснения, но в такие действия также записываются математические формулы или символы.

•Графический. Такой алгоритм записан на специальном языке блок-схем.

Следует пояснить последний пункт. Что собой представляет блок-схема? Это линейный или нелинейный алгоритм, шаги которого записаны с помощью специальных блоков. Они имеют свою конфигурацию, назначение и функцию. В случае такого описания, алгоритм записывается блок-схемами, которые связаны между собой линиями. В них необходимо дополнительно записать то или иное действие (шаг).

2.2 Алгоритмические конструкции

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

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

2.Разветвляющийся. Этот вычислительный процесс подразумевает наличие логического выражения (далее ЛВ) и выбора условия (ветви «ложь» и «правда»). В каждом случае реализуется лишь одна из двух и более команд. Нет задач и не может быть, в которых будут выполнены еще и другие варианты. Если в алгоритме две ветви, он простой, если больше двух – сложный. Причем последний процесс легко представляется за счет первого. Основным типом алгоритмической конструкции является как первый пункт, так и второй. Следующий вид тоже входит в этот список.

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

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

Создание циклов и их виды

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

•Смена показателя вышеописанных данных перед новым повторением самого цикла.

•Проверка условия, чтобы ЭВМ решила, следует ли снова «прокручивать» цикл или больше в этом нет нужды.

Циклы могут быть детерминированными и итерационными. Первые представляют собой повтор действий с уже известным количеством повторений. Итерационный цикл – тот, который повторяется неопределенное количество раз, пока условие не станет правдой или ложью [7].

Базовый алгоритм

Стоит запомнить то, что к основным алгоритмическим конструкциям не относится базовый алгоритм. Что он собой представляет? Данное понятие уже давно не встречается в современной литературе, однако это не значит, что его и вовсе больше не существует. Учитывая, что в решении задач может встретиться несколько ветвлений или повторений, можно выделить следующее заключение. Основные алгоритмические конструкции (линейные, разветвляющие, циклические) являются базовыми. По сути, они представляют собою «структурную единицу» каждой так называемой инструкции.

Линейные алгоритмы

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

Примером линейного алгоритма может быть процесс приготовления чая:

1.Налить воды в чайник.

2.Поставить чайник на плиту закипать.

3.Взять чашку.

4.Насыпать в чашку чай.

5.Добавить сахар.

6.После кипения налить в чашку кипяток.

7.Взять ложку.

8.Перемешать сахар.

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

Разветвляющиеся алгоритмы

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

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

Как правило, логические выражения представлены знаками "меньше", "больше", "меньше или равно", "больше или равно", "равно", "не равно". Иногда встречаются варианты, где условие связано между собой с помощью команд and (и) и or (или).

Примером такого алгоритма может быть решение следующей задачи: если выражение ((х+3)/1) равняется положительному числу, то вывести результат на экран, если отрицательному – сообщить пользователю об ошибке.

Достаточно просто на практике использовать основные алгоритмические конструкции. Ветвление является одним из самых распространенных методов решения.

2.3 Циклы

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

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

нц пока х <= 3

у := у + х

х := х + 1

кц

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

Ключевое слово "для" применяется к некоторому диапазону чисел, который нужно перебрать последовательно, выполняя с ними какие-либо действия. Данная конструкция используется, когда конечное число элементов известно.

Синтаксис его выглядит так:

нц для х от 1 до 3

у := у + х

кц

Служебные слова "от" и "до" показывают диапазон значений, которые необходимо перебрать. Таким образом в первой итерации х = 1, в результате прохода у приобретёт также значение 1. Дальше управление опять перейдёт в начало, и х теперь будет равен 2, соответственно, у станет 3.

Используя совместные конструкции циклов и ветвления, можно выстраивать простейшие алгоритмы для решения лёгких задач и получения знаний о работе языков программирования [12].

Цикл со счетчиком – цикл, который включает в себя переменную, изменяющую значение с определенным шагом. Шаг задается пользователем или прописывается программистом во время написания обеспечения. Большая часть языков для такого цикла использует оператор for.

Чтобы программа выводила на экран две строки 4 раза:

1.«Как дела?»

2.«Хорошо, спасибо!»

3.«Как дела?»

4.«Хорошо, спасибо!»

Необходимо создать детерминированный цикл. Как это выглядит? Воспользуемся языком «Паскаль» для лучшего восприятия конструкции.

1. For i:=1 to 2 do:

- i является счетчиком цикла, именно он определяет количество повторений в цикле.

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

3. Writeln (‘Как дела?’):

- слово writeln означает вывод фразы, находящейся в одинарных кавычках.

4. Writeln (‘Хорошо, спасибо').

5. End.

6. i:=i + 1.

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

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

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

Для реализации этого цикла необходима конструкция Repeat A until B. Дословно она переводится как «повторять действия, пока условие ложно». Соответственно, через А выражен сам процесс повторения, через В – данные, которые в результате должны принять правильное значение.

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

Цикл с постусловием строится таким образом, что он выполняется минимум один раз в любом случае. Однако имеются такие случаи, когда цикл необходим в случае того или иного условия, а при его отсутствии повторения осуществляться не должны. Иначе результат будет неверен. Именно в таком случае используется цикл с предусловием. Для его создания необходима конструкция «while A do B». Первая команда дословно переводится как «пока». А – условие, а В – действия, которые будут повторяться. Вся конструкция означает: «пока условие является верным, выполнять действия».

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

Вспомогательный алгоритм

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

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

Любой язык программирования изобилует разнообразными ключевыми словами, функциями или классами. Как правило, все они используют английский язык, на котором описываются методы или аргументы. В некоторых средах и вовсе встречаются просто сокращения машинных функций. Это в значительной степени затрудняло освоение разработки на начальных этапах. С целью повысить скорость понимания была создана серия специальных алгоритмических языков программирования, которые состояли из понятных и доступных слов и их сочетаний, ясных даже неподготовленному человеку [9].

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

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

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

С созданием первого алгоритмического языка программирования — алгола - дело освоения алгоритмов значительно ускорилось.

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

1.Поставить чайник на плиту.

2.Дождаться его закипания.

3.Налить кипяток в воду.

4.Опустить чайный пакет в чашку.

5.Добавить необходимое количество сахара, молока или мёда.

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

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

3.1 Свойства и особенности алгоритмического языка

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

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

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

Различия между машинными и алгоритмическими языками

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

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

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

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

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

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

•Нач. Означает непосредственное начало выполнения алгоритма. Длится до ключевого слова кон. Весь промежуток от "нач" до "кон" называется телом текущего алгоритма.

•Кон. Сообщает о том, что выполнение алгоритма окончено.

•Дано. Говорит о некоторых особенностях и нюансах использования алгоритма или об ограничениях. Например, здесь можно указать, что длины сравниваемых строк должны быть одинаковыми. Использование ключевого слова "дано" необязательно.

•Надо. Более подробное описание того, что должно получиться в результате выполнения алгоритма. Так же, как и "дано", может опускаться, но для построения более понятного и подробного кода его использование рекомендуется.

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

•Цел. Тип переменной целых чисел. Диапазон их должен варьироваться от -32768 до 32767.

•Вещ. Вещественные числа. Например, с экспонентой или дробной частью.

•Лог. Это ключевое слово означает, что будет использована переменная логического типа, способная принимать только "да" или "нет".

•Сим. Сюда входят значения с одиночными символами, например, «а», «3».

•Лит. Строковые переменные, которые могут содержать целые текстовые строки.

•Таб. Обозначает таблицу с данными определённого типа. Представляет собой аналог массива из других языков программирования.

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

•Для. Применяется для перебора всех значений определённого диапазона. Используется для циклов, т. е. непрерывного выполнения каких-либо процедур с данными.

•От и до. Указывает, какой именно диапазон значений нужно перебрать в цикле типа "для".

•Пока. Также служит для перебора нескольких значений. Используется для работы до тех пор, пока не выполнится определённое условие.

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

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

•То, иначе. Два слова, работающих в паре с "если". Также выстраивают механизм ветвления.

•Выбор. Удобный инструмент для осуществления ветвления из нескольких значений одного типа. Работает в паре с ключевым словом "при" и "иначе".

•Все. Означает окончание механизма ветвления.

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

•Вывод. Производит вывод данных на экран.

3.2 Основные структуры языка

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

Структура следования

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

алг Сумма двух чисел (арг цел a, b, рез цел S)

нач

ввод a, b

S := a + b

вывод «S = », S

кон

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

В теле алгоритма ключевое слово "ввод" принимает от пользователя данные и записывает их в переменные. Затем они складываются, и их сумма присваивается S. Перед концом алгоритма результат работы программы выводится на экран посредством ключевого слова "вывод". Данная запись на алгоритмическом языке типична и для многих других сред программирования [3].

Структура ветвления

Ход программы не всегда должен выполняться строка за строкой. Иногда нужно определить или изменить значение некой переменной в зависимости от ситуации. Например, при условии, что х = 0, не осуществлять деление на х.

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

если х = 0

то у = 1

все

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

если х = 0

то у = 1

иначе у = 0

все

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

Более удобным средством для осуществления множественного выбора является конструкция "выбор". Она позволяет перебрать несколько условий. При срабатывании одного из них будет выполнено указанное для него действие.

выбор

при х = 0: у = 0

при х = 1: у = 1

при х = 2: у = 2

все

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

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

•абсолютный модуль — abs(x);

•корень квадратный — sqrt(x);

•натуральный и десятичный логарифмы — ln(x) и lg(x);

•минимум и максимум двух чисел — min(x,y), max (x,y);

•синус, косинус, тангенс, котангенс — sin(x), cos(x), tg(x), ctg(x).

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

Логические выражения отражают, удовлетворяет ли некая операция условию. Например, х > 0 будет иметь значение "истина" при х, равном 1, 2, 25 или любом другом числе больше нуля. Алгоритмический язык содержит логические выражения, которые помимо стандартных математических операций могут использовать следующие ключевые слова и операторы:

•И. Означает, что выражения, между которыми находится ключевое слово, должны удовлетворять определённому условию: (х>0) и (у>0);

•Или. Одно из выражений может не удовлетворять условию, например, (х>0) или (у>0);

•Не. «Переворачивает» логическое значение выражения. Например, такая конструкция не (х>0), означает, что х все же должен быть не больше нуля.

Также присутствуют операторы сравнения - <, >, =, которые могут сочетаться, создавая выражения типа больше или равно.

3.3 Небольшая программа для алгоритмического языка

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

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

Составляющие алгоритмического языка имеют в своем составе множество ключевых слов. Первое, с чего начинается программа, это объявление об алгоритме — алг.

алг Возведение числа в квадрат ()

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

алг Возведение числа в квадрат (арг цел х, рез цел S)

Теперь машина будет знать, что взаимодействовать ей придется с переменной типа целое число, а результатом ее работы будет S.

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

нач

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

ввод х

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

S := х*х

вывод «S = », S

Алгоритмический язык, команды которого позволяют реализовать присвоение, записываются в виде :=. Тем самым в переменную S попадает значение произведения х на самого себя. Строка с выводом показывает результат на экране. Ну и завершается все это ключевым словом "кон". Полный код теперь будет выглядеть так:

алг Возведение числа в квадрат (арг цел х, рез цел S)

нач

ввод х

S := х*х

вывод «S = », S

кон

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

алг Возведение числа в квадрат и расчёт их суммы (арг цел х, рез цел S)

дано | х > 0

надо | S = 1*1 + 2*2+ … + x*x

нач цел а

ввод х; S:=0

нц для а от 1 до х

S:= S + a*a

кц

вывод «S = », S

кон

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

3.4 Использование и развитие алгоритмических языков

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

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

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

Заключение

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

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

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

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

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

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

Таким образом, в ходе проведенного исследования нами были решены все поставленные задачи.

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

Библиография

Нормативно-правовые документы

1. Конституция Российской Федерации от 12 декабря 1993 г. (с изм. и доп., вступ. в силу с 21.07.2014)

Научная литература

  1. Информатика: Базовый курс. / С. В. Симонович и др. СПб.: Питер, 2015
  2. Острейковский В. А. Информатика: Учеб. для вузов. - М.: Высш. шк., 2018. - 511 с.: ил.
  3. Алексеев Е. В. и др. Вычислительная техника и программирование. Практикум по программированию: Практ. пособие / В. Е. Алексеев, А. С. Ваулин, Г. Б. Петрова; Под ред. А. В. Петрова. - М.: Высш. шк., 2011. - 400 с.: ил
  4. Глушаков С. В., Мельников И. В. Персональный компьютер: Учебный курс / Худож. оформитель А. С. Юхтман. - Харьков: Фолио; М.: ООО «Издательство АСТ», 2017. - 520 с. - (Домашняя б-ка).
  5. Леонтьев В. Новейшая энциклопедия персонального компьютера. - М.: ОЛМА-ПРЕСС, 2019. - 640 с.
  6. Козлов В.В., Можаева Н.А., Зуева Н.Г. Информатика. Алгоритмизация и программирование. Мет. Указания и задания к курсовой работе,2016. -32с
  7. Изучение информатики и вычислительной техники: Пособие для учителей / Под ред. А.П. Ершова, В.М. Монахова. - М., 2013.
  8. Информатика и ИКТ. Практикум 8-9 класс / Под ред. Н.В. Макаровой - СПб, 2018.
  9. Информатика и ИКТ. Учебник 8-9 класс / Под ред. Н.В. Макаровой - СПб, 2018.
  10. Лапчик М.П. Вычисление. Алгоритмизация. Программирование: Пособие для учителя / Лапчик М.П. - М., 2012.
  11. Лапчик М.П. Методика обучения информатики / Лапчик М.П. - М., 2017.
  12. Пейперт С. Дети, компьютер и плодотворные идеи. / Пейперт С. - М, 2013.
  13. Программы для средних общеобразовательных учебных заведений. Информатика и ИКТ. / М., 2018.
  14. Программа по информатике и ИКТ. 5-11 класс / Под ред. Н.В. Макаровой - СПб, 2018.
  15. Семакин И.Г. Базовый курс информатики: 7-9 класс / Семакин И.Г и др. - М., 2018.
  16. Семакин И.Г., Шеина Т.Ю. Преподавание базового курса информатики в средней школе: Метод. пособие / Семакин И.Г., Шеина Т.Ю. - М., 2012.
  17. Сластенин В.А. и др. Педагогика: Учеб. пособие для студентов пед. Учебных заведений / Сластенин В.А. и др., М. - 2019.
  18. Угринович Н. Информатика. Базовый курс: Учебник для 9 класса / Угринович Н.Д. - М., 2018.
  19. Угринович Н. Преподавание курса «Информатика и ИКТ» в основной и старей школе. Методическое пособие для учителей/ Угринович Н.Д. - М., 2018.