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.

Introduccion allenguajedeprogramacion

  • 1.
    Introducción al Lenguajede Programación C
  • 2.
    Introducción El lenguajeC 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.
  • 3.
    Estructura de losprogramas 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
  • 4.
    Declaración de importacionesSe 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
  • 5.
    Definición de constantesAsigna a un identificador una cadena de caracteres. Un proceso previo a la compilación substituye el identificador por la cadena. Sintaxis: #define identificador cadena
  • 6.
    Definición de tiposde 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;
  • 7.
    Declaración de variablesSe 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.
  • 8.
    Declaración de variablesEsto 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
  • 9.
    Tipos elementales Tipoen 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
  • 10.
    Operadores aritméticos Suma+ Producto * Diferencia - División entera (div) / Resto (mod) %
  • 11.
  • 12.
    Operadores relacionales Igual== Distinto != Menor que < Mayor que > Menor o igual que <= Mayor o igual que >=
  • 13.
    El tipo carácterEl 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.
  • 14.
    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.
  • 15.
    Lecturas y escriturasPara 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();
  • 16.
    Escritura por pantallaPara 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.
  • 17.
    Instrucciones Asignaciones. Lainstrucción x:=E, se traduce por: x== E; Bucles. La instrucción mientras B hacer S fmientras se traduce por: while (B) { S }
  • 18.
    Instrucciones Alternativas: Lainstrucció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}
  • 19.
    Consideraciones sobre laalternativa 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.