Programación en C para electrónicos

Slides:



Advertisements
Presentaciones similares
Arreglos Unidimensionales y Bidimensionales ESTRUCTURAS DE DATOS I
Advertisements

DATSI, FI, UPM José M. Peña Programación en C DATSI, FI, UPM José M. Peña Programación en C.
Abstracción de Datos Arrays.
Arrays Fundamentos de Programación I
Fundamentos de la Programación Estructurada
Programación I Teoría III
Direcciones, Arreglos y Argumentos de Funciones
Estructuras de datos. Programación, Algoritmos y Estructuras de Datos.
Tipos de Datos Básicos y Estructurados
Las estructuras de arreglos fueron usadas en las primeras computadoras digitales, cuando la programación se hacía todavía en lenguaje máquina, para tablas.
INFORMATICA I Arreglos 1 CLASE 17.
Tema 1. Introducción a la programación (Lenguaje java).
Estructuras Compuestas.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Ismael Camarero1. 2 ¿Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria.
Unidad 3 Punteros.
¿Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No.
Vectores en java.

Almacenamiento y Recuperación de la Información 2do Semestre 2005 Wenceslao Palma M.
Tipos de Datos Básicos 1.
SESIÓN 2. Completados por el tipo de objeto sobre el que actúan y el objeto concreto: CREATE DATABASE mibase ; Permite crear una base de datos llamada.
Diseño de algoritmos “Punteros”
3.1 Declaración de tablas en C
UNIDAD V Arreglos y Cadenas
TIPOS Y ESTRUCTURAS BÁSICAS DE DATOS
Informática Ingeniería en Electrónica y Automática Industrial
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
Índice. Revisando conceptos acerca de la memoria.
1 3Tablas o matrices 3.1. Concepto Las tablas corresponden al concepto matemático de matriz. Todos sus elementos deben ser del mismo tipo y se accede a.
TABLAS Definición. El tipo tabla permite definir objetos formados por un conjunto de elementos del mismo tipo. Ejemplos. El tipo tabla se utiliza para.
Informática Ingeniería en Electrónica y Automática Industrial
ATC-DistribuidasUniversidad de Oviedo / Dpto. de Informática XDR (External Data Representation) Tipos y codificación.
Clase 10: Estructuras de datos y arreglos.
Unidad VI Registros (estructuras, uniones y enumeraciones)
COMPUTACIÓN I TEMA 6. Pasaje de parámetros por Referencia. Uso de apuntadores Prof. Mireya Morales.
Tipo de Datos Básicos.
© AutoresV1.1 Informática Ingeniería en Electrónica y Automática Industrial Datos en lenguaje C.
Informática Ingeniería en Electrónica y Automática Industrial
El lenguaje de programación C - Vectores y matrices -
Aplicación de estructuras de datos
El Lenguaje C++. Creación de programas simples de C++ Builder como ejercicios en C++. Los elementos de control fundamentales en C++, incluyendo operadores.
Fundamentos de Programación
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
Informática Ingeniería en Electrónica y Automática Industrial
Punteros.
Listas Ligadas Simples. Definíción I  Es, en sencillas palabras. un grupo de datos organizados secuencialmente, pero a diferencia de los arreglos, la.
Matrices Departamento de Computación Escuela de Ingeniería de Sistemas
Elementos básicos del lenguaje
PUNTEROS Y REFERENCIAS
APUNTADORES.
CAPITULO V ARREGLOS Y CADENAS.
Los punteros Programación modular.
Matrices Prof. Flor Narciso Departamento de Computación
Punteros Recomendado: 1. Nivelación Funciones
Términos algoritmo diseñar algoritmo implementar algoritmo
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
Computación II Capitulo VII Punteros. Presentación de la unidad Objetivos: –Ser capaces de utilizar punteros. –Comprender las relaciones entre punteros,
Capitulo 4 Arreglos o Arrays Unidimensionales Bidimensionales Strings
PRINCIPIOS DE PROGRAMACIÓN

Arrays multidimensionales en JAVA
Computación I. CI-2125 Tema VII
PUNTEROS EN EL LENGUAJE C
Lenguaje de programación c
EL TIPO DE DATO LOGICO y constantes.
OBJETIVOS DEFINIR LA ESTRUCTURA DE ARREGLOS. DECLARAR ARREGLOS EN C.
Introducción al Lenguaje C (I) Tipos básicos, arrays y punteros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión
3.6 Manejo de E/S Estructuras En la creación de soluciones para algunos problemas surge la necesidad de agrupar datos de diferente tipo o de manejar datos.
Arrays, Cadenas y Vectores Tipos Genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 5 Versión
Transcripción de la presentación:

Programación en C para electrónicos Datos estructurados Programación en C para electrónicos

Índice Punteros. Vectores. (Arrays) Cadenas de caracteres. Matrices. Vectores multidimensionales. Cadenas de caracteres. Estructuras y Uniones. Tipos enumerados. Definición de nuevos tipos. Datos estructurados - David Carmona 2010

Objetivos Datos estructurados - David Carmona 2010

Punteros Programación en C para electrónica Datos estructurados - David Carmona 2010

Punteros Un puntero es una variable que puede almacenar una dirección de memoria. Normalmente los punteros contienen la dirección de memoria de otra variable. Los punteros apuntan a una variable cuando contienen la dirección de memoria de dicha variable. Datos estructurados - David Carmona 2010

Operadores En la declaración y uso de los punteros se utilizan los operadores * y & (unarios) . & (dirección): Permite obtener la dirección de memoria de una variable. * (indirección): Permite obtener el contenido de una dirección de memoria. También se utiliza para la declaración de punteros. Datos estructurados - David Carmona 2010

Declaración de punteros Sintaxis: Tipo_dato * Nombre_Puntero Un puntero debe estar asociado a un tipo de dato concreto. No pueden asignarse a un puntero direcciones de datos de distinto tipo. Cuando asignamos un tipo a un puntero indicamos la cantidad de memoria que ocupa el dato a partir de la dirección de memoria. Datos estructurados - David Carmona 2010

Tipos de punteros Los punteros se pueden declarar de cualquier tipo de dato de C. int, char, float…. El tipo de dato utilizado en la declaración de un puntero debe ser del mismo tipo que las variables a las puede apuntar. El tipo de datos void, define un puntero genérico cuyo tipo es el del tipo de la variable a la que apunta. Datos estructurados - David Carmona 2010

Puntero void El puntero ip, primero apunta a una variable entera y después a una de tipo char. Datos estructurados - David Carmona 2010

Asignación de direcciones El operador & permite obtener la dirección que ocupa una variable en memoria. Los tipos del puntero y la variable deben ser el mismo (excepto void). Ejemplo: Datos estructurados - David Carmona 2010

//asigna el valor 172 a la p. mem. apuntada Indirección Indirección es la forma de hacer referencia al valor de una variable a través de un puntero que apunta a dicha variable. Para acceder al valor contenido en la dirección de memoria apuntada por un puntero se utiliza el operador *. Ejemplo: *puntero=172; //asigna el valor 172 a la p. mem. apuntada Datos estructurados - David Carmona 2010

Ejemplo: Datos estructurados - David Carmona 2010

Operaciones con punteros Asignación entre punteros: Podemos asignar un puntero a otro siempre que sean del mismo tipo. Después de la asignación ambos punteros contienen la misma dirección por lo tanto apuntan a la misma variable. Datos estructurados - David Carmona 2010

Operaciones con punteros Aritmética de punteros: Sumar un valor a un puntero implica el incremento de la posición de memoria a la que apunta. El incremento en la dirección se hace en múltiplos del tamaño del tipo de dato. Si a un puntero de tipo float (4 bytes) contiene la dirección 1007, y se le suma 1 (puntero++) la dirección apuntada pasará a ser 1011 Datos estructurados - David Carmona 2010

Ejemplo: Dirección valor 1000 short a 1001 1002 short b 1003 1004 short c 1005 1006 short d 1007 1008 float r 1009 1010 1011 Datos estructurados - David Carmona 2010

Vectores Programación en C para electrónica Datos estructurados - David Carmona 2010

Vectores Un vector o array, es un grupo de datos del mismo tipo que ocupan posiciones de memoria contiguas. Los datos de un vector se encuentran agrupados bajo un mismo identificador (nombre). Para acceder a cada elemento del vector se utilizan subíndices. (nº de elemento del vector) Datos estructurados - David Carmona 2010

Declaración de vectores. Sintaxis: Tipo_dato Nombre_vector [tamaño] Donde: Tipo_dato es el tipo de dato de todos los elementos del vector. Nombre_vector es el identificador. tamaño es el número de elementos del vector. Datos estructurados - David Carmona 2010

Declaración de vectores. Ejemplo: float temperaturas [100]; //vector para almacenar 100 temperaturas Inicialización: Los vectores se pueden inicializar en la declaración encerrando la lista de valores entre llaves y separando cada elemento por comas. Datos estructurados - David Carmona 2010

Acceso a los elementos Para acceder a un elemento del vector, se utiliza su nombre y un índice. Valor o expresión entera. El primer elemento del vector tiene índice 0 y el último; tamaño-1. El índice debe estar siempre entre estos dos valores. Datos estructurados - David Carmona 2010

Acceso a los elementos Ejemplos: int contador[10]; … contador[0]=10; contador[i+1]=127; int b=contador[9]; contador[x]=7; Datos estructurados - David Carmona 2010

Limitaciones del vector No se pueden comparar vectores. No se puede copiar un vector completo a otro con una asignación. Se puede hacer elemento a elemento. Datos estructurados - David Carmona 2010

Tipo_dato Nombre_vector [tamaño_x] [tamaño_y] Matrices Una matriz es un vector de dos dimensiones. Los conceptos de acceso, consulta e inicialización de elementos es similar a los de los vectores. Sintaxis de la declaración: Tipo_dato Nombre_vector [tamaño_x] [tamaño_y] tamaño_x y tamaño_y representan el numero de filas y columnas de la matriz respectivamente. Datos estructurados - David Carmona 2010

Almacenamiento Los elementos de una matriz se almacenen en memoria por filas. A continuación del último elemento de una fila se almacena el primer elemento de la fila siguiente. Datos estructurados - David Carmona 2010

Asignación y consulta Para acceder a un elemento se utiliza el nombre de la matriz y dos índices (uno por dimensión) entre corchetes. El valor del índice de cada dimensión oscila entre el 0 y el tamaño de la dimensión menos 1. Ejemplo: float temperaturas [10][10]; //matriz para almacenar 100 temperaturas temperatura [0][1]=27,6; Datos estructurados - David Carmona 2010

Inicialización Sin agrupar filas: Agrupando filas: Datos estructurados - David Carmona 2010

Vectores multidimensionales Datos estructurados - David Carmona 2010

Punteros y vectores En C el nombre de un vector se trata como un puntero que contiene la dirección del primer elemento del vector. El nombre del vector es una constante de tipo puntero que no puede ser modificada. Se permite el uso de punteros que contengan direcciones de elementos del vector para acceder a ellos utilizando la aritmética de punteros. Datos estructurados - David Carmona 2010

Ejemplo Datos estructurados - David Carmona 2010

Punteros y vectores En un puntero que apunta a los elementos de una tabla, pueden usarse los corchetes para indexar dichos elementos, como en un vector: Este tipo de indexaciones solo es válido si el puntero apunta al vector. No se comprueba si el puntero apunta al vector o fuera de el. Datos estructurados - David Carmona 2010

Cadenas de caracteres Programación en C para electrónica Datos estructurados - David Carmona 2010

Cadenas de caracteres Una cadena de caracteres es un vector de tipo char. Se les conoce como string. Las cadenas de caracteres son tratadas de forma especial. En C existe un archivo de cabecera (string.h) con funciones especializadas en el manejo de cadenas de caracteres. Datos estructurados - David Carmona 2010

Cadenas de caracteres Para que un vector sea considerado como cadena de caracteres debe finalizar con el carácter nulo (ASCII 0). El contenido a partir del carácter nulo se ignora. Para declarar una cadena de caracteres de tamaño N hay que reservar memoria N+1 caracteres. Datos estructurados - David Carmona 2010

Declaración e inicialización En la declaración se puede inicializar la cadena como hasta ahora: En el caso de las cadenas, la forma equivalente es: El compilador inserta caracteres nulos (\0) después del último carácter de la asignación. Datos estructurados - David Carmona 2010

Declaración e inicialización Sintaxis general: char Nombre_Cadena [ tamaño ] = “Cadena”; Ejemplo: char ciudad [30] = “Valencia”; Se puede obviar el tamaño de la cadena en la declaración El compilador reservará el espacio justo para albergar la cadena. char ciudad [] = “Valencia”; Datos estructurados - David Carmona 2010

Cadena vacía (“”) Una cadena vacía es aquella que consta únicamente del carácter nulo (\0) Los caracteres siguientes al carácter nulo son ignorados. Para vaciar una cadena basta con asignar el carácter nulo al primer carácter de la cadena. Datos estructurados - David Carmona 2010

Manejo de cadenas La librería string.h incorpora funciones para el manejo de cadenas de caracteres: Datos estructurados - David Carmona 2010

E/S de cadenas Las funciones printf y scanf disponen de un formato especial para cadenas de caracteres (%s) Este formato permite capturar del teclado cadenas que no contengan espacios, tabuladores o saltos de línea. Datos estructurados - David Carmona 2010

E/S de cadenas Además, la librería stdio.h dispone de otras funciones para tratamiento de cadenas en la entrada y salida: Estas funciones permiten la entrada de cadenas que contengan espacios, tabuladores… Datos estructurados - David Carmona 2010

Estructuras y uniones Programación en C para electrónica Datos estructurados - David Carmona 2010

Estructura Una estructura es un conjunto de datos de distintos tipos que ocupan posiciones de memoria contiguas. Los elementos (campos) de una estructura pueden ser de cualquier tipo de los vistos hasta ahora. Los elementos de una estructura se referencian a través del nombre de la misma. Datos estructurados - David Carmona 2010

Definición La definición de una estructura requiere especificar el nombre y tipo de todos los campos de la estructura. Para la definición de la estructura se utiliza la palabra reservada struct. Una vez definida la estructura, se pueden crear tantos datos de la estructura como se quieran. El nombre de la estructura se utiliza como un tipo de dato más a la hora de declarar variables de ese tipo. Datos estructurados - David Carmona 2010

Sintaxis Datos estructurados - David Carmona 2010

Declaración de variables Se utiliza la palabra reservada struct y el nombre de la estructura. También se pueden declarar variables de la estructura creada en la definición de la misma. Datos estructurados - David Carmona 2010

Ejemplos Datos estructurados - David Carmona 2010

Variable.nombre_campo Acceso a los campos Para acceder a un campo de una estrutura se utiliza el operador . (punto) La forma general de acceso a campos es : Variable.nombre_campo Ejemplo: Nuevo_cliente.dni = 12345678; Datos estructurados - David Carmona 2010

Inicialización Se puede asignar valor a todos los campos de la variable en el momento de declararla. Se encierran entre llaves los valores y se separan con comas (,) en el mismo orden de la definición. Ejemplo: Datos estructurados - David Carmona 2010

Copia y comparación No se pueden comparar mediante los operadores relacionales variables del mismo tipo de estructura. Se deben comparar los campos individualmente. Se pueden copiar todos los campos de una variable a otra mediante la asignación simple: struct cliente cliente1,Nuevo_cliente; … Nuevo_cliente = cliente1; Datos estructurados - David Carmona 2010

Uniones Pueden contener varios campos de distinto tipo. Todos los campos de la unión comparten espacio de memoria. Una variable de este tipo solo puede almacenar el valor de uno de los campos. La unión ocupa el mismo espacio de memoria que el campo de mayor tamaño. Datos estructurados - David Carmona 2010

Definición La definición y declaración de variables de una unión es análoga al de las estructuras. Se utiliza la palabra reservada union. Datos estructurados - David Carmona 2010

Tipos enumerados Programación en C para electrónica Datos estructurados - David Carmona 2010

Tipos enumerados Es un conjunto ordenado de constantes enteras a las que se le asigna un nombre. Los nombres representan todos los valores que puede tomar la variable. El compilador les asigna un valor entero según el orden de las constantes y empezando por 0. Datos estructurados - David Carmona 2010

Definición Se utiliza la palabra reservada enum, seguida del nombre de la enumeración y de la lista de nombres de las constantes. Ejemplo: enum Nombre_Enum { Const1, Const2, … ConstN}; Datos estructurados - David Carmona 2010

Declaración de variables La declaración de variables enumeradas puede hacerse en la definición: O posteriormente utilizando la siguiente sintaxis: enum dia_semana { Lunes, Martes, Miercoles, Jueves, Viernes, Sabado,Domingo} dia; enum dia_semana dia; Datos estructurados - David Carmona 2010

Cambio de valores Por defecto, a los nombres se les asigna un valor entero, por orden de aparición en la definición y empezando desde 0. Se puede cambiar el valor por defecto mediante asignaciones en la definición. Datos estructurados - David Carmona 2010

Definición de nuevos tipos. Programación en C para electrónica Datos estructurados - David Carmona 2010

typedef tipo_datos Nombre_nuevo_tipo; El lenguaje C permite definir nuevos tipos de datos basados en los tipos vistos hasta ahora. Para definir los nuevos tipos se utiliza la palabra reservada typedef, con la siguiente sintaxis: Una vez definido el nuevo tipo, el nombre se puede utilizar como tipo de datos en la declaración de variables. typedef tipo_datos Nombre_nuevo_tipo; Datos estructurados - David Carmona 2010

Ejemplos: Datos estructurados - David Carmona 2010