Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3_bilet.docx
Скачиваний:
2
Добавлен:
05.08.2019
Размер:
29.98 Кб
Скачать

V ar V : integer; Then

If Writeln(a2)

B EGIN Else

w rite('введите вес спортсмена V='); Then

readln(v); IF Writeln(A3)

Else

I F V < 62 then writeln(A1)

else Writeln(A4)

IF V < 75 then writeln(A2) { вложенный условный оператор }

else

IF V < 88 then writeln(A3) { вложенный условный оператор }

else writeln(A4);

writeln('Нажмите Enter'); readln;

END.

Практическое задание N 1. 6

1. Определить ваши действия в зависимости от дня недели. Например, суббота - еду в баню, воскресенье - еду в гости и т. д. Программа запрашивает ввод дня недели и выводит на экран ваши действия в зависимости от составленного расписания.

2. Определить вид функции в зависимости от значения аргумента:

y=7 при х<-7, у=-х при -7=<х<0, у=х при 0<х<=5, у= 5 при х>5.

Программа запрашивает ввод значения "х" и выводит на экран вид функции "у".

3. Рассчитать значение функции Y= хN в зависимости от значения "х" с выбором вида формулы: для случая аргумента х>0 функция Y= exp(N*ln(x)), при х<0 преобразовать "х" в положительное число x= abs(x), при х= 0 функция Y= 1.

4. Рассчитать значение функции Y= 1/  х в зависимости от значения "х" с выбором вида формулы: для случая аргумента х>0 функция Y= 1/sqrt(x), при х<0 преобразовать "х" в положительное число x= abs(x), при х= 0 вывести надпись: " Деление на ноль".

24

Для разложения целого числа на цифры удобно применять операции: MOD и DIV. Например, если дано трехзначное число "N" ( "N" соответствует "X1X2X3" ), то цифры: X1X2X3, составляющие это число определяются блоком операторов:

X3:= N mod 10; N:= N div 10;

X2:= N mod 10; N:= N div 10; X1:= N;

Если требуется определить, делится ли вещественное число "A" нацело на число "B", то можно применять функции Frac(x); и Int(x); например:

x:= A/B;

If Frac(x) = 0 then writeln('Число "A" делится нацело на число "B"');

If Int(x) = x then writeln('Число "A" делится нацело на число "B"');

Практическое задание N 1. 7

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

2. Проверить, является ли пятизначное число "A" симметричным,

т. е. изменится ли значение числа при записи его цифр в обратном порядке.

3. Проверить, делится ли трехзначное число "A" нацело на сумму цифр, составляющих это число в случаях целого и вещественного типа числа "A".

4. Проверить, делится ли четырехзначное число "A" нацело на произведение цифр, составляющих это число в случаях целого и вещественного типа числа "A".

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

Условный оператор может применяться для идентификации (распознавания) объекта по определенным признакам составляющих его элементов. Например, если объектом является треугольник, то элементами объекта могут быть:

1) три его угла (a, b, c); 2) три его стороны (a1, b1, c1); и т. д.

Признаками являются значения элементов по которым производится идентификация, например, для углов:

1) один угол > 90 - (один признак);

2) три угла < 90 - (три признака); и т. д.

В результате идентификации объект получает имя. Например, треугольник - остроугольный, либо тупоугольный и т. д.

Если идентификация проводится по одному признаку для нескольких элементов, то несколько условий связываются служебным словом "or", например:

If (a >90) or (b >90) or (c >90) then writeln ( 'Треугольник - тупоугольный' );

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

If (a<90) and (b <90) and (c <90) then writeln('Треугольник - остроугольный');

25

Если имя объекта составное, то добавляются признаки для идентификации второй части имени и применяются вложенные условные операторы, например, для равнобедренного треугольника:

If (a<90) and (b<90) and (c<90) then If (a=b) or (b=c) or (a=c) then writeln('Треугольник - остроугольный и равнобедренный') else writeln('Треугольник - остроугольный');

Напомним, что условный оператор можно применять для контроля правильности вводимых данных, например:

If (a+b+c)<>180 then begin writeln('Сумма углов<>180'); Halt end;

Если для идентификации объекта достаточно меньшего числа признаков, чем число элементов, то условия, связанные "and" группируются, а группы соединяются служебным словом "or". Например, четырехугольник имеет элементами четыре стороны ( a, b, c, d ), а его имя устанавливается по двум признакам (равенство двух пар сторон), тогда можно использовать операторы:

If ((a=b) and (c=d)) or ((a=c) and (b=d)) or ((a=d) and (b=c)) then writeln('Параллелограмм');

Таким образом, если при идентификации объекта число признаков меньше, чем число элементов, то условия группируются. Например, пусть для идентификации зайца достаточно трех признаков для четырех элементов: YXO - длинное ('D'), XBOCT - короткий ('K'), LAPA - передние меньше задних ('PmZ'), HOC - короткий ('K'), тогда можно использовать операторы:

If ((YXO='D') and (XBOCT='D') and (LAPA='PmZ')) or

((YXO='D') and (XBOCT='D') and ( HOC='K')) or

((YXO='D') and ( HOC='K') and (LAPA='PmZ')) then writeln('Это ЗАЯЦ');

Практическое задание N 1. 8

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

2. Идентифицировать четырехугольника: ромб, квадрат по пяти элементам - сторонам и углу.

3. Идентифицировать зверьков: заяц, кенгуру, белка по трем признакам для четырех элементов.

4. Идентифицировать летающий объект: самолет, вертолет, ракета, тарелка по трем признакам для четырех элементов. Например: для элементов: крылья, хвост, двигатель, длинный корпус признаками могут быть значения "Y" или "N".

Примечание к п. 2, 3, 4: для неопознанного объекта должно выдаваться соответствующее сообщение на экран.

Простые логические выражения

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

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

В Паскале предусмотрены следующие операторы отношений:

  • меньше: x < y

  • больше: x > y

  • равно: x = y

  • не равно: x <> y

  • меньше или равно: x <= y

  • больше или равно: x >= y

Логические выражения

Выражение назывется логическим, если оно имеет тип boolean.

Пример.

x < 0

a >= b

a <> 3

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

( бинарные )  ( унарные )

  a and b   not a

  a or b

  a xor b

 

Таблицы истинности логических операций

a

b

a and b

a or b

a xor b

false

false

false

false

false

false

true

false

true

true

true

false

false

true

true

true

true

true

true

false

 

Сокращение вычислений логических выражений

Большинство современных компиляторов, в т.ч. PascalABC.NET производит сокращенное вычисление логических выражений.

Это означает, что в выражении

a and b

если a — ложно, то b не вычисляется, а в

a or b

если a — истинно, b не вычисляется.

Это очень полезно при вычислении таких выражений, как, например,

( y <> 0 ) and (x / y > 0 )

Логически здесь все верно, однако, если бы не использовалось сокращенное вычисление, в случае равенства нулю y возникала бы ошибка деления на ноль.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]