Зміст           Наступна сторінка          Електронні посібники ВНТУ

 

 

ЛАБОРАТОРНА РОБОТА № 1

МОВА ПРОГРАМУВАННЯ C#. ДАН І, ВИРАЗИ, ІДЕНТИФІКАТОРИ, ОПЕРАТОРИ

 

 

Мета: ознайомитись з інтегрованим середовищем розробки Visual Studio, з видами даних у C# та виразами, навчитись правильно використовувати типи даних при визначенні змінних, розглянути різні оператори та ідентифікатори.

 

1.1 Теоретичні відомості

 

1.1.1 Мова програмування C#. Visual Studio

Мова програмування C# була створена в 1999 році компанією Microsoft. Спочатку мова мала назву COOL – скорочення від C-like Object-Oriented Language, але пізніше вона була змінена на C#.

Мова була створена Андерсом Хайлсбургом, щоб допомогти усунути недоліки інших мов програмування, які використовувались на той час. Мова строго типізована, об'єктно-орієнтована, і компонентно-орієнтована, використовується уніфікована система типів. На відміну від C або C ++, C# управляє пам'яттю і здійснює управління ресурсами, що вписується в поняття керованого коду. C# використовує механізм збору сміття, щоб звільнити пам'ять і ресурси, на які більше немає посилань в коді програми, що допомагає запобігти проблемам витоку пам'яті.

  •  Строго-типізована – мова передбачає перевірку типів змінних в коді.
  •  Об'єктно-oрієнтована C# надає розробникові використовувати всі принципи об'єктно-орієнтованого програмування, такі як інкапсуляція, успадкування і поліморфізм.
  •  Компонентно-орієнтована C# дозволяє створювати програмні компоненти для автономних пакетів функціональності.
  •  Уніфікована система типів – всі типи C#, від примітивних до посилань, успадковують від одного типу, відомого як Object.

Visual Studio є найкращим інструментом для більшості програмістів, які пишуть код на C#. Visual Studio представляє собою інтегроване середовище розробки (IDE), що містить безліч функцій, які покликані зробити процес кодування набагато простішим. За допомогою Visual Studio ви можете бачити підсвічування синтаксису кольором і форматування коду, що дозволяє легше побачити ключові слова і структуру коду. Intellisense дозволяє заощадити час на написання коду і пошук сигнатур методів.

Visual Studio влючає в себе інтегровані засоби налагодження, які допоможуть усунути помилки у вашому коді.

З Visual Studio ви можете переглядати оголошення і редагувати їх в інших файлах проекту, не втрачаючи при цьому вашої поточної позиції.

Ви можете керувати всім вашим рішенням, яке може включати в себе кілька файлів проекту. Розгортання додатків також легко здійснюється за допомогою Visual Studio, наприклад, розгортання на мобільний пристрій, веб-сервер або хмару.

 

1.1.2 Типи даних

Усі програми зберігають і обробляють дані в межах пам'яті комп'ютера. C# підтримує два види типів даних, що використовуються для представлення інформації в реальному житті.

Типи значень, які так називаються, оскільки вони містять фактичне значення даних, які зберігають.

Наприклад, ви могли б використати тип int, який зберігає значення 3. Буквальне значення 3 зберігається в змінній, що ви оголошуєте, щоб зберегти значення.

За винятком DateTime і рядків, в таблиці А.1 (додаток А), перераховані типи даних, що є скороченнями для структур в .NET, які представляють типи даних в Microsoft .NET Framework. Так використанняint аналогічне використанню System.Int32.

Типи посилань, які також відомі як об'єкти. Ці типи створюються з класів, які ми розглянемо пізніше. Тип посилань зберігає посилання на розміщення об'кта в пам'яті комп'ютера. Якщо ви знайомі з C/C ++, то ви можете сприймати посилання на ділянку в пам'яті як показчик в С/C++.

 

1.1.3 Вирази

У C# вираз вважається командою. За допомогою виразів можна виконати певні дії в коді, такі як виклик методу або виконання розрахунків. Вирази також використовуються для оголошення змінних і присвоєння значення.

Вирази формуються з лексем. Цими токенами можуть бути ключові слова, ідентифікатори (змінні), оператори, і крапка з комою (;). Всі вирази в С# повинні закінчуватися крапкою з комою.

 

1.1.4 Ідентифікатори

В C# ідентифікатор – це назва, яку ви надаєте елементу у вашій програмі. До переліку елементів належать:

Namespaces (простори імен) – .NET Framework використовує простори імен як спосіб відокремлення файлів класів в суміжні відділи або категорії. Це також допомагає уникнути конфліктів імен в додатках, які можуть містити класи з таким же ім'ям.

Classes (класи) – класи це основа для типу посилань. Вони визначають яку структуру буде приймати об'єкт при створенні екземпляра класу.

Methods (методи) – окремі функціональні елементи в програмі.

Variables (змінні) – ці ідентифікатори, які ви створюєте для зберігання значень або посилань на об'єкти у вашому коді. Змінні по суті – це ім'я комірки пам'яті.

При створенні змінної в C# ви повинні дати їй тип даних. Ви можете присвоїти значення змінної під час її створення або пізніше в вашому програмному коді. C # не дозволить використовувати змінну без початкового значення, це запобігає використанню у вашому додатку небажаних даних. Наступний приклад коду демонструє оголошення змінної і присвоєння їй значення.

int myVar = 0;

C# має деякі обмеження щодо ідентифікаторів, на які Вам варто звернути увагу.

По-перше, ідентифікатори чутливі до регістру, тому що C# чутлива до регістру мова. Це означає, що ідентифікатори, такі як myVar, _myVar, and myvar, розглядаються як різні ідентифікатори.

Ідентифікатори можуть містити тільки літери (в будь-якому регістрі), цифри і символ підкреслення. Ви можете почати ідентифікатор тільки з букви або символу підкреслення. Ви не можете задати ідентифікатор, що починається з цифри. myVar і_myVar – значення, які дозволено використовувати, а 2Vars – ні.

C# має набір зарезервованих ключових слів, які використовуються мовою програмуванння. Ви не можете використовувати ці ключові слова в якості ідентифікатора в коді. Ви можете скористатися чутливістю до регістру в C # і використовувати слово Double в якості ідентифікатора, щоб відрізнити його від зарезервованого ключового слова double, але це не рекомендований підхід.

У таблиці А.2 (додаток А) наведено зарезервовані ключові слова C#.

 

1.1.5 Оператори

Оператор – це токен, який застосовується до операцій для одного або декількох операндів у виразі. Приклади:

3 + 4 – вираз, де до абсолютного значення 4 додається абсолютне значення 3.

counter++ – вираз, який буде призводити до того, що змінна (лічильник) збільшується на одиницю.

Не всі оператори підходять для всіх типів даних в C#. Як приклад, в попередньому списку оператор + використовується для підсумовування двох чисел. Ви можете використовувати один і той же оператор, щоб об'єднати два рядки в один, наприклад:

“Тарас” + “Бульба”  та в результаті отримаємо новий рядок ТарасБульба.

Однак ви не можете використовувати інкремент (++) для рядків. Іншими словами, наступний приклад викличе помилку в C#.

“Tарас”++

У таблиці А.3 (додаток А) наведено перелік операторів C# за типом.

 

1.1.6 Перетворення типів

C# підтримує два типи, що властиві для конверсії (перетворення) типів даних, явний і неявний. C# буде використовувати неявне перетворення там, де це буде можливим, головним чином у тому випадку, якщо перетворення не призведе до втрати даних або коли перетворення можливо здійснити з сумісним типом даних. Нижче наведено приклад неявного перетворення даних.

int myInt = 2147483647;

long myLong= myInt;

Тип long має розмір 64 біт в пам'яті в той час як тип int використовує 32 біти. Саме тому long може бути легко помістити значення, що міститься в типі  int. Однак перехід від long уже до int може спричинити втрату даних і вам потрібно використовувати явне перетворення у цьому випадку.

Явне перетворення може бути виконане одним з двох способів, що продемонстовані нижче.

double myDouble = 1234.6;

t myInt;// Перетворення double до int шляхом додавання модифікатора типу у дужках перед типом, який потрібно конвертувати myInt = (int)myDouble;

Наступний варіант використовує спеціальний метод .NET Framework.

double myDouble = 1234.6;

int myInt;

// Перетворення double до int шляхом використання класу Convert та методу ToInt32().

// Перетворення значення value до 32 бітного цілочисельного типу.

myInt = Convert.ToInt32(myDouble);

Ви знайдете безліч інших методів класу Convert, що здійснює перетворення до різних типів даних, такі як ToBoolean(), ToByte(), ToChar() та ін.

Метод Convert.ToInt32() також може бути використаний для перетворення рядка до числового типу даних. Наприклад, ви можете мати програму з графічним інтерфейсом, в якому вхідні дані подаються в текстовому форматі. Ці строкові значення передаються до вашої програми. Застосування описаного вище способу може допомогти запобігти виникненню помилок в коді при спробі використання невірного типу даних.

C# також надає інший механізм для перетворення типів. Використання методів TryParse() та Parse() також може допомогти впоратись з цим завданням. Ці методи були додані до типів в C# так як і класConvert.  Приклад допоможе продемонструвати використання цого механізму.

// Приклад із застосуванням TryParse()

bool result = Int32.TryParse(value, out number);

// Приклад із застосуванням Parse()

int number = Int32.Parse(value);

У прикладі TryParse(), метод повертає індикатор того, чи вдало була проведена конвертація. В прикладі з Parse(), якщо конвертацію не валось здійснити – буде отримана помилка.

 

1.2 Завдання до лабораторної роботи (Додаток А)

 

1.3 Контрольні запитання

 

  1. Які є основні (базові) типи даних в мові C#?
  2. Які особливості використання цілочисельних типів даних?
  3. Які особливості типів даних з плаваючою комою (дійсні типи)?
  4. Які є базові символьні типи даних в мові C#?
  5. Які види або категорії операторів існують в мові C#?
  6. Які оператори належать до категорії арифметичних операторів?
  7. Приклади використання операторів (+), (–), множення (*) і ділення (/).
  8. Які особливості використання оператору обчислення остачі (%)?
  9. Приклади застосування операторів інкременту (++) та декременту (—).
  10. Які особливості застосування операторів відношення в C#?
  11. Які особливості застосування логічних операторів в мові C#?
  12. Як працюють складені оператори присвоювання?
  13. Які особливості застосування порозрядних операторів у мові C#?
  14. Які особливості застосування операторів зсуву в C#?
  15. Що собою представляють спеціальні оператори для особливих випадків?