Converter codigo C# em codigo Java

1 resposta
W
class Program   
    {   
        static void Main(string[] args)   
        {   
            {   
         double[] respostas = {13.3,15.2,12.4,15.8,9.6,10.4,13.2,8.8,8.3,8.5,10.2,   
                            11.5,12.6,10.7,12.6,9.7,12.1,13.5,10.3,14.3,9.8,12.3,   
                            10.4,11.6,12.4,12.9,11.6,10.3,14.2,13.8};   
                
         //         double menor, maior;         
  
         double wcontadorf = 8.3; //variável que vai armazenar os valores q serão incrementados na matriz principal)   
         // o seu valor inicial é o menor valor do array   
         int wclasses = 5; //classes digitadas pelo usuário (número de opções de visualizações)   
         double wintervalo = 1.5; // intervalo de cada classe (maior valor - menor valor) / (classes)   
  
            
         double[,] matriz = new double[wclasses, 3]; //matriz q vai conter todas as classes   
         // linhas será número de classes   
         // colunas valor fixo 3    
         // col1=intervalo frequencia inicial   
         // col2=intervalo frequencia final   
         // col3=total de itens dentro da frequencia   
                                          
         
  
         // for para criar array principal com todos os intervalos   
  
  
  
         for (int h=0; h < wclasses;h++)   
         {   
            matriz[h,0] = wcontadorf; // exemplo: coluna 0 = 8.3    
            matriz[h,1] = wcontadorf += wintervalo;   //coluna 1 = 9,8                  
         }   
      
            
         double winiciof, wfimf;   
  
               
         // ler somente linha  passa para próxima depois de ler todas as respostas   
  
         for (int i = 0; i <= matriz.GetUpperBound(0); i++)   
         {               
            // leu primeira linha do array principal   
  
               
            for (int l=0; l < respostas.Length; l++)   
            {   
               winiciof = matriz[i,0]; // linha 0, colun  0 = 8,3   
               wfimf = matriz[i,1]; // linha 0, coluna 1   =  9,8               
                  
               // ler todas as repostas   
  
               // 13.3   
  
               // varre todas as repostas e armazena na coluna atual   
  
               if (i == matriz.GetUpperBound(0))   
               {   
                  if ((respostas[l] >= winiciof) && (respostas[l] <= wfimf))   
                  {   
                     matriz[i,2] = ++matriz[i,2];                     
                  }   
               }   
               else  
               {   
                  if ((respostas[l] >= winiciof) && (respostas[l] < wfimf))   
                  {   
                     matriz[i,2] = ++matriz[i,2];                     
                  }   
  
               }                                                           
            }   
  
         }   
         
         // varre linhas   
         for (int i = 0; i <= matriz.GetUpperBound(0); i++)   
         {               
               
            // varre colunas da linha acima   
  
            for (int y = 0; y <= matriz.GetUpperBound(1); y++)   
            {                        
                  
               Console.Write(matriz[i, y] + "       ");   
            }   
            Console.WriteLine();   
         }                     
  
  
         // varrer para exibir a coluna final            
  
         double wtotal = 0;   
  
         Console.WriteLine("==coluna frequencia===");   
            
                     
         for (int i = 0; i <= matriz.GetUpperBound(0); i++)   
         {               
                  
            Console.Write(matriz[i, 2]); // varia somente a linha a coluna é a última   
            wtotal = wtotal + matriz[i,2];   
  
            Console.WriteLine();   
         }   
  
                        
  
         Console.WriteLine("==================================");   
         Console.WriteLine("Total de Frequências: " + wtotal.ToString());   
         Console.Read();                  
  
      }         
  
  
   }   
}

1 Resposta

herbertpimentel

A documentação do .net diz o seguinte com relação ao método GetUpperBound()

An example of GetUpperBound is GetUpperBound(0), which returns the upper bound for the indexes of the first dimension of the Array and GetUpperBound(Rank - 1) returns the upper bound of the last dimension of the Array.

com o exemplo de código como segue:

using System;
public class SamplesArray {

public static void Main() {

// Creates a new one-dimensional Array of type Int32.
  Array my1DIntArray = Array.CreateInstance( typeof(Int32), 5 );

  // Uses GetLowerBound and GetUpperBound in the for loop.
  for ( int i = my1DIntArray.GetLowerBound(0); i <= my1DIntArray.GetUpperBound(0); i++ )
     my1DIntArray.SetValue( i+1, i );

  // Displays the bounds and values of the one-dimensional Array.
  Console.WriteLine( "One-dimensional Array:" );
  Console.WriteLine( "Rank\tLower\tUpper" );
  Console.WriteLine( "{0}\t{1}\t{2}", 0, my1DIntArray.GetLowerBound(0), my1DIntArray.GetUpperBound(0) );
  Console.WriteLine( "Values:" );
  PrintValues( my1DIntArray );
  Console.WriteLine();

}

public static void PrintValues( Array myArr )  {

System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();

int i = 0;

int cols = myArr.GetLength( myArr.Rank - 1 );

while ( myEnumerator.MoveNext() )  {

if ( i < cols )  {

i++;

} else  {

Console.WriteLine();

i = 1;

}

Console.Write( “\t{0}, myEnumerator.Current );

}

Console.WriteLine();

}

}

/*

This code produces the following output.

One-dimensional Array:
Rank Lower Upper
0 0 4
Values:
1 2 3 4 5

O qual como você pode ver quando chamado GetUpperBound(0) retorna o maior indice do array que em java podemos conseguir com a expressão array.length -1.
O que eu notei de especial no metodo, é com relação a arrays multi dimensionais, que quando vc informa um indice tal como 1 ou 2 ele vai buscar o valores dentro do “sub array” do indice. Tipo assim imagine que vc tem um array multi dimensional e que o seu indice 1 do array é um outro array, então com o uso do metedo o que o array vai fazer é pegar a mesma informação (maior indice do array que esta no indice 1) o que pode fazer assim com java:

array[1].length sendo que o conteudo de array[1] é um outro array

espero ter ajudado…

Criado 26 de maio de 2007
Ultima resposta 28 de mai. de 2007
Respostas 1
Participantes 2