Вывод числа с разделителями тысяч



Программирование на языке Visual C++   2. Основы языка Visual C++   Пример 2.1. Вывод на экран сообщения "Hello, World!".   #include "stdafx.h" // Подключение заголовочного файла

Using namespace System;  // Подключение пространства имен

int main() {         // Главная функция, вызывается при запуске

Console::WriteLine(L"Hello, World!"); // Вывод сообщения

Console::ReadLine(); // Предотвращение закрытия окна консоли

Return 0;            // Завершение программы

}

 

 

2.1. Основные элементы языка Visual C++

 

    // Однострочный комментарий /* Многострочный комментарий */ int x;   // Это комментарий x = 10;  /* Это комментарий */     Например: Time2, DecimalNum, Total, Date_of_birth – допустимые имена переменных; 2Time, Total -4, Date of birth, Write – недопустимые имена переменных.   Рис.2.1. Диалоговое окно Options

 

Переменные и константы

Примеры объявления и инициализации переменных:

 

int a, b = -3, c = -b;

long х(10); // х = 10

float y, z = 3.6;

double x = .123, number = 1.8e2;

 

Примеры объявления и инициализации переменных типа bool:

 

bool а = true, b = false, с, d;

с = 1; // Эквивалентно: с = true;

d = 0;  // Эквивалентно: d = false;

 

Примеры объявления и инициализации переменных типа char:

 

char ch1, ch2;

ch1 = 119; // Буква w

ch2 = 'w'; // Буква w

 

Примеры объявления констант:

 

const int N = 0, M = 8;

const double PI = 3.14159265358979323846264338327950;

const double E = 2.718281828459;

const char C = 'A';

 

Примеры использования констант в выражениях:

 

const int X = 7;

int у;

у = X + 13;

 

Для изменения принятого умолчания типа на другой, после числа указываются следующие суффиксы:

U (или u) – тип unsigned int, например: 10U;

L (или l) – тип long, например: 10L;

– две буквы L (или l) – тип long long, например: 10LL;

– буквы U и L одновременно – тип unsigned long, например: 10UL;

F (или f) – тип float, например: 12.3f;

L (или l) – тип long double. Значение должно содержать точку и (или) экспоненту, иначе тип будет long int. Например: 12.3L.

 

Области видимости переменных

(http://msdn.microsoft.com/ru-ru/library/b7kfh662.aspx)

Пример 2.2. Области видимости глобальных и локальных переменных.

 

#include "stdafx.h"

using namespace System;

int n, x = 10;         // Глобальные переменные

void func() {

Переменная z здесь не видна

int x = 5, y = 2; // Локальные переменные

Вывод значения локальной переменной x

Console::WriteLine("x = {0}, y = {1}", x, y); // x = 5, y = 2

Вывод значения глобальной переменной x

Console::WriteLine("x = {0}", ::x);      // x = 10

}

int main() {

func();

Переменные x и y из функции func() здесь не видны.

Вывод значения глобальной переменной x

x = x + 4;

Console::WriteLine("x = {0}, n = {1}", x, n); // x = 14, n = 0

{ // Блок

int z = 30;

Console::WriteLine("z = {0}", z);       // z = 30

}

// Переменная z здесь уже не видна!

for (int i = 0; i < 10; i++)

   Console::WriteLine("i = {0}", i);     // i = 0..9

// Переменная i здесь уже не видна!

Console::ReadLine();

return 0;

}

 

Присваивание значений переменным

 

Синтаксис присваивания значений переменным:     переменная = выражение;

Например:   int x = 5, y = 10, z; z = x + y; // z = 15         Рис.2.2. Алгоритмическая конструкция «Процесс»

 

 

Типы данных

(http://msdn.microsoft.com/ru-ru/library/z8336xfc.aspx)

 

Таблица типов данных

(http://msdn.microsoft.com/ru-ru/library/cc953fe1.aspx)

(http://msdn.microsoft.com/ru-ru/library/s3f49ktz.aspx)

(http://msdn.microsoft.com/ru-ru/library/hh279663.aspx)

 

Таблица 2.1. Основные (базовые) типы данных

Тип C++ / тип CLI Описание (размер в байтах) Диапазон значений
Целые типы    
bool, System::Boolean целочисленный тип, логическое значение (1 байт, зависит от платформы) true (соответствует числу 1)  или false (соответствует числу 0).
char, signed char, System::SByte целочисленный тип, однобайтовый код символа в кодировке ASCII (1 байт) от -128 до 127.
unsigned char, System::Byte Короткое целое число без знака (1 байт) от 0 до 255
short, short int, signed short int, System::Int16 Целое число (2 байта) от -32 768 до +32 767
unsigned short, unsigned short int, System::UIntl6 Целое число без знака (2 байта) от 0 до 65 535
int, signed int, signed, long int, long, signed long int, System::Int32 Целое число (4 байта) от -2 147 483 648 до +2 147 483 647
unsigned int, unsigned, unsigned long, unsigned long int, System::UInt32 Целое число без знака (4 байта) от 0 до 4 294 967 295
long long, long long int, signed long long, signed long long int, System::Int64 Длинное целое число (8 байтов) от -9 223 372 036 854 775 808 до +9 223 372 036 854 775 807
unsigned long long, unsigned long long int, System::UInt64 Длинное целое число без знака (8 байтов) от 0 до 18 446 744 073 709 551 615
Вещественные типы    
float, System::Single Число с плавающей запятой (4 байта: знак – 1 бит, порядок – 8 битов, мантисса – 23 бита), точность – 7-9 знаков от -3,402 823 47 · 1038 до -1,401 298 · 10-45 для отрицательных величин и от +1,401 298 · 10-45 до +3,402 823 47 · 1038 для положительных величин
double, long double, System::Double Число с плавающей запятой двойной точности (8 байтов: знак – 1 бит, порядок – 11 битов, мантисса – 52 бита), точность – 15-17 знаков от -1,797 693 134 862 315 7 · 10308 до -4,940 656 458 412 47 · 10-324 для отрицательных величин и от 4,940 656 458 412 47 · 10-324 до 1,797 693 134 862 315 7 · 10308 для положительных величин
Раширенные типы    
wchar_t, System::Char Расширенный символ (2 байта) от 0 до 65 535
Структурный тип    
System::Decimal Десятичное число с фиксированной запятой (16 байтов),   точность – 29 значащих цифр ±79 228 162 514 264 337 593 543 950 335 – как целое число; как десятичное число может содержать до 28 разрядов после запятой); Наименьшее ненулевое значение: ±10-28
System::DateTime Дата и время (8 байтов) от 00:00:00 1 января 0001 года до 23:59:59 31 декабря 9999 года (значения времени измеряются в тактах, т.е. 100-наносекундных единицах)
Ссылочные типы (значения хранятся в куче)  
System::String Строка (последовательность из нуля или более двухбайтовых символов в кодировке Unicode) представляет собой неизменяемый объект в куче и рассматривается как массив символов. Любое изменение строки создает новый объект, при этом старый объект не уничтожается
System::Object Ссылка на объект (4 байта – для 32-bit и 8 байт – для 64-bit платформ) любая ссылка на объект

 

 

Для определения размера памяти для данных некоторого типа в конкретной операционной системе используется оператор sizeof, имеющий два формата:

 

<Размер> = sizeof <Переменная>;

<Размер> = sizeof(<Тип_данных>);

 

Например:

 

int х;

System::Console::WriteLine("x = {0}", sizeof x);

System::Console::WriteLine("x = {0}", sizeof(x));

System::Console::WriteLine("bool = {0}", sizeof(bool));

 

Пример 2.3. Использование оператора sizeof для вывода размера всех типов данных
(в 32-битной операционной системе).

 

#include "stdafx.h"

using namespace System;

int main() {

Console::WriteLine("bool = {0}", sizeof(bool));

Console::WriteLine("char = {0}", sizeof(char));

Console::WriteLine("wchar_t = {0}", sizeof(wchar_t));

Console::WriteLine("short = {0}", sizeof(short));

Console::WriteLine("int = {0}", sizeof(int));

Console::WriteLine("long int = {0}", sizeof(long int));

Console::WriteLine("long long int = {0}", sizeof(long long int));

Console::WriteLine("float = {0}", sizeof(float));

Console::WriteLine("double = {0}", sizeof(double));

Console::WriteLine("long double = {0}", sizeof(long double));

Console::ReadLine();

return 0;

}

/* Вывод:

bool = 1

char = 1

wchar_t = 2

short = 2

int = 4

long int = 4

long long int = 8

float = 4

double = 8

long double = 8

*/

 

Пример 2.4. Вывод некоторых сведений о типе System::Decimal.

 

#include "stdafx.h"

using namespace System;

int main() {

Decimal d;

Console::WriteLine("Тип Decimal:\nМинимум: {0}\nМаксимум: {1}",

                  Decimal::MinValue.ToString("N"),

                  Decimal::MaxValue.ToString("N"));

Вывод числа с разделителями тысяч

d = Decimal::Parse("-123,45");

Console::WriteLine("GetType: " + d.GetType());

Console::WriteLine("Decimal = {0} байтов", sizeof(d));

Console::WriteLine("d = {0}", d);

Console::ReadLine();

return 0;

}

/* Вывод:

Тип Decimal:

Минимум: -79 228 162 514 264 337 593 543 950 335,00

Максимум: 79 228 162 514 264 337 593 543 950 335,00

GetType d: System.Decimal

Decimal = 16 байтов

d = -123,45

*/

 

 

Формат оператора typeid имеет следующий вид:

 

<Экземпляр_класса type_info> = typeid(<Данное>);

 

Пример 2.5. Использование оператора typeid для динамического определения типа данных.

 

#include "stdafx.h"

#include <typeinfo>

using namespace System;

int main() {

long x = 5;

int y = 12;

double z = 3.14;

String^ str = gcnew String(typeid(x).name());

Console::WriteLine("Тип x: {0}", str);           // long

delete str;

str = gcnew String(typeid(y).name());

Console::WriteLine("Тип y: {0}", str);           // int

delete str;

str = gcnew String(typeid(z).name());

Console::WriteLine("Тип z: {0}", str);           // double

delete str;

str = gcnew String(typeid(12.3f).name());

Console::WriteLine("Тип 12.3f: {0}", str);       // float

delete str;

if (typeid(x) == typeid(y))

  Console::WriteLine("typeid(x) == typeid(y)"); // ==

Else

  Console::WriteLine("typeid(x) != typeid(y)"); // !=

Console::ReadLine();

return 0;

}

/* Вывод:

Тип x: long

Тип y: int

Тип z: double

Тип 12.3f: float

typeid(x) != typeid(y)

*/

 

 

Совместимость типов

 


Дата добавления: 2018-04-05; просмотров: 304; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!