Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Help_LR.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
332.8 Кб
Скачать

Перелік ЛР

ЛР 1. Складні типи даних C# : масиви даних

ЛР 2. Складні типи даних C# : структури

ЛР 3. Функції C#

ЛР 1. Складні типи даних C# : масиви даних

Завдання на ЛР

1. Написати програму виконання операцій з масивами:

Формування масива

Выдображення масива

Викоростання методів класа Array

2. Передбачити:

відображення меню програми;

вибір пунктів меню;

введення даних із клавіатури;

відображення необхідних даних та повідомлень.

Інтерфейс програми

Відомості з теорії

Прості типи даних:

Цілі числа

Цілочисельні типи і їх діапазони

Тип

Діапазон

Розмір

sbyte

От -128 до 127

8-розрядне ціле число із знаком

byte

От 0 до 255

8-розрядне ціле число без знаку

short

От -32 768 до 32 767

16-розрядне ціле число із знаком

ushort

От 0 до 65 535

16-розрядне ціле число без знаку

int

От -2 147 483 648 до 2 147 483 647

32-розрядне ціле число із знаком

uint

От 0 до 4 294 967 295

32-розрядне ціле число без знаку

long

От -9 223 372 036 854 775 808

до 9 223 372 036 854 775 807

64-розрядне ціле число із знаком

ulong

От 0 до 18 446 744 073 709 551 615

64-розрядне ціле число без знаку

Уявлення цілих чисел у програмі:

12 -1254 36957 -645397

Довільні(речові, дійсні) числа

Типи з плаваючою крапкою дозволяють представляти числа з дробовою

частиною.

Типи для представлення чисел з плаваючою крапкою і їх діапазони

Тип

Приблизний діапазон

Точність

Розрядність

float

От ±1,5e−45 до ±3,4e38

7 знаків

32 бита

double

От ±5,0e−324 до ±1,7e308

15-16 знаків

64 бита

Тип decimal призначений для застосування у фінансових розрахунках.

Цей тип має розрядність 128 битий для представлення числових значень

в межах від 1Е-28 до 7,9Е+28. Для звичайних арифметичних обчислень

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

Ці помилки виключаються при використанні типу decimal, який дозволяє

представити числа з точністю до 28 (а іноді і 29) десяткових розрядів.

Завдяки тому, що цей тип даних здатний представляти десяткові значення

без помилок округлення, він особливо зручний для розрахунків,

пов'язаних з фінансами.

Уявлення дійсних чисел у програмі:

Десяткова (нормальна) форма:

12.365 -1.324 83 -1269

Експоненціальна (показова) форма:

1.236Е2 6.98Е-3 -12.54Е7 -2Е6 4Е-5

Символи

У С# символи представлені 16-розрядним кодом, який називається юнікодом (Unicode).

У юнікоді набір символів представлений настільки широко, що він охоплює символи

практично зі всіх природних мов на світі. Якщо для багатьох природних мов, зокрема

англійського, французького і німецького, характерні відносно невеликі алфавіти, то у

ряді інших мов, наприклад китайському, уживаються досить обширні набори символів,

які не можна представити 8-розрядним кодом. Для подолання цього обмеження в С#

визначений тип char, що представляє 16-розрядні значення без знаку в межах від 0 до 65 535.

При цьому стандартний набір символів в 8-розрядному коді ASCII є підмножиною юнікоду в

межах від 0 до 127. Отже, символи в коді ASCII як і раніше залишаються дійсними в С#.

Уявлення символьных даних у програмі:

'r' 'm' 'Y' '6' '+' '@'

Читання символів із клавіатури

ConsoleKeyInfo cki = new ConsoleKeyInfo(); // структура для збереження кодів клавиш

cki = Console.ReadKey(); // читання кода клавиши

char ch = cki.KeyChar; // збереження кода символа

// використання кодів клавиш

if (ch == '1') ………..

if (cki.KeyChar == (char) 27) break;

Логічний тип даних

Тип bool представляє два логічні значення: "істина" і "брехня".

Ці логічні значення позначаються в С# зарезервованими словами true і false відповідно.

Отже, змінна або вираз типу bool прийматиме одне з цих логічних значень.

У C# тип даних є класом і має ряд методів і властивостей:

MaxValue – повертає максимальне значення для даного типу

MinValue – повертає мінімальне значення для даного типу

Equals(v1,v2) – порівняння значень двох екземплярів даного типу

Parse(str) – перетворення рядка в число

ToString() – перетворення числа в рядок

Довільні типи мають додаткові властивості:

Epsilon – машинний нуль

IsInfinity – перевірка на нескінченність

IsNaN – перевірка на приналежність до чисел

NegativeInfinity – негативна нескінченність

PositiveInfinity – позитивна нескінченність

Масиви

Оголошення одновимірного масиву цілих чисел

int[] arr = new int[100];

Оголошення двовимірного масиву довільних чисел

double [,] matric = new double [8, 8];

Формування масиву випадкових чисел

Random rnd = new Random(); //

for(int i=0; i<30; i++) arr[i] = rnd.Next(1,120); // масив із 30 цілих чисел

// значення від 1 до 120

 У C# можна використовувати представлення масиву у вигляді классу Array

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

          int[] mas = new int[5] { 3, 1, 5, 2, 4 };

          mas.SetValue(6,3); // завдання значення елементу(6-значення,3-індекс)

          int v = mas.GetValue(2); // читання елементу(2 - індекс)

          int l = mas.Length;//визначення розміру масиву

          int max = mas.Max(); //визначення максимального значення елементів масиву

          int min = mas.Min();//визначення мінімального значення елементів масиву

          int midle = mas.Average();//визначення середнього значення елементів масиву

          int sum = mas.Sum();//визначення суми елементів масиву

Array.Resize(ref mas, n) ; // зміна розміру масива (n- розмір масива)

Array.Sort(mas, 0, n); // сортування масиву (0, n – початковий і кінцевий індексі)

Array.Reverse(mas, 0, n); // реверс масиву (0, n – індексі)

int ind = Array.BinarySearch(mas, v, 0, n); // пошук значення v у відсортованому масиві

// 0, n – початковий і кінцевий індексі межі пошуку

Рядки

Рядковий тип String (string) визначає і підтримує символьні рядки.

Оголошення рядків: string s;

Клас типу string містить ряд методів для операцій з рядками. Деякі

з цих методів перераховані в таблиці :

Метод

Опис

static int Compare(string strA, string strB, StringComparison

comparisonType)

Повертає негативне значення, якщо рядок strA менше рядка strB; позитивне значення, якщо рядок strA більше рядка strB; і нуль, якщо порівнювані рядки рівні. Спосіб порівняння визначається аргументом comparisonType

bool Equals(string value, StringComparison comparisonType)

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

int IndexOf(char value)

Здійснює пошук в зухвалому рядку першого входження символу, визначуваного аргументом value. Застосовується порядковий спосіб пошуку. Повертає індекс першого збігу з шуканим символом або -1, якщо він не виявлений

int IndexOf(string value, StringComparison comparisonType)

Здійснює пошук в зухвалому рядку першого входження підрядка, визначуваного аргументом value. Повертає індекс першого збігу з шуканим підрядком або -1, якщо вона не виявлена. Спосіб пошуку визначається аргументом comparisonType

Додаткові операції з рядками здійснюються з

використанням спеціальних методів :

          S.Trim(  ) - видаляє початкові і кінцеві пропуски

з рядка S

         int p = S.IndexOf( Ps ) - визначає позицію підрядка Ps у рядку S

         SS.Remove( num, n ) - видаляє з рядка n символів,

починаючи з номера num

         S = S.Insert( S1, num ) - вставляє у рядок S рядок S1 ,

начиная з номера num

         string s = S.Substring( num, n ) - копіює n символів рядка ,

 починаючи з номера num

          int len = S.Length - повертає довжину рядка

          Перетворення рядків

   Перетворити рядок str в ціле число

          int v = int.Parse(str);

   Перетворити рядок str в довільне число

          double x = double.Parse(str);  

   Перетворити довільне число в рядок str

          double y = 1.254;

          string str = y.ToString( );

          string str = y.ToString("G"); // G - загальний формат

          string str = y.ToString("0.###" ); // фіксований формат

string str = y.ToString("F3" ); // фіксований формат

   Завдання формату виведення довільного числа v

          string sm = String.Format(" {0:0.00}", v);

Оголошення змінних:

int a = 123;

double x, y = 4.56;

float z = 1.23E-2;

char ch = ‘A’, sym;

string s, s1 = “Результати”, s2 = “”;

bool flag = false;

Оголошену змінну можна відразу ж ініціалізувати, тобто наповнити початковим значенням.

Важливою особливістю мови є вимога обов'язкової ініціалізації змінною до її першого

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

Ініціалізація змінної може відбуватися двома способами: вказівкою її значення або зверненням

до замовчуваного конструктора в пропозиції new. У останньому випадку змінна ініціалізувалася

початковим значенням 0.

Оголошення константи здійснюється так само, як і оголошення ініційованій змінній,

але оператор оголошення починається зарезервованим словом const

const int x = 1, у = 100, z = 0;

Введення/вивід даних

Функції введення:

Console.ReadLine() – повертає значення у вигляді рядка

Console.Read() – повертає значення у вигляді кода сімвола

Console.ReadKey() – повертає значення у вигляді кода клавіш

Для подальшого використання введених даних цей рядок необхідно

перетворити до потрібного типу.

Функції вивідення:

Console.WriteLine(s)

Console. Write (s)

Функції віводят значення у вигляді рядка. Для виведення значень інших

типів необхідно провести перетворення даних в рядок.

Приклади:

Console.WriteLine ("Input V"); // виведення повідомлення

string S;

double V;

S = Console.ReadLine(); // введення із клавіатури

V = double.Parse(S); // перетворення рядка S у довільне число V

Console.WriteLine (" V = " + V.ToString()); // виведення напису і значення V

char key = (char) 0;

ConsoleKeyInfo cki = new ConsoleKeyInfo(); // структура для збереження кода клавиш

cki = Console.ReadKey();// читання кода клавиш

key = cki.KeyChar; // перетворення кода клавиш у сімвол

Оператори C#

Оператори - конструкції мови програмування, що позначають

порядок дій із данніми.

Прості оператори задають відповідність між символікою оператора

і програмних дій.

Складові оператори - програмни інструкції, що складаються з

декількох службових слів (простих операторів,спеціальних конструкцій).

Спеціальні оператори забезпечують спеціальні операції з даними.

Прості оператори:

Оператор присвоєння - =

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

Приклади:

x = 1.24; // змінної x присвоюється значення 1.24

// х - дійсного типу

a = delta; // змінної а присвоюється значення

// змінної або константи delta

// a і delta повинні бути одного типу

y = Math.Sin(x); // змінної y присвоюється значення

// стандартної функції sin(x), y-дійсного типу

sym = 'Y'; // змінної sym присвоюється значення 'Y'

// sym - символьного типу

Оператори порівняння:

== - перевірка рівності операндів.

> - перевірка умови,що один операнд більше іншого.

< - перевірка умови,що один операнд менше іншого.

>= - перевірка умови,що один операнд більше або дорівнює другому.

<= - перевірка умови,що один операнд менше або дорівнює другому.

!= - перевірка нерівності операндов.

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

Роздільник(порожній оператор) - ;

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

Приклади:

beta = a + sin(x); b = 123;

Оператори для завдання коментарів у програмі:

/* */ //

Приклади:

// Коментар рядка

/* Це текст коментаря */

Коментари можуть розташовуватися в будь-якому місці програми.

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

використанням будь-якого алфавіту.

Програмні блоки(оператори програми) в коментатарях не

виконуються (ігноруються програмою).

Складові оператори:

Операторни дужки:

Об'єднують окремі оператори в програмні блоки.

{

< оператори програмного блока >

}

Оператори і програмні конструкції основної функції програми

полягають в операторни дужки:

{

< оператори основної функції програми >

}

Число операторних дужок , що відчиняють ( { ), повинно

відповідати числу операторних дужок , що закривають ( } ).

Оператор розгалуження:

if (< умова >) { < виконувані оператори 1 >; }

else { < виконувані оператори 2 >;}

Дія оператора:

Якщо виконується задана умова,то виконуються оператори 1,

інакше виконуються оператори 2.

Якщо виконуваний оператор у гілках умовного оператора один,

те операторни дужки { } не використовуються.

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

if( < умова > ) < оператор 1 >;

< наступні оператори >;

У якості умов можуть бути використані прості вираження або

складні програмні конструкції.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]