Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KPiYaP_otchyot_VS14.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
136.03 Кб
Скачать
  1. Использование делегатов в качестве параметров функции

Условие задачи

Реализовать метод, вычисляющий значение функции с заданным диапазоном (интервалом для вычислений) и заданным шагом. Виды функций, передаваемых в качестве параметра оформить в виде делегата. Интервал, виды функций и шаг выбирают в соответствии с вариантом.

14 Tanh(x) и sin(x) [-1,0) 1

Листинг программы:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace Laba_12

{

class Program

{

delegate void SinSinDelegate();

static void TanH()

{

double z;

for (double i = -1; i < 0; i += 1)

{

z = Math.Tanh(i);

Console.WriteLine("Значение функции Tanh=" + Math.Round(z, 2) + " При значении X=" + i);

}

}

static void Sinus()

{

double z;

for (double i = -1; i < 0; i += 1)

{

z = Math.Sin(i);

Console.WriteLine("Значение функции sin=" + Math.Round(z, 2) + " При значении X=" + i);

}

}

static void Main(string[] args)

{

SinSinDelegate SinDel = new SinSinDelegate(Sinus);

SinDel();

SinSinDelegate SinhDel = new SinSinDelegate(TanH);

SinhDel();

Console.ReadKey();}}}

Тестирование программы

Рисунок 13 – Тестирование программы

  1. Создание собственной библиотеки классов

Условие задачи

Создать собственную библиотеку, включив в нее разработанный класс (по индивидуальному заданию).

Каждый разрабатываемый класс должен содержать:

  • скрытые данные

  • перегрузку конструкторов

  • свойства класса

  • индексаторы (где требуется)

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

Вариант 14. Класс “Каталог”. Поля – имя каталога, путь к каталогу, дата создания, количество файлов

Листинг программы:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using Katalogdll;

namespace ValSem2Laba13

{

class Program

{

static void Main(string[] args)

{

Katalog[] a = new Katalog[5];

Katalog Temp = new Katalog();

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

{

Console.WriteLine("Напишите имя, путь к файлу, дату создания и количество файлов");

a[i] = new Katalog(Console.ReadLine(), Convert.ToInt32(Console.ReadLine()), Convert.ToInt32(Console.ReadLine()), Convert.ToInt32(Console.ReadLine()));

}

select:

Console.WriteLine("Выберите действие:\n1.Создать копию Каталога\n2.отсортировать по дате создания\n3.отсортировать по дате создания и кол-ву фалов \n4.Вывести информацию о каталоге");

switch (Console.ReadLine())

{

case "1":

{

Katalog[] Copy = new Katalog[5];

Copy = a;

break;

}

case "2":

{

int K = 0;

do

{

K = 0;

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

{

if (a[i] < a[i + 1]) { Temp = a[i]; a[i] = a[i + 1]; a[i + 1] = Temp; K = 1; }

}

} while (K == 1);

break;

}

case "3":

{

int K;

do

{

K = 0;

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

{

if (a[i] < a[i + 1]) { Temp = a[i]; a[i] = a[i + 1]; a[i + 1] = Temp; K = 1; };

}

} while (K == 1);

do

{

K = 0;

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

{

if (a[i] == a[i + 1]) { if (a[i].Browe > a[i + 1].Browe) { Temp = a[i]; a[i] = a[i + 1]; a[i + 1] = Temp; K = 1; } }

}

} while (K == 1);

break;

}

case "4":

{

foreach (Katalog x in a) { x.Dannie(); }

break;

}

}

goto select;

}}}

Тестирование программы

Рисунок 14 – Тестирование программы

32