Programa Vespertino de Automatización
description
Transcript of 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
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.
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))
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
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..
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
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”
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. ----
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.