Алгоритмизация и программирование решения правовых задач

 

 

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

К основным свойствам алгоритмов относятся:

· понятность для исполнителя (он должен понимать, как выполнять предписанные алгоритмом действия при любом варианте исходных данных)

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

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

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

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

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

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

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

· наглядность (использование в языке уже существующих символов)

· единство (использование одних и тех же символов для обозначения одних и тех же или родственных понятий в разных частях алгоритма)

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

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

· однозначность (недвусмысленность записи любого алгоритма)

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

· машинные (самого низкого уровня)

· машинно-ориентированные (ассемблеры)

· машинно-независимые (высокого уровня)