elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  matriz c#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: matriz c#  (Leído 11,044 veces)
shin_akuma

Desconectado Desconectado

Mensajes: 32



Ver Perfil
matriz c#
« en: 28 Junio 2008, 22:29 pm »

hola! denuevo

Mire me acaban de dejar una tarea sobre un programa que calcule promedios por medio de arrys el codigo se ejecuta bien pero cuando finaliza me arroja una excepcion : IndexOutOfRangeException

my sourse:

Código:

        int i = 0, j = 0, filas = 7;
        double d;
        System.Console.WriteLine("\nEscribe el numero de alumnos");
        int numa = Convert.ToInt16(Console.ReadLine());
        double[,] table = new double[numa, filas];
        for (i = 0; i < numa; i++)
        {
            Console.WriteLine("ingresa la calificacion de el alumno en español {0}", i + 1 );
            table[i, 0] = Int32.Parse(Console.ReadLine());
        }
        for (i = 0; i < numa; i++)
        {
            System.Console.WriteLine("Escribe la calificacion de alumno matematicas {0}", i + 1 );
            table[i, 1] = Int32.Parse(Console.ReadLine());
        }
        for (i = 0; i < numa; i++)
        {
            System.Console.WriteLine("Escribe la calificacion de alumno fisica {0}", i + 1);
            table[i, 2] = Int32.Parse(Console.ReadLine());
        }
        for (i = 0; i < numa; i++)
        {
            System.Console.WriteLine("Escribe la calificacion de alumno quimica {0}", i + 1);
            table[i, 3] = Int32.Parse(Console.ReadLine());
        }
        for (i = 0; i < numa; i++)
        {
            System.Console.WriteLine("Escribe la calificacion de alumno geografia {0}", i + 1);
            table[i, 4] = Int32.Parse(Console.ReadLine());
        }
        for (i = 0; i < numa; i++)
        {
            System.Console.WriteLine("Escribe la calificacion de alumno historia {0}", i + 1);
            table[i, 5] = Int32.Parse(Console.ReadLine());
        }
        Console.Clear();
        System.Console.WriteLine("\nLas calificaciones de alumno son:\n\n");
        for (j = 0; j <= numa; j++)
        {
            d = (table[j, 0] + table[j, 1] + table[j, 2] + table[j, 3] + table[j, 4] + table[j, 5]) / 6;//Exception???
            table[j, 6] =d;
            System.Console.WriteLine("Del alumano {0}\n",j + 1 );
            System.Console.WriteLine("Español : {0}" ,table[j,0]);
            System.Console.WriteLine("Matematicas : {0}", table[j, 1]);
            System.Console.WriteLine("Fisica : {0}", table[j, 2]);
            System.Console.WriteLine("Quimica : {0}", table[j, 3]);
            System.Console.WriteLine("Geografia : {0}", table[j, 4]);
            System.Console.WriteLine("Historia : {0}", table[j, 5]);

            if (table[j, 6] <= 6)
            {
                System.Console.WriteLine("\nEl alumno reprobo con un promedio de: {0}", table[j, 6]);
            }
            else if (table[j, 6] >= 7)
            {
                System.Console.WriteLine("\nEl alumno aprobo con un promedio de: {0}",table[j,6]);
            }
        }

cual es mi error? :-\ :huh:


En línea

El conocimiento es poder!!!

Saludos!!


MANULOMM


Desconectado Desconectado

Mensajes: 559


Erepublik.com


Ver Perfil
Re: matriz c#
« Respuesta #1 en: 29 Junio 2008, 05:04 am »

es de logica, en esta linea:
Código:
 for (j = 0; j <= numa; j++)
debe ser asi
Código:
 for (j = 0; j < numa; j++)

pues cuando ingresamos el numero de alumnos ejemplo 2, como empezamos de cero e incluyes el igual serian 3 por lo cual la matriz arroja el error pues se sobrepasa el numero de columnas.

Te aconseja una cosa y es que no hagas esto:
Código:
int i = 0, j = 0, filas = 7;
es mejor asi:
Código:
int i = 0;
int j = 0;
int filas = 7;
hacerlo como lo tienes no es una buena practica de programacion, es mejor ser explicito al 100%.

Atemtamente,

Juan Manuel Lombana
Medellín - Colombia


En línea


shin_akuma

Desconectado Desconectado

Mensajes: 32



Ver Perfil
Re: matriz c#
« Respuesta #2 en: 30 Junio 2008, 22:06 pm »

 ;D graxx si exacta el error era en el linea del <= quite el igual y se ejecuto sin niguna bronca

lo de:

Citar
Te aconseja una cosa y es que no hagas esto:

Código:
int i = 0, j = 0, filas = 7;

es mejor asi:

Código:
int i = 0;
int j = 0;
int filas = 7;

hacerlo como lo tienes no es una buena practica de programacion, es mejor ser explicito al 100%.


tienes razon creo que me meti en la cabeza mucho la idea de menor codigo mayor software

bueno graxx
En línea

El conocimiento es poder!!!

Saludos!!


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda resultado de matriz [resuelto y con for incluido :) ]
Programación C/C++
flony 7 4,655 Último mensaje 16 Octubre 2010, 01:53 am
por Akai
Matriz en C++
Programación C/C++
delirio 2 20,829 Último mensaje 27 Noviembre 2010, 22:48 pm
por darkvidhack
Matriz Dentro de otra matriz
Programación Visual Basic
moba741120 3 6,914 Último mensaje 13 Abril 2011, 18:29 pm
por raul338
Graficador de funciones con matriz en c
Programación C/C++
amauta22 0 4,451 Último mensaje 24 Junio 2011, 04:00 am
por amauta22
Matriz
Programación C/C++
el4celeste 8 3,842 Último mensaje 19 Julio 2011, 06:13 am
por <<<-Basura->>>
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines