Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Тема. Реализация разветвляющихся вычислительных процессов. Оператор IF



Цель работы: научиться создавать программы для алгоритмов с ветвлением, в программе использовать оператор IF

Теоретическая часть

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

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

Оператор IF

Оператор условного перехода IF в программах представляется в одном из двух форматов:

IF логическое выражение THEN 1 блок инструкций

ELSE 2 блок инструкций;

или

IF логическое выражение THEN 1 блок инструкций; .

Здесь IF, THEN и ELSE - ключевые слова; логическое выражение - оператор сравнения или сложное логическое выражение; блок инструкций (1 и 2) – любые исполняемые операторы языка или блоки операторов, заключенные в операторные скобки (BEGIN... END).

При выполнении условного оператора IF вначале анализируется результат логического выражения и в зависимости от его значения управление передается одному из операторов (блоку операторов), следующему за ключевым словом THEN или ELSE. Если значение результата TRUE «истина», то выполняется оператор (блок операторов), следующий за ключевым словом THEN. В противном случае (значение результата FALSE «ложь») выполняется оператор (блок операторов), следующий за ключевым словом ELSE. Далее в любом случае выполняется оператор, следующий в программе непосредственно за оператором IF. Ниже приведен фрагмент программы, поясняющий действие рассматриваемого оператора:

IF А < = В THEN D: = 2*D ELSE D: = ABS(D);

В укороченном операторе IF отсутствует ключевое слово ELSE и блок инструкций, следующий за ним. Действия такой конструкции аналогичны рассмотренной выше. Если значение результата логического выражения TRUE, то выполняется оператор (блок операторов), следующий за ключевым словом THEN. При значении результата FALSE блок инструкций – 1 не выполняется, а сразу же выполняется блок инструкций, непосредственно следующий за оператором IF. Пример использования усеченного логического оператора IF :

IF А < = В THEN BEGIN D: = 2*D; GOTO 10 END;

В последнем фрагменте пришлось после THEN вводить не один оператор, а так называемый составной оператор (блок операторов), который заключен в операторные скобки BEGIN...END; Формат такого составного оператора имеет вид:

 

BEGIN

1 оператор;

2 оператор;

N оператор

END;

 

В операторе условного перехода любой из операторов блоков инструкций, в свою очередь, может быть оператором условного перехода, образуя так называемую вложенную конструкцию операторов IF. Создавая подобную конструкцию, следует руководствоваться принятым в Delphi соглашением о том, что инструкция ELSE всегда относится к ближайшему предшествующему IF. С учетом этого правила вложенная конструкция IF должна иметь следующий вид:

 

IF 1логическое выражение THEN 1 блок инструкций

ELSE IF 2 логическое выражение

THEN 2блок инструкций

ELSE 3 блок инструкций.

Пример 4.1. Определить значение функции У(х).

 

 

 


Program Project1; //заголовок программы

var x, y: real; //раздел описания переменных

begin //начало раздела операторов

writeln('Введите значение х'); //вывод текста на экран

write('х=');

readln(х); // ввод значения x

if х < 0.25 then y: = sqrt(abs(x+35+exp(x-1)))

else y: = x + sqr(sin(2.6*x));

writeln('при x = ', x: 6: 2, ' y = ', y: 6: 2); //вывод результата

readln; //задержка экрана

end.

Пример 4.2. Рассчитать значение функции У(х), значение х вводится с клавиатуры. При вводе значения х, для которого функция не определена, должно выводиться сообщение «Функция не определена».

 
 

 

 


Program Project2; //заголовок программы

var x, y: real; //раздел описания переменных

begin //начало раздела операторов

writeln('Введите значение х'); //вывод текста на экран

write(‘х=’);

readln(х); // ввод значения x

//1 логическое условие

if х < 1 then y: = sin(2*x+4.2)/cos(2*x+4.2)-2*x else

//2 логическое условие

if (2< =x) and (x< =5) then y: = sin(x)+sqrt(6*x) else

//3 логическое условие

if x> 7 then y: = 3.56+(2+x)/(1+sqrt(x)) else

begin writeln('При х=', х, 'функция не определена');

readln;

exit;

end;

writeln('при x = ', x: 6: 3, ' y = ', y: 6: 2); //вывод результата

readln; //задержка экрана

end.

 

Варианты заданий из табл. 6 (2 задания).

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

Таблица 6

1.1 1.2
2.1   2.2
3.1 3.2
4.1 4.2
5.1 5.2
6.1 6.2
7.1 7.2
8.1   8.2
9.1 9.2
10.1 10.2
11.1 11.2
12.1 12.2
13.1 13.2
14.1 14.2
15.1 15.2

 

Контрольные вопросы

1. Что такое алгоритм с ветвлением?

2. Как записывается условный оператор (оператор ветвления) в Delphi?

3. Что такое полная и сокращенная записи условного оператора?

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

5. Какие знаки отношений можно использовать при составлении условий?

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

7. Каковы правила записи составных условий?

8. Какие вы знаете логические операции?

9. Какие действуют правила старшинства логических операций?

10. Что располагается после служебных слов THEN и ELSE?

11. Что такое составной оператор? Какую структуру он имеет?

12. B каких случаях используется составной оператор?

Лабораторная работа № 5


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-05-03; Просмотров: 781; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.018 с.)
Главная | Случайная страница | Обратная связь