Перевод с 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(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д