Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Тип даних рядок




Тип даних рядок (string) призначений для зберігання рядків тексту. Також як і символьний тип, для кодування символів використовується Unicode.

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

string filePath = "C:\\Some Path\\Some File.txt";

Для спрощення запису можна використовувати символ «@» перед початком рядку, у такому разі усі символи (не лише зворотна коса риска, а й кінець рядку) будуть оброблятися однаково, серед них не будуть виділятися службові, наприклад:

string filePath = @"C:\Some Path\Some File.txt";

2.6. Структуровані типи даних: масиви, записи, множини

Масиви

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

Для доступу до елементів масивів використовуються індекси, які записуються у квадратних дужках після ідентифікатора масиву.

Мова C# підтримує наступні типи масивів:

одновимірні;

багатовимірні прямокутні;

багатовимірні ортогональні (непрямокутні).

Декларація і доступ до елементів масиву у C#

Декларація масиву у C# відбувається наступним чином:

int[] Integers;

Декларація і створення одномірного масиву розміром 100 значень:

int[] Integers = new int[100];

Для доступу до елемента масиву слід вказати його ідентифікатор і індекс:

Integers[50] = 12345;

Індексація елементів масиву починається з 0, тому перший елемент має індекс 0, а останній – розмірність масиву мінус 1.

Ініціалізація масиву під час декларації

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

 

string[] DaysOfTheWeek = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };

Декларація багатовимірних масивів

Декларація багатовимірних прямокутних масивів здійснюється наступним чином (наприклад, декларація та ініціалізація двовимірного масиву рядків):

string[,] StudentNameGrade = { {"Петренко", "Відмінно"},

{"Луценко", "Задовільно"},

{"Шевченко", "Добре"}

};

Декларація ортогональних масивів здійснюється наступним чином:

int[][][] Integers;

Операції над масивами

Для отримання довжини одновимірного масиву використовується конструкція:

int ArrayLength = Integers.Length;

Для багатовимірного масиву використовується метод GetLength(), у параметрах якого слід вказати номер виміру (починаючи з 0):

int multiArrLength = StudentNameGrade.GetLength(0);

Для сортування масиву використовується наступна конструкція (викликається статичний метод Sort() стандартного класу Array, якому передається масив, що необхідно відсортувати, у якості параметру):

Array.Sort(Integers);

Для зміни порядку елементів масиву на зворотній використовується наступна конструкція:

Array.Reverse(Integers);

Обробка всього масиву

Якщо необхідно звернутися до всіх елементів масиву, то зробити це можна в циклі, або використати ітератор.

Виведення всіх елементів масиву на екран, використовуючи цикл:

for (int i = 0; i < Integers.Length; i++)

{

Console.WriteLine(Integers[i].ToString());

}

Виведення всіх елементів масиву на екран, використовуючи ітератор:

foreach (int item in Integers)

{

Console.WriteLine(item.ToString());

}

Записи

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

Приклад декларації структури:

struct Point

{

public int X;

public int Y;

}

Доступ до складових структури здійснюється через крапку:

Point thePoint = new Point();

thePoint.X = 100;

thePoint.Y = 200;

Операції над записами

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

Приклад структури з конструктором:

struct Point

{

public int X;

public int Y;

 

public Point(int a, int b)

{

X = a;

Y = b;

}

}

 

Приклад створення структури з викликом конструктора:

Point thePoint = new Point(100, 200);

Структури можна створювати також не використовуючи оператор new:

Point thePoint;

Множини

Деякі мови програмування (Pascal) підтримують тип даних “множина”, який реалізує математичні множини.

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

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

C-подібні мови програмування, і C# в тому числі, не підтримують цей тип даних на рівні стандартних типів самої мови. Однак, за необхідності, його можна реалізувати за допомогою класів. Серед стандартних класів.NET Framework є клас HashSet, який відповідає множині, у Java є клас java.util.Set.

Обмежені типи даних

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

Деякі мови програмування, наприклад, Pascal підтримують обмежені типи даних, які можна створити на основі стандартних типів.

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

2.7. Типи даних за значенням і за посиланням

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

Тип даних об’єкт

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

Водночас C# не являється чистою ОО мовою, де усі типи даних є класами і однакові в поведінці (основна причина – оптимізація по швидкості), тому робота з типами даних відрізняється від того, до якої групи вони відносяться.

2.8. Сумісність типів та перетворення між типами даних

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

Яку помилку може видавати ця програма при спробі її виконати?

 

using System;

 

namespace Simple

{

class App

{

public static void Main()

{

byte value1 = 10;

byte value2 = 20;

byte total;

total = value1 + value2;

Console.WriteLine(total);

}

}

}

 

Способи здійснити перетворення типів

Існує два способи здійснення перетворення типів:

– неявні перетворення – здійснюються середовищем виконання автоматично;

– явні перетворення – безпосередньо задаються програмістом.

Способи здійснення перетворення типів

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

Виправимо програму наступним чином:

 

using System;

 

namespace Simple

{

class App

{

public static void Main()

{

byte value1 = 10;

byte value2 = 20;

long total;

total = value1 + value2;

Console.WriteLine(total);

}

}

}

Сумісність типів (допустимість неявних перетворень)

Явні перетворення

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

Виправимо програму таким чином:

using System;

 

namespace Simple

{

class App

{

public static void Main()

{

byte value1 = 10;

byte value2 = 20;

byte total;

total = (byte) (value1 + value2);

Console.WriteLine(total);

Console.ReadKey();

}

}

}

Перетворення за допомогою методів

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

Перетворення із цілого числа в рядок:

int i = 10;

string s = i.ToString();

 

Перетворення із рядка в ціле число:

string s = "10";

int i = int.Parse(s);

 

2.9. Екземпляри даних: змінні, константи

Екземплярами даних є змінні і константи, яким при декларації задається певний тип даних і початкове значення (задавати початкове значення для змінних не обов’язково).

 

Декларація змінних:

int i = 10;

string s = i.ToString();

 

Декларація констант:

const string s = "Рядок";

const int i = 20;

2.10. Видимість даних

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

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

Лекція 3. Управління ходом виконання та структурування програм в алгоритмічній мові програмування

Перелік питань

1. Вирази, операнди та операції.

2. Основні операції: арифметичні; логічні; бульові; з використанням рядків.

3. Поняття оператора.

4. Прості оператори: присвоювання; виклику функції.

5. Оператори управління ходом виконання: розгалуження; вибору; цикли; переходу.

6. Структурування програм: функції та класи.

7. Параметри функцій: вхідні, результуючі.

8. Рекурсивні функції.

9. Файли: текстові, бінарні.

 

3.1. Вирази, операнди та операції

 

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

 

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

 

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

 

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

3.2. Основні операції: арифметичні; логічні; бульові; з використанням рядків

Арифметичні операції належать до бінарних, оскільки вимагають двох операндів і позначаються знаками “+”, “-”, “*”, “/” і “%” (залишок від ділення).

Арифметичні операції вимагають числових типів даних – цілих чи дійсних чисел.

Логічні або бульові операції повертають результат “істина” (true) або “хибність” (false) і поділяються на дві категорії: ті, які виконуються над логічними значеннями операндів, і ті, які виконують логічну операцію над бітами операндів.

 

Перелік логічних операцій:

– І (AND) - логічне множення: &,

– АБО (OR) - логічне додавання: |

– виключальне АБО (XOR) - множення з переносом: ^

– еквівалентність (рівність): ==

– нееквівалентність (нерівність):!=

– інверсія (заперечення): ~,!

– порівняння (відношення): >, <, <=, >=

– умовне І (коротке І): &&

– умовне ЧИ (коротке ЧИ): ||

 

Операція конкатенації виконується над типом даних “рядок” і передбачає поєднання рядків.

 




Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 507; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.