Символы кириллицы выводит некорректно. Как сделать чтобы выводился читабельный текст на русском языке? Тип приложения - не 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.