Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие_новое.DOC
Скачиваний:
7
Добавлен:
28.09.2019
Размер:
486.4 Кб
Скачать

Void main(void)

{

float a,b,x,y;

printf("Задать стороны прямоугольника a b :");

scanf("%f %f", &a, &b);

printf("Задать координаты точки x y :");

scanf("%f %f", &x, &y);

if ((-a/2 <= x && x <= a/2) && (-b/2 <= y && y <= b/2))

printf("Точка попадает в прямоугольник \n");

else printf("Точка не попадает в прямоугольник \n");

}

Операции отношения

< — меньше;

<= — меньше или равно;

> — больше;

>= — больше или равно;

== —  равно;

!= — не равно.

Операции отношения показаны в примере 4.3. Их используют для сравнения в условных выражениях, например: (a>0), (‘a’==’A’), (‘a’!=’A’), (!x) и т.д. Если условие выполняется, то результатом выражения является “истина”, иначе — “ложь”.

Поразрядные операции

<< — сдвиг влево;

>> — сдвиг вправо.

Побитовые операции

&  — и (AND);

|    — или (OR);

^ — исключающее или (XOR);

~  — отрицание (NOT);

— — изменение знака.

Для того, чтобы разобраться, как работают побитовые и поразрядные операции, надо выполнить пример 4.4 . Наибольшую сложность может вызвать побитовая операция “—“ — изменение знака. Она производится за два шага: вначале число инвертируется , а затем к нему добавляется единица.

//Пример 4.4.

// Поразрядные и побитовые операции

#include <stdio.h>

Void main(void)

{

int a,b,c;

char *format1,*format2;

format1 = " %04X %s %04X = %04X \n";

format2 = " %c%04X = %04X \n";

a = 0x0FF0; b = 0xFF00; printf(format2,'=',a,b);

c = a << 4; printf(format1,a,"<<",4,c);

c = a >> 4; printf(format1,a,">>",4,c);

c = a & b; printf(format1,a,"& ",b,c);

c = a | b; printf(format1,a,"| ",b,c);

c = a ^ b; printf(format1,a,"^ ",b,c);

c = ~a; printf(format2,'~',a,c);

c = - a; printf(format2,'-',a,c);

}

Адресные операции

Адресные операции чаще всего используются для работы с указателями (подробнее см. разделы “Указатели” и “Функции форматного ввода — вывода”).

Операция “условие”

Операция “условие” — это единственная операция языка С, имеющая три операнда. Форма ее записи следующая:

(выражение 1) ? (выражение 2) : (выражение 3); .

Порядок выполнения таков: вначале вычисляется выражение 1 (это может быть любая операция); если результатом его является число, не равное нулю, что равносильно “истине”, то вычисляется выражение 2 и результатом операции “условие” будет значение выражения 2; если значение выражения 1 равно нулю (“ложь”), то вычисляется выражение 3 и его значение будет результатом операции, то есть в любом случае вычисляется одно из двух выражений: (выражение 1) или (выражение 2). Варианты использования операции “условие” показаны в примере 4.5.

//Пример 4.5.

//Операция - условие (b1)? b2:b3;

#include <stdio.h>

Void main(void)

{

int a,b,max,min,abs;

float ratio;

printf("Введите два целых числа ");

scanf("%d %d",&a,&b);

min=(a<b)? a : b;

printf("Минимальное число равно %d\n",min);

max=(a>b)? a : b;

printf("Максимальное число равно %d\n",max);

(b)? printf("Отношение a к b равно %5.2f\n",float(a)/float(b))

:printf("Деление на нуль невозможно\n");

a=-b;

abs=(a>0)? a : -a;

printf("Абсолютное значение равно %d\n",abs);

}

В примере 4.5 можно ввести макрос

#define MIN(x,y) (((x) > (y))? (x) : (y)) или

#define MAX(x,y) (((x) < (y))? (x) : (y))

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