01 c# basics

Post on 10-May-2015

898 views 1 download

Transcript of 01 c# basics

Основи C#

Зміст

1. Що таке код програми?2. Виконання програми3. Середовища розробки4. Перша програма5. Базовий синтаксис6. Типи даних7. Змінні8. Decimal9. Рядки10. Масиви11. Цикли

12. Логічні операції13. Умовні оператори14. Параметри функцій15. Як не потрібно писати код

Що таке код програми?ф

ункц

ія

Виконання програмиКод програми на NET

орієнтованій мові NET компілятор

Збірка *.dll або *.exe(код MSIL, метадані і маніфест)

Завантаження класів

JIT - компіляція

Керований код, специфічний для платформи Net

Виконання програмних компонентів

Сере

дови

ще

вико

нанн

я N

ET

прог

рам

(CLR

)

Бібліотека базових класів і ін.

Виконання програми

NET компілятор – компілює вихідний код в MSIL (Microsoft Intermediate Language), також її називають CIL (Common Intermediate Language).

Збірка – двійковий файл, що підтримує версії , самоописує себе і обслуговується оточенням CLR (Common Language Runtime). Окрім власне коду MSIL в збірці міститься різноманітна службова інформація, наприклад: інформація про зовнішні збірки (залежності), структура включених в неї типів і т. п.

JIT компілятор – виконує перетворення коду MSIL в машинні команди по мірі виклику підпрограм (фрагментами). На виході утворюється так званий керований код, який потім виконується в середовищі CLR. Керований тому, що містить метадані, які дозволяють CLR виконувати перевірку безпеки, контроль прав, контроль версій, збір мусору і т. п.

• Visual Studio• Eclipse• NetBeans IDE• MonoDevelop• Delphi• Notepad :)

Середовища розробки

Перша програма

Hello world!

Синтаксис

Основні типи даних:- void- int\long\short- float\double- decimal- bool- string\char- object

Типи даних

Reference types\value types

mutable\immutable

Enumeration Types

Типи даних

Тип Діапазон значень Розмір (точність)

short -32768 до 32767 знакове 16-біт ціле

int -2147483648 до 2147483647 знакове 32-біт ціле

long -9223372036854775808 до 9223372036854775807 знакове 64-біт ціле

float -3.4 × 1038 до +3.4 × 1038 32-біт (точність 7 знаків)

double ±5.0 × 10−324 до ±1.7 × 10308 64-біт точність 15-16 знаків

decimal (-7,9 x 1028 до 7,9 x 1028) / (100–28) 128-біт (точність 28-29 значущих знаків)

char від U+0000 до U+FFFF 16-біт символ Юнікода

string залежить від вільної пам'яті

Скільки раз виконається наступний цикл:for (float f = 0f; f != 1; f += 0.1f){ Console.WriteLine(f);}

Задача з тестів

for (float i = 0f; Math.Abs(i - 1) > 0.001f; i += 0.1f){ Console.WriteLine(i);}

• Оголошення простих типів

• Константи

• Створення об’єктів

Змінні

Змінна – об’єкт програми, область пам’яті у якій ми можемо збегірати, змінювати та отримувати дані з різних частин програми

DecimalDecimal – числові дані з фіксованою точністю і масштабом.

• Більш висока точність десяткової частини, але менший діапазон значень ніж у double

• Відсутні помилки заокруглення, що присутні в double і float• Відсутня апаратна підтримка на рівні процесора, тому арифметичні

операції з decimal приблизно у 10 разів повільніші ніж з double і floatСлід використовувати у фінансових програмах.

РядкиРядок – це об’єкт типу string, який представляє довільний рядок тексту.

• Рядок є reference типом• Це immutable (незмінний) тип• Може містити значення null• Рядок перевизначає оператор рівності ==• Intern pool (одинакові рядки зберігаються лише раз)• Стандартні і дослівні літерали

Рядки

• Чому погано писати

• Використовуйте

• Оголошення

• Доступ до елементу

МасивиМасив – сукупність елементів одного типу даних, впорядкованих за індексами.

Цикл – це повторення виконання однієї і тієї ж частини коду декілька раз (доки дійсна умова)

Цикли

- for (var i; i<count; i++)

- while (i > count)

- do…while (i > count)

- foreach (var i in items)

Унарні !Бінарні || && < > >= <= == !=Тринарні ? :

Логічні операції

Задача з тестів

17 xor 3

10001 xor 11

1 0 0 0 1

0 0 0 1 11 0 0 1 0

(1 × 24) + (0 × 23) + (0 × 22) + (1 × 21) + (0 × 20)

16 + 0 + 0 + 2 + 0 = 18

Категорія Оператори

Unary + - ! ~ ++x --x (T)x

Multiplicative * / %

Additive + -

Shift << >>

Relational and type testing < > <= >= is as

Equality == !=

Logical AND &

Logical XOR ^

Logical OR |

Conditional AND &&

Conditional OR ||

Conditional ?:

Assignment = *= /= %= += -= <<= >>= &= ^= |=

Пріоритет операцій

2 and 3 and 4 and 5 or 6 and 7

010 and 011 and 100 and 101 or 110 and 111

Задача з тестів

010 and 011 = 010

010 and 100 = 000

000 and 101 = 000

110 and 111 = 110

000 or 110 = 110 (6)

Умовні оператори

Умовні оператори – це оператори які дозволяють виконувати або не виконувати певний функціонал в залежності від того чи справидиться умова виконання чи ні.

Параметри функцій

Parameter default values.

Params – навіщо це.

Ref – передача параметрів у функцію завжди по посиланню.

Out – вихідний параметр функції.

Як не потрібно писати