logo
[ТП]Lektsii / Лекции по С#

Закрытый метод нод

Метод, вычисляющий наибольший общий делитель пары чисел, понадобится не только конструктору класса, но и всем операциям над рациональными числами. Алгоритм нахождения общего делителя хорошо известен со времен Эвклида. Я приведу программный код метода без особых пояснений:

/// <summary>

/// Закрытый метод класса.

/// Возвращает наибольший общий делитель чисел a,b

/// </summary>

/// <param name="a">первое число</param>

/// <param name="b">второе число, положительное</param>

/// <returns>НОД(a,b)</returns>

int nod(int m, int n)

{

int p=0;

m=Math.Abs(m); n =Math.Abs(n);

if(n>m){p=m; m=n; n=p;}

do

{

p = m%n; m=n; n=p;

}while (n!=0);

return(m);

}//nod

Печать рациональных чисел

Почти любой класс содержит один или несколько методов, позволяющих выводить на печать данные о классе. Такой метод имеется и в классе Rational. Вот его текст:

public void PrintRational(string name)

{

Console.WriteLine(" {0} = {1}/{2}",name,m,n);

}

Метод печатает имя и значение рационального числа в форме m/n.

Тестирование создания рациональных чисел

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

public void TestCreateRational()

{

Rational r1=new Rational(0,0), r2 = new Rational(1,1);

Rational r3=new Rational(10,8), r4 = new Rational(2,6);

Rational r5=new Rational(4,-12), r6 = new Rational (-12,-14);

r1.PrintRational("r1:(0,0)");

r2.PrintRational("r2:(1,1)");

r3.PrintRational("r3:(10,8)");

r4.PrintRational("r4:(2,6)");

r5.PrintRational("r5: (4,-12)");

r6.PrintRational("r6: (-12,-14)");

}

Она создает и печатает шесть рациональных чисел. Вот как выглядят результаты ее работы.

Рис. 16.3. Создание и печать рациональных чисел

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4