domingo, 21 de noviembre de 2010

Lenguaje C (Puntos Extra)


¿Que es el Lenguaje C?

Es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL. Hasta ahora es uno de los lenguajes mas utilizados y de importancia.

El lenguaje C nació en los Laboratorios Bell de AT and T y ha sido asociado con el sistema operativo UNIX, ya que su desarrollo se realizó en este sistema y debido a que tanto UNIX como el propio compilador C y la casi totalidad de los programas y herramientas de UNIX, fueron escritos en C. Su eficacia y su claridad han hecho que el lenguaje ensamblador apenas haya sido utilizado en UNIX.  

Hasta hoy es uno de los lenguajes de programación mas aceptados por los programadores, por que hace una conjugación en lenguaje de alto nivel y lenguaje máquina.

Los tipos de datos basicos son:
  • "CHAR" (carácter)
  • "INT" (enteros)
  • "FLOAT" (Reales en simple presición) 
  •  "DOUBLE" (Reales en doble Presición)
  • "SHORT" (Enteros de longitud<=longitud de un int)
  • "LONG" (Enteros de longitud >= longitud de un entero)
  • "UNSIGNED" (Enteros sin signo)

Con la popularidad de las microcomputadoras muchas compañías comenzaron implementar su propio C por lo cual surgieron discusiones  entre sí. Por esta razón ANSI, estableció un comité en 1983 para crear una definición no buena del lenguaje C e independiente de la máquina que pudiera utilizarse en todos los tipos de C.

Algunos de las C existentes son:
  1.  
  2. -Quick C
  3. -C++
  4. -Turbo C
  5. -Turbo C ++
  6. -Borland C
  7. -Borland C++
  8. -Microsoft C
Librerias C

C, constas de librerias para que pueda liberar algunas palabras recervadas, tienes que ponerlas librerias al principio de cada programas para que pueda correr el programa dependiento de tus palabras recervadas, algunas librerias que hay son:

  
  • string.h

   
  • math.h

   
  • stdio.h

   
  • time.h

   
  • stdlib.h

   
  • ctype.h

   
  • locale.h

   
  • signal.h

   
  • setjmp.h



Cabe destacar que hay nombres que no se pueden utilizar pr ser palabras reservadas del lenguaje C, por ejemplo algunas podrian ser:

auto            do            goto           signed            break       case      char       const         defaul      for while            if               swith           doubl               else             enum    float       int             long          short union            void          struct           sizeof               typedef

cuenta con operadores aritmeticos como son los

+,-                 suma y resta
*,/,%             multiplicación, división, modulo

 If

Estructura de el if en lenguaje C es:

If(condicion)
operacion;

For

Estructura de un for en lenguaje C es:
For(i=v;i(rango); i(++,--))
{
Proceso;
}

Funciones

En lenguaje C también puedes declarar funciones, seria de la siguiente manera:

Tipo-de-resultado nombre-de-funcion(parametros)
{
Instrucciones;
}

Arreglos

Tambien en lenguaje C se pueden declarar arreglos, seria de la siguiente manera:
Main()
{
Int A[10]; /* declaración de arreglo entero de 10 elementos
Float[5];  /* declaración de arreglo real de 5 elementos
}

Esas y muchas mas instrucciones tiene el lenguaje C, puse esas por que son las mas importantes, pero pueden aver mucho mas, como las typedef, struct, swich etc.

Ejemplo

#include
/* declaracion de funciones */
void leer_datos();
void inciso_a();
void inciso_b();
void inciso_c();
void inciso_d();

/* declaracion de variables globales */
int I, J, FILA, COLUMNA, EXAMENES, ALUMNOS,MAYORES[10];
int CONTAR,POSICION;
float CAL[10][10], PROMEDIO[10],MAYOR,PROM_EX[10],SUMA;
float APROBADOS,REPROBADOS,PORC_APROBADOS, PORC_REPROBADOS;

main()
{

   /* llamada a las funciones */
   leer_datos();
   inciso_a();
   inciso_b();
   inciso_c();
   inciso_d();
} /* fin de la funcion main() */


/* ------------------------------------------- */
/* definicion de funciones */

void leer_datos()
{

  printf("¨Cuantos Alumnos son? \n");
  scanf("%d",&ALUMNOS);
  printf("¨Cuantos Examenes son? \n");
  scanf("%d",&EXAMENES);
  for(I=1;I<=ALUMNOS;I++)
  {
    
     printf("Dame las Calificaciones del Alumno # %d\n",I);
     for(J=1;J<=EXAMENES;J++)
     {
        do{
               printf("Dame la calififacion del Examen %d\n",J);
           scanf("%f",&CAL[I][J]);
               if(CAL[I][J]<0 || CAL[I][J]>100)
               {
                  printf("Calificacion Invalida,");
                  printf("favor de insertar otro numero\n");
               } /* fin del if */
             }while(CAL[I][J]<0 || CAL[I][J]>100);
     } /* fin del for(J=1;J<=EXAMENES;J++) */
  } /* fin del for(I=1;I<=ALUMNOS;I++) */
  printf("\n\nPulse cualquier tecla para continuar\n");
  getche();
  return;
} /* fin de la funcion leer_datos */

/* ------------------------------------------- */
void inciso_a()
{
 
   SUMA=0;
   for(I=1;I<=ALUMNOS;I++)
   {
     for(J=1;J<=EXAMENES;J++)
     {
             SUMA=SUMA+CAL[I][J];
     } /* fin del for(J=1;J<=EXAMENES;J++) */
     PROMEDIO[I]=SUMA/EXAMENES;
     SUMA=0;
   } /* fin del for(I=1;I<=ALUMNOS;I++) */

   FILA=4;
   COLUMNA=8;
   printf("Promedios por Alumno\n");
   for(J=1;J<=EXAMENES;J++)
   {
      printf("EX%d",J);
      COLUMNA=COLUMNA+10;
   } /* fin del for(J=1;J<=EXAMENES;J++)*/
   printf("Promedio");

   FILA=5;
   for(I=1;I<=ALUMNOS;I++)
   {
     COLUMNA=5;
     for(J=1;J<=EXAMENES;J++)
     {
            printf("%8.2f",CAL[I][J]);
            COLUMNA=COLUMNA+10;
     } /* fin del for(J=1;J<=EXAMENES;J++) */
     printf("Alumno #%d=%8.2f\n",I,PROMEDIO[I]);
     FILA=FILA+1;
  } /* fin del for(I=1;I<=ALUMNOS;I++) */
  printf("\n\nPulse cualquier tecla para continuar\n");
  getche();
  return;
} /* fin de la funcion inciso_a */

/* ------------------------------------------- */
void inciso_b()
{
   /* tercer examen */
   J=3;
   MAYOR=CAL[1][J];
   for(I=2;I<=ALUMNOS;I++)
   {
       if(CAL[I][J]>MAYOR)
       {
              MAYOR=CAL[I][J];
       } /* fin del if() */
   } /* fin del for(I=1;I<=ALUMNOS;I++) */

   for(I=1;I<=ALUMNOS;I++)
   {
       if(CAL[I][J]==MAYOR)
       {
               MAYOR=CAL[I][J];
               CONTAR=CONTAR+1;
               MAYORES[CONTAR]=I;
       } /* fin del if() */
   } /* fin del for(I=1;I<=ALUMNOS;I++) */

   printf("Alumnos con la calificacion mas Alta en el Tercer Examen\n");
   for(I=1;I<=CONTAR;I++)
   {
     printf("Alumno Numero %d\n",MAYORES[I]);
   } /* fin del for(I=1;I<=CONTAR;I++) */
   printf("\n\nPulse cualquier tecla para continuar\n");
   getche();
   return;
} /* fin de la funcion inciso_b */

/* ------------------------------------------- */
void inciso_c()
{
   SUMA=0;
   for(I=1;I<=ALUMNOS;I++)
   {
     for(J=1;J<=EXAMENES;J++)
     {
             PROM_EX[J]=PROM_EX[J]+CAL[I][J];
     } /* fin del for(J=1;J<=EXAMENES;J++) */
   } /* fin del for(I=1;I<=ALUMNOS;I++) */

   for(J=1;J<=EXAMENES;J++)
   {
      PROM_EX[J]=PROM_EX[J]/EXAMENES;
      printf("Promedio en el examen #%d = %8.2f\n",J,PROM_EX[J]);
   } /* fin del for for(J=1;J<=EXAMENES;J++) */

   MAYOR=PROM_EX[1];
   for(I=2;I<=ALUMNOS;I++)
   {
     if(PROM_EX[I]>MAYOR)
       {
              MAYOR=PROM_EX[I];
              POSICION=I;
       } /* fin del if() */
   } /* fin del for(I=2;I<=ALUMNOS;I++) */
   printf("El Examen del promedio mas alto es %d con %8.2f\n",POSICION,MAYOR);
   printf("\n\nPulse cualquier tecla para continuar\n");
   getche();
   return;
} /* fin de la funcion inciso_c */


/* ------------------------------------------- */
void inciso_d()
{
 
   for(I=1;I<=ALUMNOS;I++)
   {
      if(PROMEDIO[I]>=70)
      {
             APROBADOS=APROBADOS+1;
      }
      else
      {  REPROBADOS=REPROBADOS+1;

      } /* fin del if() */
   } /* fin del for(I=1;I<=ALUMNOS;I++) */

   PORC_APROBADOS=APROBADOS/ALUMNOS*100;
   PORC_REPROBADOS=REPROBADOS/ALUMNOS*100;
   printf("Aprobados  = %8.2f  Porcentaje Aprobados=%8.2f\n",APROBADOS,PORC_APROBADOS);
   printf("Reprobados = %8.2f  Porcentaje Reprobados=%8.2f\n",REPROBADOS,PORC_REPROBADOS);
   printf("\n\nPulse cualquier tecla para volver a la pantalla de edicion \n");
   getche();
   return;
} /* fin de la funcion inciso_d */

Ejecucion


1 comentario:

  1. +2 (es muy importante que pongas referencias cuando es evidente que no estás inventando esto tú solito)

    ResponderEliminar