русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Лінійні програми


Дата додавання: 2014-11-27; переглядів: 1071.


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

 

Найбільш фундаментальна із усіх концепцій програмування – концепція змінної. Змінними можна назвати іменовані області пам’яті для зберігання даних. Значення змінної не є постійним і може з часом змінюватись. Змінні здатні зберігати дані довільного типу. Для кожної змінної встановлюється визначений тип, який указується при оголошенні змінної. Тип змінної відіграє дуже важливе значення, особливо в типізованих мовах програмування, таких як C#. На основі типу визначається набір дій, які можуть виконуватись по відношенню до даних, що зберігаються у змінній.

Перед виконанням будь-яких дій над змінною її необхідно оголосити. Для оголошення змінної потрібно спочатку вказати її тип і через пробіл ім’я. Наприклад:

int student;

де int – цілочисельний тип даних, а student – ім’я змінної. Можна також одночасно оголошувати декілька змінних:

int a, b, c;

Перед використанням змінні необхідно ініціалізувати. Термін ініціалізація означає присвоєння змінній початкового значення. Це можна зробити за допомогою інструкції присвоєння. Можна також присвоїти змінній початкове значення одночасно з її оголошенням. Для цього досить після ім’я змінної вказати знак «=» і її значення. Загальний формат ініціалізації змінної має такий вигляд:

int a = 2;

int b;

b = 1;

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


 


Цілих чисел достатньо для більшості обчислень, проте для деякої множини розрахунків необхідні дробові числа. Список типів, що підтримують цю множину значень, перераховано в табл. 2.2.

 

Таблиця 2.2. Розміри та діапазони представлень типів

змінних з плаваючою крапкою

Тип Системний тип Роз-мір, байт Діапазон значень Точ- ність, цифр Приклад використання
float System.Single Від 1.5∙10-45 до 3.4∙1038 6-7 float f = -1.2F;
double System.Double Від 5.0∙10-324 до 1.7∙10308 15-16 double d = 1.2;

 

Зауважимо, що змінним з плаваючою крапкою притаманні проблеми, пов’язані з округленням через недостатню точність, а цілі змінні не можуть представити числа з дробовою частиною. Тому в C# є ще один тип decimal, що використовується для обчислень, у яких неприпустимо округлення результату. Розрахунки з використанням типу decimal більш точні, ніж при використанні типів з плаваючою крапкою, проте допустимі значення мають менший діапазон.

 

Таблиця 2.3. Розмір і діапазон представлень

типу з фіксованою крапкою

Тип Системний тип Діапазон значень Точність, цифр Приклад
Decimal System.Decimal Від 1.0∙10-28 до 7.9∙1028 28-29 decimal dm = 100M;

 

Важливу роль у програмуванні відіграє логічний тип bool. Змінні цього типу можуть набувати лише двох значень – true або false. Дані цього типу дуже зручні при написанні конструкцій для прийняття рішень. Зауважимо, що не існує жодного способу перетворення змінних типу bool у змінні іншого типу. Тобто не можна перетворити bool у int (наприклад, щоб false перетворилось у 0)

Таблиця 2.4. Логічний тип

Тип Системний тип Розмір, байт Діапазон значень Приклад використання
Bool System.Boolean true або false bool yn = false;

Програми можуть працювати як з цифрами, так і з символьними даними. Мова C# розглядає літери як окремі символи типу char і рядки символів типу string.

Оператором називають певну інструкцію, написану мовою програмування, яка інформує комп’ютер про необхідність виконання певної дії. Усю множину арифметичних операторів можна поділити на кілька груп:

  • прості арифметичні оператори;
  • оператори присвоєння;
  • спеціальні оператори, притаманні лише мовам програмування.

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

n = 10;

m = n = 11;

Якщо вказано кілька операторів присвоєння, то вони виконуються справа наліво, тобто в наведеному прикладі правий оператор присвоєння збереже значення 11 у змінній n, після чого лівий оператор присвоєння зберігає значення n у змінній m.

Таблиця 2.5. Прості оператори

Оператор Значення
-(унарний) Зміна знаку
* Множення
/ Ділення
+ Додавання
-(бінарний) Віднімання
% Залишок від ділення

Більшість вищевказаних операторів називаються бінарними, оскільки вони виконуються над двома значеннями: одне з них знаходиться зліва від оператора, а інше – справа. Окремим випадком є лише унарний мінус, наприклад:

int a = 5;

int c = -a;

Оператор інкременту. Серед усіх виконуваних у додатках додавань, найбільш розповсюджене є додавання 1 до змінної.

a = a + 1;

Проте мова C# має скорочений варіант цієї операції:

a++;

Даний оператор має два види використання: префіксний (++a) та постфіксний (a++), між якими є певна різниця. У префіксній формі спочатку змінюється операнд, а потім його значення стає результуючим значенням виразу, а в постфіксній формі значенням виразу є вихідне значення операнда, після чого він змінюється. Наприклад:

int i = 1;

int j = ++i;

i = 1;

int z = i++;

У даному прикладі значення j буде дорівнювати 2, а z = 1. У мові C# аналогічно існують оператори декрименту (a-- та -–a), які використовуються для заміни виразу a = a - 1. Вони працюють за такою ж схемою, як і оператори інкременту.

Математичні функції, які часто використовуються у виразах, реалізовані у класі Math, який визначений у просторі імен System. Перелік математичних функцій та їхній синтаксис наведено в таблиці 2.6.

 


Таблиця 2.6. Основні поля та методи класу Math

Ім’я Синтаксис Результат Опис

 

Abs Abs(x) Переван-тажений Модуль числа х
Acos Acos(double x) double Повертає кут, косинус якого дорівнює х
Asin Asin (double x) double Повертає кут, синус якого дорівнює х
Atan Atan (double x) double Повертає кут, тангенс якого дорівнює х
Atan2 Atan2 (double x, double y) double Кут, тангенс кута якого є результатом ділення x на y
BigMul BigMul (int x, int y) long Добуток двох 32-бітних чисел x на y
Ceiling Ceiling (double x) double Округлення до більшого цілого
Cos Cos (double x) double Косинус кута х
Cosh Cosh (double x) double Гіперболічний косинус
DivRem DivRem (double x, double y, out rem) Переван-тажений Ділення x на y, остача від ділення яких записується у вихідний параметр rem
E E double Число Ейлера (база натурального логарифму число е)
Exp Exp (double x) double Обчислення
Floor Floor (double x) double Округлення до меншого цілого
IEEERemainder IEEERemainder (double x, double y) double Остача від ділення x на y
Log Log (double x) double Натуральний логарифм ( )
Log10 Log10 (double x) double Десятковий логарифм
Max Max (x, y) Переван-тажений Максимум з чисел x та y
Min Min (x, y) Переван-тажений Мінімум з чисел x та y
PI PI double Значення числа
Pow Pow (double x, double y) double Піднесення числа x в степінь y
Round Round (x) Переван-тажений Проводить округлення числа х до найближчого цілого або вказаної кількості десяткових знаків
Sign Sign Переван-тажений Повертає значення, яке визначає знак числа
Sin Sin (double x) double Синус кута x
Sinh Sinh (double x) double Гіперболічний синус
Sqrt Sqrt (double x) double Квадратний корінь числа x
Tan Tan (double x) double Тангенс числа х
Tanh Tanh (double x) double Гіперболічний тангенс
Truncate Truncate (x) Переван-тажений Ціла частина числа

Зауваження.

1. Значення кутів задаються в радіанах.

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

 

Розглянемо одні з найбільш використовуваних компонентів при розробці Windows-додатків у C#:

1) Button

2) TextBox

3) Label

 

Елемент Button являє собою звичний для користувача елемент інтерфейсу – кнопку. При натисканні користувачем на неї виконується визначена наперед дія. У таблиці 2.7 наведені основні властивості компонента Button.

 

Таблиця 2.7. Властивості компонента Button

Властивість Опис

 

Name Ім’я компонента. Використовується у програмі для доступу до властивості компонента
Text Напис на кнопці
TextAlign Положення напису на кнопці. Напис може розміщуватись по центру (MiddleCenter), по лівому краю (MiddleLeft) та по правому краю (MiddleRight)
Font Установлює розмір шрифта для тексту, що відображається на кнопці.
FlatStyle Кнопка може бути стандартною (Standart), плоскою (Flat) або спливаючою (Popup)
Enabled Ознака доступності кнопки. Кнопка доступна, якщо значення властивості дорівнює True, та недоступна, якщо значення властивості дорівнює False
Visible Дозволяє заховати кнопку (False) або зробити її видимою (True)
Cursor Вид вказівника миші при позиціюванні вказівника на кнопці
Image Зображення на поверхні форми
ImageList Набір зображень, з яких можна обрати те, яке буде відображатись на поверхні кнопки. Для вказування значення властивості у форму додатка потрібно додати компонент ImageList
ImageIndex Номер (індекс) зображення з набору ImageList, яке відображається на кнопці
ToolTip Підказка, що з’являється поряд з вказівником миші при наведенні на кнопку. Щоб ця властивість була доступною, на форму потрібно додати властивість ToolTip

 

Елемент управління TextBox використовується для введення та відображення текстової інформації. У таблиці 2.8 перераховані його основні властивості:

 

Таблиця 2.8. Властивості компонента TextBox

Властивість Опис

 

Name Ім’я компонента
Text Текст, який знаходиться в полі редагування
BorderStyle Вид рамки компонента. Межа компонента може бути звичайною (Fixed3D), тонкою (FixedSingle) або відсутньою (None)
MaxLength Максимальна кількість символів, яку можна ввести в поле компонента
PasswordChar Визначає символ, що буде відображатися при введені пароля
Multiline Дозволяє (True) або забороняє (False) введення кількох рядків тексту
WordWrap Дозволяє автоматично переносити слова на новий рядок у багаторядковому текстовому полі
ReadOnly Дозволяє (True) або забороняє (False) редагування тексту
Lines Масив рядків, елементи якого містять текст, що знаходиться в полі редагування, якщо компонент знаходиться в режимі Multiline. Доступ до рядка здійснюється за номером. Рядки нумеруються з нуля
ScrollBars Задає видимі смуги прокрутки: Horizontal – горизонтальна; Vertical – вертикальна; Both – горизонтальна та вертикальна; None – жодної

 

Елемент управління Label використовується тільки для відображення вказаного тексту і не пристосований для отримання даних від користувача. Як правило, він використовується для виведення назв інших елементів керування. У таблиці 2.9 перераховані його властивості.

 

Таблиця 2.9. Властивості компонента Label

Властивість Опис
Name Ім’я компонента
Text Текст, що відображається
TextAlign Використовується для вирівнювання тексту
AutoSize Автоматично змінює розмір елемента, відповідно до довжини тексту, що відображається.

 

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


Розпочнемо зі створення інтерфейсу. Для додавання елементу управління на форму, необхідно:

  1. Відкрити «Панель элементов»(CTRL+W,X).
  2. Обрати категорію (Наприклад «Стандартные элементы управления»).
  3. Обрати необхідний компонент і перетягнути його на форму.

Для реалізації поставленого завдання, додамо такі елементи:

  1. Поля для введення (елемент TextBox).
  2. Кнопки відповідно для виконання операцій.
  3. Декілька написів (елемент Label).

Після додавання відповідних елементів і здійснення форматування зовнішній вигляд форми набуде такого вигляду (рис. 2.1).

 

Рис. 2.1. Зовнішній вигляд форми

Після побудови інтерфейсу можна перейти до написання програмного коду. Для початку потрібно оголосити необхідні для роботи змінні, визначивши їх тип. Для реалізації поставленого завдання потрібні 3 змінні, перші дві з яких будуть зберігати значення, введені в поля «Число А» та «Число Б», а третя – результат обчислення. Отже, в коді програми (F7) до класу Form1 необхідно додати:

 


namespace WindowsFormsApplication1

{

public partial class Form1 : Form

{

double Result;

double Num1,Num2;

...

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

1. У режимі конструктора, двічі клікнути відповідний елемент Button.

2. В режимі конструктора виділити необхідний об’єкт. У вікні «Свойства» обрати пункт «События» . Далі обрати потрібну подію (в нашому випадку Click) і двічі клікнути в полі поруч з назвою події. Зауважимо, що при використанні другого способу, для обробки події можна обрати зі спадного списку вже існуючий метод. Після додавання обробника виконання події до програми додасться наступний код, у який можна додавати різні оператори, що будуть виконуватися при натисканні на кнопку:

private void btnSum_Click (object sender, EventArgs e)

{

 

}

Після того, як користувач введе значення чисел, їх необхідно записати в змінні. Зауважимо, що напряму записати значення з TextBox у змінну числового типу неможливо, оскільки тип значення в TextBox завжди текстовий. У C# є спеціальний клас Convert, який дозволяє конвертувати значення з одного типу в інший. Його можна використовувати так:

double zminna = Convert.ToDouble(textBox1.Text);

У нашому випадку треба додати:

private void btnSum_Click (object sender, EventArgs e)

{

Num1 = Convert.ToDouble(textBox1.Text);

// Запис 1 числа в змінну

Num2 = Convert.ToDouble(textBox2.Text);

// Запис 2 числа в змінну }

 

У таблиці 2.10 наведено перелік деяких методів класу Convert, які можуть бути використані для конвертування типів.

 

Таблиця 2.10. Методи класу Convert

Метод Опис

 

ToByte Перетворює значення вказаного аргументу в еквівалентне 8-бітове ціле число без знака
ToDateTime Перетворює задане рядкове представлення дати в еквівалентне значення типу дати і часу
ToDouble Перетворює значення вказаного аргументу в еквівалентне число з плаваючою крапкою
ToString Перетворює вказане значення в його еквівалентне текстове представлення

 

Після зчитування даних, уведених користувачем, перейдемо до знаходження результату відповідної операції. Наприклад, для знаходження суми доданків додамо такий код:

Result = Num1 + Num2;

Після обчислення необхідно вивести дане значення в поле з результатом:

textBox3.Text = Convert.ToString(Result);

У результаті код для знаходження суми двох чисел буде мати такий вигляд:

 

private void btnSum_Click(object sender, EventArgs e)

{

Num1 = Convert.ToDouble(textBox1.Text);

// Запис 1 числа в змінну

Num2 = Convert.ToDouble(textBox2.Text);

// Запис 2 числа в змінну

Result = Num1 + Num2;

textBox3.Text = Convert.ToString(Result);

}

 

Аналогічно можна запрограмувати інші операції.


Завдання для самостійної роботи

Розробити форму для перерахунку валют. Вхідними параметрами є такі величини:

· Кількість доларів, яку клієнт хоче обміняти.

· Курс долара відносно гривні.

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

Додатково необхідно реалізувати кнопку очищення всіх полів.



<== попередня лекція | наступна лекція ==>
Знайомство з середовищем Microsoft Visual Studio 2010 | Умовний оператор


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн