1. Они просто перемножаются верх (числитель) с верхом, а низ (знаменатель) с низом. Иногда будем использовать перестановку порядка действий для удобства сокращения. Но перед умножением целую часть в дробь будем вводить обязательно.
а) 3/7 * 5/11 = (3 * 5)/(7 * 11) = 15/77;
б) 6/25 * 5/18 = 6/18 * 5/25 = 1/3 * 1/5 = 1/15;
в) 2 1/10 * 1 1/14 = (2 * 10 + 1)/10 * (1 * 14 + 1)/14 = 21/10 * 15/14 =
= 21/14 * 15/10 = 3/2 * 3/2 = 9/4 = 1 1/4 = 1,25.
г) 3 3/5*1 1/9 = (3 * 5 + 3)/5 * (1 * 9 + 1)/9 = 18/5 * 10/9 = 18/9 * 10/5 =
= 2/1 * 2/1 = 2 * 2 = 4;
д) 1 3/7 * 14 = (1 * 7 + 3)/7 *14/1 = 11/7 * 14/1 = 11/1 * 14/7 =11 * 2 = 22.
2. Опять же вводим целое в дробь, при суммировании (вычитании) приводим к общему знаменателю.
а) 1 5/17 * (7 - 2 4/11) = (1 * 17 + 5)/17 * (7/1 - (2 * 11 + 4)/11) =
= 22/17 * (77/11 - 26/11) = 22/17 * 51/11 = 22/11 * 51/17 = 2 * 3 = 6;
б) (4,2/1,2 - 1,05) * 1,6 = (42/12 - 1 5/100) * 1,6 = (21/6 - 1 1/20) * 1 6/10 =
= (21/6 - 21/20) * 1 3/5 = (210/60 - 63/60) * 8/5 = 147/60 * 8/5 = 8/60 * 147/5 =
= 2/15 * 147/5 = 294/75 = (225 + 69)/75 = 225/75 + 69/75 = 3 + 23/25 = 3 23/25.
static void ToTriangle(double[,] matrix)
{
double n = matrix.GetLength(0);
for (int i = 0; i < n - 1; i++)
for (int j = i + 1; j < n; j++)
{
double koef = matrix[j, i] / matrix[i, i];
for (int k = i; k < n; k++)
matrix[j, k] -= matrix[i, k] * koef;
}
}
static void Print(double[,] matrix)
{
for (int i = 0; i < matrix.GetLength(0); i++)
{
for (int j = 0; j < matrix.GetLength(0); j++)
Console.Write("{0:0.0}\t",matrix[i, j]);
Console.WriteLine();
}
Console.WriteLine();
}
static void Main()
{
double[,] matrix = new double[3, 3];
var random = new Random();
for (int i = 0; i < matrix.GetLength(0); i++)
for (int j = 0; j < matrix.GetLength(0); j++)
matrix[i, j] = random.Next(1, 9);
Print(matrix);
ToTriangle(matrix);
Print(matrix);
Console.ReadKey();
}
(Это может быть,я точно незнаю)