TIPOS DE DATOS ABSTRACTOS
|
|
- Ana Belén Cano Lucero
- hace 6 años
- Vistas:
Transcripción
1 TIPOS DE DATOS ABSTRACTOS PROGRAMACIÓN I ARISTIDES DASSO, ANA FUNES Área de Programación y Metodologías de Desarrollo del Software Departamento de Informática Facultad de Ciencias Físico-Matemáticas y Naturales Universidad Nacional de San Luis Argentina 2014
2 A. DASSO, A. FUNES TIPOS DE DATOS ABSTRACTOS Abstracciones Tipos de Datos Abstractos (TDA) La abstracción es una capacidad intelectual que poseemos los seres humanos que nos permite concentrarnos en los aspectos importantes de un problema, dejando de lado los detalles irrelevantes. Esta capacidad nos permite, asimismo, dividir el problema en partes más pequeñas y, en consecuencia, más fácilmente tratables, para luego integrar todo en una solución. Es decir, es una capacidad humana que nos permite lidiar con la complejidad. Cuando programamos resolvemos un problema y creamos un programa que es una abstracción de la realidad; en consecuencia, es importante contar con mecanismos de programación que favorezcan la abstracción. Si analizamos los lenguajes de programación convencionales, podemos ver que cuentan con un mecanismo que ayuda a la abstracción: la modularidad. Así, cuando hacemos uso de un módulo (por ejemplo, una función en C) en un programa, uno sólo se debe preocupar por conocer qué es lo que ese módulo hace, es decir, qué funcionalidad provee, sin preocuparse por saber cómo lo hace. Además, la modularidad nos proporciona un medio para descomponer una tarea en partes más pequeñas. Es decir, la modularidad en programación, llega bastante cerca de capturar el significado de abstracción. Sin embargo, este tipo de abstracción, referida como abstracción procedural, no es suficiente. En programación, existe también lo que se conoce como abstracción de datos, que nos lleva al concepto de Tipo de Dato Abstracto (TDA). Un TDA define datos de forma abstracta caracterizados por las operaciones que se pueden llevar a cabo sobre ellos. Esto significa que podemos decir que un TDA puede ser definido definiendo las operaciones que lo caracterizan. Cuando un programador hace uso de un objeto de dato abstracto, sólo se preocupa del comportamiento que ese objeto exhibe y no de los detalles de cómo ese comportamiento es logrado por medio de una implementación. Es decir, se preocupa por conocer qué hacen esas operaciones sobre el dato pero no cómo lo hacen. El comportamiento de un objeto de dato abstracto es capturado por el conjunto de operaciones que lo caracterizan. La información de implementación, tal como la forma en que el objeto es representado internamente en el almacenamiento, es necesaria conocerla sólo cuando se quiere definir la forma en que sus operaciones características van a ser implementadas. Así, el usuario de un objeto de dato abstracto no necesita conocer la implementación del mismo, solo debe conocer cuáles son las operaciones características para operar con objetos de ese tipo de dato abstracto. Es decir, la implementación de los objetos de datos abstractos necesita conocerla solo aquel que hará su implementación y no quién o quiénes la usen. Los TDA son muy similares a los tipos primitivos provistos por un lenguaje de programación. El usuario de un tipo primitivo, tal como el tipo entero o arreglo de caracteres, solo se preocupa por crear objetos de esos tipos y luego usarlos, llevando a cabo operaciones sobre ellos. Este usuario, por lo general, no se preocupa de la forma en que esos objetos de datos se encuentran representados o soportados en el almacenamiento; asimismo, ve las operaciones que sobre estos datos se pueden llevar a cabo como atómicas e indivisibles, cuando en realidad varias instrucciones de máquina pueden estar siendo requeridas para llevarlas a cabo. Además, en general, el usuario no puede descomponer esos objetos. Consideremos, por ejemplo, el tipo primitivo entero. Un programador puede necesitar declarar objetos de datos de tipo entero y llevar a cabo las operaciones aritméticas usuales sobre ellos; sin embargo, usualmente, no le va a interesar ver su representación interna como una cadena de bits, ni tampoco le interesa conocer qué instrucciones de máquina ejecuta el compilador para llevar a cabo las operaciones requeridas. Si bien, decíamos que los TDA son muy similares a los tipos primitivos de los lenguajes, la diferencia está en el nivel de abstracción considerado en cada caso. En el caso de los tipos Departamento de Informática - U.N.S.L. Argentina Página 2 de 7 Programación I
3 primitivos, el programador hace uso de una abstracción que ya se encuentra realizada o implementada en un nivel de detalle más bajo: en el lenguaje de la máquina al cual traduce el compilador del lenguaje de programación. En el caso de los TDA, estos también se encuentran implementados a un nivel y usados a otro; sin embargo, un TDA es definido por alguien (muchas veces el programador usuario), dando su implementación por medio de código escrito en el mismo lenguaje de programación. Este código define el tipo de dato por medio de las operaciones que se pueden realizar sobre él. Una vez definido un TDA, este código queda disponible para ser reusado en otros programas cuantas veces se quiera. Así, por ejemplo, podríamos definir en C un TDA Racional para operar con números racionales, dando su representación interna o implementación así como sus operaciones características, tales como la suma, el producto, la resta, etc. Una vez definido el TDA Racional, este nos queda disponible para ser usado en nuevos programas C cuantas veces lo deseemos. Quien quiera que lo use, sólo deberá conocer cuál es el nombre del TDA así como cuáles son las funciones con las cuales puede operar, y no deberá preocuparse por cuál es la representación interna de un dato de tipo Racional ni por cómo esas operaciones son llevadas a cabo internamente. Otro ejemplo podría ser un TDA stack_of_char que nos permita operar con pilas de caracteres. Este podría ser definido por solo tres operaciones sobre las pilas: una operación push, que inserta un dato en la pila; otra operación pop, que extrae un elemento de la pila (con la restricción de que cada pop siempre remueve el último elemento insertado y que no puede hacerse sobre una pila vacía) y una operación peek, que permite examinar cuál es el elemento que se encuentra en el tope de la pila, sin removerlo. En un lenguaje de programación, el programador puede definir un nuevo tipo no provisto por el lenguaje junto con las operaciones asociadas al nuevo tipo de datos, a través de la definición de un TDA. Esto lo hará utilizando los mecanismos y herramientas (tipos de datos primitivos y sus operaciones) que provea el lenguaje. Es importante notar que existe una diferencia fundamental entre el Tipo de Dato Abstracto y la Estructura de Datos usada en su implementación. Así, por ejemplo, el TDA stack_of_char puede ser implementado usando diversas estructuras de datos, como por ejemplo por medio de un arreglo o usando punteros. Ocultamiento de la Información Un principio subyacente a los TDA es que exista ocultamiento de la información (information hiding, en Inglés), que quiere decir que quien usa el TDA debería poder interactuar solamente con las características públicas del TDA, sus operaciones características, y no tener acceso a la implementación del mismo. Cuando, en un lenguaje de programación, definimos un TDA existen dos elementos diferenciados: (a) la interfaz pública de utilización y (b) la implementación interna de los objetos de datos. Como ya dijimos, a la hora de utilizar el TDA, la representación interna debería permanecer oculta al usuario del TDA, quién solo debería poder manipular los datos por medio de la invocación a las operaciones de la interfaz pública (las operaciones definidas sobre el TDA) para operar con sus elementos. Algunos lenguajes proveen una sintaxis adecuada para definir TDA, como por ejemplo el lenguaje Modula-2, o el lenguaje ADA que provee los paquetes (packages) como mecanismo para definir TDA. En otros casos, es necesario encontrar los mecanismos propios del lenguaje para darle soporte a la definición de un TDA. Definición de un TDA en C Durante el proceso de resolución del problema, podemos encontrarnos frente a una situación en que el lenguaje, cualquiera sea el que estemos utilizando, no nos provea con los tipos adecuados al Departamento de Informática - U.N.S.L. Argentina Página 3 de 7 Programación I
4 problema que estamos resolviendo. En esa situación podemos definir nuestros propios TDA. Veamos, entonces, cómo definir un TDA en C. Una posible solución es crear un archivo de cabecera por cada TDA que definamos. Este archivo quedará disponible para ser usado en nuestros programas C cuantas veces sea necesario simplemente haciendo un #include del mismo. Como se puede notar, si bien el TDA se encuentra encapsulado dentro de un archivo de cabecera, no cumple con el principio de ocultamiento de la información. Para logra esto en C, deberíamos crear una biblioteca de linking estático; sin embargo, por razones de simplicidad, haremos uso de la solución que emplea un archivo de cabecera por cada TDA. Se espera, entonces que los usuarios del TDA lo empleen disciplinadamente, es decir sin tocar las definiciones, operaciones, etc., que deberían cumplir con el principio de ocultamiento de la información (information hiding). En el archivo de cabecera usado para definir el TDA incluiremos: a) La definición del tipo necesario para dar soporte al TDA. b) Las operaciones caracteristicas del TDA, a través de definiciones de funciones, que nos permitirán manipular los objetos del TDA. Supongamos, por ejemplo, que necesitamos hacer un programa que almacene los números de los documentos de las personas que han solicitado un turno de acuerdo al orden en que se han ido pidiendo los turnos. Una buena solución para este problema sería almacenar los números en una fila o cola; sin embargo, el lenguaje C no provee un tipo para operar con filas de números enteros. En este caso, podemos definir nosotros nuestro TDA para operar con filas de enteros y luego usarlo en nuestro programa que guarda los documentos. A continuación, en la Figura 1, damos una posible definición de un TDA para operar con filas de enteros grandes, que hemos llamado queue_of_int. El mismo ha sido implementado haciendo uso de un archivo de cabecera en el lenguaje C, al cual, en este caso, hemos llamado queue_of_int.h 1. En el mismo podemos ver que se encuentran: a) La definición del tipo queue_of_int necesario para dar soporte al TDA, en nuestro ejemplo a una fila de enteros. b) Las operaciones características del TDA queue_of_int, que nos permitirán manipular filas de enteros: inicialización de la fila a vacía, inserción, supresión e inspección (o copia) de un elemento implementadas en las funciones nombradas init, insert, suppress y copy, respectivamente. También se provee dos funciones que implementan los predicados lógicos necesarios para conocer el estado en que se encuentra una fila dada: una función, que hemos llamado isempty, para saber si está o no vacía; y dado que se trata de una implementación en el mundo real donde las cosas no son infinitas, una función, que hemos llamado isfull, para poder saber si existe lugar o no para poder insertar (diremos, aunque no sea estrictamente correcto, que queremos saber si está llena la estructura. En realidad lo que podría estar llena es la estructura que se emplee como soporte para la fila). /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* *** TDA queue_of_int para fila de enteros *** */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #define MAXSOP 5 typedef struct { int sop[maxsop]; int p,u,c; 1 El archivo queue_of_int.h puede descargarse del sitio de la materia. Departamento de Informática - U.N.S.L. Argentina Página 4 de 7 Programación I
5 queue_of_int; /* Operaciones del TDA queue_of_int */ /* Inicializa una fila de enteros vacía */ void init(queue_of_int *x) { /* fin de init */ /* Devuelve el valor (vipd) del primero de la fila de enteros */ int copy(queue_of_int x) { /* fin de copy */ /* Devuelve 1 si no hay lugar en la fila de enteros para insertar */ int isfull(queue_of_int x) { /* fin de isfull */ /* Devuelve 1 si la fila de enteros está vacía */ int isempty(queue_of_int x) { /* fin de isempty */ /* Inserta un nuevo elemento detras del último de la fila de enteros */ void insert(queue_of_int *x, int i) { /* fin de insert */ /* Suprime el primero de la fila de enteros */ void suppress(queue_of_int *x) { /* fin de suppress */ Figura 1. Definición del TDA queue_of_int dada en el archivo de cabecera queue_of_int.h Uso de un TDA en C Una vez que hemos definido nuestro(s) TDA, podemos reusarlo(s) todas las veces que necesitemos en nuestros programas. Para ello, simplemente, deberemos incluir el o los correspondiente(s) archivo(s) de cabecera. Así, siguiendo con nuestro ejemplo, si queremos hacer el programa que almacena los números de documentos a medida que estos van arribando y mostrar por pantalla el estado de la cola en cualquier momento, podemos hacer uso del TDA queue_of_int que ya definimos en el archivo queue_of_int.h. En la Figura 2 se muestra el código del programa que hace lo antedicho. #include <stdio.h> #include "queue_of_int.h" /* Imprime todo la fila */ void imprime(queue_of_int q){ while (!isempty(q)){ printf("%d ", copy(q)); suppress(&q); Departamento de Informática - U.N.S.L. Argentina Página 5 de 7 Programación I
6 /* Retorna la posicion de un numero en la fila y si no esta retorna 0*/ int busca(int elem, queue_of_int q){ int posi = 0; int encontrado = 0; while (!isempty(q) &&!encontrado){ posi = posi + 1; if (copy(q)!= elem) suppress(&q); else encontrado = 1; if (encontrado) return posi; else return 0; /* ******* PROGRAMA PRINCIPAL ******* */ main(){ int op = -1; int i; int posi; queue_of_int mifil; init(&mifil); /* inicializa la fila a vacía */ while (op!= 0){ printf("1-ingresar en la cola un nuevo numero de documento\n"); printf("2-mostrar el estado de la cola\n"); printf("3-buscar un numero de documento\n"); printf("0-salir\n"); printf("elegir una opcion:"); scanf("%d", &op); printf("\n"); switch (op){ case 0: break; case 1: /* Ingresa documento en cola, si este no se encuentra */ if (!isfull(mifil)){ printf("ingrese el numero de documento:"); scanf("%d", &i); posi = busca(i, mifil); if (posi == 0) { insert(&mifil, i); printf("se INGRESO EL DOCUMENTO NUMERO %d A LA COLA"); else printf("el DOCUMENTO NUMERO %d YA SE ENCUENTRA EN LA FILA ", i); printf("\n\n"); else printf("fila LLENA. IMPOSIBLE INSERTAR\n\n"); break; case 2: /* Imprime la cola */ if (isempty(mifil)) printf("la FILA ESTA VACIA."); else { printf("la FILA ES: "); imprime(mifil); printf("\n\n"); break; case 3: /* Busca un numero en la cola*/ printf("ingrese el numero a buscar:"); scanf("%d", &i); posi = busca(i, mifil); Departamento de Informática - U.N.S.L. Argentina Página 6 de 7 Programación I
7 if (posi == 0) printf("el NUMERO DE DOCUMENTO %d NO SE ENCUENTRA EN LA FILA", i); else printf("el NUMERO DE DOCUMENTO %d SE ENCUENTRA EN LA POSICION %d ", i, posi); printf("\n\n"); break; default: /* error */ printf("opcion INCORRECTA\n\n"); Figura 2. Ejemplo de uso del TDA queue_of_int Departamento de Informática - U.N.S.L. Argentina Página 7 de 7 Programación I
Elementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
Más detallesProgramación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C
Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales
Más detallesTADs en C. Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013
TADs en C Matías Bordese Algoritmos y Estructuras de Datos II - Laboratorio 2013 1. Objetivos Definición de TADs en C Ocultación de la implementación del TAD Manejo básico de memoria dinámica 2. Usando
Más detallesEstructuras de Datos Declaraciones Tipos de Datos
Departamento de Informática Universidad Técnica Federico Santa María Estructuras de Datos Declaraciones Tipos de Datos Temas: 2-3-4 IWI-131, paralelo 01 Profesor: Teddy Alfaro O. Lenguaje de Programación
Más detallesTEMA 4. ESTRUCTURAS DE CONTROL
M.P. Sesmero, P. de Toledo, F.J. Ordoñez, J. Gómez-Romero, J.A. Iglesias, J.L. Mira Programación TEMA 4. ESTRUCTURAS DE CONTROL Grado en Ingeniería en Tecnologías Industriales Programación CONTENIDOS 4.1.
Más detallesProgramación Estructurada
Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 2 Nombre: El lenguaje de programación C Contextualización Una constante en todos los lenguajes de programación (viejos y nuevos) es la implementación
Más detallesTEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS
TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS Una vez que ya sabes crear tus propios programas, vamos a analizar los fundamentos del lenguaje de programación C. Este capítulo incluye además los siguientes temas:
Más detallesAPUNTADORES. 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.
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. No hay que confundir una dirección de memoria con el contenido
Más detallesCurso de Programación en C. Licenciatura, FCQeI. APUNTADORES.
APUNTADORES. La memoria de una máquina esta ordenada en forma de celdas numeradas consecutivamente y que se pueden manipular individualmente o en grupos contiguos. La siguiente figura muestra una representación
Más detallesProgramación. Test Autoevaluación Tema 3
Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.
Más detallesCaracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación
1 Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera Fundamentos de programación Agenda Caracteres y Cadenas Conversión de Datos Introducción a las funciones y procedimientos
Más detallesRelación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática
Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso 2013-2014. 1º Grado en Informática Práctica 2: Memoria dinámica y Bibliotecas Objetivos Practicar conceptos
Más detallesTodo programa en 'C' consta de una o más funciones, una de las cuales se llama main.
LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan
Más detallesExamen Principios de Programación Febrero 2012
Por favor siga las siguientes indicaciones: Escriba con lápiz. Escriba su nombre y número de documento en todas las hojas que entregue. Numere las hojas e indique el total de hojas en la primera de ellas.
Más detallesFundamentos de Programación 2017-I
Fundamentos de Programación 2017-I Fundamentos para la construcción de código a partir del algoritmo Objetivo: El alumno construirá programas utilizando el lenguaje de programación C a través de un análisis
Más detallesTema 13: Apuntadores en C
Tema 13: Apuntadores en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Introducción
Más detallesLENGUAJE. Tema 1 - Introducción
LENGUAJE Tema 1 - Introducción HISTORIA DEL LENGUAJE C El lenguaje de programación C fue creado por Dennis Ritchie cuando trabajaba en Bell Laboratories de AT&T junto con Ken Thompson en el diseño del
Más detallesProgramación Estructurada
Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 7 Nombre: Estructuras de datos Contextualización Cuando un programa suele ser muy extenso, un problema clásico de los programadores es la
Más detallesVariables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.
Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1
Más detallesCarlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos
Más detallesM. en E. Noemí López García
La forma de indicar al servidor que nuestro código PHP comienza es: M. en E. Noemí López García sentencias php Existen otros métodos de indicar el inicio de código php pero el indicado es el más común
Más detallesSistemas Operativos Practica 1: procesos y concurrencia.
Sistemas Operativos Practica 1: procesos y concurrencia. Objetivos: Introducir al alumno a los conceptos de programa, concurrencia, paralelismo y proceso o tarea. Manejo del concepto de concurrencia haciendo
Más detallesPROGRAMA DE ASIGNATURA DE PROGRAMACIÓN I
PROGRAMA DE ASIGNATURA DE PROGRAMACIÓN I Table of contents 1 INFORMACIÓN GENERAL...2 2 INTRODUCCIÓN... 2 3 OBJETIVOS GENERALES DE LA ASIGNATURA... 3 4 OBJETIVOS, TEMAS Y SUBTEMAS... 3 5 PLAN TEMÁTICO...6
Más detallesINTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008
INTRODUCCIÓN Estructura de Datos Tipos Abstractos de Datos (TAD S) Para poder obtener un programa que resuelva un problema dado, son necesarios varios pasos : La formulación y especificación del problema
Más detallesANEXO XVII DE LA RESOLUCION N
Hoja 1 de 7 UNIVERSIDAD NACIONAL DE CÓRDOBA Facultad de Ciencias Exactas Físicas y Naturales República Argentina Programa de: Código: Informática Carrera: Materia común Res. Nº Plan: Puntos:3.5 Escuela:
Más detallesFunciones como Subprogramas en C++
FUNCIONES Cuando es necesario escribir programas complicados para resolver problemas complejos, una práctica común entre los programadores es descomponer el algoritmo (el diagrama de flujo) en varias partes.
Más detallesTema 2. El lenguaje JAVA
Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias
Más detallesEscuela Politécnica Superior de Elche
EXAMEN DE SISTEMAS INFORMÁTICOS INDUSTRIALES ((SOLUCIÓN) (TEORÍA)jUJ jhshshs SEPTIEMBRE 2015 1. Indicar si las siguientes afirmaciones son verdaderas o falsas: (a) En C++, una clase derivada puede acceder
Más detallesMétodos que devuelven valor Dado el siguiente triángulo rectángulo:
Métodos que devuelven valor Dado el siguiente triángulo rectángulo: hipotenusa altura base Para dibujar este triángulo necesitamos los siguientes datos: base y altura La base y la altura, se utilizarán
Más detallesProgramación estructurada (Introducción a lenguaje C)
Programación estructurada (Introducción a lenguaje C) M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 15-I Sergio Luis Pérez (UAM CUAJIMALPA) Curso de programación estructurada
Más detallesAgradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1
Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos
Más detallesFunciones en Lenguaje C
Funciones en Lenguaje C Funciones en Lenguaje C. La modularización, es una técnica usada por los programadores para hacer sus códigos más cortos, ya que consiste en reducir un gran problema complejo, en
Más detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...
Más detallesProgramación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática
Programación de Computadores 4 Iteraciones y Decisiones Prof. Javier Cañas Universidad Técnica Federico Santa María Departamento de Informática Contenido 1 Introducción 2 Operadores Relacionales y Lógicos
Más detallesAlgoritmos y Programación I
Algoritmos y Programación I ARREGLOS Y ESTRUCTURAS EN C Arreglos Un arreglo o vector es un conjunto de datos del mismo tipo, almacenados de forma contigua (es decir uno al lado del otro) en memoria principal.
Más detallesESTRUCTURAS DINÁMICAS DE DATOS (LISTAS)
2012 UNAN LEON Departamento de Computación Ing. En Sistemas de Información Docente: Ing. Karina Esquivel A. Asignatura: Algoritmo y Estructura de Datos. ESTRUCTURAS DINÁMICAS DE DATOS (LISTAS) TEMA 2:
Más detallesLenguaje de Programación
UG C++ C++ Universidad de Guanajuato Sesión 33 Una estructura es un grupo de variables las cuales pueden ser de diferentes tipos sostenidas o mantenidas juntas en una sola unidad. La unidad es la estructura.
Más detallesProgramación En Lenguaje C
Programación En Lenguaje C Introducción Básica para Primero de Bachillerato TECNOLOGÍA DE LA INFORMACIÓN IES PALAS ATENEA Lenguaje C Estructurado Secuencial De alto Nivel Altamente portable Necesita un
Más detallesTAD: Pila. TALLER: TAD Pila
TALLER: TAD Una pila (stack) es un conjunto de elementos del mismo tipo que solamente puede crecer o decrecer por uno de sus extremos. Una pila también se la conoce con el nombre de estructura de tipo
Más detallesPrincipios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo rcoppo@uns.edu.ar Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación
Más detallesASIGNATURA: ESTRUCTURA DE DATOS II
ASIGNATURA: ESTRUCTURA DE DATOS II Cód: 31-206 Régimen cuatrimestral Horas reloj semanales: 4 Horas teóricas: 15 Horas prácticas: 45 Horas totales: 60 Carrera: Sistemas 2016 FUNDAMENTOS: Un tipo de dato
Más detallesVariables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.
Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1
Más detallesIntroducción a C++ y Code::Blocks
Introducción a C++ y Práctica Imperativo Clase 1 Luis Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 28 de mayo de 2010 Menu de esta Tarde Funcional Vs. Imperativo (Intérprete
Más detallesLA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)
APRENDERAPROGRAMAR.COM LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
Más detallesTEMA 3: EL LENGUAJE C: PRESENTACIÓN
TEMA 3: EL LENGUAJE C: PRESENTACIÓN Historia del lenguaje C Características del lenguaje C Estructura de un programa en C El editor de textos: elementos Funciones: de usuario y de librería Librerías de
Más detallesMIA RICARDO GONZALEZ LOZANO APLICACIONES EN LENGUAJE C
MIA RICARDO GONZALEZ LOZANO APLICACIONES EN LENGUAJE C Antes de comenzar a desarrollar aplicaciones podemos crear el programa en cualquier editor de textos, solo hay que guardarlo con la extensión X.c
Más detallesIntroducción a variables de tipo Puntero (Apuntadores) Contenidos. 1. Introducción a las variables puntero 2. Repaso:
Contenidos 1. Introducción a las variables untero 2. Reaso: - oerador de dirección: & - referencias 3. Declaración de variables de tio untero 4. Inicialización de variables de tio untero - El untero nulo:
Más detallesTema 14: Arreglos estáticos en C
Tema 14: Arreglos estáticos en C Solicitado: Ejercicios 05: Ejercicios con arreglos estáticos unidimensionales M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom
Más detallesESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF
ESCUELA POLITÉCNICA SUPERIOR GRADO EN DISEÑO IND. INFORMÁTICA CURSO 2012-13 PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF HASTA AHORA... En prácticas anteriores se ha aprendido: La estructura principal de un
Más detallesInstituto Tecnológico de Celaya
CADENAS DE CARACTERES Hasta ahora se han manejado variables de tipo caracter cuyo valor es un sólo caracter. En algunos casos, sin embargo, es necesario usar variables cuyos valores sean un conjunto (cadena)
Más detallesTema 7.- Fundamentos de la Programación Orientada a Objetos
Tema 7.- Fundamentos de la Programación Orientada a Objetos 7 de enero de 2014 Objetivos Saber definir clases propias. Saber crear objetos de una clase determinada e interactuar con ellos (Problema 1).
Más detallesIntroducción: En el contexto de la asignatura, deseo hacer notar que la utilización de herramientas de productividad, tales como las TIC (Tecnologías de la Información y Comunicaciones) en el ámbito de
Más detallesQué es un programa informático?
Qué es un programa informático? Un programa informático es una serie de comandos ejecutados por el equipo. Sin embargo, el equipo sólo es capaz de procesar elementos binarios, es decir, una serie de 0s
Más detallesRetículos y Álgebras de Boole
Retículos y Álgebras de Boole Laboratorio de Matemática Discreta Jesús Martínez Mateo jmartinez@fi.upm.es Práctica 1. Ordenación topológica A. Herramientas necesarias Para la práctica que vamos a realizar
Más detallesManejo de Bases de Datos Mysql en Lenguaje C
http://undersecurity.net Servidor irc : irc.ircnode.com Canal irc : #undersec Manejo de Bases de Datos Mysql en Lenguaje C By: S[e]C Entendiendo el tratamiento de una base de datos MySQL. Antes de ir al
Más detallesGUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.
1 Programación II, Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos. Objetivos Utilizar la sintaxis de las funciones
Más detallesDESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA
DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA Nombre del Módulo: PROGRAMACIÓN EN JAVASCRIPT Código: CSTI0087 total: 51 Horas Objetivo General: Crear contenido web basado en
Más detallesExpresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz
Expresiones Aritméticas Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Expresiones Aritméticas El computador puede realizar cálculos además de mostrar datos por pantalla.
Más detallesLenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006
Lenguaje C Elementos de un Programa Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006 Objetivos Conocer los elementos que conforman un programa en C 1. Elementos léxicos de un Programa Cuando el programa
Más detallesFundamentos de Programación 2017-I
Fundamentos de Programación 2017-I Fundamentos para la construcción de código a partir del algoritmo Objetivo: El alumno construirá programas utilizando el lenguaje de programación C a través de un análisis
Más detallesPilas y Colas. Cursos Propedéuticos Dr. René Cumplido M. en C. Luis Rodríguez Flores
Pilas y Colas Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Pilas Estructura Operaciones Ejemplos de aplicación Implementación Colas Definición Operaciones
Más detallesConstruyendo Programas más Complejos
Arquitectura de Ordenadores Construcciones de Alto Nivel en Ensamblador Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Construyendo Programas más
Más detallesFUNDAMENTOS DE INFORMÁTICA
FUNDAMENTOS DE INFORMÁTICA Tema 1 Introducción a la Programación en Visual Basic Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo undamentos de Informática. Departamento de Ingeniería
Más detallesESCUELA DE INFORMÁTICA
TÉCNICO EN SISTEMAS LABORAL SUBMODULO TEMA 1 (Visual Basic for Application) Microsoft VBA (Visual Basic for Applications) es el lenguaje de macros de Microsoft Visual Basic que se utiliza para programar
Más detallesLección 2 Introducción al lenguaje C
Lección Introducción al lenguaje C Decimal Binario Hexadecimal A B C D E F Octal Equivalencia entre decimal, binario, hexadecimal y octal. Código ASCII (American Standard Code for Information Interchange)
Más detallesJava Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.
Java Avanzado. Guía 1 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 2 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo
Más detallesPráctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros
Práctica 3. Paso de parámetros entre subrutinas 1. Objetivo de la práctica El objetivo de esta práctica es que el estudiante se familiarice con la programación en ensamblador y el convenio de paso de parámetros
Más detallesAlgoritmos. Medios de expresión de un algoritmo. Diagrama de flujo
Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten
Más detallesLas clases como tipos de datos definidos por el usuario
. La clase Fraccional. Representación en UML de los niveles de acceso 3. Categorías de los objetos que aparecen en los métodos 4. El puntero this. Métodos operadores La clase Fraccional Vamos a diseñar
Más detallesClases e instancias. Algoritmos y Estructuras de Datos I. Clases e instancias. memoria dinámica.
Algoritmos Estructuras de Datos I Primer cuatrimestre de 2014 Departamento de Computación - FCEN - UBA Programación imperativa - clase 10 Memoria dinámica listas enlazadas Clases e instancias El paquete
Más detallesProgramación I Unidad III. Tema: Tipos, estructuras y uniones
Programación I Unidad III Tema: Tipos, estructuras y uniones El especificador typedef La palabra reservada typedef representa un especificador de clase de almacenamiento, y se utiliza para definir nuevos
Más detallesSISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos
TEMA 2 Diseño de Algoritmos 7 2. DISEÑO DE ALGORITMOS 2.1. Concepto de Algoritmo En matemáticas, ciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus
Más detallesContenido. Capítulo 1. Introducción a lenguaje C 1
Contenido Capítulo 1. Introducción a lenguaje C 1 Introducción... 2 Qué es un lenguaje de programación?... 2 Tipos de lenguajes de programación... 2 Introducción a lenguaje C... 2 Historia de lenguaje
Más detallesDesde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.
Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los
Más detallesTEMA 8: Gestión dinámica de memoria
TEMA 8: Gestión dinámica de memoria 8.1.-Tipo de datos puntero Hasta ahora, los tipos de datos que hemos visto (a excepción de strings y ficheros) eran estructuras de datos estáticas, es decir, estructuras
Más detallesIntroducción al lenguaje C
Programación 2 Profesorado de Informática CeRP del Suroeste, Uruguay 29 de marzo de 2016 Estructuras de control IV Iteración Sentencia for: for (inicio; condicion; paso) cuerpo for (int i = 0; i < 10;
Más detallesEn este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.
El primer objetivo de un programa informático es el manejo de datos. Un dato es toda aquella información que se puede tratar en un programa informático. En este artículo vamos a conocer los tipos de datos
Más detallesfunciones printf scanf
FUNCIONES EN C FUNCIONES Los módulos en C se llaman funciones. Hemos estado utilizando funciones de la biblioteca estandar stdio.h como por ejemplo printf y scanf. Comenzaremos viendo algunas funciones
Más detallesTema: Tipos Abstractos de Datos (TAD s) en C++.
Programación II. Guía 12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Tipos Abstractos de Datos (TAD s) en C++. Objetivos Específicos Explicar el concepto "Tipo Abstracto
Más detallesREFERENCIA DEL LENGUAJE
REFERENCIA DEL LENGUAJE Sesión 07 Mg. Cadenas de caracteres Una cadena de caracteres es un arreglo de caracteres. Los caracteres son letras, números y signos de puntuación. Cuando un número se usa como
Más detallesLenguajes de programación
Lenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa de computador es una secuencia de estas instrucciones Etapas
Más detalles6.1.- Introducción a las estructuras de datos Tipos de datos Arrays unidimensionales: los vectores Operaciones con vectores.
TEMA 6: ESTRUCTURAS DE DATOS (Arrays). CONTENIDO: 6.1.- Introducción a las estructuras de datos. 6.1.1.- Tipos de datos. 6.2.- Arrays unidimensionales: los vectores. 6.3.- Operaciones con vectores. 6.4.-
Más detallesAlgoritmos y programas. Algoritmos y Estructuras de Datos I
Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de
Más detallesTema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C
Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS Departamento de Ciencias de la Computación e IA Subprogramas en C Objetivo Una vez que tengamos un programa que resuelva un problema concreto, ser capaces de usarlo
Más detallesEstructuras de Datos. La pila es un objeto dinámico en constante cambio.
21 Capítulo 2. LA PILA (STACK). 2.1 Definición y ejemplos. Una pila es un conjunto ordenado de elementos en el cual se pueden agregar y eliminar elementos de un extremo, el cual es llamado el tope de la
Más detallesCadena de caracteres. 1. Fundamentos de cadenas y caracteres
1. Fundamentos de cadenas y caracteres Cadena de caracteres Los caracteres son bloques de construcción fundamentales para los programas fuente. Un programa puede contener constantes de carácter. Una constante
Más detallesEstructura de Datos. Arreglos. Experiencia Educativa de Algorítmica ESTRUCTURA DE DATOS - ARREGLOS 1
Estructura de Datos Arreglos Experiencia Educativa de Algorítmica ESTRUCTURA DE DATOS - ARREGLOS 1 Introducción Una estructura de datos es una colección de datos que pueden ser caracterizados por su organización
Más detallesPROGRAMACION ORIENTADA A OBJETOS EN C++
PROGRAMACION ORIENTADA A OBJETOS EN C++ 1- INTRODUCCIÓN El lenguaje C++ representa el resultado de los esfuerzos realizados para proporcionar las ventajas de la programación Orientada a Objetos a un lenguaje
Más detallesEXAMEN PARCIAL TRABAJO INTEGRADOR (TI) EVALUACIÓN CONTINUA PESO PORCENTUAL PESO PORCENTUAL 1 30% 06-MAY-14 30% 03-MAY-14 20% 20%
UNIVERSIDAD DEL VALLE DE MEXICO CAMPUS ROMA PLANEACIÓN DIDÁCTICA LICENCIATURA EJECUTIVA CICLO 201425 Nombre de la asignatura: Lenguajes Operativos Horas por semana: 6 Nombre del docente: Olvera Jiménez
Más detallesEste material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y
Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y distribución. Listas Enlazadas Estructuras de datos dinámicas
Más detallesUnidad II: Análisis semántico
Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico
Más detallesUNIDAD 1: CONCEPTOS BA SICOS DE BASE DE DATOS
UNIDAD 1: CONCEPTOS BA SICOS DE BASE DE DATOS [Escriba el subtítulo del documento] Qué es un gestor de base de datos? Un gestor de base de datos o sistema de gestión de base de datos (SGBD o DBMS) es un
Más detallesLas plantillas permiten definir funciones genéricas.
Introducción (Genericidad). Plantillas de funciones o funciones genéricas. Sintaxis de plantillas. Ejemplos de declaraciones. A tener en cuenta Un ejemplo de plantilla de funciones: Máximo de un vector.
Más detallesUnidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
Más detallesFicha de Aprendizaje N 13
Ficha de Aprendizaje N 13 Curso: Lógica y lenguaje de programación Tema: Fundamentos de programación Duración: 2 horas pedagógicas Logros de aprendizaje Identifica los diferentes tipos de operadores que
Más detallesAl concluir está práctica el estudiante será capaz de elaborar programas utilizando apuntadores y arreglos.
Apuntadores Práctica 13 Alumno: Grupo: Fecha: Instituto Politécnico Nacional Secretaria Académica Dirección de Educación Superior ESIME Culhuacan Ingeniería en Computación Fundamentos de Programación Objetivo
Más detallesConceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos
Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad
Más detallesINTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA
APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto
Más detallesTema: Clases y Objetos en C#. Parte II.
Programación II. Guía No. 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Clases y Objetos en C#. Parte II. Objetivos Implementar clases, objetos, propiedades, métodos y
Más detallesProgramación en Visual Basic Ricardo Rodríguez García
Manual Básico de Programación en Visual Basic 1.- Estructura de un proyecto Visual Basic Los programas o aplicaciones desarrolladas en Visual Basic van a constituir un único paquete que denominaremos proyecto.
Más detalles