Направления программирования. История создания языка Си. Особенности языка, страница 8

2)  double acos (double x); - значение аргумента должно находится в диапазоне от –1 до 1.

3)  double asin (double x);

4)  double atan (double x);  - функция арктангенса.

5)  double atan2 (double y, double x);  - функция arctg(x/y).

6)  double cos (double x); - угол (аргумент) задается в радианах.

7)  double sin (double x);

8)  double exp (double x); - e^x.

9)  double fmod (double x, double y); - возвращает остаток от деления нацело x на y.

10)  long labs (long x); - возвращает абсолютное значение целого аргумента.

11)  double ldexp (double x, int e); - возвращает x*2^e.

12)  double log (double x); - ln(x).

13)  double pow (double x, double y); - x^y.

14)  double sqrt (double x); - Öx.

15)  double tan (double x); - tan (x).

Пример: (к первой лабораторной работе)         

Дано: а=2,6  х=1,2;

Найти: y=(a*ln(x))/cos(x);

# include <stdio.h>

# include <conio.h>

# include <math.h>

void main (void)

{

float a,x,y;

clrscr();

printf(“Решите случайный пример: \n”);  

printf(“y=a*ln(x)/cos(x).\n”);

printf(“Введите х>0\n”);

scanf(“%f,&x”);

printf(“Введите a \n”);

scanf(“%f,&a”);

while (x<=0)

{

printf(“Введите х>0:”);

scanf(“%f,&x”);

}

y=a*log(x)/cos(x);

printf(“Ответ %f”,y);

getch(); 

}

Замечание: pow(2., 3.) Нужно всегда включать десятичную точку в любую численную константу, которую вы используете в функции pow(). Си ожидает, что любые данные, передаваемые этой функции, будут в форме с плавающей точкой.

Пример: Решите квадратное уравнение: a*x²+b*x+c=0.

#include <stdio.h>

#include <math.h>

float root1,root2;

int a,b,c;

void main (void)

{

puts(“Эта программа находит корни квадратного уравнения”);  // Каждый отдельный оператор puts()

puts(“Ведите a, b, c, разделенные пробелами”);                  // выводит символы с начала новой строки.

scanf(“%d %d %d “,&a,&b,&c);

root1=(-b+pow ((b*b-4.*a*c),0.5)) / (2.*a);

root2=(-b-pow ((b*b-4.*a*c),0.5)) / (2.*a);

printf(“Уравнение %d*x^2+%d*x+%d”,a,b,c);

printf(“Имеет корни %f и %f ”,root1,root2);

getch();

}

Замечание: Если вы делите друг на друга две целые переменные или константы, то результат такой операции всегда будет целым вне зависимости от того, в какого типа переменную вы ее запишите.

float f;

f=5/4;

f будет равно 1.0, а не 1.25

При умножении убедитесь, что переменная имеет достаточный диапазон, чтобы вместить любой возможный результат. Это особенно важно в случае целых чисел. Переменная стандартного типа int может хранить числа, не превышающие 32767. В случае получения результата больше чем это значение следует рассмотреть возможность применения переменной типа long или с плавающей точкой.

п.6.Операции языка Си.

Язык Си как никакой другой язык богат операциями.

Операции языка Си по количеству операндов делятся на унарные, бинарные и тернарные.

п.6.1.Унарные операции.

<унарная операция><операнд>

1) “ – “ – арифметическое отрицание своего операнда (тип операнда целый, вещественный) – фактически означает умножение на –1.

2) “ ! “  - логическое отрицание.

3) sizeof – размер памяти в байтах объекта или типа.

sizeof(<объект>);

sizeof(<имя типа>);

sizeof(int) = 2

4) & - операнд адресации, вырабатывает адрес своего операнда.

5) * - операция косвенной адресации. Осуществляет доступ к значению по адресу, хранящемуся в указателе.

Помимо выше указанных операций в Си существуют и другие унарные операции.

п.6.2.Бинарные операции.

Бинарные операции – это операции, имеющие два операнда.

<операнд1><бинарная операция><операнд2>

1) Арифметические : * , / , % , + , - .

     остаток от деления первого операнда на второй  (операнды целые)

2) Операции сдвига:   <<      >>   

3) Логические операции: || - ‘ или ‘ , && - ‘ и ‘