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

 

 


Tema destacado: Introducción a Git (Primera Parte)


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

Desconectado Desconectado

Mensajes: 21


Ver Perfil
Tabla en C++
« en: 10 Marzo 2013, 16:19 pm »

Tengo un problema que contiene una tabla, la cuál representa la nota de varios alumnos en los tres distintos trimestres que contiene el curso:1ª,2ª y 3ª evaluación. La primera evaluación cuenta un 20% de la nota final, la segunda un 40 % de la nota final y la tercera otro 40% de la nota final.
Tengo que:
  - Calcular la nota final de cada alumno, aplicando los porcentajes correspondientes y haciendo la media.
  - Escribir nombre del alumno con la nota más alta y la nota más baja.

Aquí una imagen para aclarar el problema:
http://imageshack.us/photo/my-images/826/foto100313160749.jpg/

¿Cómo se calcula la nota media teniendo en cuenta los porcentajes?
Errores del código comentarlos.
A ver si podemos sacar el problema. Aquí el código:

Código
  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.   char evaluaciones [3][6] ={"Primera evaluacion", "Segunda evaluacion", "Tercera evaluacion"};
  6.   char a,nombres [6][9]={ "Juan","Pepe" ,"Antonio" ,"Ana " ,"Alfonso","Mercedes"};;
  7.   float matriz[][4]= {{1   ,   5.2   ,  6.2    ,    8},
  8.                       {2   ,   6.1   ,   7     ,    8},
  9.                       {3   ,   3.7   ,   2.6   ,    4},
  10.                       {4   ,   8     ,   8.6   ,    9 },
  11.                       {5   ,   2.3   ,   2.4   ,    3},
  12.                       {6   ,   7.2   ,   7.7   ,    8.7 }};
  13.    int i,j ,indice;
  14.   float suma=0,mayor=0;
  15.   for(i=0;i<3;i++)
  16.       cout<<"    "<<evaluaciones [i];
  17.   cout<<endl;
  18.  
  19.    for (i=0;i<6;i++)
  20.       {
  21.           for(j=1;j<4;j++)
  22.               {
  23.                   if (j>=1)
  24.                       suma +=matriz[i][j];
  25.                   if (j==0)
  26.                       cout<<"      "<<nombres[i];
  27.                   cout<<"        "<<matriz[i][j];
  28.                }
  29.  cout<<endl<<"El alumno con mas nota es "<<nombres [indice]<<" con "<< mayor<<" puntos de media "<<endl<<endl;
  30.    mayor=0;
  31.    for(j=1;j<4;j++)
  32.       {
  33.           for(i=0;i<6;i++)
  34.               suma+=matriz[i][j];
  35.    cin.get();
  36.   return 0;
  37. }
  38.  


En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Tabla en C++
« Respuesta #1 en: 10 Marzo 2013, 17:43 pm »

.......................................................................
¿Cómo se calcula la nota media teniendo en cuenta los porcentajes?


Supongo que las notas máximas y mínimas se refieren a las medias. Si no es así avisa:

Código
  1.           1ªh evaluacion           2ªh evaluacion           3ªh evaluacion
  2.    Juan           5.2                         6.2                         8        La nota media de Juan es 6.72
  3.    Pepe           6.1                         7                         8        La nota media de Pepe es 7.22
  4. Antonio           3.7                         2.6                         4        La nota media de Antonio es 3.38
  5.    Ana            8                         8.6                         9        La nota media de Ana  es 8.64
  6. Alfonso           2.3                         2.4                         3        La nota media de Alfonso es 2.62
  7. Mercedes           7.2                         7.7                         8.7        La nota media de Mercedes es 8
  8.  
  9. El alumno con mas nota media es Ana  con 8.64 puntos
  10.  
  11.  
  12. El alumno con menos nota media es Alfonso con 2.62 puntos
  13.  
  14.  

Y el código:

Código
  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5.   char evaluaciones [3][20] ={"1\xA6h evaluacion", "2\xA6h evaluacion", "3\xA6h evaluacion"};
  6.   char a,nombres [6][9]={ "Juan","Pepe" ,"Antonio" ,"Ana " ,"Alfonso","Mercedes"};;
  7.   float matriz[][4]= {{1   ,   5.2   ,  6.2    ,    8},
  8.                       {2   ,   6.1   ,   7     ,    8},
  9.                       {3   ,   3.7   ,   2.6   ,    4},
  10.                       {4   ,   8     ,   8.6   ,    9 },
  11.                       {5   ,   2.3   ,   2.4   ,    3},
  12.                       {6   ,   7.2   ,   7.7   ,    8.7 }};
  13.    float porcentaje[4]={0,0.20,0.4,0.4};
  14.    int i,j ,indice,indice1;
  15.   float suma=0,mayor=0,menor=12;
  16.   for(i=0;i<3;i++){
  17.        cout.width(25);
  18.       cout<<evaluaciones [i];
  19.   }
  20.  
  21.   cout<<endl;
  22.    for (i=0;i<6;i++)
  23.        {
  24.            for(j=0;j<4;j++)
  25.                {
  26.                    if (j>=1){
  27.                        suma +=matriz[i][j]*porcentaje[j];
  28.                        cout<<"           "<<matriz[i][j];
  29.                        cout.width(25);
  30.                    }
  31.  
  32.                    if (j==0){
  33.                        cout.width(8);
  34.                        cout<<nombres[i];
  35.                    }
  36.  
  37.  
  38.                 }
  39.  
  40.            cout<<"        La nota media de "<<nombres [i]<<" es "<<suma<<endl;
  41.            if (suma>mayor)
  42.                {
  43.                    mayor=suma;
  44.                    indice=i;
  45.                }
  46.            if (suma<menor)
  47.                {
  48.                    menor=suma;
  49.                    indice1=i;
  50.                }
  51.            suma=0;
  52.        }
  53.  
  54.    cout<<endl<<"El alumno con mas nota media es "<<nombres [indice]<<" con "<< mayor<<" puntos "<<endl<<endl;
  55.    cout<<endl<<"El alumno con menos nota media es "<<nombres [indice1]<<" con "<< menor<<" puntos "<<endl<<endl;
  56.    cin.get();
  57.   return 0;
  58. }
  59.  
  60.  

Saluditos!. ...


En línea

Gagy

Desconectado Desconectado

Mensajes: 21


Ver Perfil
Re: Tabla en C++
« Respuesta #2 en: 10 Marzo 2013, 17:52 pm »

Muuuuchas gracias leosansan!
Sólo tengo una pregunta:
¿cout.width se podría sustituir por una expresión más sencilla, ya que mi profesor no nos la ha explicado?
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Tabla en C++
« Respuesta #3 en: 10 Marzo 2013, 18:43 pm »

.....................................
¿cout.width se podría sustituir por una expresión más sencilla, ya que mi profesor no nos la ha explicado?

Tendría que usar la librería iomanip, que supongo que tampoco la habéis visto, con que sólo queda jugar con los espacios en blanco con cout<<"    ";. Claro que podrías aprovechar para que tu profesor viera como se formatea una salida por pantalla. Es que yo me muevo más en C y ahí tenemos la artillería pesada de printf. Aunque en C++ también hay opciones, aunque a mi e parecen más enrevesadas, pero es lo que hay.

Saluditos!. ....

En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Tabla en C++
« Respuesta #4 en: 10 Marzo 2013, 19:16 pm »

Puedes usar /t como si de un printf se tratase:

cout<<"/t tal y tal";
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
Gagy

Desconectado Desconectado

Mensajes: 21


Ver Perfil
Re: Tabla en C++
« Respuesta #5 en: 10 Marzo 2013, 19:25 pm »

Le he quitado los cout.width sin poner nada en su lugar y los resultados no varían ni nada. ¿Es esto posible o tiene algún "efecto secundario"?
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Tabla en C++
« Respuesta #6 en: 10 Marzo 2013, 19:37 pm »

Le he quitado los cout.width sin poner nada en su lugar y los resultados no varían ni nada. ¿Es esto posible o tiene algún "efecto secundario"?

No, ya vi que no hacían mucho efecto en este caso. SI usas \t como indica amchacon tendrías algo como esto:

Código
  1.        1ªh evaluacion  2ªh evaluacion  3ªh evaluacion
  2. Juan            5.2     6.2     8       La nota media de Juan es 6.72
  3. Pepe            6.1     7       8       La nota media de Pepe es 7.22
  4. Antonio         3.7     2.6     4       La nota media de Antonio es 3.38
  5. Ana             8       8.6     9       La nota media de Ana es 8.64
  6. Alfonso         2.3     2.4     3       La nota media de Alfonso es 2.62
  7. Mercedes                7.2     7.7     8.7     La nota media de Mercedes es 8
  8.  
  9. El alumno con mas nota media es Ana con 8.64 puntos
  10.  
  11.  
  12. El alumno con menos nota media es Alfonso con 2.62 puntos
  13.  
  14.  

Creo que mejor como estaba, ajustando un poco con espacios en blanco.

Saluditos!. ...


P.D: Printf permite muchhhhhho más que un simple tabulador.
En línea

Gagy

Desconectado Desconectado

Mensajes: 21


Ver Perfil
Re: Tabla en C++
« Respuesta #7 en: 10 Marzo 2013, 20:06 pm »

Gracias!
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Tabla en C++
« Respuesta #8 en: 10 Marzo 2013, 22:28 pm »

Gracias!

De nada. Por cierto, al final logré alinear el texto:

Código
  1.                1ªh     2ªh     3ªh
  2. Juan            5.2     6.2     8.0     La nota media de Juan     es 6.7
  3. Pepe            6.1     7.0     8.0     La nota media de Pepe     es 7.2
  4. Antonio         3.7     2.6     4.0     La nota media de Antonio  es 3.4
  5. Ana             8.0     8.6     9.0     La nota media de Ana      es 8.6
  6. Alfonso         2.3     2.4     3.0     La nota media de Alfonso  es 2.6
  7. Mercedes        7.2     7.7     8.7     La nota media de Mercedes es 8.0
  8.  
  9. El alumno con mas nota media es Ana      con 8.6 puntos
  10.  
  11.  
  12. El alumno con menos nota media es Alfonso  con 2.6 puntos
  13.  
  14.  

Saluditos!. ....
En línea

Gagy

Desconectado Desconectado

Mensajes: 21


Ver Perfil
Re: Tabla en C++
« Respuesta #9 en: 11 Marzo 2013, 23:04 pm »

Por cierto, ¿hay alguna manera de borrar este tema?
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Tabla graphika :S
Diseño Gráfico
Jeferi 1 1,579 Último mensaje 16 Julio 2004, 09:09 am
por Jalbe
Duda sobre insersion a tabla html desde tabla sql
Bases de Datos
mokoMonster 2 3,946 Último mensaje 20 Febrero 2010, 01:20 am
por Shell Root
no me borra la tabla haciendo delete on cascade tabla n:m
Bases de Datos
kinos 2 4,122 Último mensaje 31 Julio 2010, 13:05 pm
por kinos
Tabla dentro de tabla.
Java
KenoChile 2 2,771 Último mensaje 10 Agosto 2012, 16:31 pm
por KenoChile
Tabla php
PHP
jalbtercero 8 3,476 Último mensaje 20 Mayo 2016, 16:23 pm
por jalbtercero
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines