Ver Mensaje Individual
  #10 (permalink)  
Antiguo 29/03/2016, 13:25
vizen
 
Fecha de Ingreso: enero-2014
Mensajes: 60
Antigüedad: 10 años, 3 meses
Puntos: 1
Respuesta: DUDA Promedios con c++

hola alanjo, veo que te lo has currado y ya lo tienes, por si se te escapa
algo te mando el codigo comentado

si esto te lo paso al principio, no hubieses aprendido nada y en los examenes
no hay foro

para eferion las gracias por otra de sus clases, se aprende mucho siguiendo
tus ayudas y comentarios

Código c:
Ver original
  1. #include <iostream>
  2. #include <stdio.h>
  3.  
  4.     /* Valores de las constantes*/
  5.  
  6.     // esta constante es la que nos dice cuantas notas tiene el alumno
  7.     #define MAX_NOTA 5
  8.     // aqui tenemos la nota mas baja (que deberia ser cero no uno)
  9.     #define NOTA_BAJA 0
  10.     // aqui la nota mas alta
  11.     #define NOTA_ALTA 10
  12.  
  13.     int main()
  14.     {
  15.         // en notas tenenos la cantidad de notas del alumno algo asi como cuantos examenes
  16.         int notas    = MAX_NOTA;
  17.         // aqui guardaremos la menor nota de todas, se inicializa a la maxima
  18.         // nota porque cualquier nota sera menor o igual asi que acertaremos
  19.         int notaMin  = NOTA_ALTA ;
  20.         // en esta es al reves ponemos la minima para que al comparar simpre sea
  21.         // mayor o igual a la nota mas baja
  22.         int notaMax  = NOTA_BAJA;
  23.         // este es un acumulador de notas que dividido por el numero de examenes
  24.         // nos dara el promedio
  25.         int sumNotas = 0;
  26.  
  27.         // este ciclo se repetira MAX_NOTA veces, es decir se repetira tantas
  28.         // veces como examenes (o ejercicios, o ...) tenga la asignatura
  29.         for (int i = 0; i < MAX_NOTA; i++)
  30.         {
  31.             //pedimos una nota
  32.             std::cout << endl << "Nota " << i << ":";
  33.             std::cin >> notas;
  34.  
  35.             // la acumulamos
  36.             sumNotas += notas;
  37.  
  38.             // si es menor que la nota minima (que la primera vez es la maxima)
  39.             // la guardaremos como nota menor
  40.             if (notas < notaMin) notaMin = notas;
  41.             // si la nota introducida es mayor que nota maxima la guardaremos
  42.             // como mayor (la primera vez se compara con la menor nota posible)
  43.             if (notas > notaMax) notaMax = notas;
  44.  
  45.         }
  46.  
  47.         // aqui se visualizan los resultados
  48.         std::cout << endl << "La nota promedio es: " << sumNotas / MAX_NOTA << endl;
  49.         std::cout << "La nota más alta es: " << notaMax << endl;
  50.         std::cout << "La nota más baja es: " << notaMin << endl;
  51.  
  52.         getchar();
  53.  
  54.         return 0;
  55.     }

alanjo, la insistencia en que probases tantas opciones es porque que cuando
pides un dato se comprueba si esta dentro del rango que esperas, para que el
programa no se quede colgado por algun pequeño error

en este caso seria algo como esto:
Código c:
Ver original
  1. // si notas es menor que cero o notas es mayor a diez vuelve a pedir el dato
  2. // por que este erroneo    
  3.  
  4.     do{
  5.         std::cout << endl << "Nota " << i << ":";
  6.         std::cin >> notas;
  7.     }while(notas<NOTA_BAJA || notas>NOTA_ALTA);

chao chao

Última edición por vizen; 29/03/2016 a las 13:33