Программирование на Cи





Содержание:
  • Запись математических выражений. Математические операторы
  • Математические функции
  • Функция ввода данных

Запись математических выражений. Математические операторы

Для записи математических выражений в языке Си зарезервированы следующие символы:
+ сложение;
- вычитание;
* умножение;
/ деление;
++ инкремент (увеличение числа на единицу);
-- декремент (уменьшение числа на единицу);
= равно (присвоить);
Для расстановки приоритетов операций используются круглые скобки ().
Рассмотрим небольшую программу с применением перечисленных операторов:
#include <stdio.h>
void main()
{
float x,y,z;
clrscr();
x = 5;
y = 2;
z = x + y;
printf("Summa %f\n",z);
z = x - y;
printf("Raznost %f\n",z);
z = x / y;
printf("Delenie %f\n",z);
z = x * y;
printf("Umnojenie %f\n",z);
z = (y + y) * y;
printf("Skobki %f\n",z);
}
В этой программе мы объявляем три переменные x,y и z типа float.
Переменной x присваиваем значение 5 и переменной y значение 2. Затем последовательно выполняем операции над операндами x и y, присваивая результаты переменной z. Полученные значения z выводим на экран:




Математические функции
Для полноценного использования математических возможностей языка Си, в языке имеется ряд математических функций, которые содержатся в модуле math.h. При использовании в программе математических функций следует подключить этот модуль директивой препроцессора #include <math.h>.
Ниже приведён список математических функций содержащихся в модуле math.h:

Математическая функция (математическая запись)
Запись на Си (в записи указаны типы возвращаемых значений и типы аргументов, при написании программ записи типов опускаются)
Модуль целого числа х - (|x|) int abs(int x)
Модуль вещественного числа x -( |x|) float fabs(float x)
Арккосинус угла x (arccos x) double acos(double x)
Арксинус угла x (arcsin x) double asin(double x)
Арктангенс угла x (arctan x) double atan(double x)
Косинус угла x (cos x) double cos(double x)
Синус угла x (sin x) double sin(double x)
Тангенс угла x (tg x) double tan(double x)
Число е в степени x (ex) double exp(double x)
Логарифм натуральный числа x (ln x) double log(double x)
Логарифм десятичный числа x (log10 x) double log10(double x)
Корень квадратный из числа x double sqrt(double x)
Число x в степени y double pow(double x, double y)


Числовые значения тригонометрических функций должны быть выражены в радианах. Для преобразования радиан в градусы можно воспользоваться следующей формулой: 3.14*x/180. Для примера вычисления синуса в градусах напишем такую программу:
#include <stdio.h>
#include <math.h>
void main()
{
float x,z;
clrscr();
x = 90;
z = sin(3.14*x/180);
printf("Sinus(90)= %f\n",z);
}
Результат работы программы:





Функция ввода данных
Для ввода данных с клавиатуры в Си имеется функция scanf("управляющая строка", аргумент1, аргумент2,...);
Управляющая строка, заключённая в кавычки, содержит символы указания типов вводимых значений. Символы такие же, как и в функции printf. Далее, за кавычками, идёт перечисление вводимых переменных через запятую. Перед каждой переменной следует вводить символ &.
Для примера, напишем программу решения квадратного уравнения ax2 + bx + c = 0. Аргументы a, b и c будем вводить с клавиатуры.
Для добавления комментариев в текст программы на Си служит такая конструкция: /* Комментарий */. Комментарий никак не влияет на работу программы.
#include <stdio.h>
#include <math.h>
void main()
{
float a,b,c,x1,x2,d;
clrscr();
/* Вводим с клавиатуры аргументы уравнения */
printf("Vvedi a:");
scanf("%f",&a);
printf("\nVvedi b:");
scanf("%f",&b);
printf("\nVvedi c:");
scanf("%f",&c);
/* Вычисляем дискриминант */
d = b*b-4*a*c;
printf("\nDiscriminant= %f",d);
/* Вычисляем корни уравнения */
x1 = (-b+sqrt(d))/(2*a);
printf("\nX1= %f",x1);
x2 = (-b-sqrt(d))/(2*a);
printf("\nX2= %f",x2);
}
Вводя с клавиатуры значения a, b и c, получим значение двух корней уравнения x1и x2.



Для того, что бы дискриминант уравнения d был положительной величиной, желательно вводить значение c со знаком минус. При отрицательном дискриминанте вычисление квадратного корня из d будет невозможно, и программа завершится с ошибкой:



Для обработки ошибок такого рода следует воспользоваться логическими операциями, о чём и пойдёт речь в следующем уроке.




   ©Гуков Константин Михайлович 2006 - 2013     Почта: [email protected]