Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие. Таким образом, условный оператор – это средство ветвления вычислительного процесса.
Структура условного оператора имеет следующий вид:
IF THEN ELSE ,
Где IF, THEN, ELSE – зарезервированные слова (если, то, иначе); – произвольное выражение логического типа; , – любые операторы языка Турбо Паскаль.
Условный оператор работает по следующему алгоритму. Вначале вычисляется условное выражение . Если результат есть TRUE (истина), то выполняется , а пропускается; если результат есть FALSE (ложь), наоборот, пропускается, а выполняется . Например:
var х, у, max: Integer; begin ……. if x > max then у: = max else y: = x;
При выполнении этого фрагмента переменная Y получит значение переменной X, если только это значение не превышает МАХ, в противном случае Y станет равно МАХ.
Часть ELSE условного оператора может быть опущена. Тогда при значении TRUE условного выражения выполняется , в противном случае этот оператор пропускается:
Урок. «Условный оператор на языке Паскаль Пример программы»
var х, у, max: Integer; begin ……. if x > max then max: = x; Y: = x;
В этом примере переменная Y всегда будет иметь значение переменной X,а в МАХ запоминается максимальное значение X.
Поскольку любой из операторов и может быть любого типа, в том числе и условным, а в то же время не каждый из «вложенных» условных операторов может иметь часть ELSE , то возникает неоднозначность трактовки условий. Эта неоднозначность в Турбо Паскале решается следующим образом: любая встретившаяся часть ELSE соответствует ближайшей к ней «сверху» части THEN условного оператора. Например:
var a,b,c,d: Integer; begin a: = 1; b: = 2; c= 3; d: = 4; if a > b then if с < d then if с < 0 then с: = 0 else a: = b; if a > b then if с then if с then с: = 0 else else else a: = b;
Рассмотрим программу (пример 2.4), которая вводит произвольное десятичное целое число в диапазоне 0…15, преобразует его к шестнадцатеричному и выводит на экран полученный результат.
Пример 2.4.
Program Hex; var n: Integer; ch: Char; begin Write (‘,n = ‘); ReadLn(n); < Вводим число > if (n >= 0) and (n if n < 10 then ch: = chr(ord(‘0’) + n) else ch: = chr(ord(‘A’) + n – 10); WriteLn(‘n = ‘,ch) end else WriteLn(‘Ошибка’) end.
В шестнадцатеричной системе счисления используется 16 цифр в каждом разряде: цифры 0…9 обозначают первые 10 возможных значений разряда, буквы A…F – остальные шесть.
В программе учитывается непрерывность и упорядоченность множеств цифр 0…9, букв A…F и их кодов (см. гл.4).
Источник: samoychiteli.ru
7.9. Примеры программ с условным оператором
Приведем несколько примеров законченных программ, использующих РВП.
Пр. Проверить, может ли быть построен прямоугольный треугольник по длинам сторон a,b,c.
Проблема с решением этой задачи – не в проверке условия теоремы Пифагора, а в том, что в условии не сказано, какая из сторон может быть гипотенузой. Решений возможно несколько – запрашивать у пользователя ввод данных по возрастанию длины сторон, проверять все три возможных условия теоремы Пифагора и т.п. Используем наиболее естественное решение – перед проверкой условия теоремы Пифагора упорядочим величины a,b,cтак, чтобы выполнялись соотношенияa≤b≤c. Для этого используем прием с обменом значений переменных из главы 4.
write (‘Введите длину 1 стороны (больше 0):’);
write (‘Введите длину 2 стороны (больше 0):’);
write (‘Введите длину 3 стороны (больше 0):’);
if (a>b) then begin
if (a>c) then begin
if (b>c) then begin
(‘Прямоугольный треугольник может быть построен!’)
(‘Прямоугольный треугольник не может быть построен!’)
Пр. Определить, попадает ли точка плоскости, заданная координатами (a,b) в прямоугольник, заданный координатами двух углов (x1,y1) и (x2,y2).
Как и в предыдущей задаче, было бы не совсем корректно требовать от пользователя вводить данные в определенном порядке – гораздо лучше при необходимости поменять x- иy-координаты прямоугольника так, чтобы пара переменных (x1,y1) содержала координаты левого нижнего угла прямоугольника, а (x2,y2) – правого верхнего.
writeln (‘Введите координаты первого угла:’);
writeln (‘Введите координаты второго угла:’);
if x1>x2 then begin
if y1>y2 then begin
writeln (‘Введите координаты точки:’);
writeln (‘Точка попадает в прямоугольник’)
writeln (‘Точка НЕ попадает в прямоугольник’);
Пр. Вводится денежная сумма в рублях и копейках. Программа печатает введенную сумму с правильной формой слов «рубли» и «копейки», например, «123 рубля 15 копеек».
Окончание, используемое для слов «рубли» и «копейки», зависит от последней цифры суммы, которую можно получить, взяв остаток от деления на 10 (1058 рублей, 38рублейи т.д.). Исключения – суммы с последними двумя цифрами от 11 до 19 включительно, которые всегда произносятся «рублей» и «копеек» (511рублей, но 51рубль). Используя эту информацию, составим программу.
write (‘Введите количество рублей, затем пробел и количество копеек:’);
write (‘Правильно сказать: ‘,r,’ ‘);
if (o100>10) and (o100<20) or (o10>4) or (o10=0) then write (‘рублей’)
else write (‘рубль’);
if (o100>10) and (o100<20) or (o10>4) or (o10=0) then write (‘копеек’)
else write (‘копейка’);
Источник: studfile.net
Условный оператор в программировании на Pascal
В программировании очень часто необходимо проверить условие какого-либо выражения, которое может принимать несколько значений. В зависимости от него нужно выбрать ветвь алгоритма для выполнения программы.
С этой целью применяется в Паскале условный оператор, который является логическим. Чтобы его использовать, нужно разобрать основы программирования, а также пример кода.
Общие сведения
Для изучения языка программирования необходимо разобраться в базовых определениях, логике программы, составлении алгоритма и синтаксисе. Начинать необходимо с простых программ, а затем переходить к более сложным.
Turbo Pascal (Турбо Паскаль) является простым языком программирования, с которого необходимо начинать обучение. Многие опытные программисты будут не согласны с последним утверждением, поскольку современные языки являются объектно-ориентируемыми. Они поддерживают классы и множество других полезных функций. Одними из них являются Python и PHP.
Однако для тренировки мозга и перехода к более современным инструментам разработки необходимы базовые знания. Их и поможет приобрести Турбо Паскаль.
Кроме того, фирма Borland разработала специализированную библиотеку, основанную на этом языке. Она называется Turbo Vision и является объектно-ориентируемой.
Информация о Turbo Vision
Турбо Паскаль является интегрированной средой фирмы Borland и применяется для разработки программного обеспечения с интеграцией на платформы операционных систем DOS и Windows (в режиме эмуляции). Он обладает такими достоинствами:
- легковесные приложения, которые нетребовательны к ресурсам компьютера;
- поддержка ООП (объектно-ориентированного программирования) благодаря библиотеке;
- доступный функциональный отладчик;
- справка по синтаксису и операторам;
- возможность применять вставку на Ассемблере;
- высокая производительность компилятора и откомпилированных программ;
- простота установки и настройки.
Однако язык программирования имеет также и недостатки, связанные с синтаксисом и модулем CRT. Паскаль обладает такими существенными минусами:
- строгий синтаксис;
- в некоторых версиях может содержаться неверный код в модуле CRT.
Последний недостаток появляется только при подсчете циклов в приложениях с помощью встроенной функции delay. В результате бага происходит аварийное завершение программы. Причиной ошибки является несовместимость архитектур микропроцессора и среды разработки, поскольку корректная работа обеспечивается на одноядерном процессоре с частотой не более 200 МГц. Программисты разработали модуль защищенного режима, при котором частотные характеристики устройства регулируются для этого приложения в автоматическом режиме.
Для расширения возможностей Турбо Паскаля была разработана объектно-ориентированная библиотека Turbo Vision, при помощи которой можно писать оконные программы. Последние работают в текстовом видеорежиме, а также в оболочках типа GUI.
Кроме того, компания-производитель активно использует библиотеку для создания своих приложений.
Turbo Vision обладает такими возможностями:
- работой в GUI;
- при рассмотрении всех реализаций дополнения — мультиплатформенностью;
- оконным режимом с гибким интерфейсом;
- скроллингом, зависимыми и независимыми кнопками, поддержкой диалоговых окон и выпадающего меню;
- стандартным обработчиком клавиш и мыши;
- поддержкой мыши;
- установкой цветовых схем;
- механизмом наследования;
- поддержкой указателей и динамических переменных;
- распределением ресурсов.
Однако библиотека обладает существенным минусом для целевой платформы — потребностью в больших объемах оперативной памяти. Это ощутимо на «слабых» компьютерах, которые, к сожалению, можно найти на некоторых предприятиях. Следовательно, на таких машинах необходимо внедрение оверлейной структуры приложения, т. е. осуществление загрузки по частям.
Назначение инструкции
Оператором или инструкцией называется элемент языка программирования, который задает определенное действие. Он имеет синтаксис и семантическое значение. Кроме того, каждый такой элемент является логически завершенной процедурой, возвращающей определенный результат. Оператор может состоять из одного символа или слова, а также включать некоторые зарезервированные элементы языка и выражения.
Синтаксис — определенная совокупность правил, позволяющая правильно записать оператор на соответствующем языке программирования с последующим его преобразованием в машинный код. Семантика или семантическое значение — смысл для реализации последующих действий алгоритма.
Например, выражение k:= k + 10 — запись оператора присваивания.
Семантика выражения следующая:
- Команда на создание временного хранилища.
- Извлечь содержимое ячейки оперативной памяти, в которой хранится значение переменной k, во временное хранилище.
- Прибавить к переменной k число 10.
- Результат присвоить k, затем выполнить запись в исходную ячейку.
- Если k больше не используется, то следует команда на очистку соответствующего регистра.
Эти шаги являются алгоритмом, который используется в различных интерпретациях не только в информатике и программировании, но и в других дисциплинах.
Операторы бывают пустыми, простыми и составными. К первому типу необходимо отнести все элементы, при которых нет необходимости производить действия. Этот прием применяется программистами при разработке программного обеспечения. Инструкция включает пустой блок, который не вызовет ошибки компилятора и будет в дальнейшем заполнен определенным кодом.
Простой тип состоит из одного действия. Составные операторы способны включать в себя другие инструкции, несколько выражений, процедуры и функции. Кроме того, они могут быть и простыми.
Функции алгоритма
Алгоритм — некоторая последовательность действий, позволяющая решить определенную задачу или показать, что она не имеет решений. Однако для этого его следует правильно составить, т. е. разобрать все составляющие. Применение последовательности действий можно продемонстрировать при решении квадратного уравнения 5x^2 — 4 — 1 = 0. В Турбо Паскале алгоритм имеет вид, представленный на рисунке 1. Необходимо отметить, что реализация бывает в двух интерпретациях: схема и письменно.
Схематическое изображение в программировании называется блок-схемой.
Рисунок 1. Блок-схема алгоритма для нахождения корней квадратного уравнения.
Однако начинающим программистам специалисты рекомендуют сначала описывать алгоритм в словесной форме, а затем превращать ее в блок-схему. Делается операция таким способом:
- Запись квадратного уравнения: 5 x^2 — 4 — 1 = 0.
- Ввод необходимых переменных: a:= 5, b:= -4 и с: = -1.
- Найти значение дискриминанта по следующей формуле: D := sqr(b) — 4 * a * c = (-4)^2 — 4 * 5 * (-1) = 16 — (-20) = 16 + 20 = 36.
- Если D
- Если D=0, то квадратное уравнение имеет один корень (два одинаковых корня): x1:= x2:= -b / 2a.
- Если D>0, то корни находятся по следующим формулам: x1:= [-b — sqrt(D)] / 2a и x2:= [-b — sqrt(D)] / 2a.
- Вывод результата на экран.
Программисты рекомендуют сразу не писать алгоритм, поскольку он должен быть понятен. Для этого следует выполнить некоторые подготовительные операции. Кроме того, алгоритм позволяет решить неравенства на базе квадратного уравнения.
Условный оператор
Некоторые начинающие программисты не понимают до конца, для чего нужен условный оператор if.
Он применяется во всех программах с ветвлением и позволяет выполнять действия в зависимости от условия. Кроме того, можно производить сравнение переменных, а также определить их соответствие конкретному типу данных. Этот прием используется для тестирования приложений и выявления багов.
Выражаясь понятным языком, оператор помогает моделировать работу приложения в зависимости от выбора пользователя. Однако перед рассмотрением структуры и синтаксиса if нужно знать операторы отношения (знаки логических сравнений).
Список используемых знаков в Turbo Pascal имеет такой вид:
- Больше: >.
- Меньше:
- Больше или равно: >=.
- Меньше или равно:
- Сравнение: =.
- Не равно: <>.
Ошибка начинающих программистов заключается в том, что они путают оператор присваивания := и =. Необходимо быть внимательными и понимать их основное применение. Первый служит для присваивания значения или выражения какой-либо переменной. Последний используется только в условном операторе if и выполняет функцию логического сравнения. Например, для решения квадратного уравнения также применяется условный оператор. Программирование устройств, которые применяются для автоматизации различных отраслей науки, также невозможно без if-else.
Оператор if используется и в онлайн-приложениях. Например, для перевода единицы измерения давления Па в атмосферы. Если пользователь вводит значение, то выполняется проверка типа данных, а затем реализуется операция конвертации.
Структура и формы
Для корректной работы программы необходимо четко знать структуру и синтаксис, поскольку неверная запись приводит к багам. Турбо Паскаль относится к строгим языкам программирования, поэтому малейшая погрешность в коде приводит к возникновению ошибок. Зарезервированное слово if переводится как «если».
Структура условного оператора имеет следующий вид:
- Блок проверки условия.
- Ветка TRUE (истинность).
- Ветка FALSE (ложь).
Последний элемент необязателен. Следует также знать булеву алгебру при составлении условий. Для этого применяются специальные таблицы истинности. В программной интерпретации структура выглядит таким образом:
if () then // проверка на истинность — ветка истинности
//код, который выполняется при истинном значении логического выражения
end else //ложная ветка
//код, выполняемый при ложных значениях
Следует отметить, что точку с запятой перед else ставить не нужно. Существуют полные и неполные формы условного оператора. Первые включают все зарезервированные слова и ветки if-else. Если необходимо проверить только одно условие, то можно конструкцию else опустить. Программисты рекомендуют писать код без лишних вхождений.
Когда есть возможность упростить запись, тогда и нужно это делать. Для простой программы это не имеет значения. При проектировании сложных продуктов, код которых состоит из множества строк, это существенно «ударит» по производительности.
Пример программы
Существует определенный тип задач на условный оператор в Паскале. Примером является нахождение корней квадратного уравнения. Для составления программы следует воспользоваться алгоритмом на рисунке 1. Код имеет такой вид:
Var a, b, c, D, x, x1, x2: Real;
Writeln (‘Введите коэффициенты уравнения (a, b, c)’ );
If a = 0 Then Writeln (‘x — любое число’)
Else Writeln ( ‘Корни отсутствуют!’)
Источник: nauka.club