Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР 2 Типы данных и синтаксис CSharp

.pdf
Скачиваний:
7
Добавлен:
06.02.2016
Размер:
666.32 Кб
Скачать

ToInt64

64-х розрядного відповідно

 

 

ToString

Перетворення до типу string

 

 

Приклади використання функцій перетворення:

string s = “1564”; // Рядок містить ціле число // Перетворюємо рядок у число

int a = Convert.ToInt16(s);

a = a +5; // Виконуємо обчислення

1.5 Коментарі

Коментарі в C#.NET, як й у будь-якій мові програмування, необов'язкові. Вони не обробляються компілятором і відповідно не займають місця у відкомпільованому коді. Головне призначення коментарів – це примітки для програміста. В C#.NET існує два варіанти оформлення коментарів: однорядковий та багаторядковий. У першому, більше розповсюдженому варіанті коментар починається з подвійного слешу і діє у межах одного рядку:

// Розрахувати значення int a = b + 5; Console.WriteLine(a);

У другому варіанті використовується конструкція /* */:

/*

*Приклад багаторядкового

*коментарю

*/

Багаторядковий коментар може займати будь яку кількість рядків у програмі.

Досить часто коментування застосовують для “закриття” декількох рядків. На панелі інструментів Visual Studio .NET присутня кно-

пка, що спрощує створення таких коментарів: – «закрити» комен-

тарем виділені рядки, – видалити коментарі у виділених рядках.

11

2 ОПЕРАЦІЇ У ПРОГРАМАХ C#

2.1 Математичні операції

У таблиці 2.1 наведені умовні позначення шести базових математичних операцій.

Результат стандартного ділення (/) завжди перетворюється до типу double, навіть у випадку ділення без залишку. Це означає, що при роботі з типами decimal й int Вам доведеться часто використовувати функції перетворення.

Таблиця 2.1 – Математичні операції

Оператор

Операція

 

 

+

Додавання

 

 

-

Вирахування (і позначення негативних чисел)

 

 

/

Ділення (перетворення до double – не може ви-

кликати виключення DivideByZero)

 

 

 

%

Залишок від ділення

 

 

*

Множення

 

 

++

Інкремент (збільшення на одиницю)

 

 

- -

Декремент (зменшення на одиницю)

 

 

Щоб краще розібратися в різних типах ділення, можна скористатися методом GetType. У командах виведення (таких як WriteLine) цей метод повертає ім'я типу у вигляді рядка. Розглянемо наступний оператор:

Console.WriteLine((4/3).GetType())

Після його виконання у консольному вікні буде виведено рядок:

System.Int32.

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

12

static void Main(string[] args)

{

decimal cdeg;

Console.WriteLine("Уведіть градуси за Цельсієм :"); cdeg= Convert.ToDecimal(Console.ReadLine()); decimal fdeg = (decimal) (((9/5) * cdeg) + 32); Console.WriteLine(Convert.ToString(cdeg) +

"= " + Convert.ToString(fdeg) +

"градусів за Фаренгейтом");

Console. ReadKey();

}

Оскільки результат ділення перетворено до типу decimal, результат теж буде типу decimal.

Операції інкременту та декременту є унарними (діють на один операнд) і мають деякі особливості. Їх дія залежить від того, де розміщено знак інкременту (++) або декременту (--). Якщо його розміщено перед операндом, така операція називається предінкремент (преддекремент), якщо після – відповідно постінкремент (постдекремент).

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

Розглянемо приклади (табл.. 2.2).

Таблиця 2.2 – Операції інкременту і декременту

Оператор (операція)

Значення змінних

 

 

 

 

до

після

 

 

 

 

 

int a = 2, b = 3;

 

a = 2

b = 3

int c = 5, d = 1;

 

c = 5

d = 1

 

 

 

 

a++;

a = 2

a = 3

 

 

 

 

 

b--;

b = 3

b = 2

 

 

 

 

c += a++ + ++b;

a = 2 b = 3

a = 3 b = 3

 

c = 5

c = 10

 

 

 

 

d = --c + --a – b++;

a = 2 b = 3

a = 2 b = 4

 

c = 9 d = 1

c = 9 d = 8

 

 

 

 

13

2.2 Круглі дужки й пріоритет операцій

При обробці складних виражень послідовність виконання операцій задається двома способами. При використанні круглих дужок Вам не треба запам'ятовувати пріоритети різних операцій. У C#.NET операції мають пріоритет, який визначає послідовність їхнього виконання. Множення має більш високий пріоритет ніж додавання; отже, вираження 3+4*5 дорівнює 23, оскільки множення 4*5 виконується раніше, ніж додавання.

Нижче перераховані математичні операції в порядку убування пріоритету:

обчислення функцій;

унарний мінус (зміна знака числа);

множення й ділення;

цілочисельне ділення;

обчислення залишку від ділення (mod);

додавання й вирахування, інкремент і декремент .

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

Будь-які вираження мовою Visual C# записуються в один рядок. Надрядкові й підрядкові записи не допускаються.

При записі арифметичних виражень використовуйте наступні правила:

якщо чисельник і знаменник є багаточленами, помістіть їх у дужки:

a x (a x)/(c k) ; c k

якщо у знаменнику добуток декількох співмножників, помістіть його в дужки:

sinx

a cosax Math.Sin(x)/(a * Math.Cos(a * x)) ;

14

два знаки арифметичних операцій не повинні стояти один за одним:

aa/( b) ;

b

при зведенні значення функції в ступінь треба записати:

sin2 ax Math.Pow Math.Sin(a* x), 2 ;

добування кореню будь-якого ступеня, крім квадратного, слід замінити зведенням підкореневого вираження в дробовий ступінь,

тобто nx x 1n .

3a x (a x) 13 Math.Pow(a x,0.333d).

Для закріплення викладених вище правил розглянемо більш складні приклади:

 

 

 

 

 

 

 

ln

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5 cos 2

 

 

 

(Math.Sqrt(a b) Math.Log(Math.Abs(a b)))/ Math.Pow Math.Pow(Math.Cos(a),2),0.2d

tg x sin 0,3 eax

 

 

 

 

cos3 2x2

 

 

a x

(Math.Tan(x) Math.Sin(0.3* Math.PI)

Math.Exp(a * x)/(Math..Pow(Cos(2 * Math.Pow(x,2),3)* Math.Sqrt(a x))

3 f 1,7 10 3

esin a

1

 

 

 

1

 

 

 

 

 

 

 

 

 

 

ln

 

sin f1

 

 

 

 

 

 

 

 

 

 

2 3

a

 

 

 

 

 

 

 

 

f1

(3 * f1 1.7E 3* Math.Exp(Sin(a) ))/Math.Log(Math.Abs (Sin(f1)))

1/(2 (Math.Pow(a/f1),0.33d)

15

Для спрощення запису операцій, що здійснюють передбачено спеціальні операції, які об'єднані із присвоюванням, в C#.NET передбачені скорочені позначення (табл. 2.3).

Таблиця 2.3 – Скорочений запис операцій із присвоюванням

Скорочений запис

Еквівалент

 

 

А*=В

А = А*В

 

 

А+=В

А = А + В

 

 

А/=В

А = А/В

 

 

А-=В

А = В

 

 

А&=В

А = А & В

 

 

A++;

A = A +1;

 

 

B- -;

B = B – 1;

 

 

2.3 Логічні операції та операції порівняння

Логічні операції здійснюються на змінними, які мають тип bool. Перелік логічних операцій подано у таблиці 2.4.

Таблиці 2.4 – Логічні операції C#

Позначення

Операція

!

Логічне заперечення (НІ)

&&

Логічний добуток (ТАК)

| |

Логічне додавання (АБО)

^

Така, що виключає АБО

Результатом операції над логічними змінними є також логічна змінна. У таблиці 2.5 наведено результати виконання логічних операцій над двома змінними.

Таблиця 2.5 – Результати логічних операцій

 

Змінна

 

Результат операції

 

А

 

В

! A

A && B

A || B

A ^ B

false

 

false

true

false

false

false

false

 

true

true

false

true

true

true

 

false

false

false

true

true

true

 

true

false

true

true

false

16

Операції порівняння виконують порівняння операндів один із одним. Результат операції порівняння – логічний, тобто true або false.

Приклад.

double a = 3.0; b = 4.5; bool c = a > b;

Console.WriteLine(" a > b " + c); Console.WriteLine(" a < b " + (a < b)); Console.WriteLine(" a == b " + (a == b)); Console.WriteLine(" a >= b " + (a >= b)); Console.WriteLine(" a <= b " + (a <= b)); Console.WriteLine(" a != b " + (a != b));

Результат виведення на екран подано нижче. a > b False

a < b True

a == b False a >= b False a <= b True a != b True

Зверніть увагу на те, що у другому рядку програми ми оголосили змінну c логічного типу, значення якої вивели на екран.

2.4 Стандартні математичні функції класу Math

Основні математичні функції класу Math перераховані в таблиці 2.4. Всі ці функції оголошені загальними, тому вони належать класу Math у цілому, а не його окремим екземплярам.

17

Таблиця 2.4 – Основні математичні функції класу Math

Математична

Опис

функція

 

 

 

Abs

Повертає абсолютне значення (модуль) числа

 

 

Acos

Повертає кут, косинус якого дорівнює заданому

 

числу

 

 

Asin

Повертає кут, синус якого дорівнює заданому

 

числу

 

 

Atan

Повертає кут, тангенс якого дорівнює заданому

 

числу

 

 

Ceiling

Повертає найменше ціле число, яке більше або

 

дорівнює заданому числу

 

 

Cos

Повертає косинус заданого кута

 

 

Cosh

Повертає гіперболічний косинус заданого кута

 

 

Exp

Повертає число е (приблизно 2,71828182845905),

 

зведене в заданий ступінь

 

 

Floor

Повертає найбільше ціле число, яке є більшим

 

або таким, що дорівнює заданому числу

 

 

Log

Повертає натуральний логарифм

 

 

Log10

Повертає десятковий логарифм

 

 

Max

Повертає більше із двох заданих чисел

 

 

Min

Повертає менше із двох заданих чисел

 

 

Pow

Функція зведення у ступінь

 

 

Round

Повертає найближче ціле число

 

 

Sign

Повертає величину, що визначає знак числа

 

 

Sin

Повертає синус заданого кута

 

 

Sinh

Повертає гіперболічний синус заданого кута

 

 

Sqrt

Повертає квадратний корінь

 

 

Tan

Повертає тангенс заданого кута

 

 

Tanh

Повертає гіперболічний тангенс заданого кута

 

 

Truncate

Повертає цілу частину речовинного числа

 

 

18

Для обчислення функцій, не наведених у таблиці 2.4, використовуйте відповідні математичні формули.

3 ОПЕРАТОРИ ВИРАЖЕННЯ І БЛОКИ

Оператори служать основними «будівельними блоками» програми. Програма C#.NET складається з послідовності операторів з додаванням невеликої кількості знаків пунктуації. Оператор є закінченою інструкцією для комп'ютера. У C#.NET указівкою на присутність оператора служить символ ";", що розміщений наприкінці його.

3.1 Оператори вираження

Виконання оператора вираження полягає в обчисленні якогонебудь вираження. Говорячи «обчислення», ми будемо припускати не тільки арифметичні дії з числами, але й логічні операції, а також операції з рядками. Відзначимо для себе, що присвоювання і виклики функцій також є вираженнями.

Приклади a = b++;

cosinus = Math.Cos(5*a); sinus = Math.Sin(b);

tg = cosinus/sinus;

До операторів вираження можна також віднести порожній оператор ";". Він корисний там, де обов'язково повинний бути оператор, а робити нічого не потрібно.

3.2 Блоки

Блок у C#.NET – це послідовність оголошень, визначень і операторів, укладених у фігурні дужки. Існує два типи блоків:

1.Складений оператор, наприклад:

{

var1 = 2*var1/3/5; var2 = var1+Sin(var2);

}

19

2. Визначення функції, наприклад: void f1()

{

Console.WriteLine(“Результати обчислень”);

Console.WriteLine(Res);

}

Блоки можуть містити в собі інші блоки (вкладення блоків), але не можуть містити оголошення функції. Приклад вкладених блоків:

for (i = 1;i<10;i++)

{

// початок 1-го блоку

k = i*3/6 + a;

if

(i = = 2)

{k

= 2*a; // початок 2-го блоку

d

=3;

}

// закінчення 2-го блоку

}

// закінчення 1-го блоку

Основне призначення блоку – це виконання декількох операторів замість одного.

4 ОСНОВИ ВВЕДЕННЯ-ВИВЕДЕННЯ У ПРОГРАМАХ С#

5.1 Введення з клавіатури

Для введення з клавіатури використовують функції (методи) ReadKey і ReadLine класу Console. Перший метод дозволяє отримує один символ, який відповідає натиснутій користувачем клавіші, другий отримує рядок, що введений користувачем.

Формат запису такий:

ідентифікатор = Console.ReadKey().KeyChar; ідентифікатор = Console.ReadLine();

20