Перевод с Pascal на C#. Метод Гаусса
Формулировка задачи:
Помогите ,пожалуйста, нужно перевести на С#
program ideone;
const n = 3;
var L,i,k,LL,m,j,i2:integer;
z,c,s:real;
a,a1:array[1..n,1..n] of real;
begin
for i:=1 to n do
begin
for k:=1 to n do
begin
writeln('a(',i,k,')=');
read(a[i,k]);
a1[i,k]:=0;
end;
a1[i,i]:=1;
end;
for L:=1 to n-1 do
begin
LL:=L;
for j:=L+1 to n do
if abs(a[j,L])>abs(a[LL,L]) then LL:=j;
if LL>L then
begin
for k:=L to n do
begin
z:=a[L,k];
a[L,k]:=a[LL,k];
a[LL,k]:=z;
end;
for i2:=1 to n do
begin
z:=a1[L,i2];
a1[L,i2]:=a1[LL,i2];
a1[LL,i2]:=z
end;
end;
for i:=L+1 to n do
begin
c:=-a[i,L]/a[L,L];
a[i,L]:=0;
for k:=L+1 to n do a[i,k]:=a[i,k]+c*a[L,k];
for j:=1 to n do a1[i,j]:=a1[i,j]+c*a1[L,j];
end;
end;
for m:=1 to n do
begin
a1[n,m]:=a1[n,m]/a[n,n];
for i:=n-1 downto 1 do
begin
s:=a1[i,m];
for k:=i+1 to n do s:=s-a[i,k]*a1[k,m];
a1[i,m]:=s/a[i,i];
end;
end;
for i:=1 to n do for k:=1 to n do
writeln(a1[i,k]);
end.Решение задачи: «Перевод с Pascal на C#. Метод Гаусса»
textual
Листинг программы
using System;
namespace Haus
{
class Program
{
public static void Main(string[] args)
{
const int n = 2;
int L,i,k,LL,m,j,i2;
double z,c,s;
double[,] a;
a= new double[n,n];
double[,] a1;
a1= new double[n,n];
for(i=0;i<n;i++)
{
for( k=0;k<n;k++)
{
Console.Write("a[{0},{1}] = ", i, k);
a[i, k] = Convert.ToDouble(Console.ReadLine());
a1[i,k]=0;
}
Console.WriteLine();
a1[i,i]=1;
}
for ( L = 1; L < n-1; L++)
{
LL = L;
for ( j = L + 1; j < n; j++)
{
if (Math.Abs(a[j, L]) > Math.Abs(a[LL, L]))
{
LL = j;
}
}
if (LL > L)
{
for ( k = L; k < n; k++)
{
z = a[L, k];
a[L, k] = a[LL, k];
a[LL, k] = z;
}
for ( i2 = 1; i2 < n; i2++)
{
z = a1[L, i2];
a1[L, i2] = a1[LL, i2];
a1[LL, i2] = z;
}
}
for (i = L + 1; i < n; i++)
{
c = -a[i, L] / a[L, L];
a[i, L] = 0;
for ( k = L + 1; k < n; k++)
{
a[i, k] = a[i, k] + c * a[L, k];
}
for ( j = 1; j < n; j++)
{
a1[i, j] = a1[i, j] + c * a1[L, j];
}
}
}
for ( m = 1; m < n; m++)
{
for (i = n - 1; i < 1;i++)
{
a1[n, m] = a1[n, m] / a[n, n];
s = a1[i, m];
for ( k = i + 1; k < n; k++)
{
s = s - a[i, k] * a1[k, m];
a1[i, m] = s / a[i, i];
}
}
}
for ( i = 0; i <n; i++)
{
for ( k = 0; k <n; k++)
{
Console.WriteLine("{0}", a1[i, k]);
Console.ReadKey();
}
Console.WriteLine();
}
Console.WriteLine();
}
}
}