Вывод числа с разделителями тысяч
Программирование на языке 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!