Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_na_ekzamen_po_informatike.doc
Скачиваний:
16
Добавлен:
02.04.2015
Размер:
3.42 Mб
Скачать

If Логическое выражение then оператор 1;.

Если логическое выражение есть true, то выполняется опера­тор 1, в противном случае выполняется следующий оператор програм­мы.

Пример 3.10. Даны два числа. Если второе число больше первого – уменьшить его в два раза.

Var a, b : real;

begin

write ('введите a, b '); readln (a, b);

if a < b then b := b / 2;

writeln ( a:10:2, b:10:2 )

end.

В операторе if непосредственно за ключевыми словами then и else могут следовать любые операторы, в том числе и операторы if. В этом случае они называются вложенными. Ниже приведены примеры, в которых используются вложенные операторы if.

Пример 3.11. Вычислить значение функции у по формуле при a > b.

Блок-схема алгоритма приведена на рис. 4.1. Здесь в линейную структуру вложена ветвящаяся, ветвь «нет» которой, в свою очередь, составляет еще одна ветвящаяся структура. Глубина вложения такой ветвящейся структуры равна 2.

Блок-схема: знак завершения 383

Прямая соединительная линия 382

Блок-схема: данные 381

Прямая соединительная линия 380

Вложенная ветвящаяся структура (глубина вложения равна 1)

Блок-схема: решение 379Полилиния 372Прямая соединительная линия 377Прямая соединительная линия 373Прямая соединительная линия 374

Да

Прямая соединительная линия 378

Полилиния 371Прямая соединительная линия 370

Прямая соединительная линия 369Полилиния 368Полилиния 367

Полилиния 363

Да

Прямая соединительная линия 365

Нет

Блок-схема: решение 362

Прямая соединительная линия 360Прямая соединительная линия 361Прямая соединительная линия 359

Нет

Прямая соединительная линия 358

Вложенная ветвящаяся структура

(глубина вложения равна 2)

Блок-схема: процесс 353Блок-схема: процесс 354Блок-схема: процесс 355

Прямая соединительная линия 352Прямая соединительная линия 350Прямая соединительная линия 351

Прямая соединительная линия 347Полилиния 348Прямая соединительная линия 349

Полилиния 346

Прямая соединительная линия 344Прямая соединительная линия 345

Прямая соединительная линия 341Блок-схема: данные 343Полилиния 342

Прямая соединительная линия 340

Блок-схема: знак завершения 339

Рис. 3.1. Алгоритм с тремя ветвями

Программа имеет следующий вид.

var

X, y, a, b : real;

begin

writeln ('введите x, a, b ');

readln (x, a, b);

if x <= a then y := sqr (x)

else if x > b then y := sqr (sqr (x))

else y := x * sqr (x);

writeln ( y:10:2 )

end.

Пример 3.12. Составить программу решения следующей задачи

Схема алгоритма на рис 3.2.

Блок-схема: знак завершения 337

Прямая соединительная линия 335Блок-схема: данные 336

Блок-схема: решение 333Полилиния 334

Да

Полилиния 329Прямая соединительная линия 330Прямая соединительная линия 331

Нет

Да

Блок-схема: решение 327

Прямая соединительная линия 325Прямая соединительная линия 324

Прямая соединительная линия 322

Нет

Блок-схема: процесс 321

Прямая соединительная линия 317Прямая соединительная линия 318Полилиния 316

Прямая соединительная линия 315

Блок-схема: данные 313Прямая соединительная линия 314

Прямая соединительная линия 311Блок-схема: знак завершения 312

Рис. 3.2. Ветвление со сложными условиями

Программа имеет следующий вид:

Var X, a, z : real;

begin

write ('введите x,a'); readln (x, a);

if (a = 2) and (x = 1) then z := sqr (a * x)

else

if (a = 3) or (x = 2) then

z := exp (1 / 3 * ln (x*a))

else z := exp (1 / 5 * ln (x));

writeln ( z:10:2 )

end.

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

3.5. Оператор цикла с параметром

Циклическим называют вычислительный процесс, алгоритм ко­торого представляет собой линейную структуру с вложенными в нее од­ной или несколькими циклическими структурами, каждая из которых имеет глубину вложения равную 1.

Для организации циклов используются специальные операторы языка, называемые операторами цикла. Познакомимся с оператором цикла с парамет­ром For.

Структура оператора

for переменная := начало to конец do оператор;

или

for переменная := начало downto конец do оператор;

где

- оператор - простой или составной оператор (тело цикла);

- переменная – параметр цикла;

- начало и конец – соответствен­но начальное и конечное значения параметра.

for ([фо] – для), to ([ту] – к), downto ([даунту] – уменьшать) – ключевые слова.

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

1) в качестве параметра может использоваться только переменная порядкового типа (например, целого);

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

3) параметр цикла, а также его начальное и конечное значения не могут быть изменены никаким оператором в теле цикла;

4) после завершения цикла значение его параметра становится неопределенным.

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

1. Вычисляются и запоминаются начальное и конечное значение параметра цикла (начало и конец).

2. Значение параметра (обозначим его i ) сравнивается с конечным значением конец. Если i конец, то выполня­ется тело цикла. В противном случае выполнение цикла прекращается.

3. Значение i увеличивается на 1 и повторяется шаг 2.

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

1. Вычисляются и запоминаются начальное и конечное значение параметра цикла (начало и конец).

2. Значение параметра (обозначим его j ) сравнивается с конечным значением конец. Если j конец, то выполня­ется тело цикла. В противном случае выполнение цикла прекращается.

3. Значение j уменьшается на 1 и повторяется шаг 2.

Пример 3.13. Вычислить значения функции y = sin (x 2) на отрезке [a, b], если шаг изменения её аргумента x.

В этой задаче количество повторений цикла равняется числу точек разбиения на отрезке [a, b] и может быть вычислено до выпол­нения цикла как целая часть от деления длины отрезка ba на ве­личину шага x плюс 1. Для вычисления целой части воспользуемся встроенной функцией trunc.

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