Программирование разветвляющихся алгоритмов конспект кратко

Программирование разветвляющихся алгоритмов

1. Условный оператор имеет полную и сокращенную форму записи. Полная форма условного оператора имеет вид:

if логическое выражение then оператор_1 else оператор_2;

Вычисляется значение логического выражения; если оно равно true, то выполняется оператор_1, если же — false — оператор_2.

Сокращенная форма условного оператора имеет вид:

Вычисляется значение логического выражения; если оно равно true, то выполняется оператор, записанный после then, если же — false, то этот оператор не выполняется.

thenz:=sqr(x)elsez:=y;

Здесь в результате выполнения условного оператора переменная z в любом случае получает новое значение.

Здесь, например, при x = 5 переменная b сохраняет то значение, которое она имела до выполнения условного оператора.

В условном операторе после служебных слов then или else записывается лишь один оператор; если необходимо выполнить несколько действий, то соответствующие операторы объединяются в составной оператор, который имеет вид: begin оператор_1;

Пример: if x>y then begin min:=y; max:=x end

else begin min:=x; max:=y end;

2. С помощью оператора выбора можно выбрать один из любого количества вариантов. Оператор выбора имеет вид:

else оператор

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

Пример:case mof

else writeln(‘ошибка в данных’)

3. Оператор безусловного перехода позволяет перейти к нужному оператору, при этом нарушается естественный порядок выполнения операторов. Оператор имеет вид: goto метка;

В качестве метки используется идентификатор или целое число без знака (0-9999). Метка описывается в разделе label:

label метка_1,метка_2, метка_n;

Одной меткой можно пометить только один оператор. Метка отделяется от помеченного оператора двоеточием.

Например: ab: writeln(‘переход по метке’);

Программирование циклических алгоритмов

Для программирования циклических алгоритмов используются операторы цикла. В языке Pascal различают три вида операторов цикла: for, while, repeat. Оператор цикла for имеет вид:

for параметр цикла:= выражение_1 to выражение_2 do оператор;

for параметр цикла:=выражение_1 downto выражение_2 do оператор;

параметр цикла — переменная порядкового типа;

выражение_1— начальное значение параметра цикла;

выражение_2– конечное значение параметра цикла.

Сначала вычисляются и запоминаются значения выражения_1 и выражения_2. Далее проверяется: значение выражения_1 меньше или равно (для downto — больше или равно) значению выражения_2. Если нет, то выполнение оператора цикла завершается, если же — да, то параметр цикла получает значение выражения_1, выполняется оператор и параметр цикла получает следующее значение (для downto – предыдущее значение). Затем проверяется: параметр цикла меньше или равен (для downto — больше или равен) значению выражения_2. Если да, то снова выполняется оператор и параметр цикла получает новое значение, если же — нет, то выполнение оператора цикла завершается.

for i:=1to10dowriteln(‘i=’,i);

for i:= 10downto1dowriteln(‘i=’,i);

Оператор цикла while имеет вид:

while логическое выражение do оператор;

Пока значение логического выражения true, выполняется оператор, записанный после служебного слова do, как только значение станет false, оператор цикла завершит свою работу. Если значение выражения с самого начала false, то указанный в цикле оператор не выполнится ни разу.

Оператор цикла repeatимеет вид:

until логическое выражение;

Операторы выполняются до тех пор, пока значение логического выражения не станет true. Поэтому, независимо от значения логического выражения, операторы, указанные в цикле repeat, выполнятся, по крайней мере, один раз.

Источник

Уроки 27 — 28
§ 3.4. Программирование разветвляющихся алгоритмов

При записи на языке Паскаль разветвляющихся алгоритмов используют условный оператор. Его общий вид:

if then else

Для записи неполных ветвлений используется неполная форма условного оператора:

if then

Слова if — then — else переводятся с английского языка на русский как если — то — иначе, что полностью соответствует записи ветвления на алгоритмическом языке.

Перед else знак «;» не ставится.

В качестве условий используются логические выражения:

• простые — записанные с помощью операций отношения;
• сложные — записанные с помощью логических операций.

Пример 1. Запишем на языке Паскаль рассмотренный в п. 2.4.2 (пример 8) алгоритм определения принадлежности точки х отрезку [а, b].

Пример 2. Воспользуемся неполным условным оператором для записи на языке Паскаль рассмотренного в п. 2.4.2 (пример 9) алгоритма присваивания переменной у значения наибольшей из трёх величин а, b и с.

Дополните эту программу так, чтобы её выполнение приводило к присваиванию переменной у значения большей из четырёх величин а, b,с и d.

3.4.2. Составной оператор

В условном операторе и после then, и после else можно использовать только один оператор. Если при некотором условий требуется выполнить определённую последовательность операторов, то их объединяют в один составной оператор.

begin end называется составным оператором.

Пример. Алгоритм решения квадратного уравнения вам хорошо известен. Запишем соответствующую программу на языке Паскаль.

3.4.3. Многообразие способов записи ветвлений

В качестве оператора после then и else можно использовать условный оператор. Например, возможна следующая конструкция:

if then

if then

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

Пример. Воспользуемся вложенным ветвлением для записи на языке Паскаль рассмотренного в п. 2.4.2 (пример 10) алгоритма решения линейного уравнения.

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

Возможно, второй вариант программы покажется вам более наглядным. Но и у первого варианта есть свои преимущества: в нём делается меньше проверок.

if then else

Используйте вложенные ветвления для записи программы, определяющей принадлежность точки х отрезку [а, b].

if then

САМОЕ ГЛАВНОЕ

При записи на языке Паскаль разветвляющихся алгоритмов используют условный оператор:

if then else

Для записи неполных ветвлений используется неполный условный оператор:

if then

Если при некотором условии требуется выполнить определённую последовательных операторов, то их объединяют в один составной оператор, имеющий вид:

Вопросы и задания

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

2. Как на языке Паскаль записывается полное и неполное ветвление?

3. Является ли условным оператором следующая последовательность символов?

а) if хthen х:=0 else read (у)
б) if х>=у then х:=0; у:=0 else write (z)
в) if xthen a:=a+l

4. Что такое составной оператор? Для чего он используется в условном операторе?

5. Используя составной оператор, упростите следующий фрагмент программы:

if a>b then с:=1;
if a>b then d:=2;
if athen c:=3;
if athen d:=4

6. Дано трёхзначное число. Напишите программу, которая определяет:

а) есть ли среди цифр заданного целого трёхзначного числа одинаковые;

б) является ли число «перевёртышем», т. е. числом, десятичная запись которого читается одинаково слева направо и справа налево.

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

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

9. Имеются данные о количестве полных лет трёх призёров спартакиады. Напишите программу, выбирающую и выводящую возраст самого младшего призёра.

10. Напишите программу, определяющую, лежит ли точка А(ха, уа) на прямой у = kx + l на ней или под ней.

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

if а>5 then с: =2

Какое значение имеет переменная а, если в результате выполнения условного оператора переменной с присваивается значение 3?

13. Напишите программу, вычисляющую значение функции:

14. Составьте программу для решения задачи № 21 к § 2.4 (определение дня недели).

15. Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8. Напишите программу, которая по введённым координатам двух полей (k, l) и (m, n) определяет, имеют ли эти поля один цвет.

16. Напишите программу, в которой пользователю предлагается дополнить до 100 некоторое целое число а (а — случайное число, меньшее 100). Ответ пользователя проверяется и комментируется.

Электронное приложение к уроку

Источник

Программирование разветвляющихся алгоритмов

При записи на языке Паскаль разветвляющихся алгоритмов используют условный оператор. Его общий вид:

if then else

Для записи неполных ветвлений используется неполная форма условного оператора:

if then

Слова if — then — else переводятся с английского языка на русский как если — то — иначе, что полностью соответствует записи ветвления на алгоритмическом языке.

Перед else знак «;» не ставится.

В качестве условий используются логические выражения:

• простые — записанные с помощью операций отношения;
• сложные — записанные с помощью логических операций.

Пример 1. Запишем на языке Паскаль рассмотренный в п. 2.4.2 (пример 8) алгоритм определения принадлежности точки х отрезку [а, b].

Программирование разветвляющихся алгоритмов

Пример 2. Воспользуемся неполным условным оператором для записи на языке Паскаль рассмотренного в п. 2.4.2 (пример 9) алгоритма присваивания переменной у значения наибольшей из трёх величин а, b и с.

Программирование разветвляющихся алгоритмов

Дополните эту программу так, чтобы её выполнение приводило к присваиванию переменной у значения большей из четырёх величин а, b,с и d.

3.4.2. Составной оператор

В условном операторе и после then, и после else можно использовать только один оператор. Если при некотором условий требуется выполнить определённую последовательность операторов, то их объединяют в один составной оператор.

begin end называется составным оператором.

Пример. Алгоритм решения квадратного уравнения вам хорошо известен. Запишем соответствующую программу на языке Паскаль.

Программирование разветвляющихся алгоритмов

3.4.3. Многообразие способов записи ветвлений

В качестве оператора после then и else можно использовать условный оператор. Например, возможна следующая конструкция:

if then

if then

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

Пример. Воспользуемся вложенным ветвлением для записи на языке Паскаль рассмотренного в п. 2.4.2 (пример 10) алгоритма решения линейного уравнения.

Программирование разветвляющихся алгоритмов

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

Программирование разветвляющихся алгоритмов

Возможно, второй вариант программы покажется вам более наглядным. Но и у первого варианта есть свои преимущества: в нём делается меньше проверок.

if then else

Используйте вложенные ветвления для записи программы, определяющей принадлежность точки х отрезку [а, b].

if then

САМОЕ ГЛАВНОЕ

При записи на языке Паскаль разветвляющихся алгоритмов используют условный оператор:

if then else

Для записи неполных ветвлений используется неполный условный оператор:

if then

Если при некотором условии требуется выполнить определённую последовательных операторов, то их объединяют в один составной оператор, имеющий вид:

Вопросы и задания

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

Источник

Читайте также:  Язык программирования си scanf
Оцените статью