C sharp - No entiendo el arreglo (Arrays)

   
Vista:

No entiendo el arreglo (Arrays)

Publicado por Flash (21 intervenciones) el 09/06/2016 14:14:12
Estoy siguiendo un libro de c# y me encuentro con esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace PruebaVector11
{
    class Program
    {
 
        static void Main(string[] args){
      int[] numeros = new int[5];
int n = 0;
string valor;
// Pedimos los numeros
for(n = 0; n < 5; n++)
{
Console.Write("Dame un numero");
valor = Console.ReadLine();
numeros[n] = Convert.ToInt32(valor);
}
// Invocamos a la funcion
Imprime(numeros);
}
// Esta es la función de impresion
 
static void Imprime(int[] arreglo)
{
int n = 0;
for (n = 0; n < 5; n++)
{
Console.WriteLine("El numero es {0}", arreglo[n]);
}
}
}
}

El problema no es que me de error,el problema es que no entiendo por que a la hora de imprimir coge la variable numero si en ningun momento se ha llamado en la funcion Imprimir y porque se pone arreglo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

No entiendo el arreglo (Arrays)

Publicado por Diego AZL (9 intervenciones) el 09/06/2016 18:22:16
Hola.

Recuerda que las aplicaciones funcionan en base de lógica y por ende si esta realiza alguna función o se comporta de forma diferente a la que esperas es por que en su flujo así se indico, en este caso:

En la línea 23 se esta llamando a la función.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

No entiendo el arreglo (Arrays)

Publicado por Flash (21 intervenciones) el 09/06/2016 18:59:38
Pero entonces al usar
Imprime(numero)
se sustituye el arreglo por la llamada a la variable?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alpanpan

No entiendo el arreglo (Arrays)

Publicado por Alpanpan (33 intervenciones) el 10/06/2016 05:49:33
No, lo único que haces es llamar a Imprimir, pasando como parámetro la variable numeros con sus correspondientes valores, y estos con copiados a la variable arreglo, que solo está visible dentro de la función Imprimir.
Cuando la función termine, la variable arreglo se destruye, pero numeros seguirá intacta.
De hecho, si copias el contenido de la función, desde la 30 a la 33, y lo pegas después de la llamada, al ejecutarlo te dará error, pues la variable arreglo, no existe.
Pero si cambias arreglo por numeros, funcionará correctamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

No entiendo el arreglo (Arrays)

Publicado por Flash (21 intervenciones) el 10/06/2016 16:37:52
Vale, creo que lo entiendo

Gracias,una ultima duda que es GetLength?
Mire en la central microsoft y me pone:
Obtiene un entero de 32 bits que representa el número de elementos de la dimensión especificada de Array.
No lo entiendo por mas que miro el codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace PruebaVector11
{
    class Program
    {
 
        static void Main(string[] args)
        {
            int salones; // salones que habra
            int alumnos; //alumnos cantidad
            int n=0; //control de salones
            int m=0; //control de alumnos
            string valor; //meter datos
            float suma = 0.0f; // para promedio
            float promedio = 0.0f; // promedio
            float  minima= 10.0f; //calificacion nota minima
            float maxima = 0.0f; // calificacion maxima
 
            Console.Write("Escriba el numero de salones");
            valor = Console.ReadLine();
            salones = int.Parse(valor);
            float [][] calif = new float [salones][];
            for (n=0; n<salones;n++) //ciclo
            {
                Console.WriteLine("Escriba la cantidad de alumnos para el salon {0}",n);
                valor = Console.ReadLine();
                alumnos =int.Parse(valor);
                calif[n]=new float[alumnos];
            }
            //coger informacion
            for(n=0;n<salones;n++)
            {
                Console.WriteLine("Salon {0}", n);
                for (m=0;m<calif[n].GetLength(0);m++)
                    // ciclo alumnos
                    {
                    Console.Write("Dame la calificacion");
                    valor = Console.ReadLine();
                    calif[n][m] = float.Parse(valor);
                }
            }
            Console.WriteLine("-----Informacion------");
            for (n=0 ; n< salones; n++) // ciclo salones
            {
                Console.WriteLine("Salon {0}" , n);
                for (m = 0; m< calif[n].GetLength(0); maxima++) //ciclo alumnos
                {
                    Console.WriteLine("El alumno {0} tiene {1}" , maxima , calif [n][m]);
                }
            }
        }
    }
}

Es que este ya directamente no lo entiendo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar