Добавлен: 31.03.2023
Просмотров: 64
Скачиваний: 1
Основным признаком разветвляющегося алгоритма является существование условного перехода. Он происходит во время проверки выражения на истину или ложь.
Как правило, логические выражения представлены знаками "меньше", "больше", "меньше или равно", "больше или равно", "равно", "не равно". Иногда встречаются варианты, где условие связано между собой с помощью команд 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».
•Лит. Строковые переменные, которые могут содержать целые текстовые строки.
•Таб. Обозначает таблицу с данными определённого типа. Представляет собой аналог массива из других языков программирования.
Следующий список слов используется для организации механизмов ветвления и циклов.
•Для. Применяется для перебора всех значений определённого диапазона. Используется для циклов, т. е. непрерывного выполнения каких-либо процедур с данными.
•От и до. Указывает, какой именно диапазон значений нужно перебрать в цикле типа "для".