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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  duda matrices c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: duda matrices c++  (Leído 2,391 veces)
indict

Desconectado Desconectado

Mensajes: 78


Ver Perfil
duda matrices c++
« en: 15 Abril 2013, 18:03 pm »

Hola,

Dada una matriz de notas, donde las filas son el nº de alumnos y las columnas el nº de asignaturas , para calcular la nota media por alumno se haría:

Código:
vector<vector<double> >notas(n, vector<double>(m));
for(int i=0; i<n; i++){
double suma=0;
for (int j=0; j<m; j++){
suma=suma+notas[i][j];
}

}

Ahora bien, para calcular la nota media por asignaturas, he pensado de hacerlo de dos maneras, me gustaría que me dijerais si está bien de las dos maneras...

Código:
vector<vector<double> >notas(n, vector<double>(m));
for(int i=0; i<m; i++){
double suma=0;
for (int j=0; j<n; j++){
suma=suma+notas[i][j];
}

}

o
con solo cambiar los subíndices ya basta.
Código:
vector<vector<double> >notas(n, vector<double>(m));
for(int i=0; i<n; i++){
double suma=0;
for (int j=0; j<m; j++){
suma=suma+notas[j][i];
}

}

Gracias de antemano :)


En línea

Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Re: duda matrices c++
« Respuesta #1 en: 15 Abril 2013, 18:51 pm »

Comenzar por columnas y que cada una de ellas analice sus alumnos, que comenzar por alumnos comparando asignaturas, es lo mismo.

Ej.

AlumnoMatesCastellanoInglés
Marcos967
Alex685
Daniel473

Si queremos hacer la media de cada uno, será lo mismo comenzar así:

Código
  1. for (int i = 0; i < alumnos; i++) {
  2.    for (int z = 0; i < asignaturas; z++) {
  3.    media += asignatura[z];
  4.    }
  5. }

Que hacer-lo por asignaturas;

Código
  1. for (int i = 0; i < asignaturas; i++) {
  2.    for (int z = 0; z < alumnos ; z++) {
  3.    media += alumno[z]
  4.    }
  5. }

O con el método que le quieras aplicar...

Saludos!!


En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: duda matrices c++
« Respuesta #2 en: 16 Abril 2013, 02:18 am »

Ahora bien, para calcular la nota media por asignaturas, he pensado de hacerlo de dos maneras
Un detalle con los tres fragmentos de código es que estos no calculan la media, solo obtienen los totales de la fila o columna.

me gustaría que me dijerais si está bien de las dos maneras
La primera funcionara correctamente.

La segunda solo si se trata de una matriz cuadrada, esto es, si el numero de filas es igual al numero de columnas.

Si no es es el caso (por ejemplo una matriz de 100 alumnos con 5 asignaturas) utilizar el bucle con los indices cambiados no es valido (debido a un indice fuera de rango).

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Re: duda matrices c++
« Respuesta #3 en: 16 Abril 2013, 15:09 pm »

Un detalle con los tres fragmentos de código es que estos no calculan la media, solo obtienen los totales de la fila o columna.
La primera funcionara correctamente.

La segunda solo si se trata de una matriz cuadrada, esto es, si el numero de filas es igual al numero de columnas.

Si no es es el caso (por ejemplo una matriz de 100 alumnos con 5 asignaturas) utilizar el bucle con los indices cambiados no es valido (debido a un indice fuera de rango).

Un saludo

Exacto;

Código
  1.    for (int i = 0; i < asignatura; i++) {
  2.       for (int z = 0; i < alumnos_total; z++) {
  3.       alumno[z]; = su_nota[i];
  4.       }
  5.    }

Más o menos así, yo no lo apliqué, en los ejemplos anteriores, pero se debe matricar todo lo que tenga más de una información.

En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
indict

Desconectado Desconectado

Mensajes: 78


Ver Perfil
Re: duda matrices c++
« Respuesta #4 en: 18 Abril 2013, 18:02 pm »

¡¡gracias!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda matrices dinámicas multidimencionales
Programación Visual Basic
:matux: 1 1,920 Último mensaje 20 Agosto 2007, 14:03 pm
por :matux:
Duda sobre matrices en C
Programación C/C++
ildarion 7 4,935 Último mensaje 25 Septiembre 2010, 20:29 pm
por satu
duda con programa de matrices!!!!
Programación C/C++
EdgarKrieger 4 2,686 Último mensaje 10 Diciembre 2013, 17:26 pm
por EdgarKrieger
[DUDA] Matrices
Programación C/C++
kayron8 9 3,866 Último mensaje 13 Marzo 2014, 12:52 pm
por Gh057
duda con ejercicio de matrices
Programación C/C++
andoporto 1 2,220 Último mensaje 6 Febrero 2015, 23:00 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines