Перевод с 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();
                    
           }
        }
  
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы