Когда перед else не ставится знак
Перейти к содержимому

Когда перед else не ставится знак

  • автор:

 

Составной оператор

Составной оператор– это последовательность произвольных операторов программы, заключенная в операторные скобки – зарезервированные слова begin . end. Операторы разделяются точкой с запятой ;.

Исполняемая часть программы является составным оператором такого рода.

Составной оператор служит, в первую очередь, для того, чтобы несколько операторов синтаксически объединить в один. Это часто требуется там, где нужно выполнить несколько операторов, когда допустим лишь один. Понятие составного оператора позволяет с помощью команд begin и end объединить несколько операторов и рассматривать их с точки зрения синтаксиса как один оператор. На характер операторов, входящих в составной оператор, не накладывается никаких ограничений. Среди них могут быть и другие составные операторы.

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

Обе записи верны, поскольку можно считать, что между write(i); и end находится пустой оператор. Пустой оператор– оператор, который не выполняет никаких операций и ничего не изменяет в данных и в программе. Пустому оператору соответствует отсутствие записи на том месте, где по правилам должен быть какой-нибудь оператор. После него можно ставить символ точки с запятой, например:

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

Если эти элементы объединить в одну группу, заключив их в круглые скобки (А, В, С, Д), то запятая ставится опять-таки между элементами: после открывающей и перед закрывающей скобками запятая не указывается. Если эта группа элементов входит в состав другой группы, то запятая ставится и между группами, например:

((А, В, С, Д), (К, М), Е, (Х, У))

Подобная система введена и в языке Паскаль, только в нем роль круглых скобок выполняют операторные скобки BEGIN – END, вместо запятой ставится точка с запятой, а вместо элементов – операторы.

Условный оператор

Условный оператор позволяет проверить некоторое условие и в зависимости от результата выполнить то или иное действие. С помощью этого оператора программируются алгоритмы разветвляющейся структуры.

Структура условного оператора:

IF <условие> THEN <оператор1> ELSE <оператор2>,

где IF, THEN, ELSE – зарезервированные слова (если, то, иначе);

<условие> – произвольное выражение логического типа;

<оператор1>,<оператор2> – любые операторы языка.

Условный оператор работает по следующему алгоритму. Вначале вычисляется условное выражение <условие>. Если результат есть TRUE (истина), то выполняется <оператор1>, а <оператор2> пропускается; если результат есть FALSE (ложь), наоборот, <оператор1> пропускается, а выполняется <оператор2>. Например:

Этот условный оператор читается: если условие x > max выполняется, то y := max, иначе y := x.

Часть ELSE <оператор2>условного оператораможет быть опущена. Тогда при значении TRUE условного выражения выполняется <оператор1>, в противном случае этот оператор пропускается.

Если требуется выполнить после then или else несколько операторов, они обрамляются командами begin и end, образуя тем самым составной оператор. Перед else никогда не ставится точка с запятой (поскольку это еще не конец оператора if).

Задача. Пусть задана функция

Написать программу вычисления значения Y по значению X.

Программа может выглядеть так:

if x <= 0 then y:= 0 else y := x*x*x;

<Оператор1> и <Оператор2> по определению любой оператор языка, следовательно и условный.

Задача. Пусть значение Y зависит от значения X.

Сocтавить программу вычисления значения Y по значению X.

Если удовлетворено условие х < 2, то y получит значение, равное значению х, это значение затем будет выведено. Если условие х < 2 не удовлетворяется, то значение y будет определено выполнением условного оператора

if x < 3 then y := 2 else y := –x + 5

Если else отсутствует, а после оператора then вновь стоит оператор if, то возникает неоднозначность трактовки условий. Эта неоднозначность решается следующим образом: любая встретившаяся часть else соответствует ближайшей к ней “сверху” части then условного оператора. Приведенное высказывание понимается так

Когда перед else не ставится знак

Показательная функция (экспонента)

Некоторые из перечисленных встроенных функций могут быть использованы с целыми числами или переменными целого типа (аргумент имеет тип 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. Наберите программу в первоначальном ее варианте и выполните, а затем измените ее, применив форматированный вывод результата, и выполните еще раз. Сравните результаты.

Пример 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<= t < x
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 <= R*R) and (x >= 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 <= R*R) and (x >= 0) and (y >= 0)
then writeln(«Да»)
else writeln(«Нет»)
end.

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


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

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

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

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

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

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

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

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

58. Составной оператор. Многообразие способов записи ветвлений

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

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

рассмотреть правила записи условного оператора;

рассмотреть формат и назначение составного оператора;

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

сформировать умение записывать на языке программирования короткие алгоритмы с ветвлениями.

неполная форма условного оператора;

Интерактивные тесты

Свободное программное обеспечение:

Повторить:

Выучить:

Выполнить:

неполный условный оператор

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

if <условие> then <оператор_1> else <оператор_2>

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

if <условие> then <оператор>

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

 

Перед else знак «;» не ставится.

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

простые — записанные с помощью операций отношения;

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

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

writeln ('Определение принадлежности точки отрезку');

if (х>=а) and (x<=b) then

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

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

Пример 2. Воспользуемся неполным условным оператором для записи на языке Паскаль рассмотренного в п. 2.4.2 (пример 9) алгоритма присваивания переменной у значения наибольшей из трёх величин а, b и с.

var у, a, b, с: integer;

writeln ('Нахождение наибольшей из трёх величин');

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

В условном операторе и после then , и после else можно использовать только один оператор. Если при некотором условии требуется выполнить определённую последовательность операторов, то их объединяют в один составной оператор.

begin <последовательность операторов> end

называется составным оператором .

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

var x, x1, x2: real;

writeln ('Решение квадратного уравнения');

write ('Введите коэффициенты а, b, с»'); readln (а, b, с) ;

if d<0 then writeln ('Корней нет');

writeln ('Корень уравнения x=', x:9:3)

writeln ('Корни уравнения:');

В качестве оператора после then и else можно использовать условный оператор. Например, возможна следующая конструкция:

if <условие1> then

if <условие2> then <оператор1>

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

Пример. Воспользуемся вложенным ветвлением для записи на языке Паскаль рассмотренного в п. 2.4.2 (пример 10) алгоритма решения линейного уравнения.

writeln ('Решение линейного уравнения');

write ('Введите коэффициенты а, b>>');

writeln ('Корень уравнения х=', х: 9: 3)

else if b<>0 then writeln ('Корней нет')

else writeln ('x — любое число');

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

writeln ('Решение линейного уравнения');

write ('Введите коэффициенты а, b>>');

writeln ('Корень уравнения х=', х:9:3)

if (а=0) and (b<>0) then writeln ('Корней нет');

if (a=0) and (b=0) then writeln ('x — любое число')

Возможно, второй вариант программы покажется вам более наглядным. Но и у первого варианта есть свои преимущества: в нём делается меньше проверок.

Используйте вложенные ветвления для записи программы, определяющей принадлежность точки х отрезку [а, b].

Самое главное

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

if <условие> then <оператор_1> else <оператор_2>

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

if <условие> then <оператор>

Если при некотором условии требуется выполнить определённую последовательных операторов, то их объединяют в один составной оператор, имеющий вид:

begin <последовательность операторов> end

Вопросы и задания

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

2. Как на языке Паскаль записывается полное и неполное ветвление?

3. Является ли условным оператором следующая последовательность символов?

а) if х<у then х:=0 else read (у)

б) if х>=у then х:=0; у:=0 else write (z)

в) if x<y<z then a:=a+1

4. Что такое составной оператор? Для чего он используется в условном операторе?

5. Используя составной оператор, упростите следующий фрагмент программы:

6. Дано трёхзначное число. Напишите программу, которая определяет:

а) есть ли среди цифр заданного целого трёхзначного числа одинаковые;

б) является ли число «перевёртышем», т. е. числом, десятичная запись которого читается одинаково слева направо и справа налево.

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

8. Даны три натуральных числа. Напишите программу, определяющую, существует ли треугольник с такими длинами сторо- н. Если такой треугольник существует, то определите его тип (равносторонний, равнобедренный, разносторонний).

9. Имеются данные о количестве полных лет трёх призёров спартакиады. Напишите программу, выбирающую и выводящую возраст самого младшего призёра.

10. Напишите программу, определяющую, лежит ли точка А(ха, уа) на прямой у =kx + l, на ней или под ней.

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

12. Дан условный оператор:

else if а>5 then с:=2

Какое значение имеет переменная а, если в результате выполнения условного оператора переменной с присваивается значение 3?

13. Напишите программу, вычисляющую значение функции:

14. Составьте программу для решения задачи № 21 к § 2.4 (определение дня недели).

15. Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8. Напишите программу, которая по введённым координатам двух полей (k, l) и (m, n) определяет, являются ли эти поля полями одного цвета.

16. Напишите программу, в которой пользователю предлагается дополнить до 100 некоторое целое число a (a — случайное число, меньшее 100). Ответ пользователя проверяется и комментируется.

Когда перед else не ставится знак

11 ноября, 2015 Andrey K

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

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

  1. Неполное
  2. Полное

Неполное условие

Блок-схема неполного условия выглядит следующим образом:

Неполное условие Паскаль

ЕСЛИ УСЛОВИЕ ИСТИННО, ТО ВЫПОЛНЯЕТСЯ ДЕЙСТВИЕ , ИНАЧЕ НИЧЕГО НЕ ПРОИСХОДИТ

На языке Паскаль данная алгоритмическая конструкция выглядит следующим образом:

IF условие THEN действие;

Если условие, стоящее после IF истинно, то выполняется действие, стоящее после слова THEN.

Что такое условие?

Условие — это выражение, которое может быть либо истинным, либо ложным. Условие обязательно содержит логические операторы <, >, =, <=, >=, <> (не равно).

Например:

Если введенное значение переменной a равно 7, то на экране мы увидим слово Привет! Если не равно — то на экран ничего выводится не будет.

Рассмотрим другой пример:

Что мы увидим на экране, введя число 7? Увидим:

Привет!
До встречи

Что мы увидим на экране, введя число 10?

Почему так? Почему До встречи выводится на экран в любом случае? Команда

не относится к конструкции If-Then

Как сделать так, чтобы оба действия относились к конструкции If-Then?

Необходимо заключить эти действия в так называемые операторные скобки: begin… end;

end.
Теперь, если мы введем число 10, то на экране ничего не увидим.

Составное (сложное) условие

Иногда приходится использовать сложное условие. Для его составления используются логические союзы: and или or.

  • Если мы используем and, то составное условие будет истинно, когда все простые условия истинны.
  • Если мы используем or, то составное условие будет истинно, когда хотя бы одно простое условие будет истинно.

Например:

a>7 и a<15 на языке паскаль будет записываться

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

Составное условие будет истинно, если: либо a=7, либо a>17.

Используя конструкцию If-Then, найти максимальное среди трех введенных чисел.

Решение

Полное условие

Блок-схема полного условия выглядит так:

Полное условие. Блок-схема

Полное условие. Блок-схема

IF условие THEN действие_1 ELSE действие_2;
  • Если условие истинно, то выполняется действие, стоящее после слова Then.
  • Если условие ложно, то выполняется действие, стоящее после слова Else.

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

(перед else точка с запятой не ставится)

Задачи для самостоятельного выполнения:

  1. Сумма покупки составляет а рублей. Если а больше 1000 рублей, то предоставляется скидка 15%. Вывести на экран сумму покупки с учетом скидки либо сообщение о том, что скидка не предоставляется.
  2. Известны площади круга и квадрата. Определить:
    • уместится ли круг в квадрате
    • уместится ли квадрат в круге
  3. Определить, является ли число а делителем числа b
  4. Проверить, принадлежит ли число введенное с клавиатуры, интервалу (-5;3).
  5. Дано двузначное число. Определить:
    • входит ли в него цифра 3
    • входит ли в него цифра а
  6. Определить, является ли треугольник со сторонами a, b, c равнобедренным
  7. Даны три различных числа. Определить, какое из них (первое, второе или третье)
    • самое большое
    • самое маленькое
    • является средним

(список задач будет пополняться)

Опубликовано в рубрике Программирование Метки: задачи на программирование, Паскаль, программирование

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *