Программирование на 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     Почта: juvel@mail.ru