domingo, 14 de noviembre de 2010

Ejemplo Lenguaje C (Lab)

Hola compañeros, para laboratorio de lenguajes de programación, expongo un código en lenguaje C, que se realizo el semestre pasado que la idea es obtener el promedio en donde se recoge una serie de notas( por las letras A-B-C-D-F) para así realizar el promedio ya sea numéricamente o alfabéticamente, esta comentado parte por parte para entender lo que hace.


Recuerden que el EOF(End-of-file) indica que ya no hay información en un flujo de datos, en este caso, en ubuntu con las teclas Ctrl-D haces que te muestre el resultado del programa.


En este ejemplo, podemos ver los diferentes controles de programa como while, switch con case, e if's anidados en la parte final.


Para ver el código puedes mover con la barra de desplazamiento en la parte de abajo.

#include <stdio.h>  //incluimos libreria


int main(int argc, char** args)  //iniciamos funcion main
{
      int grade; //declaramos variable que leera la nota
      int aCount = 0, bCount = 0, cCount = 0, dCount = 0, fCount = 0; //iniciar los contadores en 0
      
      int promedio, multi, suma; //declaramos variables para realizar la operacion del promedio
      
      printf("Ingresa las notas del grupo.\n"); //imprime mensajes al usuario
      printf("Ingresa un caracter EOF para finalizar.\n");
      
      while( ( grade = getchar() ) != EOF) { //ciclo mientras grado sea diferente a EOF, que es end-of-file
             switch (grade) { //iniciamos swich que condicionara a grado
                    case 'A': case 'a': // si es letra a, la empieza a contar
                         ++aCount;
                         break;
                         
                    case 'B': case 'b':// si es letra b, la empieza a contar
                         ++bCount;
                         break;
                    
                    case 'C': case 'c':// si es letra c, la empieza a contar
                         ++cCount;
                         break;
                         
                    case 'D': case 'd':// si es letra d, la empieza a contar
                         ++dCount;
                         break;
                         
                    case 'F': case 'f':// si es letra f, la empieza a contar
                         ++fCount;
                         break;
                         
                    case '\n': case ' ':// si es espacio o salto de linea no hace nada
                         break;
                         
                    default: //si no cumple ninguna, se llama default
                       printf("Nota incorrecta, ingresa nueva nota\n"); // imprime mensaje al usuario
                       break;
             }//fin del switch
      }//fin del while
      
      printf("\nVeces que ingresaste la nota: \n"); //muestra resultados de las veces
      printf("A: %d\n", aCount);
      printf("B: %d\n", bCount);
      printf("C: %d\n", cCount);
      printf("D: %d\n", dCount);
      printf("F: %d\n", fCount);
      
      /* Para hacer el promedio yo hice una escala de la siguiente manera 
      A = 100
      B = 90
      C = 80
      D = 70
      F = 60 */
      
      multi=(aCount*100)+(bCount*90)+(cCount*80)+(dCount*70)+(fCount*60); //para hacer el promedio multiplicamos el numero de 
                                                                          //de veces por la escala antes realizada
      suma=aCount+bCount+cCount+dCount+fCount; //sumamos el numero notas ingresadas
      
      promedio=(multi)/(suma);  //Suma de todos los valores ya hechos numericos dividido entre el n˙mero de notas
       
      if (promedio == 100)  //Si es igual a 100 imprima mensaje
      printf("El promedio en nota es A\n");
      else if (promedio > 90) //Si es mayor que 90 imprima mensaje
      printf("El promedio en nota es B\n");
      else if (promedio > 80) //Si es mayor que 80 imprima mensaje
      printf("El promedio en nota es C\n");
      else if (promedio > 70) //Si es mayor que 70 imprima mensaje
      printf("El promedio en nota es D\n");
      else if (promedio > 60) //Si es mayor que 60 imprima mensaje
      printf("El promedio en nota es F\n");
      printf("El promedio en numeracion es de -> %d \n", promedio); //imprime el promedio en cantidad

      return 0; //finalizamos programa
}

Espero que mi explicación les sirva, si tienen algún comentario acerca de esta entrada, espero me digan ya que estoy abierto a cualquier error.

1 comentario: