Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка - Основи Програмування C_.doc
Скачиваний:
46
Добавлен:
18.12.2018
Размер:
1.44 Mб
Скачать

Основні елементи мови с#.

1. Основні вбудовані типи мови с#

Мова С# – це мова жорстокої типізації. Це означає, що кожний об’єкт в програмі має відноситись до одного з визначених типів. Всі типи даних, що використовуються в С#, діляться на 2 категорії типи-значень (value types) та типи-посилання (reference types). Про відмінності між ними говорилось раніше, а зараз розглянемо основні вбудовані типи мови С#. Вони представлені у таблиці 1.

Назва типу

Назва системного типу

Опис типу

Розмір у бітах

Діапазон значень

1

bool

Boolean

логічний

8

false, true

2

byte

Byte

8-розрядний цілий без знаку

8

0 255

3

sbyte

SByte

8-розрядний знаковий цілий

8

-128 +127

4

short

Int16

короткий знаковий цілий

16

-32 768 +32787

5

ushort

UInt16

короткий цілий без знаку

16

0 65535

6

int

Int32

знаковий цілий

32

-2 147 483 648

+2 147 483 647

7

uint

UInt32

цілий без знаку

32

0 +4 294 967 295

8

long

Int64

довгий знаковий цілий

64

-9 223 372 036 854 775 808

+9 223 372 036 854 775 807

9

ulong

UInt64

довгий цілий без знаку

64

0

+18 448 744 073 709 551 615

10

float

Single

дійсний

32

1,401298Е-45 3,402823Е+38

11

double

Double

дійсний подвоєної точності

64

Е-324 Е+308

12

decimal

Decimal

числовий для фінансових розрахунків

96

29 значущих розрядів

13

char

Char

символьний

16

14

string

String

Набір символів Unicode

2. Визначення та ініціалізація змінних, область їх видимості.

Для того, щоб визначити змінну одного із стандартних типів, досить вказати її тип та ідентифікатор. Можлива її ініціалізація в момент визначення константним значенням або значення виразу.

using System;

namespace Declaration_of_variables

{

class Program

{

static void Main()

{ // визначення змінної f з ініціалізацією

float f = 1.5F;

char c; // просто визначення змінної с

int i = 0;

bool b = true;

decimal d = 1.555555555555555555555555M;

// визначення змінної x з динамічною ініціалізацією

double x = Math.Sin(Math.PI / 3);

Console.WriteLine(

"f = {0} i = {1} x = {2} d = {3}", f, i, x, d);

Console.WriteLine(b.ToString());

}

}

}

На екрані побачимо:

f = 1,5 i = 0 x = 0,866025403784439 d = 1,555555555555555555555555

True

Зауваження.

  1. Зверніть увагу, що при визначенні дійсних констант у програмі, зокрема 1.5, використовується десяткова крапка, а при зображенні їх на екрані, або при зчитуванні десяткових значень з клавіатури використовується десяткова кома (оскільки цей знак визначається по замовчуванню в залежності від локалізації поточного користувача, тобто, при російсько- або україномовній локалізації подільником буде кома).

  2. Константа 1.5 у програмі сприймається компілятором як така, що має тип double , тому присвоєння цього значення змінній f типу float неможливе безпосередньо, для цього необхідно вжити специфікатор формату float – символ F (або f, наприклад float x = 1.0f;). Те саме стосується значення, яке присвоюється змінній d – відповідна константа помічається специфікатором формату decimal-символом М (наприклад, decimal x = 1.5M; див. детальніше про це далі).

  3. При динамічній ініціалізації змінної їй може бути присвоєне лише те значення, яке відоме в цій точці програми.

При виводі на консоль можливо організувати форматування виводу, тобто одержати значення на екрані у зручному для сприйнятті вигляді. Для цього у текстову константу – аргумент методу Console.WriteLine – треба помістити так звані плейсхолдери з номером потрібного елементу списку виводу. На місці кожного з таких плейсхолдерів на екрані з’явиться відповідне значення. Більше того, можливо використання форматів виводу. Повний синтаксис для визначення формату виводу: {n, m : fk}. Загальний вигляд плейсхолдеру такий Тут n означає порядковий номер елементу у списку виводу (нумерація починається з нуля), m – ширина поля виводу, f – символ специфікації формату, число k задає точність. Основні символи специфікацій формату наступні:

F або f – для виводу дійсних значень у форматі з фіксованою точністю;

E або e – для виводу дійсних значень у експоненціальному форматі;

G або g – загальний формат для виводу дійсних значень або у форматі з фіксованою точністю або у експоненціальному форматі;

N або n – формат для виводу дійсних значень з відокремленням трійок

розрядів пробілами;

C або c – грошовий формат;

X або x – шістнадцятковий формат для виводу цілих типів.

Повернемось до визначення змінних. До цього моменту всі змінні, які ми використовували, визначались у функції Main. Вони можуть використовуватись в будь-якій точці функції Main, починаючи з точки визначення – це і є їх область видимості. Проте можна визначати змінні всередині будь-якого блоку, тобто в області програми, обмеженої парою фігурних дужок. Такі змінні створюються, коли виконання програми доходить до даного блоку, і зникають, коли блок виконаний. Це забезпечує механізм інкапсуляції, тому що звернутись до такої змінної із зовнішніх по відношенню до даного блоку частин програми неможливо. Цей факт ілюструє наступний приклад.

using System;

namespace Context_of_using

{

class Program

{

static void Main()

{

// Змінна i може використовуватись у всій функції Main

int i = 1000;

{ // Змінна j видима лише в цьому блоці

int j = 0;

i = i + j; // Змінна i видима в цьому блоці

Console.WriteLine("i = " + i.ToString());

Console.WriteLine("j = " + j.ToString());

}

// Помилка - змінна j тут вже не існує

Console.WriteLine("j = " + j.ToString());

}

}

}

Зверніть увагу на назви прикладів. Ми намагаємось відбити зміст прикладу у його назві. Раніше вже згадувалось про культуру вибору ідентифікаторів для змінних. Те саме було застосоване тут.