TIPO DE DATO ABSTRACTO (TDA)

Documentos relacionados
Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Elementos de un programa en C

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

Definición de Memoria

FUNDAMENTOS DE INFORMÁTICA

Datos y tipos de datos

Lección 2 Introducción al lenguaje C

ESCUELA DE INFORMÁTICA

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Expresiones y sentencias

Ficha de Aprendizaje N 13

Constantes. Las constantes no cambian durante la ejecucion de un programa en C++, en C++ existen 4 tipos de constantes:

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

Tipos de Datos Estructurados

Fundamentos de JAVA. Angel Kuri Enero, /2/2006

Es toda la información que utiliza el computador. Según sea la información que guardemos en los datos, se clasifican en los siguientes tipos:

4. Operadores Operador asignación

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Programación. Test Autoevaluación Tema 3

El lenguaje C. 1. Identificadores, constantes y variables

Principios de Computadoras II

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Tema 2. El lenguaje JAVA

Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES.

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Introducción a la Programación 11 O. Humberto Cervantes Maceda

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

2^10 2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 SUMA

2. EXPRESIONES 3. OPERADORES Y OPERANDOS 4. INDENTIFICADORES COMO LOCALIDADES DE MEMORIA

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación

Tema 3 Constantes, Variables y Tipos

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

Manual de turbo pascal

Representación de la información

Instituto Tecnológico de Celaya

Estatutos de Control C# Estatutos de Decisión (Selección)

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

Datos y tipos de datos

Programación en java. Estructuras algorítmicas

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

Tema 5. Estructura de datos Pila

UNIDAD 9. DATOS COMPLEJOS PILAS

1 Estructura básica de un programa C++

TEMA 2. CODIFICACIÓN DE LA INFORMACIÓN

Computación II. Introducción a Visual Basic

Fundamentos de la programación

Unidad 5. Lenguaje Estructurado de Consultas SQL

Tema 13: Apuntadores en C

Estructura de Datos. Arreglos. Experiencia Educativa de Algorítmica ESTRUCTURA DE DATOS - ARREGLOS 1

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

Estructuras de Datos Declaraciones Tipos de Datos

Curso de Programación Avanzada en C

Apuntadores (Punteros)

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Tabla de Símbolos. Programación II Margarita Álvarez

Capítulo 7 OPERADORES Y EXPRESIONES. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Tema 3. Tipos de datos simples

Programación en Visual Basic Ricardo Rodríguez García

Representación de números enteros: el convenio exceso Z

Introducción al tipo Vector Cómo guardar una colección de datos conceptualmente relacionados? - almacenar los 100 primeros números primos, - al

Escuela Politécnica Superior de Elche

Fundamentos de Programación Visual Basic

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Programación En Lenguaje C

Un identificador le da nombre único a un elemento en un programa (Variables, procedimientos, etc.). No puede contener operadores como + - * /

Unidad Nº V Listas Enlazadas

Informática Ingeniería en Electrónica y Automática Industrial

Representación de la Información.... en los Computadores

6.1.- Introducción a las estructuras de datos Tipos de datos Arrays unidimensionales: los vectores Operaciones con vectores.

Introducción al lenguaje C

Fundamentos de programación JAVA

Programación 1 Tema 3. Información, datos, operaciones y expresiones

Cadenas y Caracteres. Universidad Católica de Honduras Nuestra Señora Reina de la Paz. Asignatura. Programación Científica. Tema de Exposición

Tema 10: Tipos de datos definidos por el usuario

Programación Estructurada

Enteros: números pertenecientes a un subconjunto finito de los números enteros. Lógicos: los dos valores lógicos, VERDADERO (true) o FALSO (false).

Contenido. Introducción a los Computadores Conceptos básicos. Sistema de numeración CNM-130

Operadores. Javier Fernández Rivera -

Variables. Profesor Leonardo Carámbula - Programación III EMT I.S.B.O.

TEMA III: OPERACIONES CON LOS DATOS

INICIACIÓN A LA PROGRAMACIÓN II

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas

INICIACIÓN A LA PROGRAMACIÓN EN C

PHP: Lenguaje de programación

INSTITUTO TECNOLOGICO EL LLANO LICENCIATURA EN INFORMATICA ESTRUCTURA DE DATOS I

12 símbolos (13 si se incluye el espacio en blanco)

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

Guía práctica de estudio 06: Lenguaje binario

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

Estructura y Tecnología de Computadores. Módulo C. Arquitectura del procesador. Tema 4. Modos de direccionamiento y tipos de datos

Objetivo de aprendizaje del tema

2. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

Transcripción:

TIPO DE DATO ABSTRACTO (TDA) Ing. Eduard Antonio Lozano Córdoba Nota: Toda la información fue copiada de: Libros físicos e Internet

Actividad Extra Clases #include <stdio.h> #include <conio.h> int binario(int num); int n; void main() { clrscr(); printf("dame un numero:"); scanf("%d",&n); binario(n); getch(); } int binario(int num) { if (num == 0) return 1; else { binario(num/2); } printf("%d",num%2); } hola, yo no soy el autor de este programa, pero lo puedo explicar. Bueno pues te pide un numero entero Lo guarda en Variable n El valor n lo asigna a la funcion binario entonces con n en la mano va a la funcion y dice es n igual a cero? si es afirmativo regresa el numero "1" sino ese numero vuelve a asignarlo a la funcion binario y comprueba si es cero o no (sino es ya sabes que hacer) escribe siempre que pases n con la funcion binario el residuo de n entre 2

Un tipo de dato se define como: (1) Un conjunto de valores, aquellos que puede tomar cualquier dato de dicho tipo. (2) Un conjunto de operaciones, definidas sobre dichos valores, que permiten operar adecuadamente con ellos. En la mayoría de los lenguajes de programación es necesario realizar la declaración de tipos, esto es, asignar un tipo de dato a cada una de las variables (a veces también las constantes) del programa. Clasificación del conjunto de datos Datos elementales. Datos Estructurados o Estructuras de Datos.

INTRODUCCIÓN En general conocemos los tipos de datos básicos de los lenguajes, a saber: Entero Real Boolean Carácter : int : real : boolean : char Estos varían de un lenguaje a otro.

DEFINICIÓN: Un tipo de dato abstracto (TDA) es un modelo matemático, junto con varias operaciones definidas sobre ese modelo. Los TDA se representan en función de los tipos de datos y los operadores manejados por ese lenguaje. Para representar los TDA se usan estructuras de datos que están constituidas por conjuntos de variables (a veces de diferente tipo). 1. Memoria 2. Variable 3. Nombre 4. Valor 5. Tipo

VALOR Es un elemento de algún conjunto con un tipo. 3 es un valor del conjunto Z asociado con el tipo integer. TRUE es un valor de conjunto {T, F} asociado con el tipo boolean.

VARIABLE Es un componente de una memoria que tiene un nombre y un tipo asociado. Una variable contiene valores de este tipo. Reglas para definición de variables Pueden tener hasta 40 caracteres. Debe empezar obligatoriamente con una letra (a-z / A-Z), el resto de los dígitos pueden ser números. No pueden contener espacios en blanco, se pueden incluir caracteres especiales como el guión o el punto.

MEMORIA Es a menudo descrita como una colección de cajas con datos variables que contienen valores. Una forma intuitiva puede ser el mapeo memoria: nombre valor int x, y; { x = 3; y = x + 2; } Decimos que int es un tipo del lenguaje y que x e y son de tipo int. Es decir que contienen valores de tipo int. El número 3 es almacenado. La expresión x + 2 evalúa un valor entero. Dado que x e y contienen valores enteros matemáticos, entonces ciertas operaciones matemáticas son permitidas: + y -. Para otros tipos como reales, void, boolean aplica lo mismo.

DATOS DE TIPO ENTERO Este tipo representa el conjunto de los números enteros. Dentro del ordenador los enteros se van a representar como números en binario o en base dos (utilizando sólo ceros y unos). Para su almacenamiento se utilizarán un número fijo de bits, que dependiendo de su número nos darán distintos tipos de dato entero. Por ejemplo el número 35)10 = 100011)2 Para pasar de un número en decimal a cualquier

DATOS DE TIPO REAL Este tipo es una representación del conjunto de números reales. La transformación que se realiza consiste, básicamente, en expresar el número de la forma N = m * Be, donde N es el número real a representar, B es la base utilizada (prefijada para cada computadora), e es el exponente del número y m es la "mantisa". Dentro de la computadora, el número se almacena uniendo el signo, el exponente y la mantisa, cada uno con un número de bits prefijado. Aspectos a tener en cuenta: - el número de bits utilizado para almacenar la mantisa va a determinar la precisión de la representación. La representación de los reales no es unívoca, ya que lo que verdaderamente se representan son intervalos de la recta real. Por ejemplo, si tenemos 3 decimales de precisión, tanto el número 15.3244 como el 15.3243 se representarán como 15.324.

DATOS DE TIPO LÓGICO Este tipo de datos representan valores de tipo lógico o booleano. Estos datos pueden tomar los valores verdadero (uno) o falso (cero). Sobre los valores lógicos actúan los operadores lógicos: AND, OR, NOT, NAND, NOR y XOR. En la siguiente tabla podemos ver todos los posibles resultados de los distintos operadores lógicos. (V = verdad, F = falso). ejemplos: - 5 < 6, con resultado V(erdadero). - 10.5 = 10.58, con resultado F(also). - "B" "F", con resultado F. - (5 + 7) (2-6), con resultado V.

TIPO DE DATOS CARÁCTER Los datos de tipo carácter representan elementos individuales de conjuntos finitos y ordenados de caracteres. Cada computadora puede representar un conjunto de caracteres distintos, siendo el más extendido el ASCII. La única operación interna que tiene este tipo es la asignación de un carácter a una variable.

TIPO DE DATOS ENUMERADO Los datos de este tipo se definen explícitamente dando un conjunto finito de valores. La ventaja del uso de estos tipos de datos está en poder enumerar de forma más real los posibles valores que pueda tomar una variable. El siguiente ejemplo define el tipo de dato DiasSemana que toma todos los días de la semana. De esta forma evitamos tener que pensar en otra representación menos intuitiva como sería identificar el lunes con un cero, el martes con un uno, etc. DiasSemana = (lunes, martes, miércoles, jueves, viernes, sábado, domingo)

TIPO DE DATOS SUBRANGO Este tipo se define a partir del tipo entero, carácter. Un dato de tipo subrango puede tomar determinados valores del tipo original, a partir del cual se ha definido el subrango (entre un mínimo y un máximo). Con los datos del tipo subrango se pueden realizar las mismas operaciones definidas para el tipo original. ejemplo: - 0..9 - teniendo en cuenta el ejemplo anterior podemos definir el subrango lunes...viernes - "a".."z".

Tipos de datos estándar de C y C++ Todos los programas gestionan algunos tipos de información que normalmente se pueden representar utilizando uno de los ocho (8) tipos de datos básicos de C y C++: texto o char, valores enteros o int, valores de coma flotante o flota, valores en como flotante de doble precisión o double (long double), enumerados o enum, sin valor o void, punteros y booleanos. 1. Texto (tipo de dato char) está constituido por caracteres simples, como a, Z,, 3 y cadenas, como Esto es una prueba (normalmente, de 8 bits o un byte por carácter, con un rango de 0 a 255). 2. Los valores enteros (tipo de dato int) son aquellos números que se aprendieron a contar (1, 4, -2, 1354); normalmente, tienen un tamaño de 16 bits, 2 bytes o una palabra, con rango de -32768 a 32767. En Windows 98 y Windows NT, los valores enteros tienen un tamaño de 32 bits con un rango de -2147483648 a 2147483647. 3. Los valores en coma flotante (tipo de dato float) son números que tienen una parte fraccional, como por ejemplo pi (3,14159), y exponentes (7,5631021). También se conocen como números reales (normalmente, son de 32 bits, 4 bytes o 2 palabras, con un rango de +/-3,4E-38 a 3,4E+38). 4. Los valores en coma flotante de doble precisión (tipo de dato double) tienen un rango superior (normalmente de 64 bits, 8 bytes ó 4 palabras, con un rango de 1, 7E-308 a 1, 7E+308). Los valores en coma flotante long double (doble precisión largos) son incluso más precisos (normalmente, tamaño de 80 bits ó 5 palabras, con un rango de +/-1,18E-4932 a 1,18E-4932). 5. los tipos de datos enumerados (tipo de dato enum) permiten al usuario definir tipos de datos. 6. El tipo void se utiliza para especificar valores que ocupan cero bits y no tienen valor (este tipo también se puede utilizar para la creación de punteros genéricos. 7. El tipo de dato puntero no contiene información en el mismo sentido que el resto de los tipos de datos; en su lugar, cada puntero contiene la dirección de la posición de memoria que almacena el dato actual. 8. El tipo de dato bool, al que se le puede asignar las constantes true (verdadero) y false (falso).

LAS ESTRUCTURAS DE DATOS Llamamos estructura de datos o tipo de dato estructurado a los tipos de datos construidos a partir de otros tipos de datos. ejemplos: - tipo de datos complejo formado por una pareja de datos reales. - tipo de datos fecha compuesto por tres enteros. - tipo de datos dirección formado por cadenas de caracteres (calle, población,...), y por enteros y caracteres (portal, piso y letra,...).

CLASIFICACIÓN. Pueden realizarse diferentes clasificaciones. Atendiendo al tipo de los datos que la componen podemos distinguir entre estructuras de datos: homogéneas, cuando todos los datos elementales que la forman son del mismo tipo. heterogéneas, en caso contrario.

Si en lo que nos fijamos es en la forma en que se almacenan y se gestionan en memoria las estructuras de datos, podemos distinguir entre las: estáticas si poseen un número fijo de elementos. Los ejemplos más típicos son los arrays y registros. Su mayor desventaja es la necesidad de tener que definir el número máximo de elementos que podrá tener la estructura. Su mayor ventaja es la rapidez de acceso a cada elemento individual de la estructura. dinámicas si el número de elementos que contienen puede variar durante la ejecución del programa. Su principal inconveniente es la lentitud en el acceso, ya que normalmente se realiza de forma secuencial. La ventaja es sin embargo importante, la posibilidad de aumentar o disminuir en tiempo de ejecución el número de elementos que componen la estructura.

Por la forma de acceder a la estructura de datos encontramos: acceso por nombre, es decir, para acceder a cada elemento de la estructura de datos es necesario conocer el nombre (p. e. los registros). acceso por posición, donde para acceder a un elemento de la E. D. o bien se conoce su posición, o bien el acceso se reduce a ciertos elementos (el primero, el último, etc.). Ejemplos pueden ser las estructuras matriciales (matrices, vectores, etc.), las Pilas y las Colas. acceso por clave, en la que para acceder a un determinado elemento es preciso conocer únicamente el contenido de uno de sus campos, normalmente llamado clave. Ejemplos son todas las estructuras ordenadas por su contenido, como es el caso de los árboles.

TIPOS DE ESTRUCTURAS DE DATOS. ARRAYS: Un array es una estructura de datos formada por una cantidad fija de datos de un mismo tipo, cada uno de los cuales tiene asociado uno o más índices que determinan de forma unívoca la posición del dato en el array.

CADENAS DE CARACTERES Una cadena de caracteres, también conocida como "string", es una estructura de datos formada por una secuencia de caracteres. En una variable de tipo string se puede almacenar una frase, un nombre, una matricula de un coche, etc. Algunas de las operaciones más usuales que se pueden realizar sobre datos de tipo cadena son: - concatenación (+): forma una nueva cadena a partir de la unión de otras dos puestas una a continuación de la otra. Por ejemplo: Hola + Colega = HolaColega

- extracción de subcadena: permite formar una nueva cadena a partir de otra ya existente. Si FRASE es una variable de tipo string que contiene la cadena "Hola Colega", entonces FRASE(6:11) es la cadena "Colega" (se supone en este caso que las cadenas comienzan por la posición número uno). - comparación de cadenas: esta operación permite determinar si una cadena es menor, igual o mayor que otra dada. El criterio para determinar si una cadena es mayor o menor que otra es el orden alfabético, por ejemplo, "Moto" es mayor que "Mota". - obtención de longitud: la longitud de una cadena es un dato de tipo entero, cuyo valor es el número de caracteres que contiene dicha cadena.

REGISTRO Un registro es una estructura de datos que engloba varios elementos (simples o estructurados) y que contiene información relativa a un mismo ente. Cada unión informativa sobre un objeto particular se denomina registro. A cada uno de los elementos del registro se le denomina campo. Cada uno de los campos de un registro puede ser de diferente naturaleza (tipo) por lo que son un ejemplo claro de estructura de datos heterogénea. Para definir un registro es necesario especificar el nombre y el tipo de cada campo.

EJEMPLO: la ficha de un empleado en una empresa puede ver como un registro con los siguientes campos: - NIF (string) - Nombre (string) - Apellido1 (string) - Apellido2 (string) - N_Hijos (entero) - NSS (string) - Fecha_Nacimiento (fecha) donde tipo_fecha es otro registro con los campos: - día (subrango 1..31) - mes (subrango 1..12) - año (entero)

LISTAS Una lista está formada por un número variable de datos (elementos) de un mismo tipo (homogénea), que forman una secuencia lineal. Cada elemento, salvo el primero, tiene un predecesor y todos los elementos menos el último tienen un sucesor. La lista es una estructuradinámica. Se puede construir una lista usando una estructura de datos formada por registros de al menos dos campos, en que uno de ellos contiene información que permite localizar al siguiente

Las operaciones más habituales son las siguientes: - añadir un elemento a la lista en cualquier posición de ésta. - eliminar un elemento de la lista de cualquier posición. - acceso al primer elemento de la lista. - acceso al siguiente elemento de la lista. - comprobar si la lista está o no vacía.

Si en una lista sólo se permite añadir (push) y eliminar (pop) elementos por uno de los extremos (la cima), hablamos de PILA o LIFO ( Last In, First Out). En este tipo de estructura, el último elemento introducido, es el primero que sale.

Si la operación de añadir (push) se realiza siempre por un extremos de la lista y la de eliminar por el extremo opuesto, hablamos de una COLA o FIFO (First In, First Out). En una COLA, el primer elemento que entra es el primer elemento que sale. El siguiente esquema representa una Cola:

Las diferencias básicas entre las listas y los arrays: - la lista es una estructura de datos dinámica y, por tanto, ocupa en memoria el espacio necesario para albergar los elementos que contiene en cada instante. - las listas no son direccionables, para acceder a un elemento hay que recorrer los anteriores, es decir, en un instante dado sólo hay un elemento accesible de forma directa.

ÁRBOLES Un árbol es una estructura de datos formada por elementos del mismo tipo, llamados nodos, relacionados de tal modo que el árbol puede descomponerse en: 1. un nodo llamado raíz. 2. un conjunto finito de objetos de tipo árbol llamados subárboles del nodo raíz. Un nodo puede ser de diferentes tipos: Nodo hijo: aquel que depende directamente de otro superior en la jerarquía. Nodo padre: aquel que posee al menos un hijo. Nodo raíz: el único nodo en la jerarquía que no tiene padre. Nodo hoja: aquel nodo sin hijos.

Utch2009.wordpress.com