Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Операторы языка Си

График выполнения и сдачи заданий по дисциплине | Типы данных в языке Си. | Тема 4. Массивы. Разработка программ с использованием одномерных и двумерных массивов. | Тема 6. Классы памяти и разработка программ. | Тема 7. Указатели в Си. | Тема 8. Использование указателей при обработке одномерных и двумерных массивов. | Тема 9. Символы и строки в Си. | Тема 11. Структуры данных в Си. | Тема 12. Динамические структуры данных. | Тема 13. Работа с файлами в Си. |


Читайте также:
  1. D) Конструирование языка
  2. Анализ гармонического языка.
  3. ВЕЧНОСТЬ И БЕСКОНЕЧНОСТЬ ИСТОТНОГО ЯЗЫКА.
  4. Выбор языка манипулирования данными
  5. Говорение на языках... Сегодня?
  6. Древность воровского языка
  7. Изобразительно-выразительные средства языка также помогут понять авторское отношение к изображаемому, помогут не ошибиться в определении авторской позиции.

Оператор присваивания имеет вид: V=A;

y=5*x+sqrt(7*x+3);

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

Например: выражение вида ((S=13+12)<=30) будет иметь значение истина.

Составные операторы (блоки). Составные операторы представляют собой два или более операторов, объединенных с помощью фигурных скобок; он называется также ''блоком''. Составные операторы используются в условном операторе, операторах цикла.

Основная литература: 1осн[63-77], 2осн[23-133]

Дополнительная литература: 11доп[84-106 ]

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

1. Назовите тип данных для работы с беззнаковыми целыми числами?

2. Какие существуют формы записи операций увеличения и уменьшения и чем они отличаются?

3. Назовите директиву препроцессора для определения символьных и строковых констант?

4. Какие спецификации формата являются эквивалентными при их использовании в функции scanf?

5. В каком случае происходит «повышение» типа?

 


Тема 2. Управляющие структуры. Выбор вариантов. Структура выбора If, If – Else, логические операции, операция условия, множественный выбор.

Язык Си предоставляет три типа структур выбора. В структуре выбора if некоторое действие либо выполняется (выбирается), если условие истинно, либо пропускается, если это условие ложно. В структуре выбора if/else некоторое действие выполняется, если условие истинно, и выполняется другое действие, если это условие ложно. В структуре выбора switch выполняется одно из набора действий в зависимости от значения некоторого выражения.

Структура if называется структурой с единичным выбором, поскольку в ней выбирается или игнорируется одно действие. Структура if/else называется структурой с двойным выбором, поскольку в ней выбор происходит между двумя альтернативными действиями. Структура switch называется структурой с множественным выбором, поскольку в ней выбор происходит из нескольких различных действиями.

Общий вид структуры выбора if:

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

Общий вид структуры выбора if/else:

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

else оператор2;

Если выражение истинно (отлично от нуля), то выполняется оператор 1, в противном случае оператор 2.

В языке Си предусмотрена условная операция (?:), которая тесно связана со структурой if/else. Для нее необходимо три операнда. Операнды вместе с условной операцией образуют условное выражение. Первый операнд является условием, второй операнд значением для всего условного выражения, если условие истинно, и третий операнд значением для всего условного выражения, если условие ложно. Например,

x>y? printf(“max=%d\n”, x): printf(“max=%d\n”, y);

Вложенные структуры if/else служат для проверки составных условий, при этом одни структуры if/else помещаются внутри других структур if/else.

Приведем следующую форму записи:

if (выраж. 1)

оператор 1;

else if (выраж. 2)

оператор 2;

else

оператор 3

Если выражение 1 истинно, выполняется оператор 1. Если выражение 1 ложно, но выражение 2 истинно, выполняется оператор 2. В случае, когда оба выражения ложны, выполняется оператор 3.

Логические операции. При объединении двух или более условных выражений используются логические операции. В языке Си имеются три логические операции: & & (и),!! (или),! (не).

1. fl1 && fl2 истинно в том и только в том случае, когда оба выражения fl1 или fl2 истинны.

2. fl1 || fl2 истинно в том и только в том случае, когда оба выражения fl1 или fl2 истинно или оба истинны.

3.!fl1 истинно, если выражение fl1 ложно, и наоборот.

Пример: 15>12 && 8>10 - ложно (истинно таким образом одно подвыражение)

15>12 | | 8>10 – истинно (по крайней мере одно подвыражение истинно)

! (8>10) истинно

Операция! имеет очень высокий приоритет, только круглые скобки имеют более высокий приоритет. Приоритет операции && выше, чем операции ||, а обе эти операции имеют более низкий приоритет, чем операция присваивания.

При использовании операции && и || необходимо отметить следующее: выполнение этих операций прекращается, как только становится ясно, будет ли результат иметь значение истина или ложь. Предположим, что имеется выражение вида: fl1 && fl2.

Если fl1 – ложь, значит и все выражение ложь, таким образом, fl2 не будет вычисляться.

Аналогично, если мы имеем выражение вида fl1 || fl2,

То fl2 не будет вычисляться, если fl1 – верно.

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

// Вычисление стоимости покупки с учетом скидки

#include <stdio.h>

#include <conio.h>

void main()

{

float sum; /* сумма покупки */

printf(“\nВычисление стоимости покупки с учетом ”);

printf(“скидки\n”);

printf(“Введите стоимость покупки ->”);

scanf(“%f”, &sum);

if (sum<1000) printf(“Скидка не предоставляется.\n”);

else { printf(“Вам предоставляется скидка ”);

if (sum>3000) { printf(“5%\n”);

sum = 0.95 * sum; }

else { printf(“3%\n”);

sum = 0.97 * sum; };

printf(“Сумма с учетом скидки %.2f тг\n”, sum); }

printf(“\nДля завершения нажмите <Enter>”);

getch(); }

Результат программы:

Вычисление стоимости покупки с учетом скидки

Введите стоимость покупки -> 2250

Вам предоставляется скидка 3%.

Стоимость покупки с учетом скидки: 2182.50 тг.

Оператор выбора switch (переключатель)

Если в программе необходимо произвести выбор одного из нескольких вариантов используется оператор выбора switch.

Общий вид оператора switch:

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

{

case метка 1:

операторы;

case метка 2:

операторы;

---------------------------------

default:

операторы;

}

Выражения и метки должны иметь значения целого типа (включая тип char); метки должны быть константами или константными выражениями. Вначале вычисляется выражение в скобках, затем происходит сравнение вычисленного значения выражения с каждым значением метки. Если они совпадают, начинается выполнение операторов данной метки, которое продолжается либо до конца оператора switch. Оператор break используется для выхода из switch и осуществляется переход к следующему за ним оператору. Если значения выражения не совпадает ни с одной из меток, но в операторе switch существует метка default, то будут выполняться операторы этой метки. Если метки default нет, происходит переход к оператору, расположенному за оператором switch.

В операторе switch нельзя использовать вещественные типы данных, строки и других структуры данных, но разрешает использовать элементы структур данных совместимых с целыми значениями.

main ()

{char ch;

while ((ch=getchar ())!='#'

{ switch (ch){

case f:

case 'F': do_file_menu; break;

case 'r':

case 'R': run_program (); break;

case 'c':

case 'C':do_compile (); break;

default: Ex (); break; }

printf (“Введите букву или #”); }

Основная литература: 1осн[94-101], 2осн[168-209], 3осн[53-57]

Дополнительная литература: 10доп[108-115]

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

1. Назовите логическую операцию самого высокого приоритета?

2. Какой оператор используется для выбора одного варианта из нескольких?

3. В каком случае используется операторы метки default?

4. Какие структуры используются для проверки составных условий?

5. Какой тип данных используются для выражений и меток в операторе выбора switch?

 


Дата добавления: 2015-11-04; просмотров: 97 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Использование функции printf( ) и scanf( ).| Тема 3. Управляющие структуры. Структуры повторения While, do – While, For. Управляющие операторы break и continue.

mybiblioteka.su - 2015-2024 год. (0.011 сек.)