|
Символы кириллицы выводит некорректно. Как сделать чтобы выводился читабельный текст на русском языке? Тип приложения - не Qt, Qt Creator 4.5.0 основан на Qt 5.10.0. Win7.
|
Общие сведения о языке С++
2.7 Стандартные функции
В C++ определены стандартные функции над арифметическими операндами7Работа с математическими функциями возможна только при подключении библиотеки math.h (п. 2.6).В табл. 2.8 приведены некоторые из них.
| Обозначение | Действие |
|---|---|
| abs(x) | Модуль целого числа
|
| fabs(x) | Модуль вещественного числа
|
| sin(x) | Синус числа
|
| cos(x) | Косинус числа
|
| tan(x) | Тангенс числа
|
| atan(x) | Арктангенс числа
|
| acos(x) | Арккосинус числа
|
| asin(x) | Арксинус числа
|
| exp(x) | Экспонента,
|
| log(x) | Натуральный логарифм,
|
| log10(x) | Десятичный логарифм,
|
| sqrt(x) | Корень квадратный,
|
| pow(x,y) | Возведение числа в степень
|
| ceil(x) | Округление числа до ближайшего большего целого |
| floor(x) | Округление числа до ближайшего меньшего целого |
Примеры записи математических выражений с использованием встроенных функций представлены в табл. 2.9.
| Математическая запись | Запись на языке С++ |
|---|---|
![]() |
pow((a+b) *(a+b),1./3) или pow(pow(a+b,2),1./3) |
![]() |
pow(cos(x), 4) |
![]() |
exp(2*x) |
![]() |
exp(5*sin(x/2)) |
![]() |
pow(sin(sqrt(x)),2) |
![]() |
log(fabs(x -2)) |
![]() |
log(a)/log(b) |
![]() |
log10(x*x+1)/log10(4) |
![]() |
z=x*x+y*y; sin(z)+cos(z/(2*y))+sqrt(z); |
Определённую проблему представляет применение функции pow(x,y).При программировании выражений, содержащих возведение в степень, надо внимательно проанализировать значения, которые могут принимать
и
, так как в некоторых случаях возведение
в степень
невыполнимо.
Так, ошибка возникает, если
— отрицательное число, а
— дробь. Предположим, что
— правильная дробь вида
. Если знаменатель
чётный, это означает вычисление корня чётной степени из отрицательного числа, а значит, операция не может быть выполнена. В противном случае, если знаменатель m нечётный, можно воспользоваться выражением z = –pow(fabs(x),y). Например, вычисление кубического корня из вещественного числа можно представить командой:
z=(x<0)? -pow(fabs(x),(double)1/3): pow(x,(double)1/3);
2.8 Структура программы
Программа на языке С++ состоит из функций, описаний и директив препроцессора.
Одна из функций должна обязательно носить имя main. Элементарное описание функции имеет вид:
тип_результата имя_функции (параметры)
{
оператор1;
оператор2;
...
операторN;
}
Здесь, тип_результата — это тип того значения, которое функция должна вычислить (если функция не должна возвращать значение, указывается тип void), имя_функции — имя, с которым можно обращаться к этой функции, параметры — список аргументов функции (может отсутствовать), оператор1, оператор2,..., операторN — операторы, представляющие тело функции, они обязательно заключаются в фигурные скобки и каждый оператор заканчивается точкой с запятой. Как правило, программа на С++ состоит из одной или нескольких, не вложенных друг в друга, функций.
Основному тексту программы предшествуют директивы препроцессора, предназначенные для подключения библиотек, которые в общем виде выглядят так:
#include <имя_библиотеки>
Каждая такая строка даёт компилятору команду присоединить программный код, который хранится в отдельном файле с расширением .h. Такие файлы называют файлами заголовков. С их помощью можно выполнять ввод-вывод данных, работать с математическими функциями, преобразовывать данные, распределять память и многое другое. Например, описание стандартных математических функций находится в заголовочном файле math.h.
Общую структуру программы на языке С++ можно записать следующим образом:
директивы препроцессора
описание глобальных переменных
тип_результата имя1(параметры1)
{
описание переменных функции имя1;
операторы1;
}
тип_результата имя2(параметры2)
{
описание переменных функции имя2;
операторы2;
}
............................... .
тип_результата имяN(параметрыN)
{
описание переменных функции имяN;
операторыN;
}
тип_результата main(параметры)
{
описание переменных главной функции;
операторы главной функции;
}
По месту объявления переменные в языке Си можно разделить на три класса: локальные, глобальные и формальные параметры функции.
Локальные переменные объявляются внутри функции и доступны только в ней. Например:
int f1 ( )
{
//В функции f1 описана другая переменная s,
int s;
s =6; //ей присвоено значение 6 .
}
int f2 ( )
{
//В функции f2 определена ещё одна переменная s,
long int s;
s =25; //ей присвоено значение 25.
}
int main ( )
{
//В функции main определена вещественная переменная s,
float s;
s =4.5; //и ей присвоено значение 4.5.
}
Глобальные переменные описываются до всех функций и доступны из любого места программы. Например:
float s; //Определена глобальная переменная s .
int f1 ( )
{
//В функции f1 переменной s присваивается значение 6 .
s =6;
}
int f2 ( )
{
//В функции f2 переменной s присваивается значение 2.1.
s =2.1;
}
int main ( )
{
//В главной функции переменной s присваивается значение 4.5 .
s =4.5;
}
Формальные параметры функций описываются в списке параметров функции. Работа с функциями подробно описана в главе 4.
![\sqrt[3]{(a+b)^2}](/sites/default/files/tex_cache/d220a65e5965d9d1d1be997cae8aeac9.png)







