Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Какими свойствами обладают алгоpитмы?
Основные свойства алгоритмов следующие: Понятность для исполнителя — т.е. исполнитель алгоритма должен знать, как его выполнять. Дискpетность (прерывность, раздельность) — т.е. алгоpитм должен пpедставлять пpоцесс pешения задачи как последовательное выполнение пpостых (или pанее опpеделенных) шагов (этапов). Опpеделенность — т.е. каждое пpавило алгоpитма должно быть четким, однозначным и не оставлять места для пpоизвола. Благодаpя этому свойству выполнение алгоpитма носит механический хаpактеp и не тpебует никаких дополнительных указаний или сведений о pешаемой задаче. Pезультативность (или конечность). Это свойство состоит в том, что алгоpитм должен пpиводить к pешению задачи за конечное число шагов. Массовость. Это означает, что алгоpитм pешения задачи pазpабатывается в общем виде, т.е. он должен быть пpименим для некотоpого класса задач, pазличающихся лишь исходными данными. Пpи этом исходные данные могут выбиpаться из некотоpой области, котоpая называется областью пpименимости алгоpитма. В какой форме записываются алгоритмы? На практике наиболее распространены следующие формы представления алгоритмов: · словесная (записи на естественном языке); · графическая (изображения из графических символов); · псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.); · программная (тексты на языках программирования). Что такое словесный способ записи алгоритмов?
Например. Записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел. Алгоритм может быть следующим: 1. задать два числа; 2. если числа равны, то взять любое из них в качестве ответа и остановиться, в противном случае продолжить выполнение алгоритма; 3. определить большее из чисел; 4. заменить большее из чисел разностью большего и меньшего из чисел; 5. повторить алгоритм с шага 2. Описанный алгоритм применим к любым натуральным числам и должен приводить к решению поставленной задачи. Убедитесь в этом самостоятельно, определив с помощью этого алгоритма наибольший общий делитель чисел 125 и 75. Словесный способ не имеет широкого распространения по следующим причинам: · такие описания строго не формализуемы; · страдают многословностью записей; · допускают неоднозначность толкования отдельных предписаний. Что такое графический способ записи алгоритмов? Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным.
Такое графическое представление называется схемой алгоритма или блок-схемой. В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т.п.) соответствует геометрическая фигура, представленная в виде блочного символа. Блочные символы соединяются линиями переходов, определяющими очередность выполнения действий. В таблице 7.1 приведены наиболее часто употребляемые символы.
Блок " процесс" применяется для обозначения действия или последовательности действий, изменяющих значение, форму представления или размещения данных. Для улучшения наглядности схемы несколько отдельных блоков обработки можно объединять в один блок. Представление отдельных операций достаточно свободно. Блок " решение" используется для обозначения переходов управления по условию. В каждом блоке " решение" должны быть указаны вопрос, условие или сравнение, которые он определяет. Блок " модификация" используется для организации циклических конструкций. (Слово модификация означает видоизменение, преобразование). Внутри блока записывается параметр цикла, для которого указываются его начальное значение, граничное условие и шаг изменения значения параметра для каждого повторения. Блок " предопределенный процесс" используется для указания обращений к вспомогательным алгоритмам, существующим автономно в виде некоторых самостоятельных модулей, и для обращений к библиотечным подпрограммам. Что такое псевдокод?
Он занимает промежуточное место между естественным и формальным языками. С одной стороны, он близок к обычному естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой строны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи. В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя. Однако в псевдокоде обычно имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. В частности, в псевдокоде, так же, как и в формальных языках, есть служебные слова, смысл которых определен раз и навсегда. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются. Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных (базовых) конструкций. Примером псевдокода является школьный алгоритмический язык в русской нотации (школьный АЯ), описанный в учебнике А.Г. Кушниренко и др. " Основы информатики и вычислительной техники", 1991. Этот язык в дальнейшем мы будем называть просто " алгоритмический язык". Как записываются алгоритмы на школьном алгоритмическом языке? Основные служебные слова
Часть алгоритма от слова алг до слова нач называется заголовком, а часть, заключенная между словами нач и кон — телом алгоритма. В предложении алг после названия алгоритма в круглых скобках указываются характеристики (арг, рез) и тип значения (цел, вещ, сим, лит или лог) всех входных (аргументы) и выходных (результаты) переменных. При описании массивов (таблиц) используется служебное слово таб, дополненное граничными парами по каждому индексу элементов массива. Примеры предложений алг: o алг Объем и площадь цилиндра (арг вещ R, H, рез вещ V, S) o алг Корни КвУр(арг вещ а, b, c, рез вещ x1, x2, рез лит t) o алг Исключить элемент(арг цел N, арг рез вещ таб А[1: N]) o алг Диагональ(арг цел N, арг цел таб A[1: N, 1: N], рез лит Otvet) Предложения дано и надо не обязательны. В них рекомендуется записывать утверждения, описывающие состояние среды исполнителя алгоритма, например: 1. алг Замена (арг лит Str1, Str2, арг рез лит Text)2. дано | длины подстрок Str1 и Str2 совпадают3. надо | всюду в строке Text подстрока Str1 заменена на Str24. 5. алг Число максимумов (арг цел N, арг вещ таб A[1: N], рез цел K)6. дано | N> 07. надо | К - число максимальных элементов в таблице А8. 9. алг Сопротивление (арг вещ R1, R2, арг цел N, рез вещ R)10. дано | N> 5, R1> 0, R2> 011. надо | R - сопротивление схемы12. Здесь в предложениях дано и надо после знака " |" записаны комментарии. Комментарии можно помещать в конце любой строки. Они не обрабатываются транслятором, но существенно облегчают понимание алгоритма. Команды школьного АЯ Оператор присваивания. Служит для вычисления выражений и присваивания их значений переменным. Общий вид: А: = В, где знак ": =" означает команду заменить прежнее значение переменной, стоящей в левой части, на вычисленное значение выражения, стоящего в правой части. Например, a: =(b+c)*sin(Pi/4); i: =i+1. Для ввода и вывода данных используют команды · ввод имена переменных · вывод имена переменных, выражения, тексты. Для ветвления применяют команды если и выбор, для организации циклов — команды для и пока, описанные в разделе 7.9. Пример записи алгоритма на школьном АЯ |
Последнее изменение этой страницы: 2017-05-05; Просмотров: 247; Нарушение авторского права страницы