Autor
|
Tema: Tabla en C++ (Leído 5,093 veces)
|
Gagy
Desconectado
Mensajes: 21
|
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: #include <iostream> using namespace std; int main() { char evaluaciones [3][6] ={"Primera evaluacion", "Segunda evaluacion", "Tercera evaluacion"}; char a,nombres [6][9]={ "Juan","Pepe" ,"Antonio" ,"Ana " ,"Alfonso","Mercedes"};; float matriz[][4]= {{1 , 5.2 , 6.2 , 8}, {2 , 6.1 , 7 , 8}, {3 , 3.7 , 2.6 , 4}, {4 , 8 , 8.6 , 9 }, {5 , 2.3 , 2.4 , 3}, {6 , 7.2 , 7.7 , 8.7 }}; int i,j ,indice; float suma=0,mayor=0; for(i=0;i<3;i++) cout<<" "<<evaluaciones [i]; cout<<endl; for (i=0;i<6;i++) { for(j=1;j<4;j++) { if (j>=1) suma +=matriz[i][j]; if (j==0) cout<<" "<<nombres[i]; cout<<" "<<matriz[i][j]; } cout<<endl<<"El alumno con mas nota es "<<nombres [indice]<<" con "<< mayor<<" puntos de media "<<endl<<endl; mayor=0; for(j=1;j<4;j++) { for(i=0;i<6;i++) suma+=matriz[i][j]; cin.get(); return 0; }
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
....................................................................... ¿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: 1ªh evaluacion 2ªh evaluacion 3ªh evaluacion Juan 5.2 6.2 8 La nota media de Juan es 6.72 Pepe 6.1 7 8 La nota media de Pepe es 7.22 Antonio 3.7 2.6 4 La nota media de Antonio es 3.38 Ana 8 8.6 9 La nota media de Ana es 8.64 Alfonso 2.3 2.4 3 La nota media de Alfonso es 2.62 Mercedes 7.2 7.7 8.7 La nota media de Mercedes es 8 El alumno con mas nota media es Ana con 8.64 puntos El alumno con menos nota media es Alfonso con 2.62 puntos
Y el código:#include <iostream> using namespace std; int main() { char evaluaciones [3][20] ={"1\xA6h evaluacion", "2\xA6h evaluacion", "3\xA6h evaluacion"}; char a,nombres [6][9]={ "Juan","Pepe" ,"Antonio" ,"Ana " ,"Alfonso","Mercedes"};; float matriz[][4]= {{1 , 5.2 , 6.2 , 8}, {2 , 6.1 , 7 , 8}, {3 , 3.7 , 2.6 , 4}, {4 , 8 , 8.6 , 9 }, {5 , 2.3 , 2.4 , 3}, {6 , 7.2 , 7.7 , 8.7 }}; float porcentaje[4]={0,0.20,0.4,0.4}; int i,j ,indice,indice1; float suma=0,mayor=0,menor=12; for(i=0;i<3;i++){ cout.width(25); cout<<evaluaciones [i]; } cout<<endl; for (i=0;i<6;i++) { for(j=0;j<4;j++) { if (j>=1){ suma +=matriz[i][j]*porcentaje[j]; cout<<" "<<matriz[i][j]; cout.width(25); } if (j==0){ cout.width(8); cout<<nombres[i]; } } cout<<" La nota media de "<<nombres [i]<<" es "<<suma<<endl; if (suma>mayor) { mayor=suma; indice=i; } if (suma<menor) { menor=suma; indice1=i; } suma=0; } cout<<endl<<"El alumno con mas nota media es "<<nombres [indice]<<" con "<< mayor<<" puntos "<<endl<<endl; cout<<endl<<"El alumno con menos nota media es "<<nombres [indice1]<<" con "<< menor<<" puntos "<<endl<<endl; cin.get(); return 0; }
Saluditos!. ...
|
|
|
En línea
|
|
|
|
Gagy
Desconectado
Mensajes: 21
|
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
Mensajes: 1.314
|
..................................... ¿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
Mensajes: 1.211
|
Puedes usar /t como si de un printf se tratase:
cout<<"/t tal y tal";
|
|
|
En línea
|
|
|
|
Gagy
Desconectado
Mensajes: 21
|
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
Mensajes: 1.314
|
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: 1ªh evaluacion 2ªh evaluacion 3ªh evaluacion Juan 5.2 6.2 8 La nota media de Juan es 6.72 Pepe 6.1 7 8 La nota media de Pepe es 7.22 Antonio 3.7 2.6 4 La nota media de Antonio es 3.38 Ana 8 8.6 9 La nota media de Ana es 8.64 Alfonso 2.3 2.4 3 La nota media de Alfonso es 2.62 Mercedes 7.2 7.7 8.7 La nota media de Mercedes es 8 El alumno con mas nota media es Ana con 8.64 puntos El alumno con menos nota media es Alfonso con 2.62 puntos
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
Mensajes: 21
|
Gracias!
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Gracias!
De nada. Por cierto, al final logré alinear el texto: 1ªh 2ªh 3ªh Juan 5.2 6.2 8.0 La nota media de Juan es 6.7 Pepe 6.1 7.0 8.0 La nota media de Pepe es 7.2 Antonio 3.7 2.6 4.0 La nota media de Antonio es 3.4 Ana 8.0 8.6 9.0 La nota media de Ana es 8.6 Alfonso 2.3 2.4 3.0 La nota media de Alfonso es 2.6 Mercedes 7.2 7.7 8.7 La nota media de Mercedes es 8.0 El alumno con mas nota media es Ana con 8.6 puntos El alumno con menos nota media es Alfonso con 2.6 puntos
Saluditos!. ....
|
|
|
En línea
|
|
|
|
Gagy
Desconectado
Mensajes: 21
|
Por cierto, ¿hay alguna manera de borrar este tema?
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Tabla graphika :S
Diseño Gráfico
|
Jeferi
|
1
|
1,579
|
16 Julio 2004, 09:09 am
por Jalbe
|
|
|
Duda sobre insersion a tabla html desde tabla sql
Bases de Datos
|
mokoMonster
|
2
|
3,946
|
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
|
31 Julio 2010, 13:05 pm
por kinos
|
|
|
Tabla dentro de tabla.
Java
|
KenoChile
|
2
|
2,771
|
10 Agosto 2012, 16:31 pm
por KenoChile
|
|
|
Tabla php
PHP
|
jalbtercero
|
8
|
3,476
|
20 Mayo 2016, 16:23 pm
por jalbtercero
|
|