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

Приклад простої програми:

static void Main(string[] args)

{

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

string s;

double V1 = 0, V2 = 0, result = 0;

// завдання коліру фону

Console.BackgroundColor = ConsoleColor.White;

Console.Clear(); // очищеня вікна

// завдання коліру сімволів

Console.ForegroundColor = ConsoleColor.Blue;

Console.Write(" V1" = "); // виведення повідомлення

s = Console.ReadLine(); // введення даних

V1 = double.Parse(s); // перетворення данных

Console.Write(" V2" = "); // виведення повідомлення

s = Console.ReadLine(); // введення даних

V2 = double.Parse(s); // перетворення данных

result = V1 + V2; // обчислення

// виведення результатів

Console.WriteLine(" Результат = " + result.ToString());

Console.ReadLine(); // режим очікування

}

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

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

Написати програму для роботи з структурами.

Основні операції:

  1. Формування списка

  2. Відображення списка

  3. Збереження списка у файлі

  4. Завантаження файла у список

Варіанти завдань

Варіант

Список

Додаткова операція

1

Список співроботніків

Додавання записів

2

Список студентів групи

Видаління записів

3

Ведомість успішністі

Вставка записів

4

Список абонентів

Пошук записів

5

Ведомість зарплатні

Сортування записів

за окладом

6

Список викладачів

Додавання записів

7

Список літератури

Видаління записів

8

План роботи

Вставка записів

9

Розклад занять

Сортування записів

за часом заняття

10

Програма телепередач

Пошук записів

11

Список мааршрутів

Додавання записів

12

Список сайтів

Видаління записів

13

Плей-лист

Вставка записів

14

Список магазинів

Пошук записів

15

Список навчальних закладів

Пошук записів

16

Список кафедр

Додавання записів

17

Список факультетів

Видаління записів

18

Щоденнік

Вставка записів

19

Розклад сессії

Сортування записів

за датою

20

Список класів C#

Пошук записів

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

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

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

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

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

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

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

Структури

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

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

У С# роль структур не обмежується тільки цим.

У С# структури також можуть зберігати дані різних типів. У цьому сенсі вони подібні

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

перерахувань, значення даних (полів) структур можна перевизначати в ході роботи

програми. У С# структури окрім полів можуть містити методи і

конструктори, перенавантажувати операції і реалізовувати інтерфейси.

Все це робить структури схожими на класи, але з наступними обмеженнями:

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

але можуть реалізовувати інтерфейси;

неявним батьком будь-якої структури, як і всього останнього в CTS, є клас object,

тому в структурі діють всі методи цього класу;

структура не може мати спадкоємців, тобто її не можна оголосити з модифікатором

abstract або sealed;

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

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

до структур реалізується швидше, ніж до екземплярів класу (об'єктам). Звідси можна

зробити такий вивід: якщо у класу відносно небагато полів, але в програмі передбачається використовувати безліч його об'єктів, корисно реалізувати такий клас як структуру

(якщо, зрозуміло, семантика класу дозволяє це).

Оголошення структури має такий вигляд:

[атрибути][модифікатори] struct імя_структури [:спісок_інтерфейсов] {тело_структури}

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

замість зарезервованого слова class використовується зарезервоване слово struct, а замість батьківського класу указується необов'язковий список інтерфейсів.

Всі стандартні значущі типи CTS реалізовані у вигляді структур.

Приклад оголошення структури:

[Serializable]

public struct Person

{

public int num;

public string name;

public string adres;

public string phone;

}

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

без параметрів. На відміну від класів, цей конструктор не можна перекрити.

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

Для попереднього прикладу допустимі такі оператори:

Person per; // Неявний виклик конструктора

per.num = 1; // Тепер можна заповнювати поля

per.name = “ Бондарчук А.О.”;

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

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

Person per = new Person ();

Приклади операцій з структурами:

Person[] list = new Person[10]; // оголошення масива структур(списка)

// Формування списка (n – розмір списка)

for (int i = 0; i < n; i++)

{

Console.Write(" Номер ");

s = Console.ReadLine();

lst[i].num = int.Parse(s);

Console.Write(" Прiзвище " + lst[i].num.ToString() + " ");

s = Console.ReadLine();

lst[i].name = s;

Console.Write(" Адреса " + (i + 1).ToString() + " ");

s = Console.ReadLine();

lst[i].adres = s;

Console.Write(" Телефон " + (i + 1).ToString() + " ");

s = Console.ReadLine();

lst[i].phone = s;

}

// Видображення списка

for (int i = 0; i < n; i++)

{

Console.WriteLine(" " + lst[i].num.ToString() + " " + lst[i].name +

" " + lst[i].adres + " " + lst[i].phone);

}

// Сортування спмска

private static void Sort(Person[] m, int n)

{

int i, j, k;

Person X;

for (i = 0; i < n; i++)

{

k = i; X = m[i];

for (j = i + 1; j < n; j++)

if (m[j].P < X.P)

{

k = j;

X = m[j];

}

m[k] = m[i];

m[i] = X;

}

}

// Простори имен для роботи із файлами

using System.Xml;

using System.Runtime.Serialization.Formatters.Binary;

using System.IO;

// Збереження списка у файлі

static void Save_List(Person[] lst, int n, string fname)

{

Person[] items = new Person[n];

for (int i = 0; i < n; i++) items[i] = lst[i];

FileStream fs = new FileStream(fname, FileMode.Create);

BinaryFormatter sf = new BinaryFormatter();

sf.Serialize(fs, items);

fs.Close();

Console.WriteLine(" Файл "+fname + " створений");

}

// Завантаження списка з файла

static int LoadList(ref Person[] lst,string fname)

{

FileStream fs = new FileStream(fname, FileMode.Open);

BinaryFormatter sf = new BinaryFormatter();

lst = (Person[])sf.Deserialize(fs);

fs.Close();

Console.WriteLine(" Файл " + fname + " завантажений");

int n = lst.Count();

View_List(lst, n);

return n;

}

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

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

  1. Написати програму обчислення значень функцій:

Бібліотечні функції

sin(x)

cos(x)

exp(x)

Функція користувача f(x)

Варіант

Функція

Примітки

1

y = sin(x)/x

y(0) = 1

2

y = n!

n >= 0, y(0) = 1

3

y = 2n

n >= 0

4

z = xy

y >= 0

5

y = ax2+bx+c

6

y = ∑aixi , i = 0.. n

y = a0 + a1x + a2x2 +…

7

y = 2n

n <= 0

8

z = xy

y <= 0

9

y = tg x

10

y = ctg x

11

y = xe-x

12

y = Min(a,b)

13

y = Max(a,b)

14

y = MinMax (a,b,c)

15

y = MinMaxMidle (a,b,c)

16

Swap(V1,V2)

Обмін значень якщо V1<V2

17

Sign(V)

Визначення знаку V

18

y = log10 x

x > 0

19

y = log2 x

x > 0

20

y = 1 - e-x

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