Языковые средства ветвления

Все выражения, реализующие условия в конструкции выбора, должны заключаться в круглые скобки.

Логические операции.В языке Си для работы с логическими операторами приняты несколько основных вариантов обозначения операций сравнения, которые представлены в табл.3.1.

Таблица 3.1

Обозначение Операция
!= Не равно
== Равно
< Меньше
> Больше
<= Меньше равно
>= Больше равно
&& Логическое И (исполняется, если все условия выполнены)
|| Логическое ИЛИ (исполняется, если хотя бы одно условие выполнено)

 

Если необходимо проверять несколько условий, то каждое условие берется в свои скобки, а между скобками ставятся логические операторы (в зависимости от логики). В случае выполнения нескольких условных операторов эти операторы берутся в фигурные скобки. Обратите внимание, что перед оператором не ставится точка с запятой.

Секция выполняется каждый раз при проходе цикла.

 

Оператор if

Синтаксис оператора if:

if (выражение) оператор;

Там, где синтаксис языка предписывает использовать оператор, может стоять и составной (блок операторов, заключенный в фигурные скобки), и пустой оператор (символ «;» - точка с запятой). Если выражение в заголовке условного оператора вырабатывает ненулевое значение, то оператор в условном операторе выполняется, в противном случае управление передается оператору, следующему за условным. Пример:

int a; // объявление переменных a

scanf ( "%d", &a); // ввод значений переменных a с клавиатуры

if(a==3) // сравнение переменной а с 3

printf( "a равно 3");// вывод сообщения на экран в случае

// выполнения условия

 

Конструкция if else

 

Синтаксис оператора if else таков:

If ( выражение )

Оператор1;

Else

Оператор2;

Если значение выражения не равно нулю, то выполняется оператор1, в противном случае - оператор2. Пример:

int a; // объявление переменных a

scanf ( "%d", &a);// ввод значений переменных a с клавиатуры

if(a==3) // сравнение переменной а с 3

printf( "a равно 3"); // вывод сообщения на экран в случае

// выполнения условия

else printf( "a не равно 3"); // вывод сообщения на экран в случае

// невыполнения условия

3.3.Условная операция ?

 

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

результат = выражение ? выражение1 : выражение2;

Для примера рассмотрим программу. Переменной result при ее инициализации будет присвоено значение b, если выражение ( a < 0 ) истинно, и a, если выражение

( a < 0 ) ложно. В примере значение переменной result зависит от введенного значения переменной a:

int a,b=0; // объявление переменных a

scanf ( "%d", &a); // ввод значений переменных a с // клавиатуры

int result = ( a < 0 ) ? b : a; // объявление переменной result // по условию

printf( "a = %d b = %d result = %d\n", a, b, result );// вывод значений

// переменных a,b, result

 

Оператор switch

Конструкция switch заменяет разветвленный многократный оператор if else. Синтаксис оператора switch таков:

switch ( выражение ) {

case константное_выражение_1 :

оператор(ы) ; break;

case константное_выражение_2 :

оператор(ы) ; break;

case константное_выражение_3 :

оператор(ы) ; break;

default:

оператор(ы) ; break;

}

После вычисления выражения в заголовке оператора его результат последовательно сравнивается с константными выражениями, начиная с самого верхнего, пока не будет установлено их соответствие. Тогда выполняются операторы внутри соответствующего case, управление переходит на следующее константное выражение, и проверки продолжаются. Именно поэтому в конце каждой последовательности операторов должен присутствовать оператор break. После выполнения последовательности операторов внутри одной ветки case, завершающейся оператором break, происходит выход из оператора switch. Обычно оператор switch используется тогда, когда программист хочет, чтобы была выполнена только одна последовательность операторов из нескольких возможных.

Каждая последовательность операторов может содержать нуль или более отдельных операторов. Фигурные скобки в этом случае не требуются.

Ветка, называемая default (умолчание), может отсутствовать. Если она есть, то последовательность операторов, стоящая непосредственно за словом default и двоеточием, выполняется только тогда, когда сравнение «выражение» ни с одним из стоящих выше константных выражений (в case) не истинно. Пример:

int a; // объявление переменных a

scanf ( "%d", &a); // ввод значений переменных

// a и с клавиатуры

Switch(a)

{ case 3: printf( "a равно 3"); // вывод сообщения на экран

break; // в случае a=3

case 4: printf( "a равно 4"); // вывод сообщения на экран

break; // в случае a=4

default:

printf( "a = %d\n", a); // вывод значения переменной a

}

Варианты задания

1.Разработать программу определения типа самолета для перевозки каких-либо грузов. В программе вводится вес груза и на его основании осуществляется выбор типа самолета. Груз менее 5т способен перевозит "ТУ-134". Вес более 5т, но менее 30т- "ИЛ-86". Вес более 30т, но менее 45т - "Руслан".

2. Разработать программу определения величины заработной платы от категории сотрудника. В программе вводится номер категории и на ее основании осуществляется выбор величины заработной платы. Для 1-й категории зарплата составляет 100 дол., 2-й - 80, 3-й - 60.

3. Разработать программу определения платы за пересылку писем. В программе вводится расстояние до адресата. Если оно менее 100 км, цена составляет

100 тыс. р., свыше 100, но менее 1000 - 200 тыс.р., свыше 1000 -300 тыс.р.

4. Разработать программу определения количества дополнительных дней к отпуску. В программе вводится количество лет, отработанных на предприятии. Если отработано менее 5 лет, то дополнительных дней к отпуску не предусмотрено. Если от 5 до 15 - плюс 2 дня к отпуску. Если свыше 15 - плюс 5 дней к отпуску.

5.Разработать программу определения скидки на оплату туристического тура в зависимости от срока предварительной оплаты. В программе вводится, за какое количество дней производится оплата. При оплате за 90 дней скидка 15%, при 60 - 10%, при 30 -5%.

6.Разработать программу определения оплаты международных разговоров в зависимости от времени суток. В программе вводится время звонка (час - от 0 до 24). При определении оплаты исходить, что звонок с 0:00 до 7:00 стоит 1дол/мин, с 7.00 до 18:00 - 3 дол/мин, 18:00 до 24:00 - 2 дол/мин.

7.Разработать программу определения стоимости проезда в электричке в зависимости от зон. В программе вводится количество зон, пересекаемых электричкой при перевозке. Для одной зоны - 100 р., для 2-х - 200 р., для 3-х - 300 р.

8.Разработать программу определения степени административного наказания от числа повторных нарушений. В программе вводится номер повторного нарушения. При втором нарушении выводится сообщение - "штраф в размере 5 минимальных зарплат", при третьем - "год условно", при четвертом - "год исправительных работ".

9.Разработать программу начисления премиальных в зависимости от процента перевыполнения плана. В программе вводится процент перевыполнения плана. При перевыполнении плана на 10% - премия 1000 р., 20% - 2000 р., свыше 30% - 4000 р.

10.Разработать программу определения величины подоходного налога в зависимости от величины зарплаты. В программе вводится сумма зарплаты. При сумме менее на 20 тыс.р. ставка налога 10%, при сумме более 20 тыс.р. но менее 60 тыс.р. - 15%, свыше 120 тыс.р. -20%.

11.Разработать программу определения скидки при оплате за коммунальные услуги. В программе вводится возраст лица, за которое осуществляется оплата. Для детей (возраст от 0 до 16 лет) - 70%, для пенсионеров (от 55 лет) -60%, 100% для остальных категорий граждан.

12.Разработать программу контроля веса фасовочного аппарата, который фасует пищевые изделия по одному килограмму. В программе дан точный вес контрольных весов. При превышении веса более чем на 10г - выдается сообщение "аппарат требует внеочередной наладки", при недовесе более 5г - выдается сообщение "вернуть для перефасовки", в противном случае - "годен для реализации".

13.Разработать программу определения степени разрушений при землетрясении. В программе вводится сила землетрясения в баллах от 1 до 10. При силе землетрясения менее 3 баллов выводится сообщение "слабые разрушения", от 4 до 6 - "сильные разрушения", от 7 до 10 - "полное разрушение".

14.Разработать программу определения размера штрафа при нарушении правил дорожного движения. В программе вводится серьезность нарушения (1-незначительное нарушение, 2 - серьезное нарушение, 3 - грубое нарушение). При незначительном нарушении штраф - 1000 р., при серьезном нарушении - 3000 р., при грубом нарушении - 8000 р.

15.Разработать программу определения стоимости проживания в гостиничном номере. В программе вводится количество "звездочек" в разряде гостиницы и на его основании осуществляется выбор стоимости оплаты. В 3-звездочной гостинице номер стоит 500 р/день, в 4-зведочной- 1000 р/день, в 5-звездочной – 2000 р/день.

16.Разработать программу определения стоимости компьютера от номера версии процессора «Pentium». В программе вводится номер процессора. Для компьютеров с процессором «Pentium» – 200 дол., для «Pentium II» – 300 дол. И для «Pentium III» –

400 дол.

Внимание. Во всех вариантах осуществить вывод результата согласно формату, указанному преподавателем.

 

 








Дата добавления: 2016-04-14; просмотров: 416;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.014 сек.