Programa Vespertino de Automatización

9
Programa Vespertino de Automatización Programa Vespertino de Automatización Equipos y Sistemas de Control Digital Equipos y Sistemas de Control Digital Lenguaje C Lenguaje C Profesor Profesor : : Felipe Páez Mejías Felipe Páez Mejías D e p a r t a m e n t o d e I n g e n i e r í a E l é c t r i D e p a r t a m e n t o d e I n g e n i e r í a E l é c t r i c a c a 2do. Semestre. 2008 2do. Semestre. 2008 VERSION PARCIAL – contenidos para PEP 1 VERSION PARCIAL – contenidos para PEP 1

description

Programa Vespertino de Automatización. D e p a r t a m e n t o d e I n g e n i e r í a E l é c t r i c a. Equipos y Sistemas de Control Digital Lenguaje C. 2do. Semestre. 2008. VERSION PARCIAL – contenidos para PEP 1. Profesor : Felipe Páez Mejías. Lenguaje C. Generalidades. - PowerPoint PPT Presentation

Transcript of Programa Vespertino de Automatización

Page 1: Programa Vespertino de Automatización

Programa Vespertino de Automatización Programa Vespertino de Automatización

Equipos y Sistemas de Control DigitalEquipos y Sistemas de Control Digital

Lenguaje CLenguaje C

ProfesorProfesor:: Felipe Páez Mejías Felipe Páez Mejías

D e p a r t a m e n t o d e I n g e n i e r í a E l é c t r i c aD e p a r t a m e n t o d e I n g e n i e r í a E l é c t r i c a

2do. Semestre. 20082do. Semestre. 2008

VERSION PARCIAL – contenidos para PEP 1VERSION PARCIAL – contenidos para PEP 1

Page 2: Programa Vespertino de Automatización

Lenguaje CLenguaje CGeneralidadesGeneralidades

• Se originó a principios de los ’70 a partir de lenguajes Se originó a principios de los ’70 a partir de lenguajes previos como ALGOL y B.previos como ALGOL y B.

• Se diseñó específicamente para programar sistemas Se diseñó específicamente para programar sistemas operativos (UNIX)operativos (UNIX)

• Ha sido utilizado en un amplio rango de aplicaciones Ha sido utilizado en un amplio rango de aplicaciones software.software.

• Fue estandarizado por el ANSI a fines de los ‘80Fue estandarizado por el ANSI a fines de los ‘80

CaracterísticasCaracterísticas

• Lenguaje de “medio” nivel, compiladoLenguaje de “medio” nivel, compilado

• Propósito generalPropósito general

• MultiplataformaMultiplataforma

• Basado en bloques de códigoBasado en bloques de código

• Imperativo y basado en procedimientos.Imperativo y basado en procedimientos.

Page 3: Programa Vespertino de Automatización

Lenguaje CLenguaje CPrincipales elementosPrincipales elementos

• DeclaracionesDeclaraciones

• VariablesVariables

• OperadoresOperadores

• Palabras clavePalabras clave

• Funciones, en particular Funciones, en particular mainmain

• Bloques de códigoBloques de código

• Funciones, parámetros de entrada y resultados.Funciones, parámetros de entrada y resultados.

• Sentencias condicionalesSentencias condicionales

• SaltosSaltos

• Consola de entrada / salida (Consola de entrada / salida (stdiostdio))

Page 4: Programa Vespertino de Automatización

Lenguaje CLenguaje CDeclaracionesDeclaraciones

• Son sentencias breves que informan al compilador sobre Son sentencias breves que informan al compilador sobre las variables y funciones que el programa utilizará.las variables y funciones que el programa utilizará.

• Las declaraciones de variables son obligatorias.Las declaraciones de variables son obligatorias.

• Las declaraciones de funciones pueden ser omitidas en Las declaraciones de funciones pueden ser omitidas en ciertos casos.ciertos casos.

• La declaración permite al compilador reservar la memoria La declaración permite al compilador reservar la memoria necesaria para las variables y optimizar el código necesaria para las variables y optimizar el código ejecutable armado con las funciones.ejecutable armado con las funciones.

EjemplosEjemplos

int a,b; //declara dos variables tipo int

char c[5]; //declara un arreglo de 5 caracteres (bytes)

float promedio(float a, float b); //declara la función “promedio”, toma dos argumentos en punto flotante a,b y el resultado es devuelto también como punto flotante

int a,b; //declara dos variables tipo int

char c[5]; //declara un arreglo de 5 caracteres (bytes)

float promedio(float a, float b); //declara la función “promedio”, toma dos argumentos en punto flotante a,b y el resultado es devuelto también como punto flotante

Page 5: Programa Vespertino de Automatización

Lenguaje CLenguaje CVariablesVariables

• Son entidades que permiten guardar diversos Son entidades que permiten guardar diversos tipos de tipos de datosdatos en memoria RAM. en memoria RAM.

• Sólo existen durante la ejecución del programa.Sólo existen durante la ejecución del programa.

• Cada variable se crea con un nombre y tipo de dato Cada variable se crea con un nombre y tipo de dato determinado.determinado.

• Pueden ser escritas y leídas ilimitadamente mientras el Pueden ser escritas y leídas ilimitadamente mientras el programa se ejecute.programa se ejecute.

• Todas las variables deben ser declaradas antes de su Todas las variables deben ser declaradas antes de su uso. uso.

• C permite arreglos de variables, de varias dimensiones.C permite arreglos de variables, de varias dimensiones.

• C distingue dos clases principales de variables: C distingue dos clases principales de variables: globales globales yy locales locales..

Page 6: Programa Vespertino de Automatización

Lenguaje CLenguaje CVisión general de las variables globales en CVisión general de las variables globales en C

2.51E-3

1342

‘h’

‘z’

‘o’ ‘l’ ‘a’ ‘!’

RAM disponible para programas (Mbytes)

Aplicación C

Aplicación 1

Aplicación 2

Aplicación 3

char saludo[5]

char c int b

float a

32 bits

32 bits

8 bits

5 bytes

Page 7: Programa Vespertino de Automatización

Lenguaje CLenguaje CTipos de datos en CTipos de datos en C

• Definen la manera en que pueden organizarse los bytes Definen la manera en que pueden organizarse los bytes de memoria, su uso, administración y las operaciones de memoria, su uso, administración y las operaciones permitidas con ellos. permitidas con ellos.

• En la mayoría de los casos, las funciones sólo admiten En la mayoría de los casos, las funciones sólo admiten un tipo de dato por argumento.un tipo de dato por argumento.

• Cuando las funciones reciben datos que no Cuando las funciones reciben datos que no corresponden al tipo admitido, el comportamiento del corresponden al tipo admitido, el comportamiento del programa se vuelve impredecible.programa se vuelve impredecible.

• C se caracteriza por ser un lenguaje “fuertemente C se caracteriza por ser un lenguaje “fuertemente tipado”tipado”

Page 8: Programa Vespertino de Automatización

Lenguaje CLenguaje CTipos admitidos, C en 32 bits (DJGPP, Visual C++)Tipos admitidos, C en 32 bits (DJGPP, Visual C++)

NombreNombre TamañoTamaño DescripciónDescripción RangoRango

charchar 8 bits8 bits

1 byte1 byte

Mínimo tipo de dato admitido en C, puede Mínimo tipo de dato admitido en C, puede representar caracteres ASCII o datos de 8 bitsrepresentar caracteres ASCII o datos de 8 bits

signed: -128 a +127signed: -128 a +127

unsigned: 0 a 255unsigned: 0 a 255

short short intint

16 bits16 bits

2 bytes2 bytes

Entero binario con o sin signoEntero binario con o sin signo signed: -32768 a +32767signed: -32768 a +32767

unsigned: 0 a 65535unsigned: 0 a 65535

intint 32 bits32 bits

4 bytes4 bytes

Entero binario con o sin signoEntero binario con o sin signo signed: -2signed: -23232 a +2 a +23232-1-1

unsigned: 0 a 2unsigned: 0 a 23232-1-1

floatfloat 32 bits32 bits

4 bytes4 bytes

Número en punto flotante IEEE754Número en punto flotante IEEE754

doubledouble 64 bits64 bits

8 bytes8 bytes

Número en punto flotante IEEE754, doble Número en punto flotante IEEE754, doble precisiónprecisión

voidvoid ---- Tipo nulo, permite que las funciones se Tipo nulo, permite que las funciones se comporten como procedimientos (no devuelven comporten como procedimientos (no devuelven resultados)resultados)

----

** Modif.Modif. Puntero a una variable, permite indirección.Puntero a una variable, permite indirección. ----

Page 9: Programa Vespertino de Automatización

Lenguaje CLenguaje COperadores y caracteres especialesOperadores y caracteres especialesOper.Oper. DescripciónDescripción

+ - * /+ - * / Operaciones matemáticas sobre enteros y números en punto flotante. Operaciones matemáticas sobre enteros y números en punto flotante. Operador módulo disponible (%)Operador módulo disponible (%)

< >< >

<= >=<= >=

Comparación matemática ‘mayor que’, ‘menor que’, ‘menor o igual’, ‘mayor o Comparación matemática ‘mayor que’, ‘menor que’, ‘menor o igual’, ‘mayor o igual’.igual’.

== Permite asignar valores a variables.Permite asignar valores a variables.

====

!=!=

Comparación directa: es igual (==) o es distinto (!=).Comparación directa: es igual (==) o es distinto (!=).

& |& | Equivalentes a ‘Equivalentes a ‘yy’ ( & ) e ‘’ ( & ) e ‘oo’( | ) lógicos para comparaciones lógicas.’( | ) lógicos para comparaciones lógicas.

<< >><< >> Desplazamientos en bits de enterosDesplazamientos en bits de enteros

&& ||&& || Realizan ‘and’ y ‘or’ entre enteros, bit a bit.Realizan ‘and’ y ‘or’ entre enteros, bit a bit.

!! NOT binario entre enteros, bit a bit.NOT binario entre enteros, bit a bit.

^̂ XOR binario entre enteros, bit a bit.XOR binario entre enteros, bit a bit.

( )( ) Permiten cambiar orden de evaluación en operaciones matemáticas y forman Permiten cambiar orden de evaluación en operaciones matemáticas y forman parte de la sintaxis para las funciones.parte de la sintaxis para las funciones.

[ ][ ] Permiten definir arreglos y acceder a sus elementos.Permiten definir arreglos y acceder a sus elementos.

{ }{ } Encierran bloques de código, necesarios para toda función. También se usan Encierran bloques de código, necesarios para toda función. También se usan en ciclos y secuencias de instrucciones condicionales.en ciclos y secuencias de instrucciones condicionales.