
Текст головної функції програми
using System;
namespace Lab3
{
class Program
{
static void Main()
{
MetrizedRelation p, q;
Console.WriteLine("Enter P:");
p = new MetrizedRelation();
p.Get();
Console.WriteLine("Basic properties:");
Lab2.Program.ShowPropertiesAndKinds(p);
Console.WriteLine("Metrized properties:");
Console.WriteLine("Consistensy: {0}", p.IsConsistencied() ? "Yes" : "No");
Console.WriteLine("Aditively: {0}", p.IsAditive() ? "Yes" : "No");
Console.WriteLine("Multiplicatively: {0}", p.IsMultiplicive() ? "Yes" : "No");
Console.WriteLine("Transitive multiplicatively: {0}", p.IsMultiplicievlyTransitive() ? "Yes" : "No");
Console.WriteLine("Transitive aditively: {0}", p.IsAditivelyTransitive() ? "Yes" : "No");
Console.WriteLine();
Console.WriteLine("Enter Q:");
q = new MetrizedRelation();
q.Get();
Lab2.Program.ShowPropertiesAndKinds(p);
Console.WriteLine("Metrized properties:");
Console.WriteLine("Consistensy: {0}", p.IsConsistencied() ? "Yes" : "No");
Console.WriteLine("Aditively: {0}", p.IsAditive() ? "Yes" : "No");
Console.WriteLine("Multiplicatively: {0}", p.IsMultiplicive() ? "Yes" : "No");
Console.WriteLine("Transitive multiplicatively: {0}", p.IsMultiplicievlyTransitive() ? "Yes" : "No");
Console.WriteLine("Transitive aditively: {0}", p.IsAditivelyTransitive() ? "Yes" : "No");
Console.WriteLine("Basic operations:");
ShowBasicOperations(p, q);
Console.ReadLine();
}
private static void ShowBasicOperations(MetrizedRelation a, MetrizedRelation b)
{
Console.WriteLine("Union:");
a.Union(b).Show();
Console.ReadLine();
Console.WriteLine("Intersection:");
a.Intersection(b).Show();
Console.ReadLine();
Console.WriteLine("Distriction:");
a.Distinction(b).Show();
Console.ReadLine();
Console.WriteLine("Complemention of P:");
a.Complemention().Show();
Console.ReadLine();
Console.WriteLine("Complemention: of Q:");
a.Complemention().Show();
Console.ReadLine();
Console.WriteLine("P-1:");
a.Reverse().Show();
Console.ReadLine();
Console.WriteLine("Q-1:");
b.Reverse().Show();
Console.ReadLine();
Console.WriteLine("Composition:");
a.Compose(b).Show();
Console.ReadLine();
}
}
}
Результати виконання програми
Рис. 1. Властивості та типи відношення P
Рис. 2. Властивості та типи відношення Q
Рис. 3. Основні операції з відношеннями P та Q
Рис. 4. Властивості та типи відношення P1
Рис. 5. Властивості та типи відношення Q1
Рис. 6. Основні операції з відношеннями P1 та Q1
Висновок: При роботі з метричними відношення слід не забувати в залежності від типу відношення застосовувати ту, чи іншу алгебру при виконанні операцій. Зазвичай це забезпечує збереження властивостей відношень, та не завжди.