PROGRAMACIN MULTIMEDIA INTRODUCCIN LENGUAJE C 4 Octubre2001 Carlos
PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C 4 -Octubre-2001 © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N.
Programación Multimedia Introducción al C. Características - propósito general compilado nivel medio estructurado portable pequeño © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 2
Programación Multimedia Introducción al C. Estructura declaraciones globales main( ){ variables locales Bloque de sentencias } funcion 1( ){ variables locales bloque de sentencias } © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 3
Programación Multimedia Introducción al C. Comentarios /* Este es un ejemplo de comentario */ /* Un comentario también puede estar escrito en varias líneas */ El comentario, contenido entre estos dos símbolos, no será tenido en cuenta por el compilador. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 4
Programación Multimedia Introducción al C. Palabras reservadas char int float double if else do while for switch short long extern static default continue break register sizeof typedef (no se pueden usar como identificadores) © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 5
Programación Multimedia Introducción al C. Identificadores - Nombres que damos a funciones y variables - Secuencia de letras y dígitos (admite subrayado) - No admite acentos ni eñes - No pueden empezar por número - Distinguen mayúsculas de minúsculas © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 6
Programación Multimedia Introducción al C. Tipos básicos TIPO Tamaño Rango de valores char 1 byte -128 a 127 int 2 bytes -32768 a 32767 float 4 bytes 3'4 E-38 a 3'4 E+38 double 8 bytes 1'7 E-308 a 1'7 E+308 © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 7
Programación Multimedia Introducción al C. Cualificadores signed (por defecto) signed char, signed int unsigned char, unsigned int short char, short int (por defecto) long int (4 bytes), long double (10 bytes) Se pueden combinar: signed long int = signed long = long unsigned long int = unsigned long © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 8
Programación Multimedia Introducción al C. Variables - Tipos de datos referenciados por un identificador - Su contenido puede ser modificado en el programa - Sólo pueden pertenecer a un tipo - Para utilizarla tiene que ser declarada antes - Es posible declarar e inicializar variables del mismo tipo en la misma sentencia: int num 1=4, num 2, num 3=6; © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 9
Programación Multimedia Introducción al C. Tipos de variables Globales: Se declaran antes de la función main(). Pueden ser utilizadas en cualquier parte del programa y se destruyen al finalizar éste. Locales: Se declaran dentro de la función en la que vayan a ser utilizadas. Sólo existe dentro de esta función y se destruyenal finalizar ésta. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 10
Programación Multimedia Introducción al C. Constantes - Mantienen su valor a lo largo de todo el programa - Para idicar la compilador que es una constante usaremos la directiva #define #include <stdio. h> #define pi 3. 1416 #define escribe printf main() { /* Calcula el perímetro */ int r; escribe("Introduce el radio: "); scanf("%d", &r); escribe("El perímetro es: %f", 2*pi*r); } © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 11
Programación Multimedia Introducción al C. Secuencias de escape n salto de línea b retroceso t tabulación horizontal v tabulación vertical \ contrabarra f salto de página ' apóstrofe " comillas dobles fin de una cadena de caracteres © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 12
Programación Multimedia Introducción al C. Operadores aritméticos Binarios (infijos): + Suma / División - Resta * Multiplicación % Módulo (resto) Unarios (prefijos y postfijos): ++ Incremento (suma 1) - - Decremento (resta 1) - Cambio de signo © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 13
Programación Multimedia Introducción al C. Operadores de asignación = Asignación simple *= Multiplicación += Suma /= División -= Resta %= Módulo (resto) n=n+3 se puede escribir n+=3 k=k*(x-2) lo podemos sustituir por k*=x-2 © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 14
Programación Multimedia Introducción al C. Precedencia de operadores aritméticos Mayor precedencia ( ), ++, - - *, /, % +, - Menor precendencia A igual precedencia: de izquierda a derecha © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 15
Programación Multimedia Introducción al C. Operadores relacionales > Mayor que < Menor que >= Mayor o igual que <= Menor o igual que == Igual que != Distinto que - Devuelven 1 para verdadero y 0 para falso - Se evalúan de izquierda a derecha - == y != tienen menos precedencia que el resto © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 16
Programación Multimedia Introducción al C. Operadores lógicos && AND || OR ! NOT (El valor contrario) © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 17
Programación Multimedia Introducción al C. Sentencias condicionales: if else if (condición) sentencia; if (condición) sentencia 1; else sentencia 2; - La sentencia puede ser a su vez del tipo if else - Existe la posibilidad de utilizar llaves para ejecutar más de una sentencia dentro de la misma condición. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 18
Programación Multimedia Introducción al C. Sentencias condicionales: switch (variable){ case contenido_variable 1: sentencias; break; case contenido_variable 2: sentencias; break; default: sentencias; } - Cada case puede incluir una o más sentencias sin necesidad de ir entre llaves, ya que se ejecutan todas hasta que se encuentra la sentencia BREAK. -La variable evaluada sólo puede ser de tipo entero o caracter. - default ejecutará las sentencias que incluya, en caso de que la opción escogida no exista. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 19
Programación Multimedia Introducción al C. Bucles while (condición) sentencia; do while do{ sentencia 1; sentencia 2; } while (condición); for (inicialización; condición; incremento){ sentencia 1; sentencia 2; } break continue goto © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 20
Programación Multimedia Introducción al C. Funciones - bloques de código utilizados para dividir un programa en partes más pequeñas, cada una de las cuáles tendrá una tarea determinada. tipo_función nombre_función (tipo y nombre de argumentos) { bloque de sentencias } - Las funciones pueden ser llamadas desde la función main o desde otras funciones. - Nunca se debe llamar a la función main desde otro lugar del programa. - Los argumentos de la función y sus variables locales se destruirán al finalizar la ejecución de la misma. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 21
Programación Multimedia Introducción al C. Funciones (2) - pueden devolver un valor: return(valor o expresión) - el valor devuelto debe asignarse a una variable - variables locales del mismo nombre prevalecerán sobre globales - se deben declarar (prototipos). O antes del main, o en otro fichero (#include) © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 22
Programación Multimedia Introducción al C. Funciones (y 3) - Paso de parámetros por valor. Trabajamos con una copia. No se pueden mandar arrays por valor. - Paso de parámetros por referencia. Enviamos la dirección de memoria. Trabajamos con el original. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 23
Programación Multimedia Introducción al C. Arrays -Identificador que referencia un conjunto de datos del mismo tipo, accesibles mediante índices. -El índice será un valor entero y positivo. En C los arrays comienzan por la posición 0. tipo nombre [tamaño]; tipo nombre []={ valor 1, valor 2. . . } tipo nombre [tamaño 1][tamaño 2]. . . ; - los arrays únicamente pueden ser enviados a una función por referencia. Para ello deberemos enviar la dirección de memoria del primer elemento del array. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 24
Programación Multimedia Introducción al C. Punteros tipo *nombre; Existen dos operadores especiales para trabajar con punteros: & y *. El primero devuelve la dirección de memoria de su operando. Por ejemplo, si queremos guardar en el puntero x la dirección de memoria de la variable num, deberemos hacer lo siguiente: x=# El segundo devuelve el valor de la variable cuya dirección es contenida por el puntero. Este ejemplo sitúa el contenido de la variable apuntada por x, es decir num, en la variable a: a=*x; © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 25
Programación Multimedia Introducción al C. Estructuras struct tipo_estructura { tipo_variable nombre_variable 1; tipo_variable nombre_variable 2; tipo_variable nombre_variable 3; }; struct tipoestructura fijo - Para poder declarar una variable, la estructura tiene que estar declarada antes. (y antes del main) -Acceso a los campos: variable. campo -permiten pasar el contenido de una estructura a otra, siempre que sean del mismo tipo -struct trabajador fijo={"Pedro", "Hernández Suárez", 32, "gerente"}; -struct notas alumno={"Carlos Pérez", {8, 7, 9, 6, 10}}; © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 26
Programación Multimedia Introducción al C. Ficheros Apertura: FILE *pf; pf=fopen("datos. txt", "r"); if (pf == NULL) printf("Error al abrir el fichero"); Cierre: fclose(puntero); Lectura/Escritura fwrite( *buffer, tamaño, nº de veces, puntero_fichero ); fread( *buffer, tamaño, nº de veces, puntero_fichero ); © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N. 27
PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C 4 -Octubre-2001 © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R. W. N.
- Slides: 28