Introducción al Lenguaje de Programación C

Document Sample
Introducción al Lenguaje de Programación C Powered By Docstoc
					Introducción al Lenguaje de
      Programación C
                Introducción
• El lenguaje C se desarrolla a mediados de los años
  70 por B. Kernighan Y D. Ritchie.
• Ligado al sistema operativo UNIX.
• Es un lenguaje de alto nivel con facilidades de
  bajo nivel.
• Permite programación estructurada (como Pascal
  o Módula) y manipulación de cantidades mínimas
  de información (como el ensamblador).
• Buen lenguaje para programar, pero mal lenguaje
  para aprender a programar.
    Estructura de los programas
  declaración de importaciones
  definición de constantes
  definición de tipos de datos
• main(){
     declaración de variables
     instrucciones ejecutable
}
Observación: el nombre del programa es asignado al
  nombre del fichero que lo contiene
               Declaración de importaciones

•   Se utiliza para indicar al compilador que subalgoritmos mencionados en el
    programa no se encuentran implementados por éste.

•   Estos procedimientos se encuentran disponibles en estructuras llamadas
    módulos o bibliotecas que tienen asociado un fichero con extensión .h que
    contiene la lista de procedimientos importables.

•   Para incluirlos es suficiente una instrucción del tipo:

                             #include <nombre_módulo.h>

•   Ejemplos de módulos empleados frecuentemente:
     – stdio: procedimientos de entrada/salida
     – math: funciones matemáticas
     – string: tratamiento de cadenas de caracteres
      Definición de constantes
• Asigna a un identificador una cadena de
  caracteres. Un proceso previo a la
  compilación substituye el identificador por
  la cadena.
• Sintaxis:
• #define identificador cadena
    Definición de tipos de datos
• La definición de tipos permite definir tipos
  de datos no proporcionados por el lenguaje.

• C no posee ninguna implementación
  primitiva del tipo de datos booleano. Una
  definición de este tipo se hace:

    typedef enum {FALSO=0, CIERTO=1} booleano;
       Declaración de variables
• Se utilizan cadenas de hasta 32 caracteres
  alfanuméricos que pueden contener el guión _
  para unir palabras. Ha de comenzar por letra.
• Tradicionalmente se utilizan letras minúsculas
  reservándose las mayúsculas para dar nombres a
  constantes.
• La declaración de variables se realiza de manera
  similar al pseudocódigo.
• Al trabajar sobre máquinas reales sólo se pueden
  representar un número finito de datos.
        Declaración de variables
• Esto no genera problemas para el conjunto de caracteres.
• Si para representar número enteros. Se genera un tamaño
  máximo de enteros representables por el computador y
  dentro de este rango la aritmética es exacta.
• Lo mismo ocurre con los números reales, con el problema
  añadido de que se deben representar de forma aproximada,
  truncándolos, usando lo que se llama la notación de punto
  flotante. De esta forma un número flotante representa en
  realidad muchos números trucados
            Tipos elementales
Tipo en C      Número de bits   Rango

char           8                0...255

int            16               -32768...32767

long int       32               -2147483648...
                                2147483647
float          32               3.4E-38...
                                3.4E+38
double         64               1.7E-308...
                                1.7E+308
        Operadores aritméticos
Suma                    +

Producto                *

Diferencia              -

División entera (div)   /

Resto (mod)             %
     Operadores booleanos
Y              &&


O              ||


No             !
        Operadores relacionales
Igual               ==
Distinto            !=
Menor que           <
Mayor que           >
Menor o igual que   <=
Mayor o igual que   >=
                    El tipo carácter
• El almacenamiento de caracteres se hace en palabras de 8 bits. Esto
  limita el almacenamiento de caracteres a 256.
• De estos 256 los 128 primeros son los mismos en todas partes y siguen
  el orden ASCII (American Society for Computer Interchange
  Information). Los 128 restantes varían en función de características
  geográficas y culturales.
• Se llama código ASCII a la funcuión que asigna a cada carácter un
  entero de 0...255.
• La parte estándar del código ASCII contiene las letras mayúsculas, las
  minúsculas y los dígitos y que cada uno de estos tres subconjuntos está
  ordenado en su orden natural.
• Ejemplo:
• „A‟<= c && c <= „Z‟
• El predicado anterior indica si la variable c es una letra mayúscula.
                   Caracteres
• La función (int) aplicada a una variable de tipo
  carácter retorna su código ASCII.
 (int) c – (int) „0‟
• La función (char) es la inversa de la función (int).

• No es recomendable apoyarse en este tipo de
  funciones, salvo situación imprescindible.
            Lecturas y escrituras
• Para leer variables desde el teclado la instrucción
  pertinente es:

• scanf(“formato_1,...,formato_n”,
  &variable_1,...,&variable_n)

• Donde formato es algo que depende del tipo de variable:
• Formato es %d para leer un entero o %ld para leer un
  entero largo o %f para leer un real.
• Para leer un carácter se puede usar:
• variable= getchar();
              Escritura por pantalla
• Para escribir en pantalla se utiliza printf.

   Ejemplo:

• printf(“El valor buscado para %d iteraciones \n es %d”, n, suma);

• Que producirá para los valores 5 para n y 300 para suma el mensaje:
        El valor buscado para 5 iteraciones
        s 300
• Para imprimir caracteres puede usarse putchar(); que imprime su
  argumento en la pantalla.
                      Instrucciones
• Asignaciones.
La instrucción x:=E, se traduce por:

                                  x== E;
• Bucles.

La instrucción

mientras B hacer S fmientras se traduce por:

                             while (B) { S }
                      Instrucciones
• Alternativas:
La instrucción:
   si
         B1 entonces S1
         B2 entonces S2
         ....
         Bn entonces Sn
   fsi

Se traduce por:
         if (B1) {S1}
         else if (B2) {S2}
         ...
         else if (Bn) {Sn}
      Consideraciones sobre la
            alternativa
• En caso de tener una sola instrucción no
  hace falta encerrarla entre llaves.
• Si Bn es la negación de las anteriores
  podemos no escribir la parte if (Bn).
• Si una secuencia Sk es vacia se omite la
  rama completa.