Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
статистика ответы.шпора.docx
Скачиваний:
3
Добавлен:
24.09.2019
Размер:
378.61 Кб
Скачать

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

16/

Типы разветвляющихся алгоритмов  Второй типовой структурой алгоритмов является разветвляющийся вычислительный  процесс, в котором направление вычислений зависит от результата проверки некоторого  условия. Направления, по которым может следовать вычислительный процесс, называются  ветвями. В программах разветвляющихся процессов естественный порядок выполнения  операторов нарушается и обеспечивается выполнение той последовательности операторов,  которая соответствует выбранным условиям. В языке Паскаль это реализуется  специальными управляющими операторами или операторными структурами, которые  называются операторами перехода.  Схему алгоритма разветвленной структуры характеризует наличие блока "условие",  который имеет два выхода, помеченные словами "да" и "нет". Еще этот блок называют  логическим блоком. В этом блоке осуществляется проверка выполнения некоторого  логического условия. Если условие "истинно", вычислительный процесс идет по выходу  "да", в противном случае - по выходу "нет".  3.2. Операторы перехода  Назначение операторов перехода состоит в организации безусловных и условных  переходов в программе в зависимости от результата проверки логического условия В.  3.2.1. Операторная запись обхода  Разветвление такого типа может быть записано с помощью условного оператора, который  имеет вид:  IF < выражение > THEN < оператор > ,  где IF ( "если" ) и THEN ( "то" ) - ключевые слова;  < выражение > - логическое условие;  < оператор > - оператор.  При решении практических задач бывает необходимо в зависимости от результата  проверки, выполнить (или обойти) группу операторов. Язык Паскаль предоставляет  возможность сделать из группы операторов один составной оператор, заключив группу  операторов в операторные скобки Begin и End.  Тогда условный оператор для записи обхода группы операторов имеет вид:  IF < выражение > THEN Begin < S1, S2, . SN > End;.  3.2.2. Операторная запись альтернативы  Выбор из двух возможностей реализуется условным оператором, имеющим следующий  синтаксис:  IF < выражение > THEN < оператор 1 > ELSE < оператор 2 >;  где ELSE ("иначе") - ключевое слово.  Если < выражение > истинно, то выполняется < оператор 1 >, в противном случае - <  оператор 2 >.  Оператор, стоящий после ключевого слова ELSE, может быть любым оператором, в том  числе и условным. Кроме того, < оператор 1> и <оператор 2> могут быть составными  операторами.  Ниже приведена одна из возможных конструкций условного оператора:  IF B1 THEN Begin <s1,> End ELSE If B2 Then <s3> Else <s4>;  Здесь B1 и B2 - логические условия. < Оператор 1 > представляет собой составной оператор,  а < оператор 2 > - условный оператор If - Then - Else. Если логическое условие В1 истинно,  выполнятся S1 и S2, и управление будет передано следующему в программе оператору.  Если логическое условие В1 ложно, выбирается < оператор 2 >. При его выполнении  проверяется условие В2: в случае истинности выражения В2 выполняется оператор S3, в  противном случае - S4.  3.2.3. Операторная запись алгоритма выбора  Обычно при написании программ не рекомендуется использовать многократно вложенные  друг в друга условные операторы, так как программа становится громоздкой и ее трудно  понимать. Считается, что число уровней вложения не должно превышать двух - трех. Для  тех случаев, когда необходимо проверять много условий и в зависимости от них выполнять  различные действия, в языке Паскаль существует специальный оператор выбора.  Синтаксис оператора выбора:  CASE < индекс выбора > OF < элементы списка выбора > [ELSE <оператор>] END;  Индекс выбора состоит из выражения. Элементы списка выбора включают список  операторов, каждый из которых помечен одной или несколькими константами выбора. Все  константы выбора должны быть различными, а их тип должен быть идентичен типу  выражения (индекса выбора). В качестве типа выражения, следовательно, и констант  выбора, можно использовать любой простой тип, за исключением типа REAL.

Условный оператор (полная и сокращенная форма)

 

Форма организации действий, при которой в зависимости от выполнения некоторого условия совершается одна или другая последовательность действий, называется ветвлением. Для организации разветвления вычислительного процесса предназначен оператор условного перехода.

 

                               полное ветвление                                            не полное ветвление

 

Формат оператора:

 

IF  <Условие> THEN <N1 или оператор 1> ELSE  < N2 или оператор 2>

 

Если условие, указанное в операторе выполняется, то управление передается строке с номером N1 или оператору 1, иначе - строке с номером N2 или оператору 2   - полная форма.

 

IF  <Условие> THEN <N1 или оператор 1>   - сокращенная  форма.

 

Если конструкция ELSE  отсутствует и условие, указанное в операторе IF не выполняется, то управление передается следующей за командой строке.

 

Условия.

 

В Бейсике используются следующие знаки отношения между величинами:  =, <>, >, <, >=, <=

 

Оператор безусловного перехода.

 

Формат оператора:   GOTO N, где N – метка строки.

 

Множественный выбор (SELECT CASE)

 

SELECT CASE арифметическое или символьное выражение 

CASE условие 1

блок команд 1

…………….

[CASE ELSE

блок команд]

END SELECT

 

В поле операндов каждого оператора CASE надо указать условие в одном из трёх ФОРМАТОВ:

1.      CASE константа 1, константа 2, …

2.      CASE IS знак отношения константа

3.      CASE константа 1 ТО константа 2

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

Эта форма оператора отбора допускает объединение ожидания и отбор с ожиданием одной или нескольких альтернатив. Отбор может зависеть от условий, связанных с каждой альтернативой отбора с ожиданием.

отбор-с-ожиданием ::= select альтернатива-отбора {or альтернатива-отбора) [else последовательность-операторов] end select;альтернатива-отбора ::= [when условие = >] альтернатива-отбора-с-ожиданиемальтернатива-отбора-с-ожиданием ::= альтернатива-принятия | альтернатива-задержки | альтернатива-завершенияальтернатива-принятия ::= оператор-принятия [последовательность-операторов]альтернатива-задержки ::= оператор-задержки [последовательность - операторов]альтернатива-завершения ::= terminate;

Оператор отбора с ожиданием должен содержать по крайней мере одну альтернативу принятия. В дополнение к этому оператор отбора с ожиданием может содержать либо альтернативу завершения (только одну), либо одну или несколько альтернатив задержки, либо раздел else; эти три возможности являются взаимоисключающими.

Альтернатива отбора называется открытой, если она, не начинается с зарезервированного слова when или если значение условия — TRUE. В противном случае альтернатива называется закрытой.

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

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

17/ Если вычислительный процесс содержит многократные вычисления по одним и тем же математическим зависимостям, но для различных значений входящих в них величин (переменных), то его называют циклическим. Многократно повторяемые участки вычислений называются циклами, а переменные изменяющиеся в цикле – переменными цикла. Алгоритм циклической структуры в наиболее общем виде должен содержать:

. Подготовку цикла: задание начальных значений переменными цикла перед первым его вычислением;

. Тело цикла: действия, повторяемые в цикле для различных значений переменных цикла;

. Модификацию (изменение) значений переменных цикла перед каждым новым его повторением;

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

На рис.показан общий вид циклического алгоритма.

Различают циклы с заданным и заранее неизвестным числом повторений. Циклы первого типа называют циклами со счетчиком. Число повторений тела цикла в этом случае подсчитывается с помощью специальной переменной (счетчика), для которой известны только начальное и конечное (пороговое) значение, шаг ее изменения. Управление циклом осуществляется на основании сравнения текущего значения счетчика с заданным порогом. Переменную – счетчик часто именуют параметром цикла, а сам цикл – циклом с параметром.

Оператор цикла с параметром

Оператор цикла с параметром имеет следующий вид:

FOR N:=A TO B DO C или FOR N:=A DOWNTO D DO C

Оператор цикла с предусловием

Оператор цикла с предусловием имеет следующую общую форму записи:

WHILE <условие> DO <оператор>

Оператор выполняется в цикле WHILE до тех пор, пока УСЛОВИЕ истинно (имеем значение TRUE). Если условие ложно (имеем значение FALSE), то выполняется оператор, следующий за WHILE. Если условие

ложно с самого начала, то оператор не вычисляется ни разу. Условие

вычисляется и анализируется перед каждым выполнением цикла, отсюда

и термин "предусловие".

Действие оператора REPEAT подобно действию оператора WHILE, но проверка условия производится после очередного цикла, что обеспечивает его выполнение хотя бы один раз. Служебные слова REPEAT,

UNTIL по действию похожи на операторные скобки BEGIN – END: между ними можно поместить группу операторов, отделяя их друг от друга точкой с запятой. Оператор 1,..., оператор N выполняется в цикле REPEAT до тех пор, пока условие ложно.