lenguaje de programaciÓn c programación en c para electrónicos
TRANSCRIPT
LENGUAJE DE PROGRAMACIÓN C
Programación en C para electrónicos
Lenguaje de programación C - David Carmona 2010
2
Índice
Introducción. Estructura de un programa en c. Declaración de variables. Palabras reservadas. Comentarios. Tipos de datos. Constantes.
Lenguaje de programación C - David Carmona 2010
4
Lenguaje C
Fue creado por Dennis Ritchie de los laboratorios BELL en 1972, cuando trabajaba junto a Ken Thompson, en el diseño del sistema operativo UNIX.
Se deriva del lenguaje B de Thompson, que a su vez se deriva del BCPL de Martín Richards.
Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel.
Lenguaje de programación C - David Carmona 2010
5
Características de C
Programación estructurada. Diseño modular. Programas compactos. Rapidez de ejecución. Portable. De relativo bajo nivel. Precisa compilarse.
Lenguaje de programación C - David Carmona 2010
6
Edición y compilación
Los pasos necesarios para desarrollar un programa C son los siguientes: Edición: Utilizar un editor para escribir el
programa fuente texto. Compilación: Compilar el programa
fuente, es decir, traducir el programa a lenguaje máquina.
Ejecución: Una vez compilado se procede a la ejecución del programa tecleando el nombre del fichero-programa.
7
Lenguaje de programación C - David Carmona 2010
Lenguaje de programación C
Estructura de un programa en C
Lenguaje de programación C - David Carmona 2010
8
Estructura de un programa en C
Comentarios.Cabecera de archivo Declaración y
Definiciones(Zona de declaraciones)
Funciónprincipal
Instrucciones
Lenguaje de programación C - David Carmona 2010
9
La función principal
Todo programa escrito en C consta de una o más funciones, una de las cuales se llama main.
La función main es la función principal del programa. El programa empieza en esa función.
Mediante las llaves se delimita el conjunto de instrucciones que componen el programa.
A main le precede una palabra reservada que indica el tipo de dato que devuelve el programa.
Lenguaje de programación C - David Carmona 2010
10
La función principal
Tipo de resultado
Parámetros
Lenguaje de programación C - David Carmona 2010
11
Declaraciones y definiciones Antes de la función main se declaran los
elementos que se van a utilizar. Zona de declaraciones
Librerias de cabecera: Archivos (.h) con funciones listas para usar. #include <xxx.h>
Declaración de variables y funciones. Directivas del compilador
Ordenes al compilador. #define PI 3.141592
12
Lenguaje de programación C - David Carmona 2010
Lenguaje de programación C
Declaración de variables
Lenguaje de programación C - David Carmona 2010
13
Declaración de variables
Declarar variables significa reservar celdas de memoria para almacenar datos.
Sintaxis:Tipo_de_dato Nombre_de_la_variable;
El nombre se usa para acceder a los datos almacenados en las celdas de memoria.
El tipo de dato indica: Tamaño de la variable. Operaciones que se pueden realizar con el
dato.
Lenguaje de programación C - David Carmona 2010
14
Identificadores
Es el nombre que hace referencia a una función o al contenido de una variable.
Se puede utilizar cualquier combinación de letras, dígitos y el símbolo subrayado '_'. Debemos utilizar nombres identificativos.
El primer carácter debe ser una letra o un subrayado.
Se distinguen mayúsculas de minúsculas. Ejemplo: Valor es distinto de valor, VALOR, vAlor…
15
Lenguaje de programación C - David Carmona 2010
Ejemplos de identificadores
1Apellido //Empieza por numero
Peso Neto //espacio Pr€cio //contiene € Valor.1 //contiene . Tensión //contiene tilde Tamaño //contiene ñ int //palabra reservada
Válidos No válidos
Letra letra _variable_ peso_neto PesoBruto Apellido1 Apellido_1
Lenguaje de programación C - David Carmona 2010
16
Variables locales y globales
Las variables se pueden declarar en dos sitios: Fuera de toda función (Globales)
Se puede acceder a la variable en cualquier parte del programa.
Dentro de una función (Locales) Solo se puede acceder a la variable desde
dentro de la función que declara la variable.
Lenguaje de programación C - David Carmona 2010
17
Variables locales y globales
Variables globales
Variable local a main
Lenguaje de programación C - David Carmona 2010
18
Declaración múltiple
Se pueden declarar varias variables del mismo tipo en una sentencia.
Los nombres de las diferentes variables se separan por comas (,)
Sintaxis:Tipo_de_dato variable1,variable2…;
Cada variable ocupará celdas de memoria distintas y se accederán por su nombre-
Lenguaje de programación C - David Carmona 2010
19
Inicialización de variables
Cuando se declara una variable se reserva el espacio de memoria que ocupara, pero no se modifica el contenido de ese espacio.
En la declaración de las variables se puede forzar a que se escriba un valor inicial.
Sintaxis:Tipo_de_dato
variable1=Valor_inicial;
20
Lenguaje de programación C - David Carmona 2010
Lenguaje de programación C
Palabras reservadas
Lenguaje de programación C - David Carmona 2010
21
Palabras reservadas
En C existen una serie de palabras reservadas que el usuario no puede utilizar para dar nombre a variables o funciones.
Estas palabras tienen distintos significados para el compilador: Instrucciones. Definir tipos.
Lenguaje de programación C - David Carmona 2010
22
Palabras reservadas
23
Lenguaje de programación C - David Carmona 2010
Lenguaje de programación C
Comentarios
Lenguaje de programación C - David Carmona 2010
24
Comentarios en C
En lenguaje C se pueden utilizar comentarios en el código.
Un comentario es un texto explicativo del funcionamiento o la forma en que está hecha un programa.
El texto de los comentarios es ignorado por el compilador.
Sirven para ayudar al programador o a otros a entender el programa.
Lenguaje de programación C - David Carmona 2010
25
Comentarios en C
Se pueden introducir comentarios de dos formas:
Usando //: Cuando escribimos dos barras seguidas (//)
el compilador ignora el texto siguiente hasta el final de la línea:
Usando /* */: Con /* se abre el comentario y el
compilador ignora todo lo escrito hasta que encuentra el cierre de comentario */
Lenguaje de programación C - David Carmona 2010
26
Ejemplos de comentarios
Comentarios de una línea:// esto es un comentario de una linea
Comentarios de varias líneas://esto es un
//comentario con//varias lineas.
/*esto es otrocomentario con
varias lineas.*/
27
Lenguaje de programación C - David Carmona 2010
Lenguaje de programación C
Tipos de datos
Lenguaje de programación C - David Carmona 2010
28
Tipos de datos
Sirven para indicar que tipo de valor queremos almacenar en una variable. El tipo indicará al compilador cuanta memoria se
reserva. En C podemos utilizar tres tipos básicos de
datos: Números enteros. Números reales. Caracteres de texto.
De cada tipo de dato básico se tendrán distintos “tamaños”
Lenguaje de programación C - David Carmona 2010
29
Tipos de datos
C utiliza palabras reservadas para definir los tipos:
Enteros: int
Reales: float double
Caracteres: char //también puede ser un entero
Lenguaje de programación C - David Carmona 2010
30
Tipos de datos
Algunos tipos de datos admiten distintos números de cifras (rango y precisión) y la posibilidad de utilizar o no el signo.
Se utilizan palabras reservadas como modificadores de tipo: short //corto long //largo signed //con signo unsigned //sin signo
Lenguaje de programación C - David Carmona 2010
31
Tipos de datos
Los distintos tipos de datos se componen utilizando un tipo de dato fundamental y uno o varios modificadores.
Sintaxis:modificador [modificador2…]
tipo_fundamental Ejemplos:
short int //entero corto
unsigned char //carácter sin signo
signed long int//entero largo con signo
Lenguaje de programación C - David Carmona 2010
32
Tipos de datos
Notación completa:
Notación abreviada
Lenguaje de programación C - David Carmona 2010
33
Modificadores de tipo
Los modificadores signed y unsigned indican la variable (entera) contendrá valores con signo (signed) o solo positivos (unsigned)
Podemos omitir los modificadores: Si delante del tipo no escribimos ningún
modificador, el compilador por defecto entiende que es signed.
int valor equivale a signed int valor
Lenguaje de programación C - David Carmona 2010
34
Rango: Enteros
TIPO BYTESPRECISIÓN
DESDE HASTA
VOID Es NULL, no devuelve nada
signed char 1 -128 127
unsigned char 1 0 255
signed short 2 -32768 32767
unsigned short
2 0 65535
signed int 2 ó 4 -32768 32767
unsigned int 2 ó 4 0 65535
signed long 4 -2147483648 2147483647
unsigned long 4 0 4294967295
Lenguaje de programación C - David Carmona 2010
35
Rango: Reales
TIPO BYTESPRECISIÓN
DESDE HASTA
float 4 1.18e-38 3.40e38
double 8 2.23e-308 1.79e308
long double 10 3.37e-4932 1.18e4932
Lenguaje de programación C - David Carmona 2010
36
Otros modificadores
Sintaxis:modificador tipo_fundamental
const: El valor no puede ser modificado por el
programa. Debe inicializarse en la declaración.
volatile: Obligamos a consultar el valor de la
variable en memoria cada vez que se deba acceder a ella
Lenguaje de programación C - David Carmona 2010
37
Tipos de almacenamiento
C dispone de modificadores de tipo que permiten indicar al compilador como debe utilizar la memoria.
auto: modificador por defecto
extern: La definición de la variable está en otro fichero fuente.
static: Se le asigna una dirección fija. Su valor permanece
register: Se almacena en un registro de la CPU, si es posible.
38
Lenguaje de programación C - David Carmona 2010
Lenguaje de programación C
Constantes
Lenguaje de programación C - David Carmona 2010
39
Constantes
Las constantes o valores literales, son valores numéricos o de texto dados explicitamente en el código del programa.
Estos valores no pueden ser modificados una vez compilado el programa. No reservan memoria como las variables, se
codifican en el código ejecutable. Tipos:
Enteras. Reales. Caracteres.
Lenguaje de programación C - David Carmona 2010
40
Constantes enteras
Por defecto se codifican como un int. Ocupan 2 bytes (ó 4) del código ejecutable.
Se puede expresar una constante entera mediante una secuencia de dígitos. 3246855 por ejemplo. Se puede indicar el signo. (-)
-1235 Por defecto es positivo.
1234 = +1234 No se pueden utilizar otros caracteres
2.654
Lenguaje de programación C - David Carmona 2010
41
Constantes enteras
También se pueden expresar números enteros en otros sistemas de numeración: Hexadecimal:
Se indica delante del entero con 0x 0xff = 255 en decimal
Octal: Se indica con un cero delante del entero. 010 = 8 en decimal (001000)
Se puede “obligar” al compilador a utilizar tipo de dato para codificar una constante. Con L al final del valor se codifica como un long sino
como un int. 127L
Lenguaje de programación C - David Carmona 2010
42
Constantes reales
Por defecto se codifican como un double. Ocupan 8 bytes del código ejecutable.
Dos formatos: parte entera y decimal, separadas por un
punto(.)1.234
Notación científica (mantisa y exponente) separados por e o E.1e-3 = 0.001-0.12E3 = 120
Lenguaje de programación C - David Carmona 2010
43
Constantes reales
Se puede “obligar” al compilador a utilizar el tipo float para codificar una constante real. Se utiliza F al final de la constante.
1.235F ocupará 4 bytes en lugar de 8. También se puede utilizar F para indicar al
compilador que una constante entera debe ser codificada como float.12F se codifica como si se hubiese escrito 12.0F
Se puede utilizar el modificador L
Lenguaje de programación C - David Carmona 2010
44
Constantes Carácter
Se representan encerrados en comillas simples (‘’).
Se pueden representar caracteres del código ASCII extendido (8 bits). Caracteres imprimibles.
Letras, digitos, signos…‘a’, ‘H’, ‘!’, …
No imprimibles o secuencias de escape. Dos caracteres encerrados entre comillas simples
empezando por \. Representan símbolos con significado especial.
Lenguaje de programación C - David Carmona 2010
45
Secuencias de escape
Lenguaje de programación C - David Carmona 2010
46
Caracteres y enteros
Un carácter tiene como codificación un número binario (8 bits), que es un número entero.
En C los caracteres se pueden manejar como números enteros.
La tabla del código ASCII representa el código numérico de cada carácter. Por ejemplo:
‘A’ equivale a 65 en decimal o a 0x41 (HEX)
Lenguaje de programación C - David Carmona 2010
47
Cadenas de caracteres
Las cadenas de caracteres son conjuntos de caracteres alfanumericos encerrados entre comillas dobles (“”). Cada carácter de una cadena es una concatenación
de cacateres. Las cadenas terminan con el carácter nulo ‘\0’. Se pueden utilizar secuencias de escape en las
cadenas escribiendo el código como un carácter más: “Hola\nMundo!” representa :HolaMundo!
Lenguaje de programación C - David Carmona 2010
48
Resumen de constantes