Історія мов програмування


Скачати 2.03 Mb.
Назва Історія мов програмування
Сторінка 17/17
Дата 05.04.2013
Розмір 2.03 Mb.
Тип Документи
bibl.com.ua > Інформатика > Документи
1   ...   9   10   11   12   13   14   15   16   17

using System;

namespace AssignStruct {

struct ComplexSruct

{

public double Re, Im;

// конструктор структури

public ComplexSruct (double Re_, double Im_)

{ Re = Re_; Im = Im_; }

//заміщаємо метод ToString() із System.Object

public override string ToString()

{

if (Im > 0)

return String.Format("{0} + {1}i ", Re, Im);

else if (Im < 0)

return String.Format("{0} - {1}i ", Re,

Math.Abs(Im));

else return String.Format("{0}", Re);

}

}

class ComplexClass

{

public double Re, Im;

// конструктор класу

public ComplexClass(double Re_, double Im_)

{ Re = Re_; Im = Im_; }

//заміщаємо метод ToString() із System.Object

public override string ToString ()

{

if (Im > 0)

return String.Format("{0} + {1}i ", Re, Im);

else if (Im < 0)

return String.Format("{0} - {1}i ", Re,

Math.Abs(Im));

else return String.Format("{0}", Re);

}

}

class Program {

static void Main()

{

ComplexSruct st1 = new ComplexSruct(1, 1);

ComplexSruct st2 = new ComplexSruct(2, 2);

ComplexClass cl1 = new ComplexClass(1, 1);

ComplexClass cl2 = new ComplexClass(2, 2);

st1 = st2; // Тут копіюються значення структур

cl1 = cl2; // Тут копіюються посилання на клас

Console.WriteLine("-------------------------");

Console.WriteLine("Структура st1: " + st1.ToString());

Console.WriteLine("Класс cl1: " + cl1.ToString());

st2.Re = 10; st2.Im = 20; // st2 не залежить від st1

// cl2 та cl1 - один і той самий клас

cl2.Re = 10; cl2.Im = 20;

Console.WriteLine("-------------------------");

Console.WriteLine("Структура st1: " + st1.ToString());

Console.WriteLine("Структура st2: " + st2.ToString());

Console.WriteLine("Класс cl1: " + cl1.ToString());

Console.WriteLine("Класс cl2: " + cl2.ToString());

}

}

}

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

Структура st1: 2 + 2i

Класс cl1: 2 + 2i

-------------------------

Структура st1: 2 + 2i

Структура st2: 10 + 20i

Класс cl1: 10 + 20i

Класс cl2: 10 + 20i



  1. Переліки в мові C#.


Перелік в мові С#, як і у багатьох інших мовах, це визначений користувачем злічений тип-значення. Іншими словами – це визначений список імен із зумовленими цілими значеннями. Синтаксис визначення переліку – наступний:

enum <�ідентифікатор_переліку> {<�список_переліку>};

Тут <�список_переліку> являє собою список констант, відокремлених комами. За замовчуванням значенням першої константи є 0, а кожна наступна константа має значення на одиницю більшу від попередньої. Втім будь-якій із констант можна присвоїти довільне ціле значення. Розглянемо приклади.

using System;

namespace Use_enum_0

{

class Program

{

// Цей перелік задає дні тижня

public enum Days { Sun, Mn, Tu, We, Th, Fr, St };

static void Main()

{

for (Days d = Days.Sun; d <= Days.St; d++)

Console.WriteLine("День - {0}, значення - {1}", d,

(int)d);

}

}

}

Тут визначений перелік Days для іменування днів тижня. В циклі змінна d типу Days пробігає значення всіх днів тижня. На екран виводиться назва дня та його значення. Як видно з прикладу доступ до членів переліку відбувається з допомогою крапкової нотації із ідентифікатору переліку та дня тижня: Days.Sun або Days.St. На екрані будуть наступні повідомлення:

День - Sun, значення - 0

День - Mn, значення – 1

День - Tu, значення – 2

День - We, значення – 3

День - Th, значення – 4

День - Fr, значення – 5

День - St, значення - 6

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

using System;

namespace Use_enum_1

{

class Program

{

public enum Flags { ok = 0, error = 128, avost = 1024};

static void Main()

{

Flags flag;

// Тут має бути ініціалізація змінної flag

switch (flag)

{

case Flags.ok :

Console.WriteLine("Успiшне завершення");

break;

case Flags.error :

Console.WriteLine("Помилка виконання");

break;

case Flags.avost :

Console.WriteLine("Аварiйне завершення");

break;

default : Console.WriteLine("неприпустиме значення");

break;

}

}

}

}

Перелік Flags містить прапорці завершення деякого процесу. Можливим варіантам ok, error та avost приписані відповідно константи 0, 128 та 1024. У перемикачі switch аналізується значення змінної flag та виводиться відповідне повідомлення. Змінна flag може бути проініціалізована різними способами, наприклад, безпосередньо: flag = (Flags) 1024;. При цьому ініціалізація константою, якої немає у переліку, призведе до активації гілку default перемикача switch.

Оскільки переліки походять від типу System.Enum, вони мають низку корисних методів. Зокрема статичний метод GetName() повертає назву заданої у переліку константи. Наприклад, інструкція

Console.WriteLine(Enum.GetName(typeof(Flags), 128));

у попередньому прикладі призведе до появи на екрані наступного повідомлення: error. Метод Format() дозволяє визначити, якому саме елементу переліку відповідає значення змінної. При цьому це значення можна одержати у десятковому, шістнадцядковому або текстовому форматі в залежності від того, яким символом заданий вид форматування: "d", "x" чи "g". Так, задавши низку інструкцій:

flag = (Flags) 1024;

Console.WriteLine(Enum.Format(typeof(Flags), flag, "d"));

Console.WriteLine(Enum.Format(typeof(Flags), flag, "x"));

Console.WriteLine(Enum.Format(typeof(Flags), flag, "g"));

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

1024

00000400

avost.

Корисним також є метод Enum.GetNames(). Він повертає масив назв констант у вказаному переліку. Цей масив далі може бути використаний, наприклад, у циклі foreach. Таким чином, задавши код:

Console.WriteLine("Значення прапорцiв наступнi:");

foreach (string s in Enum.GetNames(typeof(Flags)))

Console.WriteLine(s);

на екрані одержимо всі назви констант переліку Flags:

ok

error

avost

System.Enum також має методи, що повертають кількість констант у переліку, сам масив констант, результат перевірки, чи є дана константа елементом переліку та інші корисні методи.


  1. Поняття про Windows-форми
1   ...   9   10   11   12   13   14   15   16   17

Схожі:

Програма курсу програмування на мов і С++
Курс націлений на отримання знань і практичних навиків програмування на мовах C і C + + в рамках процедурно-орієнтованого програмування....
Основні методології (стилі, парадигми) програмування. Поняття програми....
Дів розробки програм Граді Буча “О’єктно-орієнтоване програмування (ООП) – це методологія програмування, яка заснована на представленні...
Курс програмування на С #
Зусилля, які ви витратите на вивчення С #, будуть винагороджені, так як Сі Шарп був розроблений в якості основної мови програмування,...
27. Процедурні мови програмування
Процедурні мови програмування. Характеристика процедурних мов програмування. Алфавіт. Основні поняття мови: числа, рядки, ідентифікатори,...
27. Методика навчання обєктно-орієнтованого програмування. Об'єктно́-орієнтоване́...
Не зважаючи на те, що ця парадигма з'явилась в 1960-тих роках, вона не мала широкого застосування до 1990-тих. На сьогодні багато...
29. Опис та використання підпрограм
Реалізація базових алгоритмічних структур процедурною мовою програмування. Опис процедур та функцій процедурною мовою програмування....
2. Дробово-лінійне програмування Постановка задачі дробово-лінійного...
Дослідження операцій”, “Економетрія”, “Моделювання економіки”, “Економічна кібернетика” а також дисциплін циклу загальноекономічної...
Методичні рекомендації щодо вивчення інформатики у 2012-2013 навчальному році
Особливо гостро стоїть питання поглибленого вивчення інформатики та сучасних мов програмування
ПОРЯДОК проведення відкритої Всеукраїнської студентської олімпіади з програмування
Першості світу) з програмування АСМ-ICPC (Association for Computing Machinery International Collegiate Programming Contest), яка...
1. Українська мова належить до: а східнослов’янської підгрупи мов;...
Яке з поданих слів має значення „спрямований вперед; який рухається у висхідному напрямі”
Додайте кнопку на своєму сайті:
Портал навчання


При копіюванні матеріалу обов'язкове зазначення активного посилання © 2013
звернутися до адміністрації
bibl.com.ua
Головна сторінка