|
Млин, ну так и тянет сказать RTFM.
Лентяи, млин.
Устанешь меня пивом поить.
Вот код (на C#):
using System;
namespace MatrixProg
{
class Matrix
{
private const int MATRIX_SIZE = 7;
private int[,] _matrix = new int[MATRIX_SIZE, MATRIX_SIZE];
private int[] _diagonal = new int[MATRIX_SIZE];
public void RandomFill(int lowBound, int highBound)
{
Random rnd = new Random(DateTime.Now.Millisecond);
for (int i = 0; i < MATRIX_SIZE; ++i)
for (int j = 0; j < MATRIX_SIZE; ++j)
_matrix[i, j] = rnd.Next(lowBound, highBound);
}
public void Display()
{
for (int i = 0; i < MATRIX_SIZE; ++i)
{
for (int j = 0; j < MATRIX_SIZE; ++j)
{
Console.Write(_matrix[i, j]);
Console.Write('\t');
}
Console.WriteLine();
}
}
public void DisplayUnchangedDiagonal()
{
for (int i = 0; i < MATRIX_SIZE; ++i)
{
Console.Write(_diagonal[i]);
Console.Write('\t');
}
Console.WriteLine();
}
public void Process()
{
for (int i = 0; i < MATRIX_SIZE; ++i)
{
_diagonal[i] = _matrix[i, i];
if (_matrix[i, i] < 0)
_matrix[i, i] = Sum1(i);
else
_matrix[i, i] = Sum2(i);
}
}
private int Sum1(int i)
{
int sum = 0;
for (int j = 0; j < MATRIX_SIZE; ++j)
{
if (_matrix[i, j] < 0) break;
sum += _matrix[i, j];
}
return sum;
}
private int Sum2(int i)
{
int sum = 0;
int j = 0;
for (; j < MATRIX_SIZE; ++j)
{
if (_matrix[i, j] < 0) break;
}
for (; j < MATRIX_SIZE; ++j) sum += _matrix[i, j];
return sum;
}
};
class Program
{
static void Main(string[] args)
{
Matrix mtx = new Matrix();
mtx.RandomFill(-10, 10);
Console.WriteLine("Матрица перед преобразованием: ");
mtx.Display();
mtx.Process();
Console.WriteLine("\nМатрица после преобразования: ");
mtx.Display();
Console.WriteLine("\nНеизмененная диагональ: ");
mtx.DisplayUnchangedDiagonal();
}
}
}
..........................
Устал - умри!
Когда государство от тебя что-то хочет, оно называет себя Родиной.
All above is just IMHO.
|