Sunteți pe pagina 1din 5

Actividad 1.

Apuntadores, Memoria dinmica


Investiga los que se pide a continuacin:
1.- Definicin de apuntador.
2.- Notacin de un puntero
3.- Representacin terico y prctico. (diferencia entre * &)
4.- Definicin de memoria dinmica
5.- Definicin de tipo de dato abstracto
6.- Tipos de Tipo de Dato Abstracto (TDA)
7.- Realice 2 ejemplos en un lenguaje de programacin donde se usen
y declaren uno o ms punteros
8.- Describe una aplicacin en la vida cotidiana de 2 TDAs
9.- Bibliografa
Escribe una conclusin con tus propias palabras de los
conceptos investigados previamente.
Apuntador:
Variable que almacena una direccin de memoria.Una variable de este tipo
"apunta" o hace referencia a uno ms objetos desde su declaracin "sabe" el
tipo de objetos a que hace referencia.
Tipos de apuntadores: a tipos primitivos, arreglos, apuntadores, estructuras y
funciones, e.g. (*p).field == p->field
El identificador de un arreglo equivale a un apuntador a la direccin del primer
elemento, e.g. a+i == &a[i] y *(a+i) == a[i]
Notacin de un puntero:
Se utiliza para hacer referencia a la velocidad de crecimiento de los valores de una
funcin, es decir su utilidad radica en encontrar un lmite superior de tiempo de
ejecucin de un algoritmo en el peor de los casos.
La definicin de esta notacin es la siguiente.
(n) O(F(n)) si y solo si existen las constantes C y n tales que g(n) <= C * F(n).
Para todo C>=n se tiene que T(n)<=Cn el orden de la magnitud de una funcin es
el orden del trmino de la funcin ms grande en trminos de n.

Representacin terico y prctico. (diferencia entre * &)


Existen dos operadores a tener en cuenta cuando trabajamos con punteros.

El operador de direccin (&) que devuelve la direccin de memoria de su


operando.
El operador de indireccin (*) que devuelve un alias para el objeto al cual
apunta el operando del puntero.

Definicin de memoria Dinmica


La memoria dinmica es un espacio de almacenamiento que se solicita en tiempo
de ejecucin. De esa manera, a medida que el proceso va necesitando espacio
para ms lneas, va solicitando ms memoria al sistema operativo para guardarlas.
El medio para manejar la memoria que otorga el sistema operativo, es el puntero,
puesto que no podemos saber en tiempo de compilacin dnde nos dar huecos
el sistema operativo.
Definicin de tipos de datos:
Un tipo de dato abstracto (TDA) o tipo abstracto de datos (TAD) es un modelo
matemtico compuesto por una coleccin de operaciones definidas sobre un
conjunto de datos para el modelo.
Tipos de Tipo de Dato Abstracto (TDA)
Veamos los diferentes tipos de abstraccin que podemos encontrar en un
programa:
1. Abstraccin funcional: crear procedimientos y funciones e invocarlos
mediante un nombre donde se destaca qu hace la funcin y se ignora cmo lo
hace. El usuario slo necesita conocer la especificacin de la abstraccin (el qu)
y puede ignorar el resto de los detalles (el cmo).
2. Abstraccin de datos: Tipo de datos: proporcionado por los leguajes de alto
nivel. La representacin usada es invisible al programador, al cual solo se le
permite ver las operaciones predefinidas para cada tipo.
Tipos definidos: por el programador que posibilitan la definicin de valores de
datos ms cercanos al problema que se pretende resolver.

TDA: para la definicin y representacin de tipos de datos (valores +


operaciones), junto con sus propiedades.
Objetos: Son TDA a los que se aade propiedades de reutilizacin y de
comparticin de cdigo.

Si profundizamos ms al mundo de la programacin y sus conceptos, existen dos


de estos conceptos que no se deben confundir, ellos son: tipo de datos y
estructura<iostream>
de datos.
#include

#include
<windows.h>
Ejemplos:
using namespace std;
2 ejemplos en un lenguaje
intRealice
cuenta_vocales(char
*); de programacin donde se usen y
declaren uno o ms punteros
int main()
{
#include
<iostream>
using
std::cout;
char
cadena[80];
using std::endl;
cout << "Introduce cadena: ";
int main()
{ cin.getline(cadena, 80);
int x;
//en la llamada a la funcion se enva
int y;
//el array de caracteres
int *ptrEntero;
cout << "Numero de vocales: " << cuenta_vocales(cadena)
int *ptr2Entero;
ptrEntero
= &x;
<< endl;
ptr2Entero = &y;
system("pause");
*ptrEntero = 1;
}
*ptr2Entero
= 5;
cout
<<
"El valor de x es: " <<
x <<
int cuenta_vocales(char
*s)
//sendl;
contiene la direccion de inicio
*ptrEntero += 5;
del array
de caracteres
cout << "El valor de x, luego de incrementar 5 a *ptrEntero, es: " << x <<
{ endl;
cout
"El valor de y es: " << y << endl;
int<<
cont=0;
cout << "El valor de &y es: " << &y << endl;
while(*s) //mientras no llegue al nulo
cout << "El valor de ptr2Entero es: " << ptr2Entero << endl;
{ << "El valor de *ptr2Entero es: " << *ptr2Entero << endl;
cout
coutswitch(toupper(*s))
<< "El valor de &ptr2Entero
es: " << &ptr2Entero
<< endl;
//toupper
pasa el carcter
a maysculas
cout << "El valor de &*ptrEntero es: " << &*ptrEntero << " y el valor de
para hacer la comprobacin.
*&ptrEntero es: " << *&ptrEntero << endl;
//el :)"
carcter
cout {<< "FIN DEL PROGRAMA
<< endl; original no se modifica.
return case
0;
'A':
}
case 'E':
case 'I':
case 'O':
case 'U': cont++;
}
s++;
}
return cont;
}

Describe una aplicacin en la vida cotidiana de 2 TDAs:

Bibliografa:
http://ejercicioscpp.blogspot.mx/2012/11/ejercicios-resueltos-punteros-contarvocales.html
http://codigomaldito.blogspot.mx/2005/11/apuntadores-o-punteros.html
https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B
%2B/Punteros#Operadores

S-ar putea să vă placă și