Условный оператор if — else
Теперь, когда с условными выражениями разобрались, можно переходить к основной теме урока – условному оператору .
Шаблон оператора if — else
Тут возможны два основных варианта:
// первый вариант if (условное_выражение) оператор_1; // второй вариант if (условное_выражение) оператор_1; else оператор_2;
Ну и картинки, конечно. Куда же без картинок?
Рис.1 Блок-схемы оператора if-else.
Работает этот оператор так. Вычисляется значение условного выражения. Если получается истина, то выполняется оператор_1 из основной ветки, а если ложь, то либо ничего не происходит (в первом варианте), либо выполняется оператор_2 из побочной ветки (во втором варианте).
Предлагаю сразу на примерах разбираться. Например, как вы думаете, что выведет на экран следующий код? Проверьте свою догадку.
#include int main(void)
Ну да, правильно, он выведет TRUE! . Условие же истинно. Вы же ещё не забыли, что единица – это истина? Я сейчас страшное скажу. Любое ненулевое число воспринимается как истина. Проверьте это самостоятельно.
Ну ладно, а теперь вот такой пример. Что по-вашему выведет данная программа?
#include int main(void)
Надеюсь, вы дали правильный ответ и вас не смутила строчка с выводом FALSE! , которое я специально добавил, чтобы запутать вас. Да, эта программа ничего не выведет. Условие в скобах ложно, а значит, оператор не будет выполнен. Всё по правилам.
Давайте ещё один примерчик, для закрепления. Будьте предельно внимательны, я там подготовил для вас всякого. Итак, что выведет данный код?
#include int main(void)
Верю, что у вас всё получилось! Если не получилось, не расстраивайтесь – ещё будет время потренироваться.
Ну а сейчас давайте о нюансах – они, как обычно, имеются.
В каждой ветке условного оператора может быть записан лишь ОДИН оператор.
Вот, посмотрите на пример.
#include int main(void)
Кажется, что программа должна работать следующим образом. Пользователь вводит целое число. Если число меньше нуля, то меняем его знак на противоположный. В противном случае ничего не делаем. После этого выводим число на экран консоли.
А теперь внимание на экран.

Рис.2 Результат работы программы Листинг 11
Но решение есть! И это решение – составной оператор <> . Если мы заключим несколько операторов в фигурные скобки, то они будут восприниматься как один единый оператор. Поэтому, чтобы программа заработала правильно, добавим в неё составной оператор:
#include int main(void) < int x = 0; scanf("%d", &x); if ( x < 0 )< printf("x = %d\n", x); x = (-1)*x; >printf("%d\n", x); return 0; >
Ну вот, теперь всё как надо. Проверьте самостоятельно. Кстати, из опыта. Я вам настоятельно советую всегда использовать фигурные скобки, даже если внутри них будет один оператор. Очень часто это позволяет избежать глупых ошибок.
Внутри управляющей конструкций if-else можно использовать любые конструкции языка, в том числе ещё одну конструкцию if-else .
Вот так например:
#include int main(void) < int x = 0; scanf("%d", &x); if ( x < 0 ) < printf("Negative!\n"); >else < if ( x == 0 )< printf("Zero!\n"); >else < printf("Positive!\n"); >> return 0; >
Думаю, понятно, что используя вложенные условные операторы, вы можете сделать конструкцию аналогичную оператору выбора switch .
Использование вложенных условных операторов порождает ещё одну особенность.
else всегда относится к ближайшему if , у которого нет своего else
if ( n > 0 ) if ( а > b ) z = a; else z = b;
Согласно нашему правилу, else относится к внутреннему (второму) if . Если хотим, чтобы else относился к внешнему (первому) if , то можно воспользоваться составным оператором.
if ( n > 0 ) < if (а >b) z = a; > else z = b;
Как я уже упоминал, лучше всегда использовать фигурные скобки, дабы избежать случаев неправильного толкования записи. Искать подобные ошибки в программах очень тяжело. Обратите внимание также на расстановку отступов. Я использую их, чтобы по коду сразу стало ясно, какая ветвь к какому if относится.
Сохрани в закладки или поддержи проект.
Практика

Решите предложенные задачи. Для удобства работы сразу переходите в полноэкранный режим
Исследовательские задачи для хакеров:
- В языке Си существует ещё одна конструкция, работающая с условными выражениями. Это тернарная условная операция ?: . Самостоятельно найдите в интернете описание этой конструкции и изучите, как она работает.
Дополнительные материалы
- Задачи на условный оператор от Яндекса
Ветвление. Условный оператор
Ход выполнения программы может быть линейным, то есть таким, когда выражения выполняются друг за другом, начиная с первого и заканчивая последним. Ни одна строка кода программы не пропускается.
Однако чаще в программах бывает не так. При выполнении кода, в зависимости от тех или иных условий, некоторые его участки могут быть опущены, в то время как другие – выполнены. Иными словами, в программе может присутствовать ветвление, которое реализуется условным оператором – особой конструкцией языка программирования.
Проведем аналогию с реальностью. Человек живет по расписанию. Можно сказать, расписание – это алгоритм для человека, его программный код, подлежащий выполнению. В расписании на 18.00 стоит поход в бассейн. Однако экземпляр биоробота класса Homo sapiens через свои рецепторы-сенсоры получает информацию, что воду из бассейна слили. Разумно было бы отменить занятие по плаванию, то есть изменить ход выполнения программы-расписания. Одним из условий посещения бассейна должно быть его функционирование, иначе должны выполняться другие действия.
Подобная нелинейность действий может быть реализована в компьютерной программе. Например, часть кода будет выполняться лишь при определенном значении конкретной переменной. В языках программирования используется приблизительно такая конструкция условного оператора:
if логическое_выражение
Перевести на человеческий язык можно так: если логическое выражение возвращает истину, то выполняются выражения внутри фигурных скобок; если логическое выражение возвращает ложь, то код внутри фигурных скобок не выполняется. С английского «if» переводится как «если».
Конструкция if логическое_выражение называется заголовком условного оператора. Выражения внутри фигурных скобок – телом условного оператора. Тело может содержать как множество выражений, так и всего одно.
Пример использования условного оператора в языке программирования Python:
if n 100: a = a + b
В Питоне вместо фигурных скобок используется двоеточие. Обособление вложенного кода, то есть тела оператора, достигается за счет отступов. В программировании принято делать отступ равным четырем пробелам. Можно использовать клавишу табуляции ( Tab ) на клавиатуре.
Большинство сред программирования автоматически создают отступ, как только вы поставите двоеточие и перейдете на новую строку. Однако при работе в интерактивном режиме отступы надо добавлять вручную.

Нахождение в теле условного оператора здесь обозначается тремя точками. При создании файла со скриптом таких точек быть не должно, как и приглашения >>> .
Python считается языком с ясным синтаксисом и легко читаемым кодом. Это достигается сведением к минимуму таких вспомогательных элементов как различные скобки и точка с запятой. Для разделения выражений используется переход на новую строку, а для обозначения вложенных выражений – отступы от начала строки. В других языках данный стиль программирования также используется, но лишь для удобочитаемости кода человеком. В Питоне же такой стиль возведен в ранг синтаксического правила.
Данный пример вырван из контекста и сам по-себе не является рабочим. Полная версия программы могла бы выглядеть так:
a = 50 b = 10 n = 98 if n 100: a = a + b print(a)
Последняя строчка кода print(a) уже не относится к условному оператору, что обозначено отсутствием перед ней отступа. Она не является вложенной в условный оператор, значит, не принадлежит ему.
Поскольку переменная n равна 98, а это меньше 100, то a станет равной 60. Это значение будет выведено на экран. Если переменная n изначально была бы связана, например, со значением 101, то на экран было бы выведено 50. Потому что при n , равной 101, логическое выражение в заголовке условного оператора вернуло бы ложь. Значит, тело не было бы выполнено, и переменная a не изменилась бы.
Структуру программы можно изобразить следующим образом:
Основная ветка программы выполняется всегда, а вложенный код лишь тогда, когда в темно-зеленой строчке, обозначающей заголовок условного оператора, случается истина.
Для небольших программ иногда чертят так называемые блок-схемы, отражающие алгоритм выполнения. В языке блок-схем различные части кода обозначаются своими фигурами. Так блоку последовательно выполняемых действий соответствует прямоугольник, ветвлению – ромб. Для кода выше блок-схема может выглядеть так:

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

В случае возврата логическим выражением False поток выполнения программы не возвращается сразу в основную ветку. На случай False существует другой вложенный код, отличный от случая True . Другими словами, встретившись с расширенной версией условного оператора, поток выполнения программы не вернется в основную ветку, не выполнив хоть какой-нибудь вложенный код.
В языках программирования разделение на две ветви достигается с помощью добавления блока else, получается так называемое if–else (если-иначе). Синтаксис выглядит примерно так:
if логическое_выражение < выражение 1; выражение 2; … >else
Если условие при инструкции if оказывается ложным, то выполняется блок кода при инструкции else . Ситуация, при которой бы выполнились обе ветви, невозможна. Либо код, принадлежащий if , либо код, принадлежащий еlse . Никак иначе. В заголовке else никогда не бывает логического выражения.
Пример программы с веткой else на языке Python:
tovar1 = 50 tovar2 = 32 if tovar1 + tovar2 > 99: print("99 рублей недостаточно") else: print("Чек оплачен")
Следует иметь в виду, что логическое выражение при if может выглядеть нестандартно, то есть не так просто, как a > b и тому подобное. Там может стоять просто одна переменная, число, слово True или False , а также сложное логическое выражение, когда два простых соединяются через логически and или or .
a = ? if a: a = 1
Если вместо знака вопроса будет стоять 0, то с логической точки зрения это False , значит выражение в if не будет выполнено. Если a будет связано с любым другим числом, то оно будет расцениваться как True , и тело условного оператора выполнится. Другой пример:
a = 5 > 0 if a: print(a)
Здесь a уже связана с булевым значением. В данном случае это True . Отметим, что в выражении a = 5 > 0 присваивание выполняется после оператора сравнения, так что подвыражение 5 > 0 выполнится первым, после чего его результат будет присвоен переменной a . На будущее, если вы сомневаетесь в последовательности выполнения операторов, используйте скобки, например так: a = (5 > 0) .
if a > 0 and a b: print(b - a)
Тут, чтобы вложенный код выполнился, a должно быть больше нуля и одновременно меньше b . Также в Питоне, в отличие от других языков программирования, позволительна такая сокращенная запись сложного логического выражения:
if 0 a b: print(b - a)
Практическая работа
- Напишите программу, которая просит пользователя что-нибудь ввести с клавиатуры. Если он вводит какие-нибудь данные, то на экране должно выводиться сообщение «ОК». Если он не вводит данные, а просто нажимает Enter , то программа ничего не выводит на экран.
- Напишите программу, которая запрашивает у пользователя число. Если оно больше нуля, то в ответ на экран выводится число 1. Если введенное число не является положительным, то на экран должно выводиться -1.
Примеры решения и дополнительные уроки в pdf-версии курса
X Скрыть Наверх
Python. Введение в программирование
Операторы if-elif-else в Python
В этой статье вы научитесь принимать решения в программе Python, используя различные формы оператора if..else.
Что такое оператор if … else в Python?
Оператор if… elif… else используется в Python для принятия решений, когда мы хотим выполнить кодирование только при соблюдении определенного условия.
Синтаксис
if test expression: statement(s)
Здесь программа оценивает test expression и выполняет оператор(ы), только если тестовое выражение истинно.
Если тестовое выражение имеет значение False, оператор(ы) не выполняется.
В Python тело оператора if обозначается отступом. Тело начинается с отступа, а первая строка без отступа отмечает конец.
Python интерпретирует ненулевые значения как True. None и 0 интерпретируются как False.
Блок-схема оператора if Python

Пример: Оператор Python if
# If the number is positive, we print an appropriate message num = 3 if num > 0: print(num, "is a positive number.") print("This is always printed.") num = -1 if num > 0: print(num, "is a positive number.") print("This is also always printed.")
Когда вы запустите программу, вывод будет:
3 is a positive number This is always printed This is also always printed.
В приведенном выше примере num> 0 ‒ это тестовое выражение. Тело if выполняется, только если оно имеет значение True.
Когда переменная num равна 3, тестовое выражение истинно и выполняются операторы внутри тела if.
Если переменная num равна -1, тестовое выражение ложно, а операторы внутри тела if пропускаются.
Оператор print() находится за пределами блока if (без отступов). Следовательно, он выполняется независимо от тестового выражения.
Синтаксис if … else
if test expression: Body of if else: Body of else
Оператор if..else оценивает test expression и выполняет тело if, только если условие теста True.
Если условие равно False, выполняется тело else. Для разделения блоков используется отступ.
Блок-схема if..else

Пример
# Program checks if the number is positive or negative # And displays an appropriate message num = 3 # Try these two variations as well. # num = -5 # num = 0 if num >= 0: print("Positive or Zero") else: print("Negative number")
Positive or Zero
В приведенном выше примере, когда num равно 3, тестовое выражение истинно, и тело if выполняется, а тело else пропускается.
Если num равно -5, тестовое выражение ложно, и выполняется тело else, а тело if пропускается.
Если num равно 0, тестовое выражение истинно, и тело if выполняется, а тело else пропускается.
Синтаксис if … elif … else
if test expression: Body of if elif test expression: Body of elif else: Body of else
Элиф ‒ это сокращение от else if. Это позволяет нам проверять наличие нескольких выражений.
Если условие if равно False, проверяется условие следующего блока elif и так далее. Если все условия ложны, выполняется тело else. Только один блок из нескольких блоков if … elif … else выполняется согласно условию. Блок if может иметь только один блок else. Но у него может быть несколько блоков elif.
Блок-схема if … elif … else

Пример работы
'''In this program, we check if the number is positive or negative or zero and display an appropriate message''' num = 3.4 # Try these two variations as well: # num = 0 # num = -4.5 if num > 0: print("Positive number") elif num == 0: print("Zero") else: print("Negative number")
Если num переменной положительный, печатается Positive number. Если num равно 0, печатается Zero. Если число отрицательное, печатается Negative number.
Вложенные операторы if
У нас может быть оператор if … elif … else внутри другого оператора. В компьютерном программировании это называется вложением.
Любое количество этих операторов может быть вложено друг в друга. Отступы ‒ единственный способ определить уровень вложенности. Они могут сбивать с толку, поэтому их следует избегать при необходимости.
Пример вложенного оператора
'''In this program, we input a number check if the number is positive or negative or zero and display an appropriate message This time we use nested if statement''' num = float(input("Enter a number: ")) if num >= 0: if num == 0: print("Zero") else: print("Positive number") else: print("Negative number")
Enter a number: 5 Positive number
Enter a number: -1 Negative number
Enter a number: 0 Zero
Как обозначается if в блок схеме
Показательная функция (экспонента)
Некоторые из перечисленных встроенных функций могут быть использованы с целыми числами или переменными целого типа (аргумент имеет тип integer).
К таким функциям относятся:
Квадратичная: x2 — sqr(x). Абсолютная величина: |x| — abs(x).
На Паскале нет функций вычисления arcsinx, arccosx, arcctgx. Как с помощью уже известных встроенных функций вычислить значения функций arcsinx, arccosx, arcctgx?
Для этого надо совершить небольшую экскурсию в математику и выразить значение функций arcsinx, arccosx, arcctgx через функцию arctgx.
Arcsinx
Пусть где |x| , тогда отсюда получаем,
окончательно имеем:
Функция
Математическая обозначение
Ее объявление на Паскале
Аналогичными рассуждениями можно получить выражения для arccosx и arcctgx.
Функция
Математическое обозначение
Ее объявление на Паскале
Пример 2. Составить программу решения квадратного уравнения
ax2 + bx + c = 0.
Наметим план составления программы или, иначе говоря, алгоритм.
Под алгоритмом мы будем понимать последовательность указаний для составления программы.
Алгоритм
1. Начало.
Описание переменных и их типов.
2. Ввод значений коэффициентов.
3. Вычисление значения дискриминанта (d).
Если d < 0, тогда уравнение не имеет корней,
иначе,
если d = 0,
тогда уравнение имеет один корень,
вычислить значение этого корня и выдать его на экран,
иначе, уравнение имеет два корня,
вычислить их и выдать на экран.
4. Конец.
Составим программу, пользуясь алгоритмом.
Program Problem3; < Программа решения квадратного уравнения >
uses WinCrt;
var
a, b, c, d, x1, x2 : real;
begin
write(«Введите коэффициенты уравнения «); readln(a, b, c);
d := b*b — 4*a*c;
if d < 0 then writeln(«Уравнение не имеет корней»)
else
if d=0
then writeln(«Уравнение имеет один корень «,-b/(2*a))
else
begin
x1 := (-b — sqrt(d))/(2*a);
x2 := (-b + sqrt(d))/(2*a);
write(«Уравнение имеет два различных корня «);
writeln(«x1 = «, x1, » x2 center»>ИМЯ ПРОГРАММЫ И КОММЕНТАРИЙ
Имя программы «Problem3;», после этого в комментарии записано содержание программы: «;».
РАЗДЕЛ ОПИСАНИЙ
В разделе описаний указаны имена переменных и их типы. Понятно, что переменные a, b, c нужны для значений коэффициентов уравнения, переменная d для значений дискриминанта, а x1 и x2 для корней уравнения. Понятно, что все они принимают вещественные значения, ограничиться целыми невозможно, и имеют тип: real.
РАЗДЕЛ ОПЕРАТОРОВ
Раздел операторов начинается вводом информации. С помощью оператора:
write(«Введите коэффициенты уравнения «); readln(a, b, c);
на экран выводится информация, записанная в этом операторе write:
Введите коэффициенты уравнения
В ответ на этот запрос, пользователю надо ввести коэффициенты уравнения, разделяя их пробелами (проще говоря, ввести через пробелы).
Обратите внимание на такую мелочь, в операторе writeln, перед вторым, «заканчивающим» запись апострофом, оставлен пробел. Для чего? Только из эстетических соображений. Следующий оператор readln(a, b, c); будет вводить информацию, которую вы наберете с клавиатуры. Если этого пробела не будет, то вводимое число будет писаться вплотную к слову «уравнения», что, конечно, некрасиво.
Далее вычисляется значение дискриминанта и присваивается переменной d.
Первым условным оператором if проверяется условие d < 0, если оно выполняется, тогда на экран выдается сообщение, записанное после then в операторе writeln: «Уравнение не имеет корней», иначе после else, новое условие if d = 0, тогда выполняются операторы после then, т.е. выдается сообщение, что уравнение имеет один корень, вычисляется его значение и выдается на экран, так как всё это записано в скобках оператора writeln, иначе, остается одно, — когда дискриминант больше нуля, тогда надо выполнить несколько операторов, которые записаны после else. Но поскольку их несколько, то необходимо открыть операторные скобки begin, в которых и записать вычисление значений корней и вывод их на экран. После чего необходимо закрыть операторные скобки служебным словом end.
После этого программа заканчивается служебным словом end с обязательной точкой в конце.
Каждая операторная скобка, начинаемая словом begin должна обязательно «закрываться» словом end. Если это слово оказывается перед оператором else или является предпоследним, то точка с запятой после end не ставится. Во всех других случаях end заканчивается точкой с запятой, а заканчивающий программу — точкой.
6. Форматированный вывод информации
Если вы выполните программу, то столкнетесь с неприятным явлением — результат, т.е. числовые значения корней, будут выдаваться на экран в экспоненциальной форме.
Так, после ввода значений коэффициентов: 2 3 -10, на экран будет выдан результат:
Уравнение имеет два различных корня
x1 = -3.1084952830E+00 x2 = 1.6084952830E+00
Во-первых, такой результат неудобно читать и запоминать, во-вторых, нам не всегда нужна высокая точность вычисления и, в-третьих, даже целые значения корней будут выдаваться тоже в экспоненциальной форме, что уже совсем неудобно.
Чтобы избежать всех этих неприятностей, можно использовать форматированный вывод информации.
В Турбо-Паскале предусмотрен вывод данных с форматами. В общем случае формат имеет следующий вид:
r:f1:f2
Здесь r — имя переменной, значение которой выводится (в данном случае — x1 или x2), формат f1 указывает, сколько позиций нужно для всего числа, включая знак числа, целую часть, точку и дробную часть числа; f2 — число позиций дробной части числа (после точки).
Если формат указан, то значение переменной r выводится в виде константы с фиксированной запятой, например: 12.35, .123. Если параметры f1 и f2 опущены, то вещественная переменная выводится в виде константы с плавающей запятой, например: 2.534E03, 5.67E-12 и т.п. В этом случае значения f1 и f2 устанавливается по умолчанию.
Надо вообще заметить, что вещественное число в формате с фиксированной точкой печатается так:
несколько пробелов; знак минус (-) или пробел; последовательность цифр (целая часть); точка; последовательность цифр (дробная часть).
Рассмотрим несколько примеров форматированного вывода результатов для вещественных переменных.
Пример 3. Пусть переменная r получает значение частного от деления вещественных переменных a на b.
Составим небольшую программу и выполним ее несколько раз, устанавливая различные значения для форматированного вывода результата.
Program Problem;
uses WinCrt;
var
a, b, r : real;
begin
write(«Введите значение переменной a «); readln(a);
write(«Введите значение переменной b «); readln(b);
r := a/b;
writeln(«Результат равен «, r)
end.
При первом выполнении программы не устанавливайте параметров для форматированного вывода. Вы получите результат в форме с плавающей запятой. При следующем выполнении для a введите значение 1, для b 3, а для вывода результата установите следующий формат: r:6:2; затем, r:1:5; r:0:4 и т.п.
Форматированный вывод возможен и для переменных целого типа, но в этом случае нужен только один параметр:
Если значение формата f1 больше, чем необходимое число позиций для записи числа, то перед числом добавляется соответствующее число пробелов. Если значение f1 меньше, оно автоматически увеличивается до числа позиций, необходимого для вывода числа.
1. Наберите программу в первоначальном ее варианте и выполните, а затем измените ее, применив форматированный вывод результата, и выполните еще раз. Сравните результаты.
2. Составьте программу решения линейного уравнения ax = b и выполните ее.
Пример 4. Два прямоугольника заданы длинами сторон. Написать программу, после выполнения которой выясняется, можно ли первый прямоугольник целиком разместить во втором. (Рассмотреть только случай, когда соответствующие стороны прямоугольников параллельны.)
Program Problem4;
uses WinCrt;
var
a1, b1, a2, b2 : real;
begin
write(«Введите длину и ширину первого прямоугольника «); readln(a1, b1);
write(«Введите длину и ширину второго прямоугольника «); readln(a2, b2);
if ((a1 < a2) and (b1 < b2)) or ((b1 < a2) and (a1 < b2))
then writeln(«Первый прямоугольник размещается во втором»)
else writeln(«Первый прямоугольник не размещается во втором»)
end.
Задание 3
1. Введите эту программу и выполните.
2. Составьте программу, в результате выполнения которой выясняется, входят ли четные цифры в запись данного трехзначного числа.
7. Некоторые встроенные функции и процедуры, применимые к целым типам. Логический тип boolen
Наименование Тип результата Действие
abs(x) Целый Возвращает модуль числа x
dec(x [, i]) Процедура Уменьшает значение x на i, при отсутствии i — на 1
inc(x [, i]) Процедура Увеличивает значение x на i, при отсутствии i — на 1
odd(x) Логический
(Boolean) Возвращает true, если аргумент — нечетное число, false — если четное
random(x) Как у параметра x Возвращает псевдослучайное число, равномерно распределенное на интервале 0 sqr(x) Целый Выдает квадрат аргумента x
Логический тип (boolean). Значение логического типа может быть одна из предварительно объявленных констант false (ложь) или true (истина)
К целому и логическому типам применимы следующие функции.
Функция ord(x) выдает порядковый номер значения выражения x, т. е. ord(x)=x для x, принадлежащих любому целому типу.
Применение это функции к логическому типу дает следующие результаты:
ord(false) = 0;
ord(true) = 1;
false < true
К целому и логическому типам можно применять функции:
pred(x) — выдает предыдущее значение порядкового типа (в т. ч. целого или логического типов, pred(x) = ord(x) — 1, ord(pred(x)) = ord(x) — 1 для целого типа x, pred(true)=false — для логического типа);
succ(x) — выдает следующее значение порядкового типа, которое соответствует порядковому номеру ord(x) + 1, т. е. ord(succ(x)) = ord(x) + 1 — для целого типа и succ(false) = =true — для логического типа.
Чтобы четко понимать действие этих функций, рассмотрим их работу на примерах.
Пример 5. Использование логического типа. Составить программу, которая подтверждает правильность ввода чисел, если первое число меньше — истина, наоборот — ложь.
Program Problem5;
uses WinCrt;
var
a : boolean;
b, c : integer;
begin
writeln(«b < c");
write(«Введите b Введите c < ", c, " "); writeln(a)
end.
Пример 6. Использование функции определения четности. Программа должна определять четность и нечетность чисел. Если число четное — выдается на экран «четное», в случае нечетного числа — выдается «нечетное».

Программа
Program Func_odd;
uses WinCrt;
var
i : integer;
l : boolean;
begin
write(«Введите целое число «); readln(i);
l := odd(i);
if l then writeln(i, » — число нечетное»)
else writeln(i, » — число четное»)
end.
Пример 7. Составить программу, выводящую на экран слово «Да», если точка с координатами (x, y) принадлежит заштрихованной области, и «Нет» — в противном случае.

Рис. 11. Заданная область
Заштрихованная область представляет собой часть круга радиуса R, расположенной в первой четверти. Точки (x, y), лежащие внутри круга с центром в начале координат и радиусом R, удовлетворяют неравенству . Кроме того, точки, лежащие в первой четверти координатной плоскости, должны удовлетворять условиям: . Учитывая то, что точки, лежащие внутри заштрихованной области, должны одновременно удовлетворять всем трем условиям, соответствующее логическое выражение может быть записано так: (x*x + y*y = 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 тыс. видов. Это низшие, преимущественно морские, многоклеточные животные, прикрепленные к субстрату либо плавающие в толще воды. Несмотря на большое различие во внешнем строении и размерах тела кишечнополостные имеют общие черты организации, главнейшие из которых следующие: Тело мешковидное, образованное двумя слоями .
Единицы измерения времени Современные единицы измерения времени основаны на периодах обращения Земли вокруг своей оси и вокруг Солнца, а также обращения Луны вокруг Земли. Такой выбор единиц обусловлен как историческими, так и практическими соображениями: необходимостью согласовывать деятельность людей со сменой дня и ночи или сезонов; смена фаз Луны влияет на высоту .
Какова бы ни была природа слабых первичных возмущений в ранней Вселенной, они рано или поздно превращаются в сильные возмущения под действием гравитационной неустойчивости. Независимо от своей предыстории, сильные возмущения — это сгущения вещества, в которых космологическое расширение полностью или почти полностью преодолено их собственным тяготением. Выше .
