Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции ИВАНОВ Книга Паскаль.doc
Скачиваний:
5
Добавлен:
18.11.2019
Размер:
1.93 Mб
Скачать
  1. Структурно-стилизованный способ записи алгоритма.

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

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

Пример. Заданы координаты вершин треугольника ABC и точки D. Определить принадлежность точки треугольнику ABC.

алг Определение принадлежности точки треугольнику (действ. хА, уА, хВ, уВ, хС, ус, хD, уD, лит а);

арг хА, уА, хВ, уВ, хС, ус, хD, уD;

рез а;

нач

действ S1, S2, S3, S4;

вычислить значение S1, равное площади треугольника АВС;

вычислить значение S2, равное площади треугольника АВD;

вычислить значение S3, равное площади треугольника АCD;

вычислить значение S4, равное площади треугольника CDB;

если S1= S2+S3+S4

то а:=”точка внутри треугольника”,

иначе а:=”точка вне треугольника”,

все

напечатать значение а

кон

  1. Программный способ записи алгоритма.

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

Пример. Даны два числа А и В. Определить наибольшее из двух чисел.

10 INPUT “Введите два числа”;A, B

20 IF A>B THEN Y:=A ELSE Y:=B

30 PRINT “Наибольшее число”; Y

40 END

  1. Графический способ записи алгоритма.

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

В таблице 1 приведены некоторые наиболее часто используемые блоки и пояснения выполняемых ими функций. Размер а должен выбираться из ряда 10,15,20, ... мм, размер b равен 1.5а. В схемах алгоритма обычно увеличивают ширину блоков (размер b) для удобства записи информации.

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

Б лок-схема — это способ описания алгоритмов, где действия представлены в виде блоков, а последовательность в виде стрелок между ними.

Таблица 1.1

Название блока

Обозначение

Выполняемая функция

Начало

и

конец

Вход и выход в отдельно описанных алгоритмах и подпрограммах.

Ввод

и

вывод

Задание численных значений исходных данных и фиксация результатов расчета. Имеет один выход.

Вычислительный блок

Запись расчетных формул: слева от знака равенства записывается вычисляемая переменная, справа — расчетная формула.

Блок условия

(логический блок)

Проверка условия и выбор направления хода вычислительного процесса.

Имеет два выхода: “да”(знак “+”) при выполнении условия, “нет”(знак “-”) — в противном случае.

модификация

а

b

Начало цикла

Соединитель

Указание связи между прерванными линиями потока.

Предопределенный процесс

Использование ранее созданных и отдельно описанных алгоритмов или программ

Алгоритм, записанный в виде блок- схемы, не требует дополнительных объяснений, позволяет даже мало сведущему в информатике человеку очень наглядно представить и проследить последовательность действий, необходимых для решения задачи. Поэтому изображение алгоритмов в виде блок- схем используется в настоящее время наиболее широко. Часто в блоке условия вместо “да” используют “+”, а вместо “нет” используют “-”.

П ример. Дано число х. Рассчитать Y, где Y=

рис. 1.1

1.3 ОСНОВНЫЕ СТРУКТУРЫ АЛГОРИТМОВ

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

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

  • следование;

  • ветвление;

  • повторение.

1.3.1 Алгоритмы линейной структуры

А лгоритм линейной структуры (следование) — алгоритм, в котором все действия выполняются последовательно друг за другом.

Пример. Составить алгоритм вычисления объёма прямоугольного параллелепипеда. Диагональ параллелепипеда, равная d см, составляет с плоскостью основания угол ˚, а с боковой гранью угол ˚. Одна из сторон основания равна а см.

рис. 1.2

Решение:

Для вычисления объёма прямоугольного параллелепипеда необходима следующая формула: V=abc.

Из формулы видно, что для нахождения объёма необходимо сначала найти длину b и высоту c параллелепипеда. Из соотношения углов и сторон прямоугольного треугольника (рис.2) можно выразить искомые стороны: b = dSin и c = dSin.

Представим решение задачи в виде блок-схемы:

рис. 1.3

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

Все блоки алгоритма, кроме блоков ввода и вывода будут вычислительными.

В блоке ввода записывается слово “Ввод” и перечисляются исходные данные (переменные a, , ).

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

Пример. Составить алгоритм вычисления значения выражения для исходных данных x и y.

рис. 1.4

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

1.3.2 Алгоритмы разветвляющейся структуры

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

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

А лгоритм разветвляющейся структуры (ветвление) – алгоритм, в котором предусмотрено разветвление указанной последовательности действий на несколько направлений в зависимости от итога проверки условия.

На рисунках 5а, 5b, 5c продемонстрированы в условных обозначениях схемы основных конструкций разветвляющихся алгоритмов:

  • ответвление;

  • раздвоение;

  • выбор.

В конструкции Ответвление происходит выполнение вычислительного процесса только по одному из направлений. На приведенной в рис.5а схеме - по направлению, указанному знаком "+":

Рис. 1.5а. Конструкция – Ответвление

В конструкции Раздвоение в зависимости от итога проверки условия происходит выполнение либо одного вычислительного процесса, либо другого: если условие выполняется, то процесс продолжается по направлению, указанному знаком «+», иначе (условие не выполняется) – по направлению, указанному знаком «-».

Рис. 1.5b. Конструкция - Раздвоение

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

Рис. 1.5с. Конструкция – Выбор

Рассмотрим примеры на каждую из конструкций разветвляющейся структуры.

Пример. Составить алгоритм изменения значений двух заданных чисел: удвоить те из них, которые принадлежат интервалу [1;5].

Рис. 1.6

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

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

Пример. Дано число х. Рассчитать

Рис. 1.7

В данном примере продемонстрирована конструкция Раздвоение. В зависимости от введенного значения аргумента Х переменная Y принимает одно из двух возможных значений: Sinx или Cosx.

Пример. Составить алгоритм нахождения корней квадратного уравнения ax2+bx+c=0 в зависимости от коэффициентов а, b и с.

Рис. 1.8

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

Рассматриваемый алгоритм должен иметь две ветви: в одной, если D0, необходимо вычислить значения переменных х1 и х2, а в другой – дать информацию «корней нет».

В данной задаче предполагается, что при D=0 также существуют два корня (одинаковых).

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

Пример. Дано число х. Рассчитать

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

Рис. 1.9

Сначала проверяется условие в первом логическом блоке: х < 0. При его выполнении вычисляется значение Y и происходит выход из разветвляющейся структуры.

При невыполнении данного условия, проверяется условие во втором логическом блоке: х > 0. После его проверки происходит вычисление значения Y по одной из двух оставшихся формул.

П ример. Дано число х. Рассчитать

Рис. 1.10

В данном примере продемонстрирована конструкция Выбор, где ключом выбора является переменная n. В зависимости от введенного значения этой переменной, равного 0, 1, 2 или 3, происходит выбор формулы для вычисления Z. При всех других значениях n, (отличных от 0, 1, 2, 3) Z вычисляется по формуле x2.

1.3.3 Алгоритмы циклической структуры

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

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

С алгоритмом циклической структуры тесно связаны следующие понятия:

Цикл – выполнение определенного набора команд некоторое количество раз.

Тело цикла – многократно повторяющиеся действия алгоритма.

Параметр цикла – величина, с изменением которой связано многократное выполнение цикла.

Различают алгоритмы:

    • с заранее известным числом повторений – условием окончания повторения является достижение параметра цикла своего конечного значения;

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