Vous êtes sur la page 1sur 7

INSTITUTO POLITECNICO NACIONAL

Escuela Superior de Ingeniera Mecnica y Elctrica


Unidad Culhuacan
Estructura y bases de datos
Grupo:
Practica 2
Apuntadores
Integrantes del equipo:
Grupo:
Profesor: Ezequiel Snchez !urez
1
Tema 2
Apuntadores
Objetivo del tema
Aprender a conceptualizar un apuntador. Manejar el concepto de puntero
y apuntador, derivado de este, implementar las diferentes formas para el
manejo de los datos nativos en Cpor su direcci!n "ue se re"uieren para
controlar el #ujo material en la soluci!n de un problema. Aprender a diferenciar
los distintos tipos de datos y adecuarlos a las necesidades del manejo por
direcci!n de la informaci!n.
Apuntadores
2.1 $ntroducci!n
2.2 Asi%naci!n directa
2.& 'unteros y Apuntadores
2,( )eclaraci!n de apuntadores
2.* implementaci!n de apuntadores
2,+ ,so de apuntadores
2.-Ejemplos
2.. Conclusi!n
$ntroducci!n
En la pr/ctica anterior, se aprendi! a conceptualizar la
informaci!n, al de0nir el tipo de dato nativo a emplear. 'ero los
datos no se almacenan donde uno "uisiera encontrarlos
f/cilmente, en el proceso de almacenamiento se destina un
espacio en la memoria donde el dato "uedar/ almacenado. 1a
pre%unta interesante "ue sur%e es 2d!nde "ueda almacenado este
dato3 4 lo in"uietante es 2lo podremos manipular en el momento
"ue se le re"uiera3 1a respuesta a estas pre%untas esta en los
apuntadores por lo en esta pr/ctica aprenderemos a usar los
apuntadores como una 5erramienta mediante la cual con las
direcciones se tendr/ la posibilidad de manejar la informaci!n
5aciendo referencia a su direcci!n.
Consideraciones te!ricas
Asi%naci!n directa e indirecta
En las computadoras la informaci!n se maneja y almacena
en una de las memorias de la ma"uina, en primer lu%ar en la
memoria 6AM y posteriormente en el disco duro del ordenador. 1as
unidad b/sica de almacenamiento es el bit y cada bit s!lo puede
trabajar con dos valores 7ceros 8 y unos 19, a su vez los bits se
2
manejan por octetos formando as: lo "ue se denomina para este
curso la unidad m:nima de comunicaci!n "ue es la palabra
conformada por un arre%lo de oc5o bits.
En el procesador s!lo se manejan palabras bytes, estas
unidades de comunicaci!n se les asi%na en forma aleatoria por el
administrador del sistema operativo una direcci!n cada vez "ue se
acceso una palabra a la memoria. Con eso "ueda claro "ue todo
tipo de informaci!n "ue se maneja en la computadora tiene de
antemano asi%nada una direcci!n den la memoria. En este caso es
conveniente pre%untar c!mo se realiza esta asi%naci!n de
memoria. 'ara lo "ue cual se manejan dos tipos de asi%naci!n,
una directa y la otra en forma indirecta.
Asi%naci!n directa
Como se aprendi! en la pr/ctica 1, al declarar una variable
se inicio la primera parte para la captura de informaci!n, en
primer lu%ar a la variable se le puede asi%nar en forma directa un
valor para el cual fue declarada, para 5acer esta asi%naci!n se
5ar/ uso del operador asi%naci!n 7;9 en el uso del operador
asi%naci!n, se debe tener cuidado de veri0car el tipo de dato "ue
se va asi%nar a cada variable, ya "ue si el tipo del dato con "ue se
declar! no coincide con el tipo de dato "ue se est/ capturando se
presentara un problema de incon%ruencia en la captura.
'or ejemplo<
=i se declara la variable c!di%o de tipo int, de la misma
manera se debe capturar una informaci!n de tipo entero.
int c!di%o>
codi%o ; 12&>
En el ejemplo anterior se est/ asiendo una asi%naci!n
directa, cuando a la variable codi%o se le asi%na en forma directa
el valor de 12&. )e tal forma a la variable c!di%o en esta
asi%naci!n autom/ticamente se le proporciona una direcci!n.
Operadores de asi%naci!n
Adem/s del uso simple del operador asi%naci!n, se tiene seis
aplicaciones de asi%naci!n matem/ticos como se muestra a
continuaci!n.
Asi%naci
!n
6esultado Aplicaci!n e"uivale
; Asi%na el valor de una variable a
otra
p ; " p ;."
; =uma al valor de la variable una
cantidad y lo asi%na a la
variable ori%inal
p ; " p ; p
"
?; 6esta al valor de la variable una p?; " p ; p
&
cantidad y lo asi%na a la
variable ori%inal
"
@; Multiplica el valor de la variable
por una cantidad y el resultado
lo asi%na a la variable ori%inal
' @ ; " p ; p @ "
A; )ivide el valor de la variable
entre una cantidad y el residuo
lo asi%na a la variable ori%inal
p A ; " p ; p A
"
B; )ivide el valor de la variable
entre una cantidad y el
resultado lo asi%na a la variable
ori%inal
' B ; " p ; pB"
Asi%naci!n indirecta
'unteros y apuntadores
1a informa i!n se captura para tener un control sobre esta,
pero 2c!mo localizar en "ue parte se encuentra almacenada3 1a
respuesta a esta interro%ante la encontramos en el uso de
punteros y apuntadores, en primer lu%ar se tiene "ue armar un
puntero, el cual es una variable "ue s!lo contiene la direcci!n de
otra variable, a continuaci!n se implementa el apuntador, o sea,
"ue al puntero para poder tener acceso a la informaci!n "ue
contiene la otra variable se le indica a travCs del operador
indirecci!n 7@9 la acci!n para poder disponer la informaci!n "ue se
encuentra almacenada en esta variable.
'ara implementar un puntero, en primer lu%ar a una variable
se le asi%na la direcci!n de la variable "ue se desea manejar, esta
acci!n se realiza aplicando a la variable "ue se desea manipular el
operador direcci!n 7D9 este operador entre%a la direcci!n en "ue
se encuentra localizada la variable, la cual en forma directa se le
asi%na a la variable con la se busca tener acceso a la informaci!n,
con esta asi%naci!n se est/ implementado un puntero, ya "ue la
variable s!lo tiene la direcci!n de la variable a manipular. 'or
Eltimo al a%re%ar el operador indirecci!n 7@9 al puntero se tendr/
estructurado un apuntador.
Ejemplo<
1a variable a manipular es c!di%o la cual se declara de la
si%uiente manera
$nt c!di%o>
1a pre%unta es en "uC direcci!n se encuentra c!di%o. Con el
operador direcci!n se veri0ca en "uC direcci!n se localiza c!di%o.
1a direcci!n "ue tiene c!di%o se asi%na al puntero aeromeFico
(
localiza ; Dc!di%o>
En este momento localiza se convierte en un puntero ya "ue
solo contiene la direcci!n de la variable c!di%o.
Cuando se le adiciona el operador indirecci!n 7@9 con el
puntero localiza se implementa el apuntador, o sea "ue el
apuntador localiza apunta al contenido de la variable c!di%o.
1os pasos para 5acer uso de un apuntador son los
si%uientes.
1. =e declaran las variables a manipular.
2. =e le asi%na valor a la variable a minipular
&. =e localiza la direcci!n de la variable a minipular.
(. =e arma el apuntador
*. =e 5ace uso del apuntador.
)ecalraciGn de las variables
$nt c!di%o> 7declaraci!n de la variable a
manipular9
$nt @localiza> 7declaraci!n del apuntador9
localiza ; Dc!di%o> 7implementaci!n del puntero9
contenidoHcodi%o ; @localiza> 7transferencia de informaci!n
del apuntador9
direcci!nHcodi%o ; localiza> 7direcci!n "ue contiene el
puntero 9
Como se puede observar en el ejemplo anterior, el contenido
de c!di%o se le asi%na en forma indirecta a la variable
contenidoHcodi%o, o sea "ue el contenido de la variable c!di%o en
forma indirecta a travCs del apuntador localiza se asi%no a la
variable contenidoHcodi%o. Con lo "ue se da por de0nido "ue el
apuntador, apunta al contenido de una variable a travCs de su
direcci!n.
)esarrollo
Aplicaci!n
=e desea controlar la cantidad de alumnos "ue est/n
inscritos en un determinado %rupo, para lo "ue se 5ace necesario
saber en "uC direcci!n se encuentran localizada la cantidad de
alumnos inscritos, para lue%o mostrar la cantidad de alumnos
inscritos.
Al%oritmo
1. $nicio
*
2. )eclaraci!n de variables
&. $ntroducci!n de informaci!n
(. Armado de punteros
*. Armado de apuntadores
+. Mostrar la informaci!n re"uerida
-. 0n
)ia%rama de #ujo
Codi0caci!n
B@captura y revisi!n, de la cantidad de alumnos inscritos@B
IincludeJstdio.5K
Main79
L
$nt alumnos, cantidadHalumnos>
$nt @localizador>
printf7Mcuantos alumnos est/n incritosN9>
scanf7MAdN, Dalumnos9>
localizador ; Dalumnos>
cantidadHalumnos; @loclizador>
+
)eclaraci
!n de
variables
$ntroducci!n
de valores
Armado de
punteros y
apuntadores
Mostrar la
cantidad de
alumnos y su
direcci!n
0
n
inic
io
printf 7Mla ciantidad de alumnos inscritos es< M, cantidadHalumnos9>
printf 7Mest/n en la direcci!n< M, localizador9>
O
Conclusi!n
1os apuntadores son una 5erramienta importante en el
manejo de la informaci!n. Al ad"uirir la 5abilidad de manejar la
informaci!n por su direcci!n se esta 5aciendo uso de la
versatilidad "ue ofrece el manejo de la informaci!n de acuerdo a
la ubicaci!n "ue ten%a en la memoria. Adem/s el uso de los
apuntadores se pude orientar al manejo de arre%los, estructuras,
estructuras con uni!n, y funciones en las "ue se 5a%a necesario
referir el contenido de una variable por su direcci!n.
1os operadores "ue se tiene a disposici!n para implementar
un apuntador< El operador direcci!n 7D9 al aplicarlo a una variable
devuelve la direcci!n en "ue se almacen! la variable, el operador
indirecciGn 7@9 el "ue se adiciona al puntero para declarar una
variable como apuntador, en la declaraci!n de acuerdo al an/lisis
de la naturaleza del dato, se determina el tipo de dato al "ue se
asocia el apuntador.
recomendaciones
En esta parte se 5ar/ la indicaci!n de c!mo se
puede usar la codi0caci!n "ue dio soluci!n al
problema particular del e"uipo de eFposici!n.
Piblio%raf:a
1. 4edidya5, 1. Mas5e, A. Aaron, T. 1QQ+.
Estructuras de datos con C y C++. Mxico:
Prentice Hall.
-

Vous aimerez peut-être aussi