Как сделать условие в паскале

Добавил пользователь Дмитрий К.
Обновлено: 04.10.2024

Главное меню

Популярные статьи

Условный оператор if . then . else

Цель: дать понятие об условном операторе, блок-схемах, изображающих такие операторы; ввести понятие и формах записи вещественного типа real. Учить на частных примерах составлять блок-схемы и программы; вводить и выполнять программы, используя компиляторы BPW или Turbo Pascal.

Использовать программы: Barland Pascal for Windows (BPW) или Barland Pascal, или Turbo Pascal

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

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

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

2. Блок-схемы, изображающие условные операторы

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

Рис. 5



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


Блок-схема

Рис. 6
Программа

Program Problem2; < Увеличения меньшего из двух целых чисел вдвое >
uses WinCrt;
var
a, b, c : integer;
begin
write("Введите первое целое число "); readln(a);
write("Введите второе целое число "); readln(b);
if a ИМЯ ПРОГРАММЫ И КОММЕНТАРИЙ

Имя программы "Problem3;", после этого в комментарии записано содержание программы: ";".

РАЗДЕЛ ОПИСАНИЙ

В разделе описаний указаны имена переменных и их типы. Понятно, что переменные a, b, c нужны для значений коэффициентов уравнения, переменная d для значений дискриминанта, а x1 и x2 для корней уравнения. Понятно, что все они принимают вещественные значения, ограничиться целыми невозможно, и имеют тип: real.

РАЗДЕЛ ОПЕРАТОРОВ

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

Пример 4. Два прямоугольника заданы длинами сторон. Написать программу, после выполнения которой выясняется, можно ли первый прямоугольник целиком разместить во втором. (Рассмотреть только случай, когда соответствующие стороны прямоугольников параллельны.)

Program Problem4;
uses WinCrt;
var
a1, b1, a2, b2 : real;
begin
write("Введите длину и ширину первого прямоугольника "); readln(a1, b1);
write("Введите длину и ширину второго прямоугольника "); readln(a2, b2);
if ((a1 = 0) and (y >= 0).

Program Problem7;
uses WinCrt;
var
x, y, R : real;
begin
write("Введите координаты точки "); readln(x, y);
write("Введите радиус окружности "); readln(R);
if (x*x + y*y = 0) and (y >= 0)
then writeln("Да")
else writeln("Нет")
end.

Пример 8. Составьте программы определения большего из трех действительных чисел a, b и c.



Рис. 13
Задание 4

1. Используя блок-схему составить и выполнить программу. Изменить программу так, чтобы в случае равных чисел, она выдавала "Числа равны".
2. Даны три числа a, b, c. Написать программу, в результате которой числа удвоятся, если и числа будут заменены на их абсолютные величины в прочих случаях.

8. Вычисление значений функции

Пример 9. Вычислить значение функции по формуле: .

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

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

Единицы измерения времени Современные единицы измерения времени основаны на периодах обращения Земли вокруг своей оси и вокруг Солнца, а также обращения Луны вокруг Земли. Такой выбор единиц обусловлен как историческими, так и практическими соображениями: необходимостью согласовывать деятельность людей со сменой дня и ночи или сезонов; смена фаз Луны влияет на высоту .

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

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

Пример использования оператора:

Процедура write выполниться только в случае, когда переменная a больше b.

Конструкцию можно дополнить словом else(иначе).

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

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

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

В теле if then может содержаться только один оператор, если требуется выполнить несколько операций, то вы можете использовать операторные скобки - begin end;

Если нужно проверить несколько условий, можно использовать условные выражения.

Программа на Паскаль в IDE Lazarus, которая попробует угадать, чем занимается пользователь исходя из его возраста.

Условный оператор IF THEN позволяют выбрать для выполнения один из операторов (или не выбрать ни одного).

Условный оператор имеет вид:

В выражении должен получаться результат, имеющий стандартный тип Boolean. Если результатом выражения является истинное значение (True), то выполняется оператор, следующий за ключевым словом then.

Если результатом выражения является значение False присутствует ключевое слово else, то выполняется оператор следующий за ключевым словом else. Если ключевое слово else отсутствует, то выполняется оператор, следующий за условным.

В качестве условия может быть:

  1. Операция отношения ( ,>=, ,=).
  2. Логическая переменная.

До сих пор Вы использовали линейные алгоритмы, т.е. алгоритмы, в которых все этапы решения задачи выполняются строго последовательно. Сегодня Вы познакомитесь с разветвляющимися алгоритмами.

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

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

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

- больше, чем.
= - больше, чем. или равно
<> - не равно
= - равно

Например, простыми отношениями являются следующие:

x-y>10; k 11; ‘мама’<>‘папа’.

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

    если х=25, у=3, то отношение x-y>10 будет верным, т.к. 25-3>10

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

Для решения этой задачи нужны уже знакомые нам стандартные функции нахождения квадратного корня - Sqr и модуля - Abs. Поэтому Вы уже можете записать следующие операторы присваивания:

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

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

Поэтому наша программа имеет свою допустимую область исходных данных. Найдем эту область. Для этого запишем неравенство х-у>=0, то есть х>=у. Значит, если пользователем нашей программы будут введены такие числа, что при подстановке значение этого неравенства будет равно True, то квадратный корень из выражения (х-у) извлечь можно. А если значение неравенства будет равно False, то выполнение программы закончится аварийно.

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

Каждая программа, насколько это возможно, должна осуществлять контроль за допустимостью величин, участвующих в вычислениях. Здесь мы сталкиваемся с разветвлением нашего алгоритма в зависимости от условия. Для реализации таких условных переходов в языке Паскаль используют операторы If и Case, а также оператор безусловного перехода Goto.

Рассмотрим оператор If.

Для нашей задачи нужно выполнить следующий алгоритм:

Запишем его с помощью оператора If. Это будет выглядеть так.

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

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

Условный оператор работает по следующему алгоритму.

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

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

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

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

С учетом полученных знаний преобразуем нашу программу.

Составным оператором является и такой оператор

Cимвол “;” в данном случае разделяет оператор присваивания S:=0 и пустой оператор.

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

Например, составной оператор

включает лишь один пустой оператор.

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

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

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

    Каждое описание переменной и определение константы заканчиваются точкой с запятой.

Рассмотрим еще один пример.

Задача. Вывести на экран большее из двух данных чисел.

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

Неполная форма условного оператора имеет следующий вид.

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

Задача. Составить программу, которая, если введенное число отрицательное, меняет его на противоположное.

Условия if then else в Паскаль

Условия в паскале ( их также называют разветвлениями ) - одна из самых важных тем в языке программирования Паскаль. Данная конструкция будет использоваться почти в каждой задаче.

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

Начнем с того , что поясним что такое условие в принципе. Думаю нетрудно догадаться , что условие это некоторая развилка на два пути истинное ( true ) и ложное ( false ).
Истинное условие выполняется в том случае , когда условие истинно , то есть условие возвращает истинное значение ( позже будет понятнее ).
Ложное условие выполняется в том случае , когда условие ложно.

Рассмотрим эту конструкцию на примере .Например нам нужно узнать больше ли первое число второго . Проще говоря ввести два числа "а" и "b" и если а больше б , то вывести "а больше".
Делается это проще простого.

If ( если )

Условие записывается в скобках между словами if ( если ) и then ( тогда ).
В нашем случае нам понадобится такое условие if ( a > b ) then . Если условие "а больше б" возвращает истинный результат , то после слова then выполняется первая команда . Например :

Условиe if

Использование нескольких команд

Else ( иначе )

Допустим условие задачи такое - Ввести два числа с клавиатуры "a" и "b" , если "а" больше вывести число "а" , иначе вывести число "b".

Блок else ( иначе ) записывается после тела истинного значения . Запомните перед else ; никогда не ставится !

Пример использования блока else

Если же в теле ложного значения мы хотим выполнить несколько команд ( больше одной ) , то в аналогии с телом истинного значения , эти команды заключаются в блок begin end

Несколько команд в блоке else

Сложные условия :

В аналогии с простыми существуют и сложные условия . Пример простого условия ( a = b ) . Пример сложного ( a > b ) and ( a <> b ). Дословно - если "а" больше "б" и "а" неравно "б" тогда . В данном случае блок then будет выполнятся тогда и только тогда , когда обе скобки возвращают истинный результат . Если хоть одна из скобок возвращает ложный , то будет выполнен блок else ( если он есть ). Разберем пример ещё одного условия ( сложного ). if ( (a > b) and ( a <> b ) ) or ( a = c ) then в этом случае блок then будет выполнятся в том случае , если "а" больше "б" и "а" неравно "б" или "а" равно "с".

Знаки для условий

Вложенные условия :

В одном условии могут находится ещё несколько условий , а в них ещё столько же условий. Проще говоря условия могут вкладываться в другие условия. Для того , чтобы вам было более понятно приведем такой пример. Например у нас есть массив из 10 элементов , заполненный случайными числами ,а нам нужно найти отрицательное число и вывести его на экран если индекс отрицательного элемента будет четным. Код данной программы выглядит вот так :

program mypascal;
uses
crt;
var
a: array[1..10] of integer;
i:integer;
begin

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