Contenido:  ¿Qué son los Punteros?  Los Procedimientos: New y Dispose.

Slides:



Advertisements
Presentaciones similares
IBD Curso 2007 Clase 2.
Advertisements

2. Manejo de memoria Manejo de memoria estática
Programación de Computadores
PROGRAMACION ESTRUCTURADA
Instrucciones Básicas Entrada de Información
Fundamentos de Programación I Agradecimientos al Ing. Namuel Solórzano Peralta por el contenido de esta presentación.
Iteración La iteración permite modelar problemas en los cuales una secuencia de instrucciones debe ejecutarse varias veces. La cantidad de iteraciones.
Elementos de Pascal Escribir un programa en Pascal que lea los valores de los catetos de un triángulo rectángulo y calcule y muestre la hipotenusa. program.
Type tipo_bf = ; tipo_dato = word; tipo_puntero = ^tipo_nodo; tipo_nodo = record dato: tipo_dato; izquierdo, derecho: tipo_puntero; bf: tipo_bf;
Metodología de la Programación
Fundamentos de la Programación Estructurada
Resolución de Problemas y Algoritmos Buffer - Read & Readln
Direcciones, Arreglos y Argumentos de Funciones
Tipos de Datos Básicos y Estructurados
Tema 1. Introducción a la programación (Lenguaje java).
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Teoría de lenguajes y compiladores
¿Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No.
Vectores en java.
FUNCIONES Y PROCEDIMIENTOS
Tema 6: Clases Antonio J. Sierra.
Fundamentos de Programación
PROCEDIMIENTOS FUNCIONES
TIPOS Y ESTRUCTURAS BÁSICAS DE DATOS
Índice. Revisando conceptos acerca de la memoria.
Sintaxis.
Clase 10: Estructuras de datos y arreglos.
COMPUTACIÓN I TEMA 6. Pasaje de parámetros por Referencia. Uso de apuntadores Prof. Mireya Morales.
Agosto 2010Programación I - Tipo de Datos1 Programación I Prof. Adjunto: Lic. Jorge O. Scucimarri Universidad Nacional de Luján Licenciatura en Sistemas.
PUNTEROS Ing Anghello Quintero.
Fundamentos de Programación
Programación en Pascal
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Sesión 17 Tipos de datos Estruturados Arreglos de Registros Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Resolución de Problemas y Algoritmos Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca - Argentina.
Administración de Memoria
COMPUTACION 2009 C lase 4 Programa PASCAL SENTENCIAS DATOS Expresiones Tipos Declaración de variables Declaración de variables Asignación Entrada/Salida.
Aplicación de estructuras de datos
75.40 Algoritmos y Programación I
Teoría – Alejandro Gonzalez
NVA-LNG1 3. SENTENCIAS. NVA-LNG2 Asignación Es una sentencia que almacena: el valor del argumento ubicado a la derecha del símbolo que la representa En.
Elementos básicos del lenguaje
Ada 2º Parte (variables, ámbitos , subrutinas , tipos abstractos de datos y excepciones)
Unidad II Introducción a la programación en C++
APRENDIZ: SANDRA L. CAICEDO C. ORDEN: 20194
TEORIA DE LA INFORMACION INGENIERO ANYELO QUINTERO.
Informática Ingeniería en Electrónica y Automática Industrial
Programación en C para electrónicos
Definir un vector Forma general Variable=[tipo]*tamaño Tipo: es el valor inicial con el cual quedarán llenas todas las posiciones creadas del vector. Tamaño:
Elementos básicos del lenguaje
PUNTEROS Y REFERENCIAS
Constructor  Un constructor es un método que inicia un objeto inmediatamente después de su creación. De esta forma nos evitamos el tener que iniciar.
APUNTADORES.
Elementos básicos del lenguaje
Los punteros Programación modular.
Arreglos y comunicación Usuario
Punteros Recomendado: 1. Nivelación Funciones
PHP con Bases de Datos Tema 2 Variables, Constantes y Tipos de Datos
Computación II Capitulo VII Punteros. Presentación de la unidad Objetivos: –Ser capaces de utilizar punteros. –Comprender las relaciones entre punteros,
INSTITUTO TECNOLOGICO DE APIZACO
 Un lenguaje se puede definir como un conjunto de palabras y formas de expresión por medio de las cuales se comunican y relacionan miembros de una comunidad.
Visual Basic FUNCIONES Y PROCEDIMIENTOS
Sesión 4 Secuencias Básicas Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Teoría de lenguajes y compiladores
PRINCIPIOS DE PROGRAMACIÓN
Programación de Computadores
Para aplicaciones.   Una variable es un espacio de memoria en donde se almacenan datos 1. VARIABLES.
EL TIPO DE DATO LOGICO y constantes.
MEMORIA DINÁMICA.
Algorítmica y Programación
Transcripción de la presentación:

Contenido:  ¿Qué son los Punteros?  Los Procedimientos: New y Dispose

 Es un tipo especial de variable cuyo valor es una dirección de una posición de memoria, es decir, un puntero contiene la dirección de otra variable (valor)2587 (valor) 2014 (dirección)1747 (dirección) Un puntero Posición de memoria señalada por el puntero

Para declarar una variable puntero en Pascal se debe especificar el nombre de la variable y el tipo del valor que se almacenará en la posición de memoria a la que el puntero se refiere. Type tipo-puntero= ^ tipo dato

Ejemplo: 1. Type Tipo_puntero= ^integer; Var P: Tipo_puntero; 2. Type PunteroEntero = ^integer; Type PunteraCar= ^Char; Var P,Q: PunteroEntero; R: PunteroCar; Define tipo cuyos valores apuntan a posiciones que contienen enteros. Define tipo cuyos valores apuntan a posiciones que contienen caracteres. P y q apuntan a posiciones que contienen enteros. R apunta a posiciones que contienen caracteres P P^

Type Entrada= RECORD Nombre: String[20]; ID : 1..maxint; Costo : real; End; Var P: ^integer; Q: ^Char; R: ^Entrada; El ejemplo anterior define tres variables puntero P, Q y R. P se limita a datos enteros, Q se limita a datos carácter y R se limita a datos de tipo registro ‘Entrada’.

 Por ejemplo supongamos las siguientes instrucciones:  P^:= 1000 el valor de P^ es 1000  3 * P^ toma el valor de 3500 Antes de que un programa utilice un puntero, se requiere primero espacio para el tipo de dato objeto de la dirección del puntero. En otras palabras, un programa debe inicializar sus punteros, su declaración no basta; para inicializar un puntero se debe utilizar el procedimiento NEW

 El procedimiento New crea una nueva variable dinámica y establece que una variable puntero apunte a ella.  Formato:  Ejemplo: New(P) New(P) P variable puntero P 25.0 P La sentencia de asignación P^:= 25.0 Almacena el valor real en la posición de memoria P Write(P^:10:2); Visualiza el valor 25.0

 El procedimiento Dispose libera la posición de memoria ocupada por una variable dinámica:  Formato:  P variable puntero dispose(P) PP^ Situación Inicial ?Situación después de dispose P

 Pascal proporciona una constante predefinida, nil (nulo). La constante nil se utiliza para dar un valor a una variable puntero que no apunta a ninguna posición. Nil puede ser asignada a un puntero de cualquier tipo.  Como nil no apunta a ninguna dirección de memoria, una referencia a p^ es ilegal si el valor de p es nil.  p := nil;  p^:= 5 es ilegal ya que se instruye a la computadora a almacenar 5 en la posición apuntada por p, pero debido a la primera sentencia (p:=nil), p no apunta a ninguna dirección. P:= nil

 El segmento de programa  var  p: char;  Begin  p:= nil;  if p=nil then  writeln(‘el puntero P no apunta a nada’)  else  writeln (‘P se queda indefinido apunta a una  variable carácter’);  Proporciona la salida   el puntero P no apunta a nada. 

 Las variables de puntero pueden contener la dirección de tipos de datos simples o datos de tipo compuesto. En las estructuras de dinámicas de datos es frecuente el uso de registros como elementos. Se suelen conocer con el nombre de nodos, aunque en realidad el término se extiende tanto a datos simples como compuestos. Consideremos un ejemplo con variables dinámicas tipo registro.

 Type  Estudiante = record  nombre: string[20];  edad : integer  end;  PunteroEst= ^Estudiante;  Var  P1,P2,P3: PunteroEst;  Write (P1^.nombre, P2^.nombre, P3^.nombre);

Program test; Type Estudiante = record Letra : char; Edad : integer; End; PuntEstu = ^Estudiante; Var P1, P2 : PuntEstu; Begin New(P1); P1 ^.Edad := 1; P1 ^.Letra := ‘A’; Writeln(P1 ^.Edad, P1 ^.Letra); New(P2), P2 ^.Edad := 2; P2 ^.Letra := ‘B’; Writeln(P2 ^.Edad, P2 ^.Letra); P1 := P2; P2 ^.Edad := 3; P2 ^.Letra := ‘C’; Writeln(P1 ^.Edad, P1 ^.Letra); Writeln(P2 ^.Edad, P2.Letra) End. Ejecución: 1A 2B 3C