Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПргЯВУ_ЛК_СтефановаИА.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
4.41 Mб
Скачать

8.1. Безусловный переход вызовом функций

Когда компилятор находит в основном тексте программы имя функции, то происходит приостановка выполнения текущего кода программы и осуществляется переход к найденной функции.

Когда функция выполнится и завершит свою работу, то произойдет возврат в основной код программы, на ту инструкцию, которая следует за именем функции.

Имя функции должно содержать пару круглых скобок (), даже если у функции нет аргументов. Это признак функции или метода. Например, Math.Sin(x).

8.2. Оператор перехода goto

Он предназначен для изменения порядка выполнения операторов программы.

Инструкция goto используется следующим образом:

В коде программы создается метка с именем (например, M).

Организуется переход на эту метку инструкцией goto M.

Имя метки M в коде обязательно должно заканчиваться двоеточием (:). Оно указывает на точку в программе, с которой будет выполняться программа после использования инструкции goto.

Пример. Вывести последовательность целых чисел до 9. Метка M – начало вывода цифр. Обычно инструкция goto связана с условием.

public static int Main()

{

int i = 0;

M: Console.WriteLine("i: {0 } ", i);

i = i + 1;

if (i < 10) goto M;

// Метка должна быть уникальной.

}

Лекция 5

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

9.1. Сложные условия

В программе условие – это выражение логического типа (Bool), которое может принимать одно из двух значений True(истина) или False(ложь).

Примеры простых условий:

(Summa<1000) // значение переменной Summa < 1000?

(Math.Pow(x,2)-10*x>=5) // выражение x2 -10·x5 ?

(x % 2 == 0) // остаток от деления x на 2 равен 0?

Примеры сложных условий:

(Day==6 | Day==7) // день суббота или воскресенье

(Sum>100 & Day==7) //скидка на товар стоимостью более 100у.е. в воскресный день

(m==1 & d>=1 & d<=10) //дни с 1 по 10 в первом месяце года.

Логические операторы & | имеют более низкий приоритет, чем операторы сравнения, и поэтому в условиях скобки можно не использовать.

9.2. Инструкция if

Применяется для ветвления по двум ветвям.

Полный формат (синтаксис) инструкции:

i f (условие) инструкция 1; // одна инструкция1 языка

else инструкция 2; // одна инструкция2 языка

Если условие выполняется, то исполняется

инструкция 1, в противном случае исполняется

инструкция 2. Фраза else может отсутствовать,

т.к. это необязательная часть инструкции if.

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

if (условие)

{

Блок инструкций 1; //несколько действий

}

else

{

Блок инструкций 2; //несколько действий

}

Фраза else может отсутствовать, т.к. это необязательная часть инструкции if.

Если условие выполняется, то исполняется Блок инструкций 1, в противном случае исполняется Блок инструкций 2.

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

Выполняется инструкция if следующим образом:

  1. Вычисляется значение условия (правда или ложь?);

  2. Если условие истинно (true), то выполняются инструкции1. На этом выполнение инструкций if завершается, инструкции, следующие за словом else, не будут выполнены. Если условие ложно (false), то выполняются инструкции, следующие за словом else, а инструкции за словом if игнорируются.

Задача. Поиск максимального числа из двух чисел x и y.

/ / 1-й вариант решения

int y, x, max;

x=12; y=5;

if (x>y) max=x;

else max=y;

Console.WriteLine("Максимальное "+ max);

Сокращенный формат if

Сокращенная форма используется для усеченного алгоритма, когда ветвь с альтернативным решением отсутствует.

if (условие) инструкция;

/ / 2-й вариант решения задачи поиска

максимального числа их двух чисел:

int y, x, max;

x=12; y=5;

max=x;

if (x<y) max=y;

Console.WriteLine("Максимальное "+ max);

Вложенные инструкции if; else …

Применяются для множественного ветвления. Синтаксис инструкции:

if (условие_1)

{

Блок инструкций 1;

}

else

if (условие_2)

{

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

}

else

{

Блок инструкций 3;

}

Фраза else может отсутствовать, т.к. т.к. это необязательная часть инструкции if.

Если условие1 выполняется, то исполняется Блок инструкций 1, в противном случае проверяется условие2. Если оно выполняется, то исполняется Блок инструкций 2, в противном случае Блок инструкций 3.

В случае, если в какой-либо ветви необходимо выполнить одну инструкцию, то блочная инструкция в виде фигурных скобок { } в этой ветви не нужна.

Пример.

Задача. Вычислить значение функции:

Frame14

Ответы решения задачи:

При помощи логических операторов & («И») и | («ИЛИ») из простых условий можно строить сложные.

Например:

1 ) 2)

Примеры записи условия:

if (x<a | x>b) <выражение C2>;

else <выражение C1>;

if (x<=b & x>=a) <выражение C1>;

else <выражение C2>;

или