Está en la página 1de 4

PRACTICA N08

Laboratorio de Lenguaje de Programacin


Profesor: Mag. Ing. Rafael Bustamante Alvarez

1)Programa1; Introduccin a punteros


int numero=12;//se guarda en una direccion
// de memoria.
int *prtX=№//un puntero guarda la Dir de memoria
// de una variable
int main(int argc, char *argv[])
{
cout<<"\nDir. de memoria de 'numero' es: ";
cout<<&numero<<endl;
cout<<"\nDir. de memoria de 'numero' en *prtX es: ";
cout<<prtX<<endl;// para ver Dir. men sera sin "*"
cout<<"\nEl contenido de la Dir. de memoria es: ";
cout<<*prtX<<endl;//Se coloca "*" para ver el contenido
cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
2) Programa 2.- Arreglos y punteros a (asignacin de valores en punteros)
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{

int X[6] = { 1, 2, 3, 4, 5, 6 };
int *prtX;
int Y;
prtX = X; // incializa el valor del puntero.

cout << endl << *prtX;


prtX += 2;
cout << endl << *prtX;
prtX -= 2;
cout << endl << *prtX;
prtX++;
cout << endl << *prtX;
cout<<endl;
cout<<X[2]<<endl;
Y = *( prtX + 2 );
cout<<Y<<endl;

system("PAUSE");
return EXIT_SUCCESS;
}
3) Programa 3.- manejo de memoria
#include <cstdlib>
#include <iostream>

using namespace std;


void sumoeldoble( int * ); // prototipo es el formato de la funcion

int main(int argc, char *argv[])


{
int X = 15;
sumoeldoble( &X ); // Pasa la direccin de memoria de X .
cout << X<<endl;

system("PAUSE");
return EXIT_SUCCESS;
}
void sumoeldoble( int *ptrX )
{
// Toma el valor de X mediante el operador de indireccin
// La funcion no devuelve nada porque modifica el valor por referencia.
*ptrX = *ptrX + ( *ptrX * 2 );
}

4) Programa4.-

//PUNTERO A FUNCIONES
//Teniendo en cuenta que el nombre de una funcin es en verdad la
//direccin de memoria donde comienza el cdigo, los punteros a funciones
//contienen la direccin de memoria de la funcin a la que apunta,
//y se pueden pasar y retornar entre funciones.
#include <cstdlib>
#include <iostream>
using namespace std;

bool functionA( int, int, bool (*)( int ) ); //Prototipo


// argumento formato de functionB
bool functionB( int ); //Prototipo
//El programa verifica que las variables x e y son mayores que 100
int main()
{
int x = 113, y = 226;
if ( functionA( x, y, functionB ) ) // tercer argumento functionB
cout << "\nEl resultado es verdadero"<<endl;
else
cout << "\nEl resultado es falso"<<endl;
system("PAUSE");
return EXIT_SUCCESS;

bool functionA( int param1, int param2, bool (*verificar)( int ) )


{
if ( ( (*verificar)( param1 ) ) && ( (*verificar)( param2 ) ) )
return true; // dentro de if se usa functionB prototipo
}

bool functionB( int param )


{
if ( param > 100 )
return true;
else
return false;
}
//En el ejemplo anterior podr ver que en la definicin de los prototipos,
// la funcin functionA recibe tres parmetros, siendo el tercer parmetro un
//puntero a la funcion functionB, practicamente copiando el prototipo
// sin el nombre. Cuando se ejecuta functionA, se le pasa como parmetro
// el nombre de la funcin.

Continua.
Programa 06.- Uso de punteros con estructura de datos
using namespace std;
struct miestructura
{
int a;
}miestructura, *puntero;

int main(int argc, char *argv[])


{
miestructura.a=12;
puntero=&miestructura;
cout<<puntero<<endl;
cout<<&miestructura.a<<endl;
cout<<puntero->a<<endl;
system("PAUSE");
return EXIT_SUCCESS;
};
Desarrollar un programa con punteros que calcule la matriz transversa de una matriz 5x5.

También podría gustarte