Программирование ветвлений на паскале сообщение

Обновлено: 17.05.2024

В языке Паскаль имеется оператор ветвления. Другое его название - условный оператор. Формат полного оператора ветвления следующий:

Здесь if - "если", then - "то", else - "иначе".

Программирование полного и неполного ветвления

Сравните запись алгоритма БИД1 из предыдущего параграфа с соответствующей программой.

алг БИД1
вещ А, В, С
нач ввод А, В
если А>В
то С:=А
иначе С:=В
кв
вывод С
кон
Program BID1;
var А, В, С : real;
begin readln(А, В);
if A>B
then C:=A
else C:=B;
writeln(С)
end.

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

Простой формой логического выражения является операция отношения. Как и в АЯ, в Паскале допускаются все виды отношений (ниже указаны их знаки):

(больше);
(не равно).

А теперь запрограммируем на Паскале алгоритм БИД2, в котором использовано неполное ветвление.

алг БИД2
вещ А, В, С
нач ввод А, В
С:=А
если В > А
то С:=B
кв
вывод С
кон
Program BID2;
var А, В, С : real;
begin readln(А, В);
С:=А;
if B>A
then C:=B;
write(С)
end.

Опять все очень похоже. Ветвь else в операторе ветвления может отсутствовать.

Программирование вложенных ветвлений

Запишем на Паскале программу определения большего из трех чисел, блок-схема которой показана на рис. 3.10. Структура этого алгоритма - вложенные ветвления. Алгоритм на АЯ (БИТ2) приведен в предыдущем параграфе.

Рис. 3.10. Блок-схема алгоритма "БИТ" с вложенными ветвлениями

Program BIT2;
var А, В, С, D: real;
begin readln(А, В, С);
if A>B
then if A>C then D:=A else D:=B
else if B>C then D:=B else D:=C;
writeln(D)
end.

Обратите внимание на то, что перед else точка с запятой не ставится. Вся ветвящаяся часть структуры алгоритма заканчивается на точке с запятой после оператора D:=C.

Составим программу упорядочения значений двух переменных.

алг СОРТИРОВКА
вещ X, Y, С
нач ввод X, Y
если X>Y
то С:=Х
X:=Y
Y:=C
кв
вывод X, Y
кон
Program SORTING;
var X, Y, С : real;
begin readln(X, Y) ;
if X>Y
then begin С : =X;
X:=Y;
Y:=C
end;
write(X,Y)
end.

Этот пример иллюстрирует следующее правило Паскаля: если на какой-то из ветвей оператора ветвления находится несколько последовательных операторов, то их нужно записывать между служебными словами begin и end. Конструкция такого вида:

называется составным оператором. Следовательно, в описанной выше общей форме ветвления и могут быть простыми (один) и составными операторами.

Логические операции

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

Program BIT3;
var А,В,С,D: real;
begin readln(А,В,С);
if (A>=B) and (A>=C) then D:=A;
if (B>=A) and (B>=C) then D:=B;
if (C>=A) and (C>=B) then D:=C;
writeln(D)
end.

Нетрудно понять смысл этой программы. Здесь использованы три последовательных неполных ветвления. А условия ветвлений представляют собой сложные логические выражения, включающие логическую операцию and (И). С логическими операциями вы встречались, работая с базами данных и с электронными таблицами.

Напомним, что операция and называется логическим умножением или конъюнкцией. Ее результат - "истина", если значения обоих операндов - "истина". Очевидно, что если А>=В и А>=С, то А имеет наибольшее значение и т. д. В Паскале присутствуют все три основные логические операции:

and - И (конъюнкция), or - ИЛИ (дизъюнкция), not - НЕ (отрицание).

Сложные логические выражения

Обратите внимание на то, что отношения, связываемые логическими операциями, заключаются в скобки. Так надо делать всегда! Например, требуется определить, есть ли среди чисел А, В, С хотя бы одно отрицательное. Эту задачу решает следующий оператор ветвления:

1. Как программируется на Паскале полное и неполное ветвление?

2. Что такое составной оператор? В каких случаях составной оператор используется в операторе ветвления?

3. Выполните на компьютере все программы, приведенные в данном параграфе.

4. Составьте не менее трех вариантов программы определения наименьшего из трех данных чисел.

5. Составьте программу сортировки по возрастанию значений в трех переменных: А, В, С.

6. Составьте программу вычисления корней квадратного уравнения по данным значениям его коэффициентов.

  • Для учеников 1-11 классов и дошкольников
  • Бесплатные сертификаты учителям и участникам

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

Существует 2 вида ветвлений:

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

- меньше или равно

>= - больше или равно

<> - не равно

1. Условный оператор: полное ветвление:

Формат полного оператора ветвления:

If (ЕСЛИ) условие > then (ТО) действие 1 >

else (ИНАЧЕ) действие 2 >

Ввести число. Если оно неотрицательно, вычесть из него 10, в противном случае прибавить к нему 10.

Program prim_1 ;

If a>0 then a:=a-10 else a:=a+10;

2. Условный оператор: неполное ветвление:

Формат оператора неполного ветвления:

If условие > then действие 1 >

Поменять местами значение a, b , при условии, что a

Program prim_ 2 ;

Var a, b, c:integer;

Решение задач.

1. Ввести два числа. Если их произведение отрицательно, умножить его на -2 и вывести на экран, в противном случае увеличить его в 3 раза и вывести на экран.

2. Ввести два числа. Вычесть из большего меньшее.

3. Дано натуральное число, определить делится, ли оно на три, без остатка.

If a>b then d:=a-b else d:=b-a;

Var a,ost:Integer;

writeln(‘ введи число ’);

if ost= 0 then writeln(‘ число делится на 3 ’)

else writeln(‘ число не делится на 3 ’);

Можно также написать операцию деления прямо в условии ветвления:

if a mod 3 = 0 then writeln(‘ число делится на 3 ’)

else writeln(‘ число не делится на 3 ’)

Тогда использовать переменную ost не надо

  • подготовка к ЕГЭ/ОГЭ и ВПР
  • по всем предметам 1-11 классов

Курс повышения квалификации

Дистанционное обучение как современный формат преподавания


Курс повышения квалификации

Инструменты онлайн-обучения на примере программ Zoom, Skype, Microsoft Teams, Bandicam

  • Курс добавлен 31.01.2022
  • Сейчас обучается 24 человека из 17 регионов

Курс повышения квалификации

Педагогическая деятельность в контексте профессионального стандарта педагога и ФГОС

  • ЗП до 91 000 руб.
  • Гибкий график
  • Удаленная работа

Дистанционные курсы для педагогов

Свидетельство и скидка на обучение каждому участнику

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

5 608 242 материала в базе

Материал подходит для УМК

Глава 2. Алгоритмизация и программирование

Самые массовые международные дистанционные

Школьные Инфоконкурсы 2022

Свидетельство и скидка на обучение каждому участнику

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

  • 19.05.2019 1992
  • DOCX 63.7 кбайт
  • 69 скачиваний
  • Оцените материал:

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

Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

Автор материала

40%

  • Подготовка к ЕГЭ/ОГЭ и ВПР
  • Для учеников 1-11 классов

Московский институт профессиональной
переподготовки и повышения
квалификации педагогов

Дистанционные курсы
для педагогов

663 курса от 690 рублей

Выбрать курс со скидкой

Выдаём документы
установленного образца!

Учителя о ЕГЭ: секреты успешной подготовки

Время чтения: 11 минут

В Россию приехали 10 тысяч детей из Луганской и Донецкой Народных республик

Время чтения: 2 минуты

Отчисленные за рубежом студенты смогут бесплатно учиться в России

Время чтения: 1 минута

Школы граничащих с Украиной районов Крыма досрочно уйдут на каникулы

Время чтения: 0 минут

Каждый второй ребенок в школе подвергался психической агрессии

Время чтения: 3 минуты

Минтруд предложил упростить направление маткапитала на образование

Время чтения: 1 минута

Новые курсы: функциональная грамотность, ФГОС НОО, инклюзивное обучение и другие

Время чтения: 15 минут

Подарочные сертификаты

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

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

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

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

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

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

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


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


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

Оператор ветвления на Паскале

image

В языке Паскаль имеется оператор ветвления. Другое его название — условный оператор.

Формат полного оператора ветвления следующий:

if then else

Программирование полного и неполного ветвления

Сравните запись алгоритма БИД 1 на алгоритмическом языке с соответствующей программой на Паскале.

image

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

Простой формой логического выражения является операция отношения. Как и в АЯ, в Паскале допускаются все виды отношений (ниже указаны их знаки):

image

А теперь запрограммируем на Паскале алгоритм БИД2, в котором использовано неполное ветвление.

image

Опять всё очень похоже. Ветвь else в операторе ветвления может отсутствовать.

Запишем на Паскале программу определения большего из трех чисел, блок-схема которой показана на рис. 2.6. Структура этого алгоритма — вложенные ветвления. Алгоритм на АЯ (БИТ2) приведен в предыдущем параграфе.

image

Составим программу упорядочения значений двух переменных.

image

Этот пример иллюстрирует следующее правило Паскаля: если на какой-то из ветвей оператора ветвления находится несколько последовательных операторов, то их нужно записывать между служебными словами begin и end. Конструкция такого вида:

begin end

называется составным оператором. Следовательно, в описанной выше общей форме ветвления и могут быть простыми и составными операторами.

Тест предназначен для обобщающего повтроения в 8 классе по теме "Алгоритмическая конструкция повтроение".

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

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

Простым условием (отношением) называется выражение, составленное из двух арифметических выражений или двух текстовых величин (иначе их еще называют операндами ), связанных одним из знаков:
- меньше, чем.
> - больше, чем.
- меньше, чем. или равно
>= - больше, чем. или равно
<> - не равно
= - равно

Сначала вычисляется значение логического выражения, расположенного за служебным словом IF. Если его результат истина , выполняется , расположенный после слова THEN, а действия после ELSE пропускаются; если результат ложь , то, наоборот, действия после слова THEN пропускаются, а после ELSE выполняется .

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

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

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

Если в качестве оператора должна выполниться серия операторов, то они заключаются в операторные скобки begin-end. Конструкция Begin . End называется составным оператором.

Определение . Составной оператор - объединение нескольких операторов в одну группу. Группа операторов внутри составного оператора заключается в операторные скобки (begin-end).

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


Var p :string;
Begin
WriteLn (‘Куда путь держишь?’);
ReadLn (p);
If p=‘направо’ then writeLn (‘Коня потеряешь’);
If p=‘налево’ then writeLn (‘Голову сложишь’);
If p=‘прямо’ then writeLn (‘Невесту найдешь’);
ReadLn;
End.
пример выполнения программы

Program sum3;
Var a, b, c: real;
Begin
Readln ( a, b,с );
If a*a + b*b = c*c then writeln (‘треугольник прямоугольный’)
else writeln (‘не прямоугольный’);
Readln;
End.

При решении задач часто приходится рассматривать не два, а большее количество вариантов. Это можно реализовать, используя несколько условных операторов. В этом случае после служебных слов Then и Else записывается новый условный оператор.
Итак, когда оператор if появляется внутри другого оператора if, они считаются вложенными . Такое вложение используется для уменьшения числа необходимых проверок. Этот метод часто обеспечивает большую эффективность, однако одновременно он уменьшает наглядность программы. Не рекомендуется использовать более одного-двух уровней вложения if. За вторым уровнем вложения становится трудно восстановить последовательность проверки условий каждым условным оператором.

v ar a,b :integer;
imya : string;
d :char;
begin
Writeln ('Как тебя звать?');
Readln (imya);
Writeln ('Чем займемся ',imya,' сложением или умножением?');
Readln (d);
If d='+' then
begin
Writeln ('Введите первое число');
Read(a);
Writeln ('Введите второе число');
Read(b);
Writeln ('Сумма чисел = ',a+b);
end
else
begin
Writeln ('Введите первое число');
Read(a);
Writeln ('Введите второе число');
Read(b);
Writeln ('Произведение чисел = ',a*b);
end;
end.

Сложное условие – это условие, состоящее из нескольких простых условий (отношений), связанных с помощью логических операций:

or – ИЛИ (выполнение хотя бы одного из условий)

Порядок выполнения (приоритет = старшинство)
выражения в скобках

Человек вводит с клавиатуры строку, смысл которой - приветствие при встрече. Компьютер тоже должен ответить приветствием.
Отвечать нужно в соответствии со следующей таблицей:

then Writeln ('Здравствуйте‘);
if (a='Добрыйдень') OR (a='Приветик') OR (a='Салют') then Writeln ('Салют‘);

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

WriteLn ('Какую отметку ты получил по чистописанию?');
ReadLn (Otmetka);
CASE otmetka OF
1,2 :WriteLn('Кошмар!');
3 :WriteLn('Неважно');
4 :WriteLn('Неплохо');
5 :WriteLn('Молодец!') ;
ELSE WriteLn('Таких отметок не бывает')
END

Основой программы является оператор варианта CASE (читается "кэйс", переводится "случай"). Предлог OF читается "эв". Весь оператор CASE нужно понимать так:

В СЛУЧАЕ ЕСЛИ отметка РАВНА
1 или 2 печатай 'Кошмар!'
3 печатай 'Неважно'
4 печатай 'Неплохо'
5 печатай 'Молодец!'
ИНАЧЕ печатай 'Таких отметок не бывает'
КОНЕЦ оператора case


В процессе исполнения оператора case компьютер сравнивает значение переменной Otmetka по очереди со всеми значениями, перечисленными перед двоеточиями. Наткнувшись на совпадающее значение, он выполняет оператор, стоящий после двоеточия. На этом исполнение оператора case завершается. Если же совпадающего значения так и не нашлось, то выполняется оператор, стоящий после слова else (в нашей программе он полезен на тот случай, если ученик болен манией величия и вводит число 6). После else может стоять и цепочка операторов, записанных через точку с запятой.
У оператора case есть существенное ограничение - переменная, стоящая после слова case, должна быть так называемого порядкового типа .

в качестве переменной-селектора можно использовать переменную целого (integer) или символьного (char) типа.

Var
a : integer;
Begin
writeln('Введите цифру ');
readln(a);
case a of
0 : write ('ноль');
1 : writeln ('один');
2 : writeln ('два');
3 : writeln ('три');
4 : writeln ('четыре');
5 : writeln ('пять');
6 : writeln ('шесть');
7 : writeln ('семь');
8 : writeln ('восемь');
9 : writeln ('девять')
else writeln ('Это число не является цифрой');
end;
End.

Читайте также: