Fundamentos de programación de Sistemas Embebidos ...

61
Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones Fundamentos de programaci´ on de Sistemas Embebidos Programaci´ on estructurada y lenguaje C Mg. Ing. E. Sergio Burgos Universidad Nacional de Entre R´ ıos Facultad de Ingenier´ ıa Especializaci´ on en Sistemas Embebidos 31/08/2018 1 / 28 Fundamentos de programaci´on de Sistemas Embebidos Programaci´on estructu

Transcript of Fundamentos de programación de Sistemas Embebidos ...

Page 1: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Fundamentos de programacion de Sistemas EmbebidosProgramacion estructurada y lenguaje C

Mg. Ing. E. Sergio Burgos

Universidad Nacional de Entre RıosFacultad de Ingenierıa

Especializacion en Sistemas Embebidos

31/08/2018

1 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 2: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructura de una aplicacion

#include <stdio.h>

int main(int argc , char * argv [])

{

float op1 , op2 , r;

printf("-= Suma de dos valores =-\n");

printf("Operador 1:");

scanf("%f", &op1);

printf("Operador 2:");

scanf("%f", &op2);

r = op1 + op2;

printf("Resultado: %.2f\n", r);

return 0;

}

2 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 3: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructura de una aplicacion

#include <stdio.h>

int main(int argc , char * argv [])

{

float op1 , op2 , r;

printf("-= Suma de dos valores =-\n");

printf("Operador 1:");

scanf("%f", &op1);

printf("Operador 2:");

scanf("%f", &op2);

r = op1 + op2;

printf("Resultado: %.2f\n", r);

return 0;

}

3 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 4: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructura de una aplicacion

#include <stdio.h>

int main(int argc , char * argv [])

{

float op1 , op2 , r;

printf("-= Suma de dos valores =-\n");

printf("Operador 1:");

scanf("%f", &op1);

printf("Operador 2:");

scanf("%f", &op2);

r = op1 + op2;

printf("Resultado: %.2f\n", r);

return 0;

}

4 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 5: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Variables

Toda variable consta de un nombre, un tipo y un valor.

Necesariamente ocupa un lugar en memoria, por lo que tiene una direccion asociada.

En funcion de su tipo, tiene un rango de valores que puede contener.

5 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 6: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Variables - Nombres

No podemos establecer cualquier nombre a una variable. Ciertas reglas deben cumplirse:

Solo pueden estar compuestas por letras, numeros y el caracter guion bajo ( )

El primer caracter del nombre debera ser una letra o guion bajo

No puede contener caracteres especiales tales como espacio en blanco, &, #, $, etc.

No pueden denominarse de la misma manera que palabras claves o reservadas del lenguaje(int, for, break, return, etc.)

6 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 7: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Variables - Tipos y rangos

Variables de tipo entero con signo

Tipo de datoRango de valores

Mınimo Maximo

char -128 127

short -32.768 32.767

int -2.147.483.648 2.147.483.647

long -2.147.483.648 2.147.483.647

long longmin: -9.223.372.036.854.775.808

max: 9.223.372.036.854.775.807

7 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 8: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Variables - Tipos y rangos

Variables de tipo entero sin signo

Tipo de datoRango de valores

Mınimo Maximo

unsigned char 0 255

unsigned short 0 65.535

unsigned int 0 4.294.967.295

unsigned long 0 4.294.967.295

unsigned long long 0 18.446.744.073.709.551.615

8 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 9: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Variables - Tipos y rangos

Variables de tipo real.

Tipo de dato Rango

floatmin: 1,175494e-38

max: 3,402823e+38

doublemin: 2,22507385851e-308

max: 1,79769313486e308

long doublemin: 3,36210314311209350626e-4932

max: 1,18973149535723176502e+4932

9 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 10: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Variables - Tipos y rangos

Con el objetivo de lograr portabilidad entre sistemas, el estandar C99 del Lenguaje C agrega elheader stdint, en el que se agregan los tipos de datos:

uint8 t y int8 t

uint16 t y int16 t

uint32 t y int32 t

uint64 t y int64 t

10 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 11: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructura de una aplicacion

#include <stdio.h>

int main(int argc , char * argv [])

{

float op1 , op2 , r;

printf("-= Suma de dos valores =-\n");

printf("Operador 1:");

scanf("%f", &op1);

printf("Operador 2:");

scanf("%f", &op2);

r = op1 + op2;

printf("Resultado: %.2f\n", r);

return 0;

}

11 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 12: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Salidas de informacion con formato

La funcion printf permite mostrar informacion indicando el formato de la misma. El prototipo deesta funcion es:

printf(const char *formato, ...)

Donde la cadena de formato es una cadena de caracteres literal que puede incorporar especificadoresde formato (”%”).Los siguientes serıan ejemplos de uso validos:

printf("Hola mundo!\n");

printf("Resultado entero: %d", varInt );

printf("Base 16: %04x", valU16 );

printf("Resultado real: %0.2f", varInt );

12 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 13: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Especificadores de formato

Identificacion Tipo de dato Formato de ingreso

(*) hhi char Entero en base 10, base 8 si

se lo precede con 0 o en base

16 si se lo precede con 0x.

i inthi shortli long int

(*) lli long long int

(*) hhd char

Entero en base 10d int

hd shortld long int

(*) lld long long int

(*) hhu unsigned char

Entero sin signo en base 10hu unsigned shortu unsigned intlu unsigned long

(*) llu unsigned long long

13 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 14: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Especificadores de formato

Identificacion Tipo de dato Formato de ingreso

(*) hhx unsigned char

Entero en base 16x unsigned int

hx unsigned shortlx unsigned long

(*) llx unsigned long long

(*) hho unsigned char

Entero en base 8o unsigned int

ho unsigned shortlo unsigned long int

(*) llo unsigned long long

f floatRealeslf double

Lf long double

c char Caracter

14 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 15: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructura de una aplicacion

#include <stdio.h>

int main(int argc , char * argv [])

{

float op1 , op2 , r;

printf("-= Suma de dos valores =-\n");

printf("Operador 1:");

scanf("%f", &op1);

printf("Operador 2:");

scanf("%f", &op2);

r = op1 + op2;

printf("Resultado: %.2f\n", r);

return 0;

}

15 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 16: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Entradas de datos

La funcion homologa a printf es la funcion scanf. Esa toma como argumento una cadena de espe-cificacion de formato donde deben indicarse la cantidad y tipo de valores a cargar. Los indicadoresde formato son los mismos de la tabla anterior.A continuacion de la cadena de formato debe indicarse la lista de direcciones de las variables quecontendran los datos.

scanf(const char *formato, ...)

Los siguientes serıan ejemplos de uso validos:

scanf("%d", &varInt );

scanf("%x %x", &varUInt1 , &varUInt2 );

scanf("%f", &vFloat );

Esta funcion retornara la cantidad de valores que pudieron asignarse segun la especificacion deformato dada.

16 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 17: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructura de una aplicacion

#include <stdio.h>

int main(int argc , char * argv [])

{

float op1 , op2 , r;

printf("-= Suma de dos valores =-\n");

printf("Operador 1:");

scanf("%f", &op1);

printf("Operador 2:");

scanf("%f", &op2);

r = op1 + op2;

printf("Resultado: %.2f\n", r);

return 0;

}

17 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 18: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Operadores aritmeticos

Operador Significado

+ Suma- Resta* Multiplicacion/ Division% Resto de la division

Operador Significado

+= v = v + 1 o v += 1-= v = v - 1 o v -= 1*= v = v * 1 o v *= 1/= v = v / 1 o v/= 1%= r = r % 2 o r %= 2

18 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 19: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Expresiones logicas

Son evaluadas como verdadero o falso. En su construccion se utilizan operadores relacionales,variables, constantes y expresiones.

OperadoresRelacionales

Significado

== Igual!= Diferente< Menor<= Menor o igual> Mayor>= Mayor o igual

OperadoresLogicos

Significado

! Negacion&& Y|| O

Ejemplos:

(x < 32) \&\& (y >= 0)

!(x < 0) || (j < 0)

19 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 20: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras condicionales: if

Segun el resultado de la evaluacion de una expresion logica se ejecuta un conjunto de acciones.

if (expLogica)

{

accion_1;

accion_2;

...

accion_n;

}

if (expLogica)

{

accion_1a;

accion_2a;

...

accion_na;

}

else

{

accion_1b;

accion_2b;

...

accion_2b;

}

if (expLogicaA)

{

...

}

else if (expLogicaB)

{

...

}

else if (expLogicaC)

{

...

}

else

{

...

}

20 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 21: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras condicionales: switch

Segun el valor de una variable ejecuta un conjunto de acciones.Realiza solamente comparaciones de igualdad y requiere el uso de variables de tipo ordinal.

swtich(varInt)

{

case 1:

accion_1a;

accion_2a;

...

break;

case 2:

case 3:

accion_1b;

accion_2b;

...

break;

default:

accion_1c;

accion_2c;

}

Pueden utilizarse caracteres para establecer comparaciones, en este caso se tomara el valor de latabla ASCII y los valores deben encerrarse entre apostrofes.

21 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 22: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras iterativas: for

Repite un conjunto de acciones una cantidad determinada de veces.Cuenta con 3 secciones:

Inicializacion

Expresion logica

Incremento

Secuencia de ejecucion:

No existe restricciones sobre el tipo de la variable utilizada en la estructura.Pueden utilizarse multiples variables en la expresion logica asociada.El incremento puede realizarse de diferentes maneras.

22 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 23: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras iterativas: for

Repite un conjunto de acciones una cantidad determinada de veces.Cuenta con 3 secciones:

Inicializacion

Expresion logica

Incremento

Secuencia de ejecucion:

No existe restricciones sobre el tipo de la variable utilizada en la estructura.Pueden utilizarse multiples variables en la expresion logica asociada.El incremento puede realizarse de diferentes maneras.

22 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 24: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras iterativas: for

Repite un conjunto de acciones una cantidad determinada de veces.Cuenta con 3 secciones:

Inicializacion

Expresion logica

Incremento

Secuencia de ejecucion:

No existe restricciones sobre el tipo de la variable utilizada en la estructura.Pueden utilizarse multiples variables en la expresion logica asociada.El incremento puede realizarse de diferentes maneras.

22 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 25: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras iterativas: for

Repite un conjunto de acciones una cantidad determinada de veces.Cuenta con 3 secciones:

Inicializacion

Expresion logica

Incremento

Secuencia de ejecucion:

No existe restricciones sobre el tipo de la variable utilizada en la estructura.Pueden utilizarse multiples variables en la expresion logica asociada.El incremento puede realizarse de diferentes maneras.

22 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 26: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras iterativas: for

Repite un conjunto de acciones una cantidad determinada de veces.Cuenta con 3 secciones:

Inicializacion

Expresion logica

Incremento

Secuencia de ejecucion:

No existe restricciones sobre el tipo de la variable utilizada en la estructura.Pueden utilizarse multiples variables en la expresion logica asociada.El incremento puede realizarse de diferentes maneras.

22 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 27: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras iterativas: for

Repite un conjunto de acciones una cantidad determinada de veces.Cuenta con 3 secciones:

Inicializacion

Expresion logica

Incremento

Secuencia de ejecucion:

No existe restricciones sobre el tipo de la variable utilizada en la estructura.Pueden utilizarse multiples variables en la expresion logica asociada.El incremento puede realizarse de diferentes maneras.

22 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 28: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras iterativas: for

Repite un conjunto de acciones una cantidad determinada de veces.Cuenta con 3 secciones:

Inicializacion

Expresion logica

Incremento

Secuencia de ejecucion:

No existe restricciones sobre el tipo de la variable utilizada en la estructura.Pueden utilizarse multiples variables en la expresion logica asociada.El incremento puede realizarse de diferentes maneras.

22 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 29: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras iterativas: for

Repite un conjunto de acciones una cantidad determinada de veces.Cuenta con 3 secciones:

Inicializacion

Expresion logica

Incremento

Secuencia de ejecucion:

No existe restricciones sobre el tipo de la variable utilizada en la estructura.Pueden utilizarse multiples variables en la expresion logica asociada.El incremento puede realizarse de diferentes maneras.

22 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 30: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras iterativas: for

Repite un conjunto de acciones una cantidad determinada de veces.Cuenta con 3 secciones:

Inicializacion

Expresion logica

Incremento

Secuencia de ejecucion:

No existe restricciones sobre el tipo de la variable utilizada en la estructura.

Pueden utilizarse multiples variables en la expresion logica asociada.El incremento puede realizarse de diferentes maneras.

22 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 31: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras iterativas: for

Repite un conjunto de acciones una cantidad determinada de veces.Cuenta con 3 secciones:

Inicializacion

Expresion logica

Incremento

Secuencia de ejecucion:

No existe restricciones sobre el tipo de la variable utilizada en la estructura.Pueden utilizarse multiples variables en la expresion logica asociada.

El incremento puede realizarse de diferentes maneras.

22 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 32: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras iterativas: for

Repite un conjunto de acciones una cantidad determinada de veces.Cuenta con 3 secciones:

Inicializacion

Expresion logica

Incremento

Secuencia de ejecucion:

No existe restricciones sobre el tipo de la variable utilizada en la estructura.Pueden utilizarse multiples variables en la expresion logica asociada.El incremento puede realizarse de diferentes maneras.

22 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 33: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras iterativas: while

Repite un conjunto de acciones una cantidad no determinada de veces, mientras una expresionlogica se evaluada como verdadera.

Puede que el conjunto de acciones asociada no se ejecute nunca debido a que es evaluada alcomienzo de la estructura.

El bloque de acciones asociadas (o un evento externo) debe modificar alguna de las variablesque conforman la expresion logica asociada.

Secuencia de ejecucion:

23 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 34: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras iterativas: while

Repite un conjunto de acciones una cantidad no determinada de veces, mientras una expresionlogica se evaluada como verdadera.

Puede que el conjunto de acciones asociada no se ejecute nunca debido a que es evaluada alcomienzo de la estructura.

El bloque de acciones asociadas (o un evento externo) debe modificar alguna de las variablesque conforman la expresion logica asociada.

Secuencia de ejecucion:

23 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 35: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras iterativas: while

Repite un conjunto de acciones una cantidad no determinada de veces, mientras una expresionlogica se evaluada como verdadera.

Puede que el conjunto de acciones asociada no se ejecute nunca debido a que es evaluada alcomienzo de la estructura.

El bloque de acciones asociadas (o un evento externo) debe modificar alguna de las variablesque conforman la expresion logica asociada.

Secuencia de ejecucion:

23 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 36: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras iterativas: while

Repite un conjunto de acciones una cantidad no determinada de veces, mientras una expresionlogica se evaluada como verdadera.

Puede que el conjunto de acciones asociada no se ejecute nunca debido a que es evaluada alcomienzo de la estructura.

El bloque de acciones asociadas (o un evento externo) debe modificar alguna de las variablesque conforman la expresion logica asociada.

Secuencia de ejecucion:

23 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 37: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras iterativas: while

Repite un conjunto de acciones una cantidad no determinada de veces, mientras una expresionlogica se evaluada como verdadera.

Puede que el conjunto de acciones asociada no se ejecute nunca debido a que es evaluada alcomienzo de la estructura.

El bloque de acciones asociadas (o un evento externo) debe modificar alguna de las variablesque conforman la expresion logica asociada.

Secuencia de ejecucion:

23 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 38: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras iterativas: do-while

Repite un conjunto de acciones una cantidad no determinada de veces, mientras una expresionlogica se evaluada como verdadera.

El conjunto de acciones asociada siempre se ejecutara por lo menos una vez.

El bloque de acciones asociadas (o un evento externo) debe modificar alguna de las variablesque conforman la expresion logica asociada.

Secuencia de ejecucion:

24 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 39: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras iterativas: do-while

Repite un conjunto de acciones una cantidad no determinada de veces, mientras una expresionlogica se evaluada como verdadera.

El conjunto de acciones asociada siempre se ejecutara por lo menos una vez.

El bloque de acciones asociadas (o un evento externo) debe modificar alguna de las variablesque conforman la expresion logica asociada.

Secuencia de ejecucion:

24 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 40: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras iterativas: do-while

Repite un conjunto de acciones una cantidad no determinada de veces, mientras una expresionlogica se evaluada como verdadera.

El conjunto de acciones asociada siempre se ejecutara por lo menos una vez.

El bloque de acciones asociadas (o un evento externo) debe modificar alguna de las variablesque conforman la expresion logica asociada.

Secuencia de ejecucion:

24 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 41: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras iterativas: do-while

Repite un conjunto de acciones una cantidad no determinada de veces, mientras una expresionlogica se evaluada como verdadera.

El conjunto de acciones asociada siempre se ejecutara por lo menos una vez.

El bloque de acciones asociadas (o un evento externo) debe modificar alguna de las variablesque conforman la expresion logica asociada.

Secuencia de ejecucion:

24 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 42: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Estructuras iterativas: do-while

Repite un conjunto de acciones una cantidad no determinada de veces, mientras una expresionlogica se evaluada como verdadera.

El conjunto de acciones asociada siempre se ejecutara por lo menos una vez.

El bloque de acciones asociadas (o un evento externo) debe modificar alguna de las variablesque conforman la expresion logica asociada.

Secuencia de ejecucion:

24 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 43: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Funciones en Lenguaje C

Recordemos algunas ideas:

Las funciones son la base de la modularizacion en las aplicaciones desarrolladas en LenguajeC.

Previa la invocacion de una funcion debe haber sido definida o implementada.

El prototipo de una funcion incluye el nombre de la funcion, tipos de argumentos y tipo devalore de retorno:

<tipoRet> nombreFuncion(<tip1>, <tipo2>, ..., tipoN );

Si una funcion no toma argumentos o no retorna valores, el tipo de valor de retorno o utilizadocomo argumento debe indicarse como void.

La implementacion de la funcion debe incluir el nombre de los argumentos utilizados en suprototipo.

Cada funcion define su propio espacio de definicion, por lo que las variables definidas en suinterior (ası como sus argumentos) existen solo al momento de invocar la funcion.

El paso de parametros en lenguaje C siempre se da por valor.

25 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 44: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Funciones en Lenguaje C

La implementacion de funciones suele darse en pares de archivos, por un lado el prototipo en unarchivo h y la implementacion en un archivo con extension c.

/* *********** funciones.h *********** */

#ifndef funciones_h

#define funciones_h

void unaAccion(void);

double calculo(int , duble );

#endif

/* *********** funciones.c *********** */

#include "funcion.h"

void unaAccion(void)

{

/* Co digo fuente ... */

}

double calculo(int , duble)

{

double ret = 0.0;

/* Co digo fuente ... */

return ret;

}

26 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 45: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Desarrollo de aplicaciones en Eclipse

27 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 46: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Desarrollo de aplicaciones en Eclipse

27 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 47: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Desarrollo de aplicaciones en Eclipse

27 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 48: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Desarrollo de aplicaciones en Eclipse

27 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 49: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Desarrollo de aplicaciones en Eclipse

27 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 50: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Desarrollo de aplicaciones en Eclipse

27 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 51: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Desarrollo de aplicaciones en Eclipse

27 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 52: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Desarrollo de aplicaciones en Eclipse

27 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 53: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Desarrollo de aplicaciones en Eclipse

27 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 54: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Desarrollo de aplicaciones en Eclipse

27 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 55: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Desarrollo de aplicaciones en Eclipse

27 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 56: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Desarrollo de aplicaciones en Eclipse

27 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 57: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Desarrollo de aplicaciones en Eclipse

27 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 58: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Desarrollo de aplicaciones en Eclipse

27 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 59: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Desarrollo de aplicaciones en Eclipse

27 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 60: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Desarrollo de aplicaciones en Eclipse

27 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C

Page 61: Fundamentos de programación de Sistemas Embebidos ...

Secuencia Estructuras condicionales Estructuras iterativas Desarrollo de aplicaciones

Ahora a programar!

28 / 28 Fundamentos de programacion de Sistemas Embebidos Programacion estructurada y lenguaje C