В согласовании с рассмотренными выше методами описания формальных языков в представлении алгоритмов можно выделить две главные формы: символьную (словесную) и графическую.
Строчная запись, как ясно из наименования, представляет собой последовательность строк, любая из которых содержит описание 1-го либо нескольких простых действий. Эти строчки могут иметь метки в виде букв либо порядковых числовых номеров. Логика метода, т.е. порядок выполнения действий, задается или в очевидном виде методом указания метки следующей строчки, или в неявном — по дефолту управление передается строке, последующей за выполненной. «Элементарность» деяния определяется способностями исполнителя.
Данный метод представления метода следует считать главным, так как последовательностью строк может быть записана алгоритмическая нотация для хоть какого исполнителя — как человека, так и технического устройства. Для человека строчная алгоритмическая запись может быть очень приближена к естественному языку. Для технического устройства запись делается на спец формализованном языке.
Недочетом строчной формы представления метода является неудобство целостного восприятия его логической структуры. Указание об изменении естественной последовательности действий в строчной записи смотрится в виде ссылки на строчку с меткой. В случае довольно сложного метода такие ссылки затрудняют уяснение логики и последовательности действий, что нужно при проверке и отладке метода.
Разглядим несколько примеров строчной записи алгоритмов для разных исполнителей.
Пошагово-словесная форма представляет собой пронумерованную последовательность строк, любая из которых содержит описания определенных действий на естественном языке. Данная форма применяется в этом случае, если исполнителем является человек. Обычно в качестве примеров алгоритмов, представленных в таковой форме, приводят кулинарные рецепты, аннотации по использованию каких-то устройств, указания по посадке деревьев и т.п. Но примеры эти нельзя признать корректными, так как в их речь идет не об обработке инфы, а об управлении действиями, направленными на получение некого вещественного результата. Примерами данной формы представления могут служить методы математических вычислений над конечными числами. Разглядим отлично узнаваемый со школы метод Евклида нахождения большего общего делителя 2-ух натуральных чисел (а и b); его пошагово-словесное описание смотрится последующим образом:
Удобство пошагово-словесной формы — в ее универсальности (по отношению к классам описываемых алгоритмов), использовании естественного государственного языка для записи конструкций, отсутствии серьезной формализации. Форма обширно употребляется для представления разных учебных алгоритмов.
Формула — строчная запись действий, обеспечивающих обработку числовых, символьных либо логических данных. Формулы, созданные для исполнителя «человек», не непременно могут быть строчными — это приводит к некой неоднозначности порядка действий, не сказывающейся, но, на итог вычислений вследствие дистрибутивного и сочетательного законов.
Пример:
Если же формула записывается для вычисления компом, она представляется строго в строчной форме, а для однозначности выполнения действий инсталлируются ценности операций. К примеру, в языке PASCAL для математических и логических операций приняты последующие ценности:
Кроме обозначенных ценностей принимается дополнительное правило:
Приведенная выше формула, записанная в согласовании с ценностями и правилом, будет смотреться последующим образом:
Обработка символьной инфы делается созданными для этого функциями и процедурами.
Псевдокод — направленный на исполнителя «человек» отчасти формализованный язык, позволяющий записывать методы в форме, очень близкой к алголоподобным языкам программирования. Термин «частично формализованный» в этом случае значит, что в псевдокоде строго определены только правила записи управляющих структур, а описание самих действий остается естественным. Псевдокод имеет русскую базу и употребляется, в главном, при обучении азам программирования.
Метод представленный при помощи автокода, представляет собой последовательность строк, в каждой из которых содержится описание действий или по обработке данных, или по управлению процессом обработки. Для записи управляющих структур приняты последующие обозначения:
Нередко при записи метода отдельные деяния завершаются разделителем (к примеру, «;») — это дает возможность избежать ошибок в случае, если описание деяния занимает не одну строчку. Кроме этого, для удобочитаемости и наглядности применяется так именуемая «структурная запись», при которой запись отдельных частей структур делается не с начала строчки, а с отступом, показывающим вложенность и подчиненность этих частей.
В качестве примера метода, записанного при помощи псевдокода, приведем рассмотренный выше метод Евклида нахождения НОД 2-ух целых чисел (а и b).
Удобство использования псевдокода — в сочетании относительной строгости синтаксических конструкций и их русской базы. Близость конструкций псевдокода языкам программирования позволяет просто перейти от 1-го к другому. Но отсутствие формальных правил записи действий не позволяет использовать псевдокод для составления алгоритмов, исполнителями которых являются технические устройства.
Язык программирования — искусственный формализованный язык, созданный для записи метода для исполнителя «компьютер», метаязыком которого является естественный язык. Язык программирования строго фиксирует (т.е. определяет) и изображение управляющих структур, и описание допустимых действий, и синтаксические правила построения сложных структур.
Различают языки малого уровня (машинно-ориентированные) и высочайшего уровня (машинно-независимые). К языкам первого типа относятся:
Пример команд ассемблера:
Непременно, ассемблеры содержат и другие команды.
Разглядим обычный пример сложения чисел a, b и с. Итог должен присваиваться переменной d.
Запись метода делается в редакторе текста с ASC-кодировкой. Ясно, что для преобразования текста в последовательность машинных команд нужна еще одна промежная программка — она именуется компилятор. На шаге компиляции делается также рассредотачивание данных в ОЗУ; при всем этом заместо имен переменных подставляются относительные адреса ячеек, в каких данные размещаются. Абсолютные адреса данным присваивает операционная система при размещении программки в ОЗУ компьютера перед ее внедрением.
Ассемблер является машинно-зависимым языком, т.е. записанная на нем программка может исполняться только на той технике, поточнее тем типом микропроцессора, ассемблер которого был применен.
Для всех языков высочайшего уровня общим будет то, что нацелены они не на систему команд той либо другой машины, а на систему операторов, соответствующих для записи определенного класса алгоритмов. Примерами таких операторов, содержащихся во всех языках программирования, являются операторы присваивания, условные операторы и операторы циклов — причина этого будет дискуссироваться дальше; кроме этого непременно имеются операторы ввода-вывода для организации взаимодействия программки с юзером.
По многофункциональному предназначению языки программирования высочайшего уровня различают на проблемно-ориентированные и универсальные. Из заглавий классов ясно, что 1-ые созданы для решения каких-либо специфичных задач из некой отрасли познаний.
Примерами являются язык FORTRAN (FORmula TRANslator) —язык решения сложных научных и инженерных задач (кстати, это был 1-ый язык программирования высочайшего уровня); COBOL (Common Business Oriented Language) — язык для решения экономических и коммерческих задач; LISP (List Processing Language) —язык, применяемый в решении задач искусственного ума. К универсальным языкам относятся PASCAL (Philips Automatic Sequence CALculator), BASIC (Beginner ALL-purpose Symbolic Instruction Code), С (C++), Jawa, также современные среды зрительного программирования DELPHI, VISUAL BASIC и др. Эти языки позволяют решить, вообщем говоря, всякую задачку, хотя трудозатратность решения определенной задачки в различных языках будет различаться.
Другой признак, в согласовании с которым вероятна систематизация языков программирования, является парадигма (концепция) программирования, т.е. совокупа основополагающих мыслях и подходов, определяющих модель представления данных и их обработки, также методологии программирования.
В текущее время в распоряжении программера имеется очень широкий диапазон языков-инструментов, из которых для хоть какой определенной задачки можно избрать тот, что позволит решить ее хорошим методом. Опять приходим к высказанной ранее мысли: компьютер по отношению к юзеру оказывается не единственным исполнителем, а предоставляется обилием исполнителей, из которых следует избрать более подходящий для задачки.
Если основа оригинала (карты пли плана) прозрачна, то копию можно снять при помощи стола со…
Определение координат точки. Пусть точка А (рис. 32) находится в квадрате, абсциссы и ординаты вершин…
Рельефом местности называется совокупность неровностей физической поверхности земли. В зависимости от характера рельефа местность делят…
Для обозначения на планах и картах различных предметов местности, применяются специально разработанные условные знаки. Для обличения…
В инженерной геодезии чаще всего пользуются топографическими картами. Их составляют в масштабах 1:10000, 1:25000, 1:50000…