Модуль 2 Лекція Класи icon

Модуль 2 Лекція Класи




Скачати 202.69 Kb.
НазваМодуль 2 Лекція Класи
Дата25.10.2012
Розмір202.69 Kb.
ТипЛекція


Мова програмування С# і платформа MS.Net Framework

Модуль 2

Лекція 7. Класи


План

7.1. Дві ролі класів в C#. Клас як модуль і клас як тип даних.

7.2. Основні принципи ООП і їх реалізація в С#

7.3. Методи класу

7.4. Використання показчика this в тілі класу

7.5. Конструктори. Типи конструкторів

7.6. Властивості get і set

7.1. Дві ролі класів в C#. Клас як модуль і клас як тип даних


Програма на мові C# складається з класів, усередині яких описують методи і дані. Змінні, описані безпосередньо усередині класу, називаються полями класу. Їм автоматично призначається так зване "значення за замовчанням" — як правило, це 0 відповідного типу. Змінні, описані усередині методу класу, називаються локальними змінними. Їх ініціалізація покладається на програміста.

^ В C# клас грає дві різні ролі: модуля і типу даних.

1. Клас – це модуль, архітектурна одиниця побудови програмної системи. Модульність побудови – основна властивість програмних систем. У ООП програмна система, що будується за модульним принципом, складається з класів, що є основним видом модуля.

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


Статичним є клас, всі методи якого є статичними. Статичні класи не потребують створення об’єкту оператором new.

Статичний клас не може розглядатися як тип даних.


Приклад – клас ^ Program консольної програми зі статичним методом main.

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

Модульність побудови – основний засіб боротьби із складністю системи.


^ 2. Друга роль класу. Клас – це тип даних, який задає реалізацію деякої абстракції даних, характерної для проблемної області, для якої створюється програмна система.

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

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

В С# оголошення класів вводяться ключовим словом class.

Клас є основою для створення об'єктів. В класі визначаються дані і код, який працює з цими даними.

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

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


Формально клас описується таким чином:

Синтаксис опису класу:

тип доступу class им’я_класу {

тип_доступу тип им’я змінної1;

тип_доступу тип им’я змінної2;



тип_доступу тип_результату

им’я _методу1(список_параметрів) {тіло_методу}

}


де тип_доступу визначає область видимості класу. Для класів визначено такі модифікатори доступу:

public - клас доступний для інших компонент;

internal - клас видимий в середині цього компонента (збірки).


Для членів класу (даних і методів) визначені такі модифікатори доступу:

рublic - члени класу доступні за межами даного класу;

internal - члени класу доступні в межах однієї збірки;

рrotected - члени класу доступні усередині даного класу;

private - члени класу доступні тільки для інших членів даного класу.

За замовчанням застосовується модифікатор internal.


Членами класу можуть бути:

• Константи (const)

• Поля (field)

• Конструктори (у тому числі без параметрів)

• Деструктори

• Методи

• Властивості (property)

• Індексатори (властивості з параметрами)

• Події (event)

• Вкладені типи.


Звернення до поля класу виконується за допомогою операції доступу (крапка). Праворуч від крапки задається ім'я поля, зліва — ім'я екземпляра для звичайних полів або ім'я класу для статичних. Створення об’єкту класу виконується оператором new.


Синтаксис оператора new:


Ім’я класу об’єкт = new Ім’я класу();


У прикладі 7.1. визначається простий клас Demo і два способи звернення до його полів.

Приклад 7.1.

using System;

namespace ConsoleApplication1

{

class Demo

{

public int a = 1; // поле даних

public const double c = 1.66; // константа

public static string s = "Demo"; // статичне поле класса

double y; // закрите поле даних

}


class Class1

{ static void Main()

{

Demo x = new Demo(); // створення екземпляра класу Demo

Console.WriteLine( x.a ); // x.a - звернення до поля класу

Console.WriteLine( Demo.c ); // Demo.c - звернення до константи

Console.WriteLine( Demo.s ); // звернення до статичного поля

}

}

}
^

7.2. Основні принципи ООП і їх реалізація в С#


Основними принципами об'єктно-орієнтованого програмування (ООП) є абстракція, інкапсуляція, спадкоємство і поліморфізм. Реалізація цих принципів у різних мовах програмування може дещо відрізнятися.

Розглянемо спочатку визначення цих понять і як вони реалізовані в С# .

Абстракція - опис взаємодії виключно в термінах повідомлень/подій в предметній області. Події обробляються методами класу, визначеними з модифікатором доступу рublic. Поля і методи, які мають модифікатор доступу рublic, утворюють так званий інтерфейс класу (не плутати з інтерфейсними класами, які ми розглянемо пізніше!).

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

До основних властивостей інкапсуляції відносяться наступні:

- сумісне зберігання даних і функцій (тобто властивостей і методів) усередині класу;

- приховування внутрішньої інформації від користувача (що забезпечує більшу безпеку програмі). Забезпечується модифікаторами доступу;

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


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

На відміну від C++, у мові C# заборонено множинне спадкоємство, тобто, похідний клас (клас-нащадок) може мати тільки один батьківський клас.

Спадкоємство призначене для відображення такої властивості систем, як ієрархічність.

Поліморфізм – це концепція, що дозволяє мати різні реалізації для одного і того самого методу, які будуть вибиратися залежно від типу об'єкту, переданого до методу при його виклику.

В мові C# поліморфізм реалізується через перевантаження методів і операцій.

В об'єктно-орієнтованому програмуванні під поліморфізмом розуміється можливість оперувати об'єктами, не володіючи точним знанням їх типів.
^

7.3. Методи класу


Методи це процедури і функції, які реалізують необхідні дії над змінними класу. Область видимості методів визначається модифікаторами доступу. За замовчанням застосовується модифікатор internal.

Синтаксис опису методу:


модифікатор-доступу тип-результату ім'я-методу(опис-параметрів)

{ тіло-методу }


Приклад 7.2

void A() {...};

int B(){...};

public void C(){...};


Методи А і B є закритими, а метод С - відкритий. Методи А і С реалізовані процедурами, а метод B - функцією, що повертає ціле значення.

Методи можуть мати параметри, які використовуються для обміну інформацією з методом. Параметр є локальною змінною, яка при виклику методу набуває значення відповідного аргументу. Зона дії параметра — весь метод.

Наприклад, для того щоб обчислити значення синуса для дійсної величини x, ми передаємо її як аргумент в метод Sin класу Math, а щоб вивести значення цієї змінної на екран, ми передаємо її в метод WriteLine класу Console:


double x = 0.1;

double y = Math.Sin(x);

Console.WriteLine(x);


При цьому метод Sin повертає в точку свого виклику дійсне значення синуса, яке призначається змінній y, а метод WriteLine нічого не повертає.


Обов'язковим при описі заголовка методу є вказівка типу результату, імені методу і круглих дужок, наявність яких необхідна і в тому випадку, якщо сам список формальних параметрів відсутній. Формально тип результату методу вказується завжди, але значення void однозначно визначає, що метод реалізується процедурою. Тип результату, відмінний від void, указує на функцію.

Увага!

Методи можуть бути описані в будь-якому місці класу. На відміну від C++ , C# не вимагає оголошувати методи до їхнього опису.

^

Параметри методів


При виклику методу виконуються наступні дії:

  1. Обчислюються вирази, що стоять на місці аргументів.

  2. Виділяється пам'ять під параметри методу відповідно до їх типу.

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

  4. Виконується тіло методу.

  5. Якщо метод повертає значення, воно передається в точку виклику; якщо метод має тип void, управління передається на наступний після виклику оператор.

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


^ Приклад 7.3. Передача методу параметрів


using System;

namespace ConsoleApplication1

{ class Class1

{

static int Max(int a, int b) // метод вибору максимального значення

{

if ( a > b ) return a;

else return b;

}

static void Main()

{

int a = 2, b = 4;

int x = Max( a, b ); // виклик методу Max

Console.WriteLine( x ); // результат: 4


short t1 = 3, t2 = 4;

int y = Max( t1, t2 ); // виклик методу Max

Console.WriteLine( y ); // результат: 4


int z = Max( a + t1, t1 / 2 * b ); // виклик методу Max

Console.WriteLine( z ); // результат: 5

}

}

}


Увага!

Головна вимога при передачі параметрів полягає в тому, що аргументи при виклику методу повинні записуватися в тому самому порядку, що і в заголовку методу, і повинне існувати неявне перетворення типу кожного аргументу до типу відповідного параметра. Кількість аргументів повинна відповідати кількості параметрів.


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

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

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

У C# для обміну даними між викликаючими функціями і функціями, що викликаються, передбачено чотири типи параметрів:


  • параметри-значення;

  • параметри-посилання — описуються за допомогою ключового слова ref;

  • вихідні параметри — описуються за допомогою ключового слова out;

  • параметри-масиви — описуються за допомогою ключового слова params.

Ключове слово передує опису типу параметра. Якщо воно опущене, параметр вважається параметром-значенням. Параметр-масив може бути лише один і повинен бути останнім в списку, наприклад:


public int Calculate( int a, ref int b, out int c, params int[] d ) …
^

7.4. Використання показчика this в тілі класу


Кожен об'єкт містить свій екземпляр полів класу. Методи знаходяться в пам'яті в одному екземплярі і використовуються всіма об'єктами спільно, тому необхідно забезпечити роботу методів нестатичних екземплярів з полями саме того об'єкту, для якого вони були викликані. Для цього в будь-який нестатичний метод автоматично передається прихований параметр this, в якому зберігається посилання на поточний екземпляр об’єкта, що викликав функцію.

Це посилання є прихованим показчиком на кожний нестатичний метод класу. Будь-який метод може використовувати ключове слово this для доступу до інших нестатичних методів і змінних цього об’єкта.

У явному вигляді параметр this застосовується для того, щоб повернути з методу посилання на об'єкт, а також для ідентифікації поля в разі, якщо його ім'я збігається з іменем параметра методу, наприклад:

Приклад 7.4.

class Demo

{

double y;

public Demo T() // метод повертає посилання на екземпляр

{

return this;

}

public void Sety( double y )

{

this.y = y; // полю y призначається значення параметра y

}

}


^ 7.5. Конструктори. Типи конструкторів

Конструктор – це спеціальний метод, який виділяє пам'ять під об'єкт і ініціалізує виділену область. Його назва співпадає з іменем класу. Особливість конструктора – він не повертає результатів.


^ Синтаксис конструктора:

ім'я_класу(список_параметрів) {тіло_конструктора}


Деструктор – метод, що викликається автоматично при знищенні об’єкта класу (безпосередньо перед “збиранням сміття”). Деструктор не має параметрів і не повертає результат.


^ Синтаксис деструктора:

~им’я_класу() {тіло деструктора}


При створенні об’єкту відбувається виклик відповідного конструктора класу.

им’я класу им’я об’єкту = new им’я класу();


Приклад

Variables var = new Variables();


Оператор new виділяє пам'ять, а Variables() ініціалізує її.


Властивості конструктора:

- Конструктор не повертає значення (навіть типу void).

- Конструктор може бути з параметрами і без параметрів.

- В класі можуть бути визначені декілька конструкторів з різними списками параметрів.

- Якщо конструктор відсутній, то він створюється автоматично (конструктор за замовчуванням). Такий конструктор не має параметрів.

- Якщо в класі визначений хоча б один конструктор, конструктор за замовчуванням не створюється.


До цих пір ми задавали початкові значення полів класу при описі класу. Це зручно у тому випадку, коли для всіх екземплярів класу початкові значення деякого поля однакові. Якщо ж при створенні об'єктів потрібно призначати полю різні значення, це слід робити в конструкторі. У прикладі 7.5 в клас Demo доданий конструктор, а поля зроблені закритими.

Приклад 7.5.

using System;

namespace ConsoleApplication1

{

class Demo

{

public Demo( int a, double y ) // конструктор з параметрами

{

this.a = a;

this.y = y;

}

public double Gety() // метод отримання поля y

{

return y;

}


int a;

double y;

}

class Class1

{ static void Main()

{

Demo a = new Demo( 300, 0.002 ); // виклик конструктора

Console.WriteLine( a.Gety() ); // результат: 0,002

Demo b = new Demo( 1, 5.71 ); // виклик конструктора

Console.WriteLine( b.Gety() ); // результат: 5,71

}

}

}


Часто буває зручно задати в класі декілька конструкторів, аби забезпечити можливість ініціалізації об'єктів різними способами. Всі конструктори повинні мати різні сигнатури (кількість і типи параметрів).

Якщо один з конструкторів виконує які-небудь дії, а інший повинен робити те ж саме плюс ще що-небудь, зручно викликати перший конструктор з другого. Для цього використовується вже відоме вам ключове слово this в іншому контексті, наприклад:


Приклад 7.6.

class Demo

{

public Demo( int a ) // конструктор 1

{

this.a = a;

}

public Demo( int a, double y ): this( a ) // виклик конструктора 1

{

this.y = y;

}

...

}

Конструкція, що знаходиться після двокрапки, називається ініціалізатором.

Всі класи в C# мають спільного предка — клас object. Конструктор будь-якого класу, якщо не вказаний ініціалізатор, автоматично викликає конструктор свого предка.

До цих пір йшлося про "звичайні" конструктори, або конструктори екземпляра. Існує другий тип конструкторів — статичні конструктори, або конструктори класу. Конструктор екземпляра ініціалізує дані екземпляра, конструктор класу — дані класу.

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

Деякі класи містять лише статичні дані і, отже, створювати екземпляри таких об'єктів не має сенсу. У версію 2.0 введена можливість описувати статичний клас, тобто клас з модифікатором static. Екземпляри такого класу створювати заборонено, і крім того, від нього заборонено успадковувати. Всі елементи такого класу повинні явним чином оголошуватися з модифікатором static (константи і вкладені типи класифікуються як статичні елементи автоматично). У прикладі 7.7 наведено опис статичного класу.


Приклад 7.7.

using System;

namespace ConsoleApplication1

{

static class D

{

static int a = 200;

static double b = 0.002;


public static void Print ()

{

Console.WriteLine( "a = " + a );

Console.WriteLine( "b = " + b );

}

}


class Class1

{ static void Main()

{

D.Print();

}

}

}


Приклад 7.8.

Розглянемо ще один приклад - клас Animal. В ньому використовується конструктор з параметрами. Жовтим кольором виділено сигнатуру конструктора.


using System;

using System.Collections.Generic;

using System.Text;

namespace Inheritance

{

class Animal

{

public string Name;

private int Weight;

protected int Typ;

public Animal(int W, int T, string N) //конструктор з параметрами

{

Weight = W;

Typ = T;

Name = N;

}

public int GetWeight() { return Weight; }

public int GetTyp() { return Typ; }

}

class Program

{

static void Main(string[] args)

{

int weight;

// конструктор з параметрами

Animal myAnimal = new Animal(5, 1, "Cat");

weight=myAnimal.GetWeight();

Console.WriteLine("Вага = " + weight);

// Console.WriteLine("Тип = " + Typ); //так не можна! тип protected

Console.WriteLine("Name= " + myAnimal.Name);

Console.ReadLine();

}

}

}

^

7.6. Властивості get і set


В C# є два спеціальні методи, які називаються властивостями.

Властивості призначені для організації доступу до полів класу. Зазвичай властивість пов'язана із закритим полем класу і визначає методи його отримання і призначення.

Синтаксис властивості:


[ атрибути ] [ модифікатор ] тип ім'я_властивості

{

[ get код_доступу ]

[ set код_доступу ]

}


Значення модифікаторів доступу для властивостей і методів аналогічні. Частіше за все властивість оголошують із модифікатором доступу public. Код доступу є блоками операторів, які виконуються при отриманні (get) або встановленні (set) властивості. Може бути відсутньою або частина get, або set, але не обидві одночасно.

Якщо відсутня частина set, властивість доступна лише для читання (read-only), якщо відсутня частина get, властивість доступна лише для запису (write-only). У версії C# 2.0 введена можливість задавати різний рівень доступу для частин get і set.


Приклад 7.9. Опис властивостей:


public class Button: Control

{

private string caption; // закрите поле, з яким пов'язана властивість

public string Caption { // властивість

get { // спосіб отримання властивості

return caption;

}

set { // спосіб призначення властивості

if (caption != value) {

caption = value;

}

}

}

}


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

У програмі властивість виглядає як поле класу, наприклад:


Button ok = new Button();

ok.Caption = "OK"; // викликається метод призначення властивості

string s = ok.Caption; // викликається метод отримання властивості


При зверненні до властивості автоматично викликаються вказані в ньому методи читання і запису.

Синтаксично читання і запис властивості виглядають майже як методи. Метод get повинен містити оператор return. У методі set використовується параметр із стандартним ім'ям value, який містить встановлюване значення.


Приклад 7.10

В цьому прикладі код містить властивість з іменем ForeName, яка ініціалізує поле foreName, накладаючи на нього обмеження на довжину.


private string foreName;

public string ForeName

{

get

{ return foreName; }

}

set

{

if (value.Length >20)

//деякий код

else

foreName=value;

}

}


Розглянемо ще один приклад.

Приклад 7.11.

Клас Client містить інформацію про клієнта банку таку як: Прізвище, Дата народження, Дані паспорту, ID-код, номер рахунку. В класі два конструктори. Метод EditClient() дозволяє змінювати дані про клієнта. Поля класу зроблені закритими, а доступ до них виконується через властивості get() і set().


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;


namespace ClientAccount

{

public class Client

{

//поля класу

private string Name;

private DateTime BirthDate;

private string Passport;

private string ID;

private string nomAccount;

public Client()

{

//конструктор без параметрів

}


public Client (string ClientName, string ClientPassport, DateTime ClientBirthDate)

{

//конструктор з параметрами

name = ClientName;

passport = ClientPassport;

birthdate = ClientBirthDate;

}


public void EditClient(string ClientName, string ClientPassport, DateTime ClientBirthDate)

{

//метод редагування полів класу

Name = ClientName;

Passport = ClientPassport;

birthdate = ClientBirthDate;

}


//методи get і set для полів класу

public string passport

{

get

{

return Passport;

}

set

{

Passport = value;

}

}


public string name

{

get

{

return Name;

}

set

{

Name = value;

}

}


public int age

{

get

{

int a;

a = DateTime.Now.Year - BirthDate.Year;

return a;

}

}


public DateTime birthdate

{

get

{

return BirthDate;

}

set

{

if (DateTime.Now > value)

BirthDate = value;

else

throw new Exception("Введено неправильну дату народження");

}

}


public string ID_kod

{

get {return ID; }


set

{

ID = value;

}

}

public string Nom_Account

{

get { return nomAccount; }

set

{

nomAccount = value;

}

}

}


В методі Main ілюструється два способи роботи з цим класом. В першому випадку (закрито коментарями) викликається конструктор без параметрів, а ініціалізація полів name, passport, birthdate виконується через властивості get i set.

У другому випадку викликається конструктор з параметрами. Через властивості ініціалізуються поля ID_kod та Nom_Account.


^ Робота з класом Client. Два варіанти

class Program

{

static void Main(string[] args)

{

// конструктор без параметрів

// Client c1 = new Client();

//ініціалізація полів класу через властивості set.

// c1.name = "Вася";

// c1.passport = "9002";

// c1.birthdate = new DateTime(1987, 08, 03);


// конструктор з параметрами

Client c1 = new Client("Вася", "9002", new DateTime(1987, 08, 03));

c1.ID_kod = "123456789";

c1.Nom_Account = "8097";

Console.WriteLine("Ім'я=" + c1.name);

Console.WriteLine("Паспорт=" + c1.passport );

Console.WriteLine("Вік=" + c1.age);

Console.WriteLine("Іден.код=" + c1.ID_kod);

Console.WriteLine("Код рахунку=" + c1.Nom_Account);

Console.ReadKey();

// редагування полів

c1.EditClient("Іван", "4567", new DateTime(1987, 09, 01));

//Відредаговані поля

Console.WriteLine("Имя=" + c1.name);

Console.WriteLine("Паспорт=" + c1.passport);

Console.WriteLine("Вік=" + c1.age);

Console.ReadKey();

}

}

}


Висновки

Мова C# є об'єктно-орієнтованою мовою програмування, отже програма на ній складається з класів, усередині яких описують методи і дані.

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

Регулювання доступу до членів класу виконується за допомогою модифікаторів доступу. Відкрита частина класу (поля і методи з модифікатором public) утворює інтерфейс класу.

Для доступу до закритих полів в C# призначені спеціальні методи-властивості get i set. Якщо відсутня частина set, властивість доступна лише для читання (read-only), якщо відсутня частина get, властивість доступна лише для запису (write-only).


^

Питання і завдання для самостійної роботи студента


  1. Перерахуєте і опишіть елементи класу в C#.

  2. Опишіть способи передачі параметрів в методи.

  3. Для чого в класі може бути потрібно декілька конструкторів?

  4. Як можна викликати один конструктор з іншого? Навіщо це потрібно?

  5. Що таке this? Що в ньому зберігається, як він використовується?

  6. Що таке деструктор? Чи гарантує середовище його виконання?

  7. Які дії зазвичай виконуються в частині set властивості?

  8. Чи може властивість класу бути не пов'язаною з його полями?

  9. Чи можна описати різні специфікатори доступу до частин get і set властивості?



  10. Виконайте всі приклади, наведені в лекції.

  11. Лабораторна робота № 7.

Схожі:

Модуль 2 Лекція Класи iconЛекція 12. Класи-колекції
Найчастіше в програмах використовуються масив, список, стек, черга, бінарне дерево, хеш-таблиця, граф І множина
Модуль 2 Лекція Класи iconЛекція Масиви І стандартні класи мови C#
Масив — це обмежена сукупність однотипних величин. Елементи масиву мають одне І те саме ім'я, а розрізняються за порядковим номером...
Модуль 2 Лекція Класи iconЛекція Стандартні класи С#. Робота з рядками
Для обробки текстової інформації в C# є широкий набір засобів: окремі символи, масиви символів, змінні І незмінні рядки І регулярні...
Модуль 2 Лекція Класи icon«затверджую» Ректор С. В. Савченко 2012 р. Програма
Класи, що визначають структуру додатку та його основного вікна. Класи cobject, cwinApp, cwnd, cframeWnd
Модуль 2 Лекція Класи iconЛекція Класи-колекції План Абстрактні структури даних > Колекції. Простір імен System. Collections
Найчастіше в програмах використовуються масив, список, стек, черга, бінарне дерево, хеш-таблиця, граф і множина
Модуль 2 Лекція Класи iconТ. Г. Шевченка Програма творчого конкурс
Музика. 1-4 класи. Київ. „Перун” 1996”, „Програми для загальноосвітніх навчальних закладів. Музика. 1-8 класи. – К.: Шкільний світ....
Модуль 2 Лекція Класи iconРектор національного університету “львівська політехніка”
Програму співбесіди з біології розроблено на основі чинних програм для загальноосвітніх навчальних закладів: Біологія, 7-11 класи...
Модуль 2 Лекція Класи iconРектор національного університету “львівська політехніка”
Програму співбесіди з біології розроблено на основі чинних програм для загальноосвітніх навчальних закладів: Біологія, 7-11 класи...
Модуль 2 Лекція Класи iconПрограма творчого конкурсу з музики для вступників факультету початкового навчання Чернігівського державного педагогічного університету імені Т. Г. Шевченка в 2008 році
Музика. 1-4 класи. Київ. „Перун” 1996”, „Програми для загальноосвітніх навчальних закладів. Музика. 1-8 класи. – К.: Шкільний світ....
Модуль 2 Лекція Класи iconЛекція №2. Охорона праці при роботі з комп'ютерною технікою. Вплив пк на організм людини
Останніми роками пк швидкими темпами впроваджують як на виробництві в різних системах контролю та управління, так І в різноманітних...
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©zavantag.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи