Ветвление в паскале реферат

Обновлено: 05.07.2024

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

Создание линейных программ. Команды ветвления и выбора.

В общем виде оператор условия в Паскаль имеет вид:

If УСЛОВИЕ then

БЛОК _ ОПЕРАТОРОВ _2;

Где УСЛОВИЕ – это проверяемое логическое условие, которое должно быть либо истинным, либо ложным; БЛОК_ОПЕРАТОРОВ_1 – код, который должен быть выполнен, в случае, если УСЛОВИЕ истинно; БЛОК_ОПЕРАТОРОВ_2 – код, который должен быть выполнен, в случае, если УСЛОВИЕ ложно.

Напишем программу, которая делит одно число на другое.

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

var a, b, c : real;

WriteLn ('Введите делимое и делитель ');

If b<>0 then

WriteLn ('Результат деления = ', c );

WriteLn ('Делить на ноль нельзя!');

Перед ключевым словом условного оператора точка с запятой не ставится никогда!

Участок кода, который должен выполняться в случае, если УСЛОВИЕ неверно, не является обязательным.

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

var A, B, C, D:real;

write (' Введите коэффициенты A,B,C: ');

writeln ('Один вещественный корень');

writeln ('Два вещественных корня');

writeln (' Нет вещественных корней ');

Значения для проверки:

hello_html_368f51f8.jpg

Оператор множественного выбора.

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

Как раз для таких случаев был введен оператор множественного выбора – case . В общем виде его структура выглядит следующим образом:

Case ВЫРАЖЕНИЕ Of

value 1 : Begin

value 1 : Begin

valueN : Begin

БЛОК _ ОПЕРАТОРОВ _N;

БЛОК _ ОПЕРАТОРОВ ;

Здесь, в качестве ВЫРАЖЕНИЯ может быть использовано любое выражение, которое приводит либо к целочисленному результату, либо к символьному (т.е. результат – один символ). Недопустимо использовать выражения или переменные, которые, например, возвращают целую строку или вещественное число.

value1, value2, …, valueN – это значения, которые может принимать ВЫРАЖЕНИЕ ;

БЛОК_ОПЕРАТОРОВ_1, БЛОК_ОПЕРАТОРОВ_2, …, БЛОК_ОПЕРАТОРОВ_N – это операторы, которые необходимо выполнять в зависимости от значения ВЫРАЖЕНИЯ .

Блок Else здесь используется в том же самом смысле, что и в условном операторе. Он предваряет блок операторов, который необходимо выполнить, если среди перечисленных значений value1, …, valueN не нашлось такого, которому бы равнялось ВЫРАЖЕНИЕ .

Case operation Of

Еще одно преимущество оператора множественного выбора заключается в том, что вместо одиночного значения ВЫРАЖЕНИЯ можно использовать несколько, а также целые диапазоны.

Пример 1

В этом примере мы покажем, как можно указывать несколько значений ВЫРАЖЕНИЯ . Как видно, каждое из значений, для которого должен выполняться один и тот же блок операторов, записываются через запятую.

Case number Of

1,3,5,7,11,13,17,19: WriteLn(' Число ', number,' – простое ');

2,4,6,8,10,12,14,16,18,20: WriteLn(' Число ', number,' – четное ');

WriteLn ('Число ', number ,' – нечетное и не является простым');

Пример 2

В этом примере мы рассмотрим способ указания целого диапазона, в который может попадать значение ВЫРАЖЕНИЯ оператора множественного выбора. Диапазон значений указывается начальным и конечным значениями, разделенными двумя точками (без всяких пробелов):

Case age Of

0..6: WriteLn('Учащийся детского сада');

7..16: WriteLn('Учащийся школы');

17..22: WriteLn('Учащийся МГТУ им. Н. Э. Баумана');

WriteLn('Уже не учащийся');

Напишем программу, реализующую функции калькулятора.

Var a,c,d: real;

Write ('Введите первое число:');

Write ('Введите знак');

Write ('Введите второе число:');

Write ('Результат ',a,b,c,' равен ',d);

Контрольная работа:

№ 1. Напишите программу, в которой значение переменной вычисляется по формуле: a + b, если a – нечетное и a*b, если a – четное.

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

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

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

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

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

  • Сейчас обучается 932 человека из 80 регионов


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

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

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

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

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

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

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

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

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

5 596 034 материала в базе

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

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

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

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

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

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

  • 03.09.2018 1292
  • DOCX 102.8 кбайт
  • 5 скачиваний
  • Оцените материал:

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

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

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

40%

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

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

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

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

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

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

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

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

В Белгородской области отменяют занятия в школах и детсадах на границе с Украиной

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

Минпросвещения России подготовит учителей для обучения детей из Донбасса

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

Минобрнауки и Минпросвещения запустили горячие линии по оказанию психологической помощи

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

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

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

В ростовских школах рассматривают гибридный формат обучения с учетом эвакуированных

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

Школьник из Сочи выиграл международный турнир по шахматам в Сербии

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

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

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

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

Условия и выражения, значением которых является величина логического (Boolean) типа. Вложенность условных операторов. Организация ветвлений в программах на Паскале, логические операции, их выполнение. Последовательности, связанные логическими операциями.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 01.04.2010
Размер файла 112,1 K

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

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

Если условие выполняется, то будет выполнена инструкция "1", если нет, то - инструкция "2". Несмотря на то, что в схеме присутствуют два действия, выполнено будет только одно, так как условие либо ложно, либо истинно. Третьего не дано. Такая схема позволяет решать задачи, в которых в зависимости от сложившихся обстоятельств требуется совершить то или иное действие. Нет никакого сомнения, что число задач такого рода огромно. Более того, очень сложно придумать реально значимое задание, алгоритм выполнения которого содержал бы в себе простое прямое следование команд. Даже примитивный пример, взятый из курса математики, как вы увидите, не может быть решен без использования ветвления. Итак, необходимо вычислить значение выражения y=1/x. Вам известно, что данная функция не всегда имеет значение, то есть не для всех значений аргумента существует значение результата. Наша задача так составить алгоритм, чтобы исполнитель ни в коем случае не встал в тупик, даже при получении нуля в качестве аргумента. Сформулировать это на естественном языке не трудно:

1. Получить значение x.

2. Если x=0, то сообщить, что выражение значения не имеет, иначе - вычислить y как 1/x.

Таким образом используется приведенная выше алгоритмическая структура. Она может быть выражена простыми словами:

Как это записать на Паскале? Да точно так же, только по-английски.

Формат условного оператора на языке Паскаль:

Обратите внимание на то, что в Then- и Else- части стоит только один оператор. Но что делать, чтобы решить задачу, в которой по выполнению или невыполнению условия нужно совершить не одно, а несколько действий? Здесь приходит на помощь уже известный вам составной оператор. В операторные скобки можно заключить любое количество операторов.

Вариант условного оператора в этом случае:

Знак "точка с запятой" не ставится перед служебным словом Else, но операторы в группах, естественно, отделяются друг от друга этим знаком.

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

В простых условиях могут применяться знаки операций сравнения: >(больше), (не равно), >=(больше или равно), =(D1*(45-2))

Приведем пример решения еще одной задачи: "Из двух чисел выбрать наибольшее".

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

Writeln('Введите два числа');

If A>B Then C:=A Else C:=B; B, то результат - A, иначе результат - B>

Еще один классический пример: "По заданным коэффициентам решить квадратное уравнение". Эта задача сложнее, поэтому перед тем как писать программу составим алгоритм, записав его в виде блок-схемы.Сначала вводим коэффициенты, затем вычисляем дискриминант. Теперь возникает две возможности: либо отсутствие действительных корней в случае отрицательного дискриминанта, либо эти корни можно все-таки вычислить и вывести на экран в случае неотрицательного дискриминанта (случай равенства дискриминанта нулю входит сюда же, корней - два, только они одинаковые J).

При записи алгоритма на языке программирования следует учесть, что в ветви "нет" не одно действие, а три, поэтому следует применить составной оператор. Арифметические выражения не забывайте записывать в соответствии с правилами языка Паскаль. В остальном, эта программа не сложнее предыдущей.

Var A, B, C, D, X1, X2: Real;

Writeln ('Введите коэффициенты квадратного уравнения');

5 8) and (5 8) and (5 больше

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

Имеют один и тот же приоритет и соединяют два выражения одного и того же типа. Результатом любой операции сравнения является значение TRUE или FALSE.

ЛОГИЧЕСКИЕ ОПЕРАЦИИ:: NOT - НЕ; AND - И; OR - ИЛИ

ПОРЯДОК ВЫПОЛНЕНИЯ ОПЕРАЦИЙ:

1. - (унарный минус, т.е. отрицание числа) NOT

2. * / DIV MOD AND

Оператор ветвления (условный оператор)

If условие THEN

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

оператор1 - любой оператор Паскаля; этот оператор исполняется, когда условие истинно;

оператор2 - любой оператор Паскаля, в том числе и условный; этот оператор исполняется, когда условие ложно.

При выполнении этого оператора сначала вычисляется значение условия.

Если условие истинно (true), то выполняется оператор после слова THEN, а оператор2 пропускается;

если условие ложно (false), то оператор1 пропускается, а выполняется оператор после слова ELSE.

else write ('Решений нет');

Операторы 1 и 2 могут быть любыми, в том числе и условными. В этом случае их называют вложенными.

В условном операторе после слов THEN и ELSE можно помещать по несколько операторов. В этом случае их надо объединить в СОСТАВНОЙ оператор, который начинается словом BEGIN и заканчивается словом END; (на конце не точка, а точка с запятой!)

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

write ('Введите два числа: ');

writeln ('Точка принадлежит кольцу');

else writeln ('Точка не принадлежит кольцу');

Подобные документы

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

презентация [187,9 K], добавлен 02.04.2014

Правила описания множественных типов данных, приемов использования множеств и операций над множествами в Паскаль-программах. Разработка в Турбо Паскале программы вывода всех согласных букв, которые входят хотя бы в одно слово заданного предложения.

контрольная работа [30,8 K], добавлен 25.12.2010

Международный стандарт на язык программирования Паскаль. Приемы объектно-ориентированного программирования в Турбо Паскале. Символы языка, его алфавит. Этапы разработки программы. Понятие алгоритмов и алгоритмизации. Структура программ на Паскале.

курсовая работа [29,8 K], добавлен 28.02.2010

Система программирования Турбо Паскаль. Главные особенности языка С++. Составной и условный оператор в Паскале, алгоритм работы. Метка в Турбо Паскале. Счетный оператор цикла FOR. Описание логической структуры. Свойства функции PieSlice и initgraph.

курсовая работа [20,8 K], добавлен 23.12.2010

Структура программы в Турбо Паскале и определение переменной в ней. Понятие идентификатора и его основные ограничения. Операторы присваивания в языке программирования. Процедура ввода-вывода информации. Способы описания массива, обработка его элементов.

контрольная работа [134,5 K], добавлен 28.09.2012

Линейная программа на Паскаль, примеры составления алгоритмов вычисления и обмена значений переменных. Программа с ветвлениями и циклическая программа, массивы, процедуры и функции, файловые данные и записи в Паскале, строки, графика в Турбо-Паскале.

отчет по практике [99,8 K], добавлен 20.07.2010

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

лабораторная работа [189,8 K], добавлен 17.04.2012

Проанализируем, как осуществляются ветвления Паскаль. В Паскале применяется 2 оператора для реализации условных переходов, а именно if и case и еще один оператор для реализации безусловного перехода — goto. С их помощью может быть нарушен последовательный порядок выполнения программы. Остановимся поподробнее на каждом из операторов. Оператор условного перехода в Паскале представляется в виде:

Условие — это логическое выражение, от которого зависит выбор одной из двух альтернативных ветвей алгоритма. Если условие принимает значение true (истина), выполняется оператор1, помещенный за ключевым словом then. Иначе выполняется оператор2, записанный за ключевым словом else (в этом случае оператор1 опускается).

Но тогда в случае, когда не выполнено логическое условие, то управление передается оператору, которые стоит в программе после конструкции if.

Заметка. Синтаксис языка Паскаль позволяет записать только один оператор после ключевых слов then и else, вследствие этого группа инструкций должна быть объединена в составной оператор (заключить между служебными слова begin и end). Иначе происходит логическая ошибка программы, и компилятор ошибок не выдает, однако программа все-таки работает неправильно. Приведем примеры:

Ветвления Паскаль

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

Ветвления Паскаль

либо с ключевым словом else:

Ветвления Паскаль

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

Ветвления Паскаль

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

И, наконец, перейдем к рассмотрению безусловного оператора goto:

Пример:

Ветвления Паскаль

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

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

Здесь 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. Составьте программу вычисления корней квадратного уравнения по данным значениям его коэффициентов.

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