Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
04.09.2012(простые программы).doc
Скачиваний:
10
Добавлен:
09.11.2019
Размер:
171.52 Кб
Скачать

Var z,y : real;

begin

writeln(‘введите y’);

readln(y);

if y<8 then

z:=y

else

if y=8 then

Z:=y*y

else

Z:=y*y*y;

writeln(‘z=’,z:9:4)

end.

Упражнение.Выполните программу при различных значениях входных данных: y=7, y=8, y=10

Обратите внимание на то, что очень распространённой ошибкой при написании программ, имеющих тройное разветвление, является использование приведённого ниже фрагмента для вычисления z:

if y<8 then

z:=y;

if y=8 then

z:=y*y

else

z:=y*y*y;

Ответьте, что здесь не так? Какое значение получит z, если y<8?

Очень важное правило: Если <оператор1> и (или) <оператор2> в условном операторе содержит более одного оператора, то нужно использовать составной оператор.

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

Пример: Даны два числа a и b, большее из них поместить в переменную a, меньшее – в переменную b.

Входные данные: a, b. Результаты : a, b.

Текст программы

program two;

Var a,b,c : real;

begin

writeln(‘введите два числа’);

readln(a,b);

if b>a then

begin //здесь используется составной оператор

c:=a; a: =b; b:=c

end;

writeln(‘большее =’,a:7:2,’ меньшее=’,b:7:2)

end.

Сложное логическое выражение состоит из простых логических выражений и знаков логических операций: not (отрицание),

and (логическое умножение), or (логическое сложение).

Приоритеты операций (от высшего приоритета к низшему):

Унарные операции

+, -, not

Мультипликативные операции

*, /, mod, div, and

Аддитивные операции

+, -, or

Операции отношения

<, <=, >, >=, =, <>

Примеры сложных логических выражений:

1) a<x<b (a<x) and (a>b)

2) x<a или х>b (x<a) or (x>b)

Т.к. приоритеты логических операций (not, and, or) больше приоритетов операций отношения (<, <=, >, >=, =, <>), то для того, чтобы операции отношения в логических выражениях выполнялись раньше логических операций, надо использовать круглые скобки.

Задания к разделу “программы с разветвлениями”:

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

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

2. Выяснить, попадает ли точка с заданными координатами в кольцо с координатами центра (0,0) и заданными радиусами r1 и r2.

3.Проверить, могут ли значения переменных a, b, c быть длинами сторон треугольника?

4 Проверить, являются ли заданные значения x и y решением системы двух линейных уравнений с двумя неизвестными. Переменные a,b,c,d,e,f,x,y описать, используя тип real.

Указание. Проверка на равенство значений вещественного типа, используя операцию = (равно), может дать неправильный результат. Причина заключается в том, что выражения типа real в памяти компьютера представляются приближенно. Поэтому для проверки на равенство a=b значений двух вещественных выражений a и b следует заменить проверкой abs(a-b)<eps, где eps – достаточно малое число (0< eps<1).

5 Исследовать систему на существование единственного решения, или множества решений, или отсутствия решений.

:

Указание. Система имеет единственное решение, если или

Система имеет бесчисленное множество решений, если

Система не имеет решений, если

Для проверки на равенство значений вещественного типа не использовать операцию =. Использовать указание у задаче 4.

6.

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

7.

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

8.

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

9. Записать оператор присваивания, с помощью которого логическая переменная f получает значение

а) true, если целое число k делится на 7, и false – в противном случае;

б) true, если 0<x<1, и false – в противном случае;

в) true, если x не принадлежит отрезку [-1,1], и false – в противном случае;

г) true, если x лежит вне отрезков [2,5] и [-1,0], и false – в противном случае.

Выдать значение f для пунктов а),…,г).

10.

Выполнить при следующих вариантах данных:

  1. x= , b=0, a=1

  2. x=- /2, b=0.5, a=1

  3. x=0, b=1, a=1

  4. x=0, b=0, a=1

  5. x=- /2, b=10, a=1

Указание. В вариантах, использующих значения x= или x=- /2 , ввод заменить оператором присваивания x:=pi или x:=-pi/2.

Дополнительные задания к разделу “программы с разветвлениями

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

1. y=max{a,b}; 2. y=max{a,b,c}; 3. ; 4. w={min{x,max{y,z}}

5. 6.

7. 8.

9. 10.

12

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