Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория кратко.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
169.98 Кб
Скачать

Часть 4

Ветвление в Паскаль

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

Условный оператор используется для реализации разветвлений в программе, которые происходят при выполнении некоторого условия и имеет следующую структуру:

IF логическое_выражение THEN оператор1 ELSE оператор2;

Если логическое выражение, выступающее в качестве условия, принимает значение True, то выполняется оператор1, следующий за словом THEN, иначе выполняется оператор2 расположенный после ELSE.

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

IF Условие

THEN

BEGIN

оператор_1;

оператор_2;

……

оператор_N;

END

ELSE

BEGIN

оператор_1;

оператор_2;

оператор_N;

END;

Условный оператор реализует разветвление вычислительного процесса по двум направлениям, одно из которых осуществляется при выполнении условия, другое – в противном случае.

Примечание: Обратите внимание на отсутствие между зарезервированными словами END и ELSE символа "точка с запятой" (;). Появление этого символа может привести к ошибкам.

Задача 1 –––––––––––––––––––––––––––––––––––––––––––––––––––

Даны действительные числа x, y. Если x и y отрицательны, то каждое значение заменить модулем; если отрицательно только одно из них, то оба значения увеличить на 0.5; в остальных случаях оба значения уменьшить в 10 раз.

Разработаем алгоритм решения задачи и составим блок-схему этого алгоритма, после чего напишем программу.

Составим структурный план задачи:

1. Ввести значения X, Y;

2. Если X<0 и Y<0, то найти их модули и перейти к п. 4, иначе перейти к следующему пункту;

3. Если X<0 или Y<0, то увеличить каждую величину на 0,5 и перейти к п. 4; иначе оба значения разделить на 10 и перейти к следующему пункту;

4. Вывести значения X и Y;

5. Конец.

Program Pr_If_Then_Else; {заголовок программы}

Var X, Y : Real; {описание переменных}

Begin {начало основного блока программы}

Write('Введите два действительных числа: '); {вывод текста на экран}

ReadLn(X,Y); {ввод данных с клавиатуры в переменные Х, Y соответственно}

If (X < 0) AND (Y < 0) {условие}

THEN {ветка выполняется при истинности условия}

Begin {начало ветки then}

X = ABS(X); {вычисляется значение Х}

Y = ABS(Y) {вычисляется значение Y}

End {конец ветки then}

ELSE {ветка выполняется если условие ложно}

IF (X < 0) OR (Y < 0) THEN

Begin

X = X + 0.5;

Y = Y + 0.5

End

ELSE

Begin

X = X / 10;

Y = Y / 10

End;

WriteLn('Результат:'); {вывод на экран результатов работы программы}

WriteLn('X= ', X:10:6); {выводится значение Х}

WriteLn('Y= ', Y:10:6) {выводится значение Y}

END.

––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

Оператор выбора CASE..OF

В конструкции CASE вычисляется выражение K и выбирается ветвь, значение метки которой совпадает со значением K. После выполнения выбранной ветви происходит выход из конструкции CASE. Если в последовательности нет метки со значением, равным K, то управление передается внешнему оператору, следующему за конструкцией CASE.

Запись оператора выбора:

CASE K OF

Метка_1 : оператор_1;

Метка_2 : оператор_2;

...

Метка_N : оператор_N

ELSE оператор_N + 1

END;

Выражение K здесь может быть целого, логического или символьного типа.

Задача 2 ––––––––––––––––––––––––––––––––––––––––––––––––––

В старояпонском календаре был принят двенадцатилетний цикл. Годы внутри цикла носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, петуха, собаки и свиньи. Написать программу, которая позволяет ввести номер года и печатает его название по старо японскому календарю. Справка: 1996 г. – год крысы – начало очередного цикла.

Поскольку цикл является двенадцатилетним, поставим название года в соответствие остатку от деления номера этого года на 12.

Program Goroskop;

Var Year : Integer;

Begin

Write('Введите год: '); ReadLn(Year);

CASE (Year MOD 12) OF

0 : WriteLn('Год Обезьяны');

1 : WriteLn('Год Петуха');

2 : WriteLn('Год Собаки');

3 : WriteLn('Год Свиньи');

4 : WriteLn('Год Крысы');

5 : WriteLn('Год Коровы');

6 : WriteLn('Год Тигра');

7 : WriteLn('Год Зайца');

8 : WriteLn('Год Дракона');

9 : WriteLn('Год Змеи');

10 : WriteLn('Год Лошади');

11 : WriteLn('Год Овцы')

END;

END.