Algorítmica y Lenguajes de Programación. Punteros Introducción a estructuras dinámicas
|
|
- Lorenzo Salazar Quintana
- hace 5 años
- Vistas:
Transcripción
1 Algorítmica Lenguajes de Programación Punteros Introducción a estructuras dinámicas Punteros estructuras dinámicas. Introducción! Las variables globales pertenecen al programa princil eisten desde que éste se inicia hasta que finaliza; también se las denomina estáticas.! Las variables locales pertenecen a funciones subrutinas sólo eisten durante la ejecución del subprograma; también se les denomina automáticas.! Las variables cua creación destrucción no coincide con el el fin de un o subprograma; es decir, es controlada por el programador se denominan variables dinámicas.! La maor rte de lenguajes de programación pueden manipular este tipo de variables.
2 Punteros estructuras dinámicas. Punteros (i)! Un puntero es un tipo simple que siempre está asociado a otro tipo (punteros a enteros, a reales, a registros, etc.)! Se pueden ver los punteros como variables que almacenan direcciones de memoria; de aquí se deduce:! Un puntero es un medio ra acceder al contenido real apuntado por la variable.! La declaración de un puntero no implica que eista contenido apuntado por el misma.! Es necesario crear destruir eplícitamente el contenido apuntado por punteros.! Se puede establecer una analogía entre los punteros las direcciones postales:! Una dirección postal permite acceder al lugar físico indicado.! El hecho de disponer de una dirección postal no garantiza que el lugar eista.! Para declarar variables de tipo puntero en la notación algorítmica se utiliza la sintais siguiente: variable puntero a tipo! Por ejemplo, preal puntero a real 3 Punteros estructuras dinámicas. Punteros (ii)! Una vez se declara un puntero pueden llevarse a cabo dos acciones básicas sobre el mismo:! Asignarle memoria ra almacenar un dato del tipo al que apunta: crear.! Eliminar la memoria que tiene asignada con ella el dato apuntado: destruir. crear (variable puntero) destruir (variable puntero)! Es posible asignar a un puntero el contenido de otro; ra hacer esto es necesario que la variable a la que vamos a asignar un valor no apunte a ningún dato pues en ese caso el dato original quedaría inaccesible.! Así pues, sólo deberíamos asignar un puntero a otro si el puntero asignado no tiene memoria reservada. 4
3 Punteros estructuras dinámicas. Punteros (iii)! Una vez se reserva memoria ra un puntero es posible almacenar un dato en dicho escio de memoria: puntero " epresión del tipo apuntado! La siguiente sentencia asigna un valor a un puntero a real: preal " Punteros estructuras dinámicas. Punteros (iv)! Ejemplo sencillo: variables, a entero, puntero a entero " " crear() " 0 " escribir + escribir + destruir () fin 6
4 Punteros estructuras dinámicas. Punteros (v) " " crear() " 0 " " " 0 crear() " 0 " " " 0 crear() " 0 " 7 Punteros estructuras dinámicas. Punteros (vi) destruir () Al liberar la memoria asignada a la variable continua apuntando a la posición de memoria anteriormente asignada que, tras la destrucción de la variable referenciada, no contiene ningún dato válido. Por tanto, cuando a un puntero se asigna el contenido de otro puntero ha que cuidar que el puntero no termine referenciando posiciones sin datos válidos; ra lograr esto eiste una constante que se asigna a un puntero indicando que el referencia ninguna posición de memoria, nos referimos a NIL. En el anterior una vez se ha destruido el puntero habría que ejecutar: " NIL 8
5 Punteros estructuras dinámicas. Punteros (vii) El hecho de asignar NIL a un puntero no libera la memoria asignada sino que simple llanamente la hace inaccesible. Si en el anterior se sustitue la sentencia destruir () por esta otra " NIL se tendría crear () " 0 " NIL crear () " 0 " NIL crear () " 0 " NIL 9 Punteros estructuras dinámicas. Punteros (viii)! Reglas ra trabajar con punteros:! Por cada sentencia de reserva de memoria tiene que haber una sentencia de liberación.! Para asignar un puntero a otro, el puntero asignado no debe tener asignada memoria previamente.! Para asignar un valor a la memoria referenciada por un puntero es necesario que se haa reservado memoria previamente.! Cuando la memoria apuntada por un puntero ha desarecido se debe asignar el valor NIL al puntero.! Nunca se pueden perder todas las referencias a memoria reservada pues entonces a no se podría liberar. 0
6 Punteros estructuras dinámicas. Referencias (i)! Se recen a los punteros.! Se trata de alias puesto que se trata de variables que apuntando a otra variable pueden ser utilizadas como si se tratase directamente con la variable apuntada.! Poseen una serie de propiedades que las hacen diferentes de los punteros:! Los punteros pueden declararse no reservarse memoria ra los mismos (no apuntan a ninguna rte). Las referencias deben inicializarse en el momento de crearlas.! La memoria asignada a un puntero puede destruirse en cualquier momento. La variable apuntada por una referencia no puede ser destruida.! Es posible cambiar en cualquier momento la variable apuntada por un puntero. No se puede hacer esto con una referencia. Punteros estructuras dinámicas. Referencias (ii) Referencias Puntero
7 Punteros estructuras dinámicas. Punteros FORTRAN (i)! Mediante la labra reservada pointer es posible utilizar los punteros o referencias de FORTRAN 90 (no son eactamente punteros ni tampoco referencias).! Para declarar variables con el atributo pointer en FORTRAN 90 se utiliza la sintais siguiente: tipo, pointer:: variable! Una vez un puntero ha sido declarado pueden llevarse a cabo las dos acciones básicas de asignación liberación de memoria; ra ello se emplean las funciones allocate deallocate 3 Punteros estructuras dinámicas. Punteros FORTRAN (ii)! NO es posible asignar el contenido de un pointer a otro pointer mediante el operador asignación (=); ra hacer que un puntero "apunte" al mismo objetivo que otro se emplea el operador =>.! El operador de asignación se utiliza ra dar valores a la variable referenciada por el puntero (es decir, a la memoria asignada al mismo). 4
8 Punteros estructuras dinámicas. Punteros FORTRAN (iii)! Ejemplo sencillo: program programa implicit none integer, pointer ::, integer, = = allocate() = 0 => print *, + print *, + deallocate() end 5 Punteros estructuras dinámicas. Punteros FORTRAN (iv)! Para lograr en FORTRAN que un puntero apunte a NIL se utiliza la función nullif: nullif (variable pointer)! También aquí es cierto que el hecho de hacer que un pointer apunte al equivalente de NIL no significa que la memoria haa sido liberada sólo que es inaccesible.! Para saber si un pointer apunta a algo o no se dispone de la función booleana: associated (variable pointer) 6
9 Punteros estructuras dinámicas. Estructura Dinámica (i) Ejemplo algorítmico: tipos cliente = tupla nombre carácter siguientecliente puntero a cliente fin tupla variables colasuper puntero a cliente nombre carácter colasuper " NIL mientras nombre. hacer escribir Deme su nombre (pulse. ra finalizar): leer nombre si nombre. entonces ponersecola (nombre, colasuper) fin si fin mientras 7 Punteros estructuras dinámicas. Estructura Dinámica (ii) mientras nombre hacer nombre " atendercliente (colasuper) escribir nombre fin mientras accion ponersecola (nombrecliente caracter,cola puntero a cliente) si cola = NIL entonces crear (cola) cola.nombre " nombrecliente cola.siguientecliente " NIL si no llamar ponersecola (nombrecliente,cola.siguientecliente) fin si fin accion 8
10 Punteros estructuras dinámicas. Estructura Dinámica (iii) carácter funcion atendercliente (cola puntero a cliente) variables cursor puntero a cliente si cola = NIL entonces atendercliente " si no cursor = cola.siguientecliente atendercliente " cola.nombre destruir (cola) cola " cursor fin si fin funcion fin 9 Punteros estructuras dinámicas. Estructura Dinámica (iv) Ejemplo FORTRAN 90: program ejemplocola implicit none! Se define el tipo base de la cola! tpe cliente character*64 nombre tpe(cliente), pointer :: siguientecliente end tpe cliente! La cola es un puntero al tipo base! tpe(cliente), pointer :: colasuper character*64 nombre! Se inicializa la cola! nullif (colasuper) 0
11 Punteros estructuras dinámicas. Estructura Dinámica (v) do while (nombre/='.') print *, 'Deme su nombre (pulse. ra finalizar):' read *, nombre if (nombre/='.') then call ponersecola (nombre, colasuper) end if end do do while (nombre/='') nombre = atendercliente (colasuper) print *, nombre end do Punteros estructuras dinámicas. Estructura Dinámica (vi)! Subprogramas utilizados por el programa princil! contains! Subrutina recursiva ra añadir al final de la cola! recursive subroutine ponersecola (nombrecliente, cola) implicit none character*64, nombrecliente tpe(cliente), pointer :: cola if (.not.associated(cola)) then allocate(cola) cola%nombre=nombrecliente nullif(cola%siguientecliente) else call ponersecola (nombrecliente, cola%siguientecliente) end if end subroutine ponersecola
12 Punteros estructuras dinámicas. Estructura Dinámica (vii)! Función que retorna el nombre del primer cliente lo elimina de la cola! character*64 function atendercliente (cola) implicit none tpe(cliente), pointer :: cola, cursor if (.not.associated(cola)) then atendercliente = '' else cursor => cola%siguientecliente atendercliente = cola%nombre deallocate(cola) cola => cursor end if end function atendercliente end 3 Punteros estructuras dinámicas. Resumen (i)! Frente a las variables globales (estáticas) locales (automáticas) eiste un tercer tipo denominadas variables dinámicas puesto que son creadas destruidas en tiempo de ejecución.! Las variables dinámicas son la base ra construir estructuras dinámicas de datos (como colas, pilas, árboles, etc.)! Los punteros permiten crear destruir variables dinámicas; un puntero es una variable que almacena una dirección de memoria (por tanto, apunta a la dirección ocuda por otra variable).! Los punteros presentan una serie de características:! Un puntero es un medio ra acceder al contenido real apuntado por la variable.! La declaración de una variable de tipo puntero no implica que eista un contenido apuntado por la misma.! Es necesario crear destruir eplícitamente el contenido apuntado por las variables de tipo puntero.! Para declarar variables de tipo puntero en la notación algorítmica se utiliza la siguiente sintais: variable puntero a tipo! Una vez un puntero ha sido declarado puede asignársele memoria eliminar la memoria asignada; ra ello se emplean las acciones crear destruir.! Para trabajar con punteros es necesario tener en cuenta las siguientes reglas:! Por cada sentencia de reserva de memoria tiene que haber una sentencia de liberación.! Para asignar un puntero a otro, el puntero asignado no debe tener asignada memoria previamente.! Para asignar un valor a la memoria referenciada por un puntero es necesario que se haa reservado memoria previamente.! Cuando la memoria apuntada por un puntero ha desarecido se debe asignar el valor NIL al puntero.! Nunca se pueden perder todas las referencias a memoria reservada pues entonces a no se puede liberar. 4
13 Punteros estructuras dinámicas. Resumen (ii)! Las referencias se recen a los punteros aunque, en realidad, son alias a que, aunque apuntan a una variable, se utilizan como si se tratase directamente con la variable apuntada.! Ha varias propiedades que diferencian a una referencia de un puntero:! Los punteros pueden declararse no reservarse memoria ra los mismos; las referencias deben inicializarse en el momento de su creación.! La memoria asignada a un puntero puede destruirse en cualquier momento; sin embargo, la variable referenciada por una referencia no puede ser destruida.! Siempre se puede cambiar la variable apuntada por un puntero; en cambio, no se puede cambiar el objetivo de una referencia.! FORTRAN 90 dispone de la labra reservada pointer; esta labra permite modificar el comportamiento de una variable de tal manera que se comporte como un puntero en algunos aspectos como una referencia en otros.! Las acciones ra reservar liberar memoria en FORTRAN 90 son allocate deallocate, respectivamente.! El operador ra cambiar la referencia a la que apunta un pointer es => a que el operador = sirve ra asignar un valor a la variable referenciada.! En FORTRAN 90 no eiste una constante NIL pero sí una función nullif que consigue un efecto análogo. Para saber si un pointer es nulo o apunta a alguna referencia se utiliza la función booleana associated. 5
Punteros e introducción a estructuras dinámicas
Punteros e introducción a estructuras dinámicas Introducción Hasta este momento hemos visto dos tipos de variables: globales locales; las primeras pertenecen al /programa princil eisten desde que éste
Más detallesFunciones y subrutinas
Algorítmica y Lenguajes de Programación Funciones y subrutinas Funciones y subrutinas. Introducción El diseño descendente permite obtener un programa que resuelva un problema dividiendo este en subproblemas
Más detallesLENGUAJE FORTRAN. FUNCIONES Y SUBRUTINAS
LENGUAJE FORTRAN. FUNCIONES Y SUBRUTINAS Programación en Fortran Valentín Moreno ÍNDICE 1. Subprogramas 2. Funciones 3. Subrutinas 2 3 1. SUBPROGRAMAS 1. SUBPROGRAMAS Si necesitamos usar con frecuencia
Más detallesFicheros. Introducción. Apertura y cierre de ficheros
s Introducción Podemos deir un fichero o archivo como una unidad de información almacenada en memoria secundaria, un disco, a la que se asigna un identificador único; los ficheros nos ofrecen la posibilidad
Más detallesTEMA 0 Gestión de Memoria Dinámica
TEMA 0 Gestión de Memoria Dinámica ESTRUCTURAS DE DATOS 1 Objetivos Tema preliminar para entender el uso de la herramienta básica en la gestión de memoria dinámica: punteros Objetivos: Conocer el concepto
Más detallesAlgorítmica y Lenguajes de Programación. Ficheros
Algorítmica y Lenguajes de Programación Ficheros Ficheros. Introducción Un fichero es una unidad de información almacenada en disco a la que se asigna un identificador único. Los ficheros nos ofrecen la
Más detallesSubprogramas en Fortran 90. Seminario de Computación 2009
Seminario de Computación 2009 1. Algoritmos con nombre en Fortran 90 Un algoritmo con nombre es la generalización de un operador En Fortran 90 los algoritmos con nombre pueden ser: - Intrínsecos (propios
Más detallesEstructuras dinámicas lineales (i)
Estructuras dinámicas lineales (i) Introducción En la lección anterior se explicaron los conceptos de dinámicas y puntero; vimos la forma en que se implementan dichas tanto en la notación algorítmica como
Más detallesEstructura de Datos y de la Información. Tema 1: Gestión dinámica de la memoria. Departamento de Computación Universidade da Coruña, España.
Estructura de Datos y de la Información Tema 1: Gestión dinámica de la memoria Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España
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 detallesCapítulo 3. Subprogramas. 3.1 Subprogramas FUNCTION
Capítulo 3 Subprogramas Con lo explicado hasta aquí se pueden escribir programas sencillos y no demasiado largos. Pero varias razones justifican la necesidad de disponer de otro tipo de recursos. Por una
Más detallesEstructuras de Control
Algorítmica y Lenguajes de Programación Estructuras de Control Estructuras de Control. Introducción Hasta ahora algoritmos han consistido en simples secuencias de instrucciones Existen tareas más complejas
Más detalles2.2 Nombres, Ligado y Ámbito
2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el
Más detallesPráctica 4. TAD lista posicional
Objetivos. Práctica 4. TAD lista posicional Se trata de construir el TAD lista posicional con una implementación acotada. Haciendo uso de este TAD, se implementará una biblioteca de cálculos estadísticos
Más detallesIntroducción a Fortran
mario.merino@upm.es Escuela Técnica Superior de Ingenieros Aeronáuticos Universidad Politécnica de Madrid 4 de marzo de 2011 Índice Introducción 1 Introducción 2 3 4 Fin? Qué es programar? Un ordenador
Más detallesEstructuras de control
Estructuras de control Introducción Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo, existen tareas más complejas que no pueden ser resueltas empleando
Más detallesEl FORTRAN da la posibilidad de subdividir las tareas de un programa complejo en partes simples y claras. Procedimientos Externos SUBRUTINAS
El FORTRAN da la posibilidad de subdividir las tareas de un programa complejo en partes simples y claras. Procedimientos Externos SUBRUTINAS Subprogramas FUNSIONES Testeo independiente: un subprograma
Más detallesAlgoritmo, Estructuras y Programación II Ing. Marglorie Colina
Unidad III Punteros Algoritmo, Estructuras y Programación II Ing. Marglorie Colina Ejemplo: Paso de Punteros a una Función Arreglos (Arrays) Unidimensionales Los Arreglos son una colección de variables
Más detallesESTRUCTURA DE DATOS. Memoria estática Memoria dinámica Tipo puntero Declaración de punteros Gestión de memoria dinámica Resumen ejemplo
ESTRUCTURA DE DATOS Memoria estática Memoria dinámica Tipo puntero Declaración de punteros Gestión de memoria dinámica Resumen ejemplo DATOS ESTÁTICOS Su tamaño y forma es constante durante la ejecución
Más detallesEnumerados, subrangos y tuplas
Enumerados, subrangos y tuplas Introducción Hasta el momento hemos visto los siguientes de datos: entero (integer), real (real), lógico (logical) y carácter (character); aunque estos resultan imprescindibles
Más detallesProgramación en Pascal. Memoria dinámica
Programación en Pascal. Memoria dinámica Escuela Técnica Superior de Ingeniería de Telecomunicación Universidad Rey Juan Carlos gsyc-profes (arroba) gsyc.urjc.es Diciembre de 2018 GSyC - 2018 Programación
Más detallesLENGUAJE FORTRAN. ESTRUCTURAS Y SENTENCIAS
LENGUAJE FORTRAN. ESTRUCTURAS Y SENTENCIAS BÁSICAS Programación en Fortran Valentín Moreno ÍNDICE 1. Introducción al lenguaje Fortran 2. Estructura de un programa 3. Variables y constantes 4. Tipos de
Más detallesPUNTEROS (APUNTADORES)
2010 UNAN LEON Departamento de Computación Ing. En Sistemas Sabatino Autor: Ing: Karina Esquivel Alvarado. Asignatura: Algoritmo y Estructura de Datos. PUNTEROS (APUNTADORES) TEMA 4: PUNTEROS (APUNTADORES)
Más detallesAlgorítmica y Lenguajes de Programación. Declaración de variables Sentencias de entrada/salida
Algorítmica y Lenguajes de Programación Declaración de variables Sentencias de entrada/salida Variables y E/S. Introducción En esta lección veremos: Estructura de un programa FORTRAN. Declaración de variables.
Más detallesALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid. Indíce Algoritmo Elementos de un algoritmo: Variables, Constantes, Expresiones Datos: Definición y
Más detallesManual de referencia de C++ Parte IV Variables Punteros. Preparado por Prof. Luis A. Ortiz Ortiz
Manual de referencia de C++ Parte IV Variables Punteros Preparado por Prof. Luis A. Ortiz Ortiz TABLA DE CONTENIDO Memoria de la computadora... 1 Representación de la memoria de la computadora... 1 Declaración
Más detallesMódulo I. Tipos de datos, estructuras de datos y tipos de datos abstractos.
Módulo I Tipos de datos, estructuras de datos y tipos de datos abstractos. Aunque los conceptos de tipo de datos (TD), estructura de datos (ED) y tipo de datos abstracto (TDA) se han visto en los cursos
Más detallesAgenda. Lenguaje FORTRAN. Actualizacion y nivelacion de conocimientos de computación. Fortran 77. DIA 2 (15 de julio): Lenguaje FORTRAN
Agenda Actualizacion y nivelacion de conocimientos de computación orientado para futuros participantes del curso de HPC DIA 2 (15 de julio): Lenguaje FORTRAN FORTRAN 77, FORTRAN 90, FORTRAN 95 Estructuras
Más detallesDiseño Computarizado 15023
Diseño Computarizado 15023 PROGRAMACIÓN: FORTRAN Profesor: Claudio García Herrera Departamento de Ingeniería Mecánica Universidad de Santiago de Chile Índice 1 Introducción 2 Estructura 3 Sentencias y
Más detallesParte I: Elementos del lenguaje Ada
Parte I: Elementos del lenguaje Ada 1. Introducción a los computadores y su programación 2. Elementos básicos del lenguaje 3. Modularidad y programación orientada a objetos 4. Estructuras de datos dinámicas
Más detallesMEMORIA DINÁMICA y PUNTEROS
MEMORIA DINÁMICA y PUNTEROS Introducción Conceptos básicos Definición y declaración de punteros Creación y destrucción de variables dinámicas. Operaciones básicas con datos referenciados Operaciones básicas
Más detallesINTRODUCCIÓN A LA PROGRAMACIÓN EN FORTRAN. Métodos Numéricos Carlos Zotelo
INTRODUCCIÓN A LA PROGRAMACIÓN EN FORTRAN Métodos Numéricos 2008 - Carlos Zotelo Introducción a Fortran 77 / 90 1. El lenguaje Fortran 77 / 90 2. Tipos de datos básicos 3. Constantes y variables 4. Entrada
Más detallesProgramación I Teoría III.
Programación I Teoría III http://proguno.unsl.edu.ar proguno@unsl.edu.ar DATOS ESTRUCTURADOS Estructuras de Datos Hasta ahora hemos trabajado con Datos simples enteros reales Caracteres punteros Sin embargo,
Más detalles2. Variables dinámicas
2. Variables dinámicas 1. Introducción 2. Gestión de memoria dinámica 3. Punteros y variables dinámicas en lenguaje algorítmico 4. Gestión de memoria dinámica y punteros en C Bibliografía Biondi y Clavel.
Más detalles1.2.4 Listas enlazadas
1.2.4 Listas enlazadas Las listas enlazadas son tipos de datos dinámicos que se construyen con nodos. Un nodo es un registro con al menos, dos campos, uno de ellos contiene las componentes y se le denomina
Más detallesEl operador contenido ( ) permite acceder al contenido de
3. Memoria Dinámica y Punteros Objetivos: Distinguir los conceptos de memoria estática y memoria dinámica Comprender el concepto de puntero como herramienta de programación Conocer cómo se definen y cómo
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 detallesEXAMENES RESUELTOS DE PROGRAMACION I
EXAMENES RESUELTOS DE PROGRAMACION I Comentarios por Jose Antonio Vaqué EXAMEN DE septiembre 1994, Reserva Soluciones no oficiales 1.- Determinar los valores reales válidos en Modula-2: a) 56.2F-54 y 2.2
Más detallesProgramación Web Tema 3.2 Java Script Estructura del Lenguaje. Ramón Alcarria ETSI en Topografía, Geodesia y Cartografía - UPM
Programación Web Tema 3.2 Java Script Estructura del Lenguaje Miguel Ángel Manso Emerson Castañeda Ramón Alcarria ETSI en Topografía, Geodesia y Cartografía - UPM Contenido Variables Operadores Estructuras
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 detallesDepartamento de Informática Universidad de Valladolid Campus de Segovia. TEMA 2: MEMORIA DINÁMICA y PUNTEROS
Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 2: MEMORIA DINÁMICA y PUNTEROS 1 MEMORIA DINÁMICA y PUNTEROS Introducción Conceptos básicos Definición y declaración de punteros
Más detallesTipos Recursivos de Datos
1/1 Tipos Recursivos de Datos Josefina Sierra Santibáñez 27 de noviembre de 2016 2/1 Introducción La recursividad no sólo se puede aplicar a la definición de procedimientos (i.e. funciones o acciones),
Más detallesTema 18: Memoria dinámica y su uso en C
Tema 18: Memoria dinámica y su uso 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
Más detallesFundamentos de Programación
Fundamentos de Programación COMENTARIOS Microsoft Visual Basic interpreta que todo lo que está a la derecha del carácter ( ) en una línea cualquiera de programa es un comentario y no ejecuta acción alguna.
Más detallesPrefacio 25 Organización de la Unidad Didáctica Cómo utilizar el libro Objetivos docentes... 27
ÍNDICE Prefacio 25 Organización de la Unidad Didáctica.................... 25 Cómo utilizar el libro............................. 26 Objetivos docentes.............................. 27 1 Fundamentos de
Más detallesEstructuras Dinámicas
Departamento de Lenguajes yciencias de la Computación 4 Estructuras Dinámicas Contenido 1. Gestión dinámica de memoria. 2. El tipo puntero. 3. Operaciones con punteros. 4. Operaciones básicas sobre listas
Más detallesTipos de Datos Recursivos
1/1 Tipos de Datos Recursivos Josefina Sierra Santibáñez 15 de mayo de 2018 2/1 Introducción La recursividad no sólo se puede aplicar a la definición de procedimientos (i.e. funciones o acciones), sino
Más detallesLógica: Algoritmo: Archivo: Base de datos: Bit:
Lógica: Algoritmo: Archivo: Base de datos: Bit: 1 LÓGICA: Es una secuencia de operaciones realizadas por el hardware o por el software. Lógica del hardware, Son los circuitos y Chips que realizan las operaciones
Más detallesCOMO SE PROGRAMA EN VISUAL FOXPRO
LECCION N 06 COMO SE PROGRAMA EN VISUAL FOXPRO En Visual FoxPro, no hay una norma de programación a seguir como se hace por ejemplo en Delphi o C++, donde en una sección se declaran las variables globales,
Más detallesAnálisis semántico. Análisis semántico. Índice (I)
Análisis semántico Índice (I) Marina de la Cruz Alfonso Ortega Objetivo del análisis semántico Decisiones para la construcción de un analizador semántico Análisis semántico con Bison Nivel de indirección
Más detallesApunte Laboratorio ALPI - El lenguaje de programación Pascal
Apunte Laboratorio ALPI - El lenguaje de programación Pascal 1 2 ÍNDICE GENERAL Índice 1. Estructura de un Programa en Pascal 3 2. Sintaxis de Pascal 4 2.1. Uso de mayúsculas.....................................
Más detallesUna función es un miniprograma dentro de un programa. Las funciones contienen varias
TEMA 6. FUNCIONES. Una función es un miniprograma dentro de un programa. Las funciones contienen varias sentencias bajo un solo nombre, que un programa puede utilizar una o más veces para ejecutar dichas
Más detallesEstructuras dinámicas lineales (ii)
Estructuras dinámicas lineales (ii) Introducción Continúa la exposición de los distintos algoritmos existentes para manipular s simplemente enlazadas; sin el lección anterior se presentaban algoritmos
Más detallesProgramación MODULAR: Subalgoritmos - funciones y procedimientos
Programación MODULAR: Subalgoritmos - funciones y procedimientos Uno de los métodos fundamentales para resolver un problema es dividirlo en problemas más pequeños, llamados subproblemas. Estos problemas
Más detallesRepaso 02: Apuntadores y manejo de memoria dinámica
Repaso 02: Apuntadores y manejo de memoria dinámica Solicitado: Ejercicios 02: Programación con memoria dinámica M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom
Más detallesdirectamente indirectamente
PUNTEROS EN C PUNTEROS Permiten simular el pasaje de parámetros por referencia. Permiten crear y manipular estructuras de datos dinámicas. Su manejo es de fundamental importancia para poder programar en
Más detallesEXAMENES RESUELTOS DE PROGRAMACION I
EXAMENES RESUELTOS DE PROGRAMACION I Comentarios por Jose Antonio Vaqué EXAMEN DE septiembre 1994 Soluciones no oficiales 1.- Cuál de las siguientes sentencias es incorrecta?: VAR A : ARRAY [0..3] OF ARRAY
Más detallesTema: Punteros.Puntero this en C#.
POO. Guía No.7 1 Tema: Punteros.Puntero this en C#. Facultad: Ingeniería Escuela: Computación Asignatura: Programación Orientada a Objetos Materiales y Equipo Computadora con el software C#. Guía Número
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 detalles8.1.- FUNCIONES Y PROCEDIMIENTOS DEFINIDOS POR EL USUARIO EN TURBO PASCAL.
8.1.- FUNCIONES Y PROCEDIMIENTOS DEFINIDOS POR EL USUARIO EN TURBO PASCAL. PROCEDIMIENTOS. CONCEPTO Un procedimiento es un programa que realiza una tarea específica. Puede recibir cero o más valores del
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 detallesInformática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones
Más detallesLenguaje de Programación: C++ Apuntadores y Alocación din
UG Lenguaje de Programación: C++ y Universidad de Guanajuato Octubre 2010 en memoria En C++ guardamos la misma organización de las variables en memoria: locales en M. PILA en memoria En C++ guardamos la
Más detallesPUNTEROS O APUNTADORES C++
PUNTEROS O APUNTADORES C++ TRANSVERSAL DE PROGRAMACIÓN BÁSICA INGENIERÍA DE SISTEMAS En el presente documente se hace una breve explicación a la gestión dinámica de memoria en el lenguaje C++. Se incluyen
Más detallesÍndice general 7. Presentación 15
ÍNDICE GENERAL Índice general 7 Presentación 15 1. Introducción 19 1.1. Antecedentes históricos de la computación................... 19 1.2. Definiciones previas............................... 24 1.3.
Más detallesTema: Punteros: Puntero this en C#.
Programación II. Guía No.11 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Punteros: Puntero this en C#. Objetivos Conocer el manejo de los punteros en C#. Utilizar el puntero
Más detallesUNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.
Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.
Más detallesUnidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.
Implementación Orientada a Objetos. Unidad V 5.1 Estructura de una clase. Una clase consiste en: algunas_palabras class nombre_de_la_clase [algo_más] { [lista_de_atributos] [lista_de_métodos] Lo que está
Más detalles1 Introducción. 1.2 Estructuras de datos y Tipos de Datos Abstractos. Estructura de Datos y Algoritmos. Tema I Introducción y conceptos fundamentales
1 Introducción En este capitulo se presentan los conceptos y definiciones fundamentales que acompañarán al alumno a lo largo de toda la asignatura. Es muy importante fijar estos conceptos ya que de ello
Más detallesNotas de estructura de datos con lenguaje C. Estructuras de datos dinámicas
Listas Enlazadas que está prohibida su impresión y distribución. Estructuras de datos dinámicas Contrariamente a las estructuras de datos estáticas (arreglos-listas, vectores y tablas- y estructuras) en
Más detallesEsquemas repetitivos en Fortran 90
Los esquemas repetitivos permiten implementar iteraciones del lenguaje algorítmico (mientras, repetir, para, hasta). Podemos dividir los esquemas según: - Se conozcan el número de iteraciones a priori,
Más detalles3 - Tipos Inductivos (Recursivos)
Programación 2 3 - Tipos Inductivos (Recursivos) Estructuras Dinámicas: Punteros y Listas 1 Tipos inductivos tienen, en general, cardinalidad infinita contienen valores de "tamaño arbitrario" Ejemplos:
Más detallesTema 6: Memoria dinámica
: Programación 2 Curso 2013-2014 Índice 1 2 3 El tamaño es fijo y se conoce al implementar el programa Declaración de variables int i=0; char c; float vf[3]={1.0, 2.0, 3.0}; i c vf[0] vf[1] vf[2] 0 1.0
Más detallesFACULTADE DE INFORMÁTICA Departamento de Computación Estructura de Datos e da Información. Ejercicios de punteros: SOLUCIONES
H AC LUCE FACULTADE DE INFORMÁTICA Departamento de Computación Estructura de Datos e da Información Ejercicios de punteros: SOLUCIONES 1. Suponga que tenemos las declaraciones: Indice = 0..9; ApuntIndice
Más detallesTema 6: Clases. Índice
Tema 6: Clases Antonio J. Sierra Índice 1. Fundamentos. 2. Declaración de objetos. 3. Asignación de objetos a variables referencia. 4. Métodos. 5. Constructores. 6. this. 7. Recogida de basura. 8. Modelado
Más detallesInstituto de Computación. Facultad de Ingeniería. Universidad de la República Examen de Programación 2 03 de Agosto de 2006 Generalidades:
Instituto de Computación. Facultad de Ingeniería. Universidad de la República Examen de Programación 2 03 de Agosto de 2006 Generalidades: La prueba es individual y sin material. La duración es 3 horas.
Más detallesLENGUAJES DE PROGRAMACIÓN. Solución al Ejercicio de Autocomprobación 1
Solución al Ejercicio de Autocomprobación 1 PREGUNTA 1 (1 punto) Señale razonadamente la veracidad o falsedad de las afirmaciones siguientes: A. La diferencia fundamental entre los lenguajes ensamblador
Más detallesGESTIÓN DE MEMORIA DINÁMICA
UNIVERSIDAD DE MÁLAGA Dpto. Lenguajes y CC. Computación E.T.S.I. Telecomunicación GESTIÓN DE MEMORIA DINÁMICA Tema 3 Programación II Programación II 0 Tema 3: GESTIÓN DE MEMORIA DINÁMICA Tema 3: GESTIÓN
Más detallesManual de turbo pascal
Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de
Más detallesFundamentos de Informática
Fundamentos de Informática Tema 5 Estructuras de Control 1 Contenidos La estructura secuencial La estructura condicional Condicional simple Multicondicional Sentencia SELECT CASE Estructuras de control
Más detallesApuntadores en C/C++ INTRODUCTION TO PROGRAMMING
Apuntadores en C/C++ JUAN CARLOS CONDE RAMÍREZ INTRODUCTION TO PROGRAMMING Memoria de la Computadora La memoria de una máquina esta ordenada en forma de celdas numeradas consecutivamente y que se pueden
Más detallesGESTIÓN DE MEMORIA DINÁMICA EN C 1. Creación y destrucción de variables dinámicas
GESTIÓN DE MEMORIA DINÁMICA EN C 1. Creación y destrucción de variables dinámicas en lenguaje algorítmico Partimos de: p: puntero de tipo T; ok, lógico; En general, el MGMD dispondrá d de alguna versión
Más detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java II... 6 Estructuras de control... 7 Estructuras de selección... 8 Sentencia if... 9 Sentencia if - else... 12 Operador condicional...
Más detallesTipos definidos: Enumerados, subrangos y tuplas
Algorítmica y Lenguajes de Programación Tipos definidos: Enumerados, subrangos y tuplas Tipos definidos. Introducción Tipos de datos predefinidos: entero (integer) real (real) lógico (logical) carácter
Más detallesAsignación de Memoria (Allocation) Algoritmos y Estructuras de Datos I. Asignación de Dinámica de Memoria
Asignación de Memoria (Allocation) Algoritmos y Estructuras de Datos I Segundo cuatrimestre de 2014 Departamento de Computación - FCEyN - UBA Programación imperativa - clase 14 Memoria dinámica y listas
Más detallesUnidad 2: Estructuras de Datos Tema III. Estructuras de datos Compuestas. Pilas, Colas y Listas implementadas con punteros
Unidad 2: Estructuras de Datos Tema III. Estructuras de datos Compuestas. Pilas, Colas y Listas implementadas con punteros Programación I (Plan 1999) Algoritmos y Estructuras de Datos II (Plan 2009) Mgter.
Más detallesClase Práctica Administración de Memoria en C. Organización de Computadoras Depto. Cs. e Ing. de la Comp. Universidad Nacional del Sur
Clase Práctica Administración de Memoria en C Depto. Cs. e Ing. de la Comp. Universidad Nacional del Sur Copyright Copyrigth 2018 Ing. Federico Joaquín. Las presentes transparencias constituyen una guía
Más detallesU nidad 6: A rreglos: U nidim ensionales y m ultidim ensionales
ARREGLOS Introducción Primero que todo, es importante conocer el concepto de estructura de datos. Una estructura de datos es "una colección de datos organizados de un modo particular." Las estructuras
Más detallesProgramación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++
Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++ OBJETIVO En este documento se presentan las construcciones básicas de orientación a objetos del lenguaje de programación C++, y recomendaciones
Más detallesUNIDAD IV Programación Funcional. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM
UNIDAD IV Programación Funcional Porqué? 2 Introducción Porque aprender programación funcional? - Recursión - Abstracción funcional - Funciones de primer orden Estos conceptos se han incorporado en la
Más detallesProgramación Orientada a Objetos. Resumen de Temas Unidad 3: Constructores y destructores
Programación Orientada a Objetos Resumen de Temas Unidad 3: Constructores y destructores 3.1 Conceptos de métodos constructor y destructor Java inicializa siempre con valores por defecto las variables
Más detallesLaboratorio de Arquitectura de Redes. Punteros en lenguaje C
Laboratorio de Arquitectura de Redes Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones con punteros Operaciones
Más detallesCapitulo V Listas Enlazadas
Capitulo V Listas Enlazadas Muere lentamente, quien abandona un proyecto antes de iniciarlo, no preguntando de un asunto que desconoce o no respondiendo cuando le indagan sobre algo que sabe. Evitemos
Más detallesExamen de Programación 2 Diciembre de 2012
Ejercicio 1 ( puntos) Examen de Programación 2 Diciembre de 2012 La Administración Nacional de Puertos (ANP) quiere sistematizar la inspección de contenedores en tránsito en el puerto de Montevideo. El
Más detallesLa resolución de problemas es una tarea únicamente humana comprobable en todos los casos con los mismos resultados.
Pseudocódigo Introducción La importancia de sistematizar procesos y crear programas de cómputo radica esencialmente en que estos se puedan utilizar como resolución de problemas similares en muchos casos,
Más detallesSistemas Operativos Problemas frecuentes con el lenguaje C
Sistemas Operativos Problemas frecuentes con el lenguaje C Grado en Ingeniería Informática Universidad Carlos III de Madrid Contenidos Errores comunes: Generales Tiras de caracteres Entrada y salida Problemas
Más detallesUniversidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México
Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México Unidad Académica Profesional Tianguistenco Ingeniería de Software Estructura de Datos
Más detalles