Vous êtes sur la page 1sur 13

Programacin

Punteros en Pascal
Un puntero es una variable que contiene la
direccin de memoria donde se encuentra
almacenado un dato, es la direccin de algo en
la memoria del ordenador. Una variable de tipo
apuntador o puntero es una variable que
almacena un valor que es la direccin de una
posicin de la memoria en la que se almacena
otro dato de cualquiera de los tipos vistos hasta
ahora excepto de tipo archivo (file of ... , text o
file).
Las variables puntero se emplean generalmente para almacenar
direcciones de memoria de variables dinmicas en el segmento de
montculo. Es muy importante destacar que las variables puntero que se
empleen al principio sern variables estticas, pero ms adelante se
introducirn tambin variables dinmicas de tipo puntero.
Los
punteros
son
tambin
llamados apuntadores. Son tipos
de datos que permiten crear
estructuras de datos dinmicas, las
cuales pueden variar en tamao y
memoria requerida. Las variables
que se crean y se destruyen durante
la ejecucin se llaman variables
dinmicas o annimas. As,
durante la ejecucin de un
programa, puede haber una posicin de memoria especfica asociada con
una variable dinmica y posteriormente puede no existir ninguna
posicin de memoria asociada con ella.

Representacin Grfica
Puntero
Variable Referencia
Dato

Una estructura de datos dinmica es una coleccin de elementos


llamados nodos de la estructura - normalmente tipo registro- que se
enlazan o encadenan juntos. Este enlace se establece asociando con cada
nodo un puntero que apunta al nodo siguiente de la estructura.
Al definir un puntero se debe indicar el tipo de valores que se
almacenarn en las posiciones designadas por los punteros. Esto se debe
a que los diferentes tipos de datos requieren distintas cantidades de
memoria para almacenar sus constantes, una variable puntero puede
contener una direccin de una posicin de memoria adecuada slo para
un tipo dado.
En PASCAL, declaramos los punteros con el smbolo ^ y una direccin
de memoria a la cual lo hacemos apuntar. El tamao que ocupa un
puntero est dado por el tamao necesario para almacenar una direccin
de memoria, en muchas PCs hogareas este valor suele ser 4 bytes.
VAR PUNTERO:^INTEGER;
En
el
cdigo
anterior
hemos
declarado
un
puntero
llamado PUNTERO que est apuntando a un tipo de dato entero, es decir
que en l podemos almacenar valores de direcciones de memoria dnde
se encuentren enteros.

Si bien el puntero est listo para


guardar una direccin an no lo hemos
inicializado con ninguna direccin, el
siguiente paso es reservar la memoria
de un entero en el rea de HEAP (dnde
se aloca la memoria solicitada
dinmicamente) y guardar la direccin
de ese lugar en el puntero.
Para realizar esto utilizamos la instruccin NEW ( ), en caso de que la
mquina no obtenga memoria para alocar el pedido, al puntero se le
asignara la direccin NIL, cuyo significado es la "nada", es decir el
puntero no apunta a ningn sector de la memoria.
Al terminar de utilizar la memoria a la cual accedamos con el puntero,
lo recomendable es siempre liberarla, para que quede disponible para
otras aplicaciones que soliciten memoria.

Definicin y Declaracin de Punteros


Para poder usar una variable puntero es necesario:
Definir el tipo de dato (o estructura) al
que se apunta. (Esta declaracin se
realiza dentro de la seccin TYPE).
Declarar las variables punteros que
sean necesarias (esta declaracin se
realiza dentro de la seccin VAR).
En Pascal un puntero slo puede sealar a objetos de un mismo tipo, el
establecido en la declaracin.

Algunas Observaciones al Respecto

Una variable de tipo puntero ocupa


una cantidad de memoria fija,
independiente del tipo de dato al que
apunta.
Un dato referenciado, como el del
ejemplo, no posee existencia inicial, o
lo que es lo mismo no existe
inicialmente espacio reservado en
memoria para l.

Operaciones Bsicas con Variables


Referenciadas
El contenido de la variable referenciada
por el puntero se denota: Puntero^
Las operaciones permitidas para esta
nueva variables son:
Asignacin
Lectura
Escritura
Todas las operaciones legales que se
puedan realizar con dicho tipo.
Conocer ms acerca de las funciones, procedimientos y operaciones
que podes utilizar y realizar en el programa de pascal

Operaciones Bsicas con Punteros

Las nicas operaciones vlidas son


La comparacin (se comparan las
direcciones, no los contenidos de los
datos apuntados).
Apnum1=Apnum2
La asignacin (se asignan las
direcciones entre s, no los contenidos
de los datos apuntados).
Apnum1:=Apnum2

La Comparacin
Apnum1

Apnum2

Apnum1=Apnum2
La comparacin anterior dara como resultado el valor false ya que
cada uno apunta a una direccin de memoria diferente.

La Asignacin
Apnum1

Apnum2

Apnum1

Apnum2

Apnum1:=Apnum2

Los cambios efectuados sobre Apnum1 afectan a la variable Apnum2


(son indistintas) (Alliasing).
El espacio de memoria reservado inicialmente por el puntero Apnum1
sigue situado en memoria. Una adecuada gestin de la memoria
hubiera exigido

Programacin

Archivos de Texto en Pascal


Los archivos, (a diferencia de los
vectores, variables, matrices, arrays
de registros) son estructuras que se
guardan de modo permanente en
dispositivos de almacenamiento
definitivo (disco rgido, disquete,
reproductor de mp3). Los archivos de
texto segn la definicin es una
secuencia lnea de caracteres puesto
uno tras otro, los caracteres son todos
aquellos que estn incluidos en el cdigo ASCII, los archivos de texto son
estructuralmente los ms simples y sencillos, cuando nosotros creamos
un archivo de texto en pascal, ese archivo lo podemos ver y modificar en
el Bloc de Notas, Note Pad o cualquier otro programa que manipule
archivos de texto, Atencin, no hay que confundir los archivos de texto
con los archivos doc. de Word, los archivos de Word incluyen adems del
texto etiquetas tipo HTML que sirven para especificar las alineaciones,
colores etc. Word puede manejar los archivos de texto pero se tiene que
guardar como eso, como archivos de texto.
Adems podemos hacer lo contrario, podemos crear un archivo de texto
con el bloc de notas, Word incluso y podemos modificarlo con un
programa en pascal y sern totalmente legibles
Un archivo o fichero (file) es una estructura de datos que reside en
memoria secundaria, consistente en un conjunto de informaciones
estructuradas en unidades de acceso denominadas registros, todos del
mismo tipo y en nmero indeterminado. En contraste con los arreglos,
el tamao de los archivos no es fijo, y est limitado solamente por la
capacidad de almacenamiento disponible. Adems cuando uno apaga la
mquina los arreglos se pierden su contenido, el contenido de los
archivos no se pierde por esta causa.

Los archivos en general, estn compuestos por registros. Mediante


programas adecuados se pueden manipular los distintos tipos de
archivos (texto, tipeados, no tipeados). Cada archivo es referenciado por
un identificador (su nombre y su extensin). Cuando hablamos de
archivos tipeados, nos referimos a un archivo de registros.
Existen dos mtodos de acceso a un archivo. El acceso secuencial y el
acceso directo. El acceso secuencial exige el tratamiento elemento a
elemento mientras el acceso directo permite tomar un elemento
determinado referenciado por su posicin en el soporte de
almacenamiento.

Los Registros en un Archivo son de


Dos Tipos
Registro Lgico: Que es cada uno de los componentes del archivo,
conteniendo el conjunto de informaciones que se tratan de manera
unitaria. Est constituido por uno o ms elementos denominados
campos, que pueden ser de diferentes tipos y que a su vez pueden estar
compuestos por sub campos.
Si un archivo contiene la informacin de un conjunto de individuos u
objetos, sus registros contienen la informacin de cada uno de ellos y los
campos los diferentes dates que lo componen.
Por ejemplo, en el archivo de empleados de una empresa, cada registro
contiene la informacin de un empleado y los campos contienen su
nombre, direccin, fecha de ingreso, etc.
Registro Fsico: o bloque corresponde a la cantidad de informacin
que se transfiere en cada operacin de acceso (lectura o escritura).
Un registro lgico y registro fsico, se diferencian en que el tamao y
formato del registro lgico los define el programador, mientras que el
tamao del registro fsico viene dado por las caractersticas fsicas de la
computadora utilizada.

Caractersticas de los Archivos

Las principales caractersticas que diferencian esta estructura de dates


de las restantes son las siguientes:
Residencia en soportes de informacin externos, tambin
denominados memorias secundarias o auxiliares, como son las cintas y
discos (magnticos u pticos).
Independencia respecto de los programas, lo que significa que la
vida del archivo no est limitada por la vida del programa que lo cre y
tambin que en diferentes momentos pueden hacer uso del mismo
archivo diferentes programas.
Permanencia de las informaciones almacenadas, es decir, la
informacin contenida en un archivo no desaparece cuando se
desconecta la computadora, a diferencia de todas las informaciones
almacenadas en la memoria central.
Gran capacidad de almacenamiento, siendo esta capacidad
tericamente ilimitada; por el contrario, las estructuras de datos que
residen en la memoria central tiene l imitado su tamao por la capacidad
de sta.

Archivos en Turbo Pascal


Todos los archivos de Turbo Pascal, con independencia de su tipo,
comparten caractersticas comunes.
Todos los archivos se utilizan como entrada y/o salida
El sistema operativo almacena y accede a archivos, genera
directorios, copia, renombra y transfiere archivos entre discos,
memoria y dispositivos de E/S (modem, impresora...).
Los archivos se pueden almacenar en disquetes y unidades de
discos duros. Existen otros dispositivos de almacenamiento (cinta,
discos pticos, discos RAM, etc.), aunque son menos frecuentes.
Los archivos de texto estndar de Turbo Pascal tienen la extensin .TXT;
por consiguiente, es casi norma el uso de la extensin .DAT para
aquellos archivos creados por Ud. O sus programas
Operaciones Sobre Archivos
Entre las operaciones ms usuales que se
realizan con archivos destacan la
creacin, copia, consulta, clasificacin,
concatenacin, interseccin, fusin,
particin, actualizacin, reorganizacin y
borrado.
Estas operaciones se llevan a cabo bien por un programa del usuario, o
bien por un programa del propio sistema operativo de la computadora.
Las operaciones ms usuales a nivel de registro son: insercin,
supresin, modificacin y consulta del contenido de los mismos. Estas
operaciones se hacen generalmente a travs de programas de
actualizacin.

Declaracin de archivos
Para declarar un archivo como en otros casos se declara primero el tipo
y luego una variable asociado al tipo.
Type
T_Archivo = file of char; {* archivo de texto *}
T_Texto = file of text;
Var
Archivo: T_Texto;

Procedimientos y Funciones de Tratamiento de Archivos


Para todos los tipos de archivos

Solo para archivos de texto

Procedimientos
Assign
ChDir
Close
Erase
GetDir
MkDir
Rename
Reset
Rewrite
RmDi

Append
Flush
Read
Readln
SetTexBuf
Write
Writeln

Funciones
Eof
IOResult

Eoln
SeekEof
SeekEoln

Ejemplo de cmo crear un archivo de texto


Un archivo de texto est constituido por una serie de lneas de caracteres
separados por CR/LF. Esta combinacin se obtiene, cuando se realiza
una pulsacin de la tecla Intro. ()
Esto es una prueba de un archivo de texto
Cada lnea en un archivo de texto finaliza con CR/LF,
Es decir un Retorno de Carro y un Avance de Lnea
(Lnea vaca)
45671.45 es la cantidad total
Los archivos de texto se terminan con una marca final de archivo Ctrl-Z
(eof, end of file). Cuando trabajamos con ellos en Pascal es obligatorio
declararlos.
Los archivos de texto se pueden crear con el editor del sistema operativo
WordPad o con un programa de edicin de texto (Word, WordStar, etc.)
en estos casos en el momento de grabarlos (Guardar Como) se elegir la
opcin Slo Texto. Tambin se puede escribir un archivo utilizando el
editor de Pascal.

Acerca del Blog


En la preparacin de un programa, el
programador puede tener que
escoger entre soluciones alternativas
en muchos puntos. Cada eleccin
debe hacerse para satisfacer los
objetivos y restricciones de la tarea de
programacin particular.
Por lo tanto este blog estar dirigido al rea de programacin, en el cual
se discutirn temas relacionados al Programa de Pascal, y tambin para
lograr un conocimiento profundo sobre los contenidos de Punteros y
Archivos de Textos en Pascal de manera que aprendamos a usar el
programa de una mejor manera.

Vous aimerez peut-être aussi