Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C лекції / 2.Вирази. Оператори вводувиводу, розгалуження.docx
Скачиваний:
34
Добавлен:
05.03.2016
Размер:
76.94 Кб
Скачать

1.2 Операції присвоювання

В мові Сі знак = не означає "дорівнює". Він означає операцію присвоювання деякого значення змінній. Тобто зміст рядка вигляду "vr1=1024;" не виражається словами "vr1 дорівнює 1024". Замість цього потрібно казати так: "присвоїти змінній vr1 значення 1024".

Перелік операцій присвоювання мови Сі ілюструє таблиця 1.7.

 

Операція

Значення

a = b

присвоювання значення b змінній а

a += b

додавання з присвоюванням. Означає a = a + b

a -= b

віднімання з присвоюванням. Означає a = a - b

a *= b

множення з присвоюванням. Означає a = a * b

a /= b

ділення з присвоюванням. Означає a = a / b

a %= b

залишок від ділення з присвоюванням. Означає a = a % b

a <<= b

зсув вліво з присвоюванням. Означає a = a << b

a >>= b

зсув вправо з присвоюванням. Означає a = a >> b

a &= b

порозрядне І з присвоюванням. Означає a = a & b

a |= b

порозрядне АБО з присвоюванням. Означає a = a | b

a ^= b

побітове додавання за МОД2 з присвоюванням, означає a = a ^ b

 

Операція присвоювання повертає як результат присвоєне значення. Завдяки цьому в мові Сі допускаються присвоювання виду:                   a=(b=c=1)+1;

 

 Розглянемо приклад, який демонструє використання таких присвоювань.

#include<stdio.h>

void main()

{

int data1, data2, data3;

data1=data2=data3=68;

printf(" data1==%d data2==%d data3==%d",

data1,data2,data3);

}

 

Результат роботи програми виглядає так:

data1==68

data2==68

data3==68

data1=data2=data3=68;

 

Присвоювання відбувається справа наліво: спочатку змінна data3 отримує значення 68, потім змінна datа2 і нарешті data1.

 

1.3 Математичні функції

 

Перелік математичних функцій наведено в таблиці 1.8.

Запис в С (С++)

Позначення

Назва

abs(x)

     |x|

абсолютне значення цілого числа (модуль)

fabs(x)

     |x|

абсолютне значення дійсного (float) числа (модуль)

labs(x)

     |x|

модуль довгого цілого

acos(x)

   arccos(x)

арккосинус

asin(x)

   arcsin(x) 

арксинус

atan(x)

   arctg(x) 

арктангенс

cos(x)

    cos(x) 

косинус

sin(x)

    sin(x) 

синус

tan(x)

    tg(x) 

тангенс

exp(x)

    ex 

експонента

log(x)

   ln(x)

логарифм натуральний

log10(x)

   lg(x) 

логарифм десятковий

pow(a,b)

   ab 

степінь

pow10(b)

   10b

степінь десяти

sqrt(x)

    √ x

квадратний корінь

pow(x,1/a)

   a√x

корінь n-го степеня

 

Функції перетворення чисел наведено в таблиці 1.9.

Функція в С ( С++)

Назва

ceil(x)

округлення вгору, найменше ціле, не менше х

floor (x)

округлення вниз, найбільше ціле, не більше х

fmod(a,b)

залишок від ділення, аналог операції %

modf

розділяє на цілу і на дробову частину

 

Приклад Обчислити значення математичних виразів:

;    ,де ,;

, де ,,.

 

Програма:

#include <iostream>

#include <math.h>

using namespace std;

int main()

{

    double a,b,d,l,x;

    cout<<"a="; cin>>a;

    cout<<"b="; cin>>b;

    cout<<"d="; cin>>d;

    cout<<"l="; cin>>l;

    cout<<"x="; cin>>x;

    double t,f,y;

    t=5*l+pow(sin(l+4*d),2);

    f=fabs(l-12*d)+(2-5*d)/(4+l*l);

y=(exp(0.8)*tan(x*a))/acos(a*x)+(log10(a*x*x)+b*sqrt(x))/(pow((4*x*x),1./3));

    cout<<"t="<<t<<endl<<"f="<<f<<endl<<"y="<<y<<endl;

    system ("pause");

    return 0;

}

 

Результати обчислень:

t=25.9968

f=3.0458

y=1.59363