Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Пустой оператор и составной оператор





Пустым оператором в Турбо Паскаль является оператор «;». Он не содержит в себе никаких действий себе. В программе может содержаться много пустых операторов.

Составной оператор – это последовательность произвольных операторов программы, заключенная в операторные скобки – зарезервированные слова begin … end. Составные операторы – важный инструмент Турбо Паскаль, позволяющий писать программы по современной технологии структурного программирования (без оператора перехода goto).

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

begin

………………

begin

……………….

begin

……………….

end;

end;

end;

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

 

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

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

Структура условного оператора имеет следующий вид:

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

где if, then, else – зарезервированные слова (если, то, иначе);

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

<оператор1>, <оператор2> - любые операторы языка Турбо Паскаль.

Блок-схема условного оператора имеет вид рис.4.

 

Рис. 3. Блок-схема условного оператора if – then – else.

 

Условный оператор работает следующим образом. Сначала проверяется условное выражение <условие>. Если условие выполняется, то выполняется <Оператор1>, а <Оператор2> пропускается, если условие не выполняется, то <оператор 1> пропускается, а выполняется <оператор 2>.

Пример:

Ввести через пробел два числа. Определить минимальное и максимальное число.

       
   
 
 

 


Program Maksimum;

Var

x,y: real;

Begin

Writeln('Введите два числа');

Readln(x, y);

If x>y then writeln('Первое число больше второго')

else writeln('Второе число больше первого');

End.

На практике часто используют укороченную схему условного оператора: If <условие> then <оператор1>;

 
 

 


Рис. 4. Блок-схема условного оператора if-then

Например:

Begin

If x>y then writeln('Первое число больше второго');

If y>x then writeln('Второе число больше первого');

If y=x then writeln('Числа равны');

End.

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

If <условие> then

begin

<оператор 1>

<оператор 2>

<оператор n>

end;

«Оператор» в условном операторе может быть любым, в том числе и условным оператором. В таких случаях возникают конструкции со вложенными условиями типа:

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

If <условие2> then

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

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

Пример:

Ввести через пробел три числа. Определить максимальное число.

Program Vozrastanie;

Var

x,y,z: integer;

Begin

Writeln('Ввести через пробел три числа');

Readln(x,y,z);

If (x>y) and (x>z) then writeln('Максимальное число ', x);

If (y>x) and (y>z) then writeln('Максимальное число ', y);

If (z>x) and (z>y) then writeln('Максимальное число ', z);

End.

Пример:

В каждый подарочный набор входят 1 ручка, 2 линейки и 4 тетради. Ввести через пробел a линеек, b тетрадей, c ручек. Сколько всего получится подарочных наборов?

Program Nabor;

Var

a, b, c: integer;

Begin

Writeln('Введите через пробел количество линеек, терадей и ручек');

Readln(a, b, c);

a:= a div 2;

b:= b div 4;

If a>b then a:=b;

If a>c then a:=c;

Write('Всего наборов', a);

End.

 

Задачи

1. Ввести три вещественных числа. Вывести их на экран в порядке возрастания.

2. Ввести три вещественных числа. Вывести их на экран в порядке убывания.

3. Ввести три вещественных числа. Удвоить эти числа, если a > b > c и заменить их абсолютными значениями, если это не так.

4. Ввести два целых числа. Заменить первое число нулем, если оно меньше или равно второму и оставить числа без изменения, если это не так.


5. Ввести два вещественных числа. Меньшее из этих двух чисел заменить их полусуммой, а большее – их удвоенным произведением.

6. Ввести целые числа a, b, c, d. Если a – наименьшее из них, то каждое число заменить на наибольшее; если a>b>c>d, то все числа заменить их квадратами; иначе числа оставить без изменения. Вывести полученные числа на экран.

7. Ввести вещественные числа x и y. Если оба числа отрицательны, то каждое заменить его модулем; если отрицательно только одно из них, то оба значения увеличить на 0,5; если оба значения неотрицательны и ни одно из них не принадлежит отрезку [0,5; 2,0], то оба значения уменьшить в 10 раз; в остальных случаях оставить числа без изменения. Вывести числа на экран.

8. Ввести целые числа a, b, c. Выяснить, имеет ли уравнение ax2+bx+c=0 действительные корни. Если имеет, то найти их и вывести на экран. В противном случае должно быть выведено сообщение, что корней нет.

9. Ввести вещественные положительные числа a, b, c, x, y. Выяснить, пройдет ли кирпич с ребрами a, b, c в отверстие со сторонами x и y. Просовывать кирпич разрешается только так, чтобы каждое из ребер было параллельно или перпендикулярно каждой из сторон отверстия.

10. Ввести три вещественных числа x, y, z. Вывести на экран те из них, которые принадлежат интервалу [0..10].

11. Ввести три целых числа x, y, z. Если их сумма меньше 10, то наименьшее из этих чисел заменить полусуммой двух других, в противном случае наибольшее из этих чисел заменить модулем полуразности двух других.

12. Ввести вещественные положительные числа x, y, z.

а) Выяснить, существует ли треугольник с длинами сторон x,y,z.

б) Если треугольник существует, то ответить – является ли он остроугольным, тупоугольным или прямоугольным.

13. Ввести числа x1, x2, x3, y1, y2, y3. Определить, принадлежит ли начало координат треугольнику (x1, y1), (x2,y2), (x3, y3).

14. Составить программу определения большей площади из двух фигур круга или квадрата. Сторона квадрата равна a, а радиус круга равен r. Значения a и r вводятся с клавиатуры. Вывести на экран значение большей фигуры.

15. Ввести вещественные числа x и y. Определить, принадлежит ли точка с координатами x и y области, изображенной на рисунке:

y
y
y
а) б) в)

       
   
 
 

 

 


y
y
y
г) д) е)

           
 
 
   
 
 
 
 


                   
 
   
-2 2 -2  
   
       
x
     
x
 
 
 
 


-4
 
 
-1

 

 

           
 
-4
   
-4    
 


y
ж) з) 4 7 8 12

12 0 х

10 4

6 7

4

8

0 4 6 10 12 х 12

17. Ввести четыре вещественных положительных числа a, b, c и d. Определить, можно ли построить четырехугольник с такими длинами сторон.


 

Оператор выбора

Оператор выбора case … of является обобщением оператора if. Он позволяет выбрать одно из нескольких возможных продолжений программы. Оператор выбора case … of является идеальным средством для обработки ситуаций с несколькими исходами, когда условие может принимать более двух значений.

Параметром, по которому осуществляется выбор, служит ключ выбора – выражение любого порядкового типа. Структура оператора выбора такова:

CASE <Ключ выбора> OF <Список выбора>:<Оператор> [ELSE <оператор>] END;

Здесь CASE, OF, ELSE, END – зарезервированные слова (случай, из, иначе, конец);

<Ключ выбора> – ключ выбора;

<Список выбора> – одна или несколько конструкций вида:

<Константа выбора> – <оператор>;

<Константа выбора> – константа того же типа, что и выражение <ключ выбора>;

<оператор> – произвольные операторы Турбо Паскаль.

 
 

 

 


 
 


Рис. 5. Блок-схема алгоритма выполнения оператора Case of.

 

Оператор выбора работает следующим образом. Сначала вычисляется выражение <ключ выбора>. Затем в последовательности параметров <список выбора> отыскивается такой, которому соответствует значение «ключа выбора» и выполняется оператор соответствующий данной переменной. После чего оператор выбора завершает свою работу. Если в списке выбора не будет найдена константа, соответствующая значению «ключа выбора», управление передается оператору, стоящему за словом ELSE. Часть ELSE – <оператор> может опускаться. Тогда при отсутствии в списке выбора нужной константы ничего не произойдет, и оператор выбора просто завершит свою работу.

Пример:

Программа определения размера числа.

Program DemoCase;

Var

x: integer;

Begin

Writeln('Введите число');

Readln(x);

Case x of

-1000..-100: writeln('Число в диапазоне от –1000 до –100');

-100..-10: writeln('Число в диапазоне от –100 до –10');

-10..0: writeln('Число в диапазоне от –10 до 0');

0..10: writeln('Число в диапазоне от 0 до 10');

10..100: writeln('Число в диапазоне от 10 до 100');

100..1000: writeln('Число в диапазоне от 100 до 1000');

end;

End.

Оператор выбора нельзя рассматривать как объединение последовательности условных операторов. Программа демонстрирует особенности его работы. В качестве переменной входящей в выражение «ключ выбора» может использоваться лишь переменная любого порядкового типа. Например, тип real использоваться не может.

Оператор выбирает лишь первый в списке параметров, соответствующий «ключу выбора», все остальные оставляет без внимания. Например, при вводе числа 0, программа сообщает, что число принадлежит диапазону –10...0, при вводе числа 10, что диапазону 0…10


Более подробно практическое применение оператора выбора будет рассмотрено ниже при рассмотрении обработки символьных типов данных в модуле CRT.

 







Date: 2016-05-16; view: 872; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.028 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию