PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. ©...

28
PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C

Transcript of PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. ©...

Page 1: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

PROGRAMACIÓN MULTIMEDIA

INTRODUCCIÓN LENGUAJE C

Page 2: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

2

Programación Multimedia Introducción al C.

Características

- propósito general- compilado- nivel medio- estructurado- portable- pequeño

Page 3: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

3

Programación Multimedia Introducción al C.

Estructura

declaraciones globales

main( ){

variables localesBloque de sentencias }

funcion1( ){ variables localesbloque de sentencias}

Page 4: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

4

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.

Page 5: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

5

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)

Page 6: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

6

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

Page 7: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

7

Programación Multimedia Introducción al C.

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

Tipos básicos

Page 8: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

8

Programación Multimedia Introducción al C.

Cualificadores

signed (por defecto) signed char, signed int

unsigned unsigned char, unsigned int

short (por defecto) short char, short int

long long int (4 bytes), long double (10 bytes)

Se pueden combinar: signed long int = signed long = long unsigned long int = unsigned long

Page 9: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

9

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 num1=4,num2,num3=6;

Page 10: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

10

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.

Page 11: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

11

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);

}

Page 12: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

12

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

\0 fin de una cadena de caracteres

Page 13: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

13

Programación Multimedia Introducción al C.

Operadores aritméticos

Binarios (infijos):

+ Suma - Resta * Multiplicación / División % Módulo (resto)

Unarios (prefijos y postfijos):

++ Incremento (suma 1)

- - Decremento (resta 1)

- Cambio de signo

Page 14: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

14

Programación Multimedia Introducción al C.

Operadores de asignación

= Asignación simple += Suma -= Resta *= Multiplicación /= División %= Módulo (resto)

n=n+3 se puede escribir n+=3

k=k*(x-2) lo podemos sustituir por k*=x-2

Page 15: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

15

Programación Multimedia Introducción al C.

Precedencia de operadores aritméticos

Mayor precedencia ( ),++,- - *, /, % +, - Menor precendencia

A igual precedencia: de izquierda a derecha

Page 16: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

16

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

Page 17: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

17

Programación Multimedia Introducción al C.

Operadores lógicos

&& AND

|| OR

! NOT (El valor contrario)

Page 18: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

18

Programación Multimedia Introducción al C.

Sentencias condicionales: if else

if (condición) sentencia;

if (condición) sentencia1;

else sentencia2;

-  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.

Page 19: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

19

Programación Multimedia Introducción al C.

Sentencias condicionales: switchswitch (variable){

case contenido_variable1:

sentencias;

break;

case contenido_variable2:

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.

Page 20: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

20

Programación Multimedia Introducción al C.

Bucleswhile

while (condición) sentencia;

do while

do{ sentencia1; sentencia2; } while (condición);

for

for (inicialización;condición;incremento){ sentencia1; sentencia2; }

break

continue

goto

Page 21: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

21

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.

Page 22: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

22

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)

Page 23: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

23

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.

Page 24: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

24

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.

Page 25: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

25

Programación Multimedia Introducción al C.

Punterostipo *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=&num;

  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;

Page 26: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

26

Programación Multimedia Introducción al C.

Estructurasstruct tipo_estructura

{ tipo_variable nombre_variable1;

tipo_variable nombre_variable2;

tipo_variable nombre_variable3; };

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}};

Page 27: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

© Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación Oral R.W.N.

27

Programación Multimedia Introducción al C.

FicherosApertura:

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 );

Page 28: PROGRAMACIÓN MULTIMEDIA INTRODUCCIÓN LENGUAJE C. Programación Multimedia Introducción al C. © Carlos A. Lázaro Carrascosa. Laboratorio de Comunicación.

PROGRAMACIÓN MULTIMEDIA

INTRODUCCIÓN LENGUAJE C