You are on page 1of 12

INSTITUTO POLITECNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERIA EN MECANICA Y ELECTRONICA

INTEGRANTES: SALAS MONTIEL STEPHANIE


VENEGAS MARTINEZ ILMELDA DANIELA

MATERIA: ORIENTACION ORIENTADA A OBJETOS

REPORTE DE PRACTICA 1 :
APUNTADORES

PRIMER PARCIAL

22/ABRIL/2015

OBJETIVO: conocer y hacer uso de las variables apuntadores.

INTRODUCCION
Los apuntadores en C y C++ son una herramienta muy potente de programacion que suele causar
mucha confusion en los estudiantes que la estan aprendiendo. Adems, cuando los
programadores cometen un error en su utilizacin, puede ser muy difcil encontrar el error, por lo
cual es importante saber utilizarlos muy bien. El uso de apuntadores en C y C++ es muy importante
debido a que permite hacer los programas ms eficientes y ms flexibles.
Todas las variables se almacenan en una direccin predeterminada en memoria. El monto del rea
de memoria es determinada por el tipo de variable, es decir; una variable inti ocupa 2 bytes, un
flota 4 bytes, un arreglo ocupara el tipo del arreglo multiplicado por la cantidad de elementos, una
estructura es igual a la suma de los campos.
En C++ existe una nueva clase de variables llamadas apuntadores o punteros, que permiten
almacenar la direccin de memoria de alguna otra variable normal.
En el caso de variables apuntadores a Sting o arreglos esta variable solo podr almacenar lo
posicin ms relevante del arreglo es decir la ocupada por el primer elemento del arreglo, mismo
caso para estructuras.
La utilidad principal de los variables apuntadores es la facilidad que tienen para acusar y manipular
datos estructurados mas rpidamente, tambin son muy tiles para permitir pasar y recibir valores
en funciones.
Para declarar una variable de tipo apuntador se usa:
Tipo *var_apuntador;
Donde tipo especifica el tipo de dato al que apuntara la variable.
Main ()
{
In x = 7;
float y = 4.5;
int *x1;
float *y1;
}
Existen dos operadores especificos que se utilizan para manejar variables apuntadores, estos son :
* Sirve para crear y manipular el valor hexadecimal que representa esa direccion.
& Se utiliza para procesar directamente el dato que se encuentra en dicha direccion.
En resumen en c++ con el operador (*) se crea la variable apuntador o puntero y con el operador
(&) se procesa el dato que esta dentro de esa direccin, o que creen que hace el ampersand en los
scanfs().

PROGRAMA 1
CODIGO :
#include<stdlib.h>
#include<iostream>
using namespace std;
int main ()
{ float dist=158, millas=120.5;
float *dirNum;
dirNum=&millas;
cout<<"La direccin a la que apunta ="<<dirNum;
cout<<"El valor de lo que se apunta="<<*dirNum;

dirNum=&dist;
cout<<"La direccin a la que se apunta ahora="<<dirNum<<endl;
cout<<"El vaor a lo que se apunta ahora="<<*dirNum<<endl;
system("pause");
return 0;

PROGRAMA 2
CODIGO:
#include<iostream>
#include<stdlib.h>
using namespace std;
int main ()
{ int a=10, b=20, c=30;
int *ptra=&a, *ptrb=&b, *ptrc=&c;

c=*ptra + *ptrb;
ptrb=ptra;
a=*ptrb + *ptrc;
cout<<a<<endl<<b<<endl<<c;
system("pause");
return 0;
}

PROGRAMA 3
CODIGO :
#include<iostream>
#include<stdlib.h>
using namespace std;
void F(char*b, char*c)
{ while (*b!='\0')
{ if(*b!='a'&&*b!='e'&&*b!='i'&&*b!='o'&&*b!='u')

{ *c=*b;
c++;
}
b++;
} *c='\0';
}
int main ()
{ char cad1 [10]={"abcdefghi"};
char cad2 [10];
F(cad1,cad2);
cout<<cad1<<endl<<cad2<<endl;
system ("pause");
return 0;)
}

PROGRAMA 4
CODIGO:
#include<iostream>
#include<stdlib.h>

using namespace std;


void f1(char x1, char*x2, char*x3)
{ x1='m';
*x2='n';
*x3='o';
}
int main ()
{char A='x', B='y', C='z';
char*ptr1=&A,*ptr2=&B,*ptr3=ptr2;
f1 (*ptr1,ptr2,ptr3);
cout<<A<<B<<C;
system("pause")
return 0;

PROGRAMA 5

#include<iostream>
#include<stdlib.h>
#define MAX 5
using namespace std;
int main ()
{ int *g_ptr;
int i,calif [MAX]={98,87,92,79,85};
g_ptr=&calif[0];
for (i=0; i<MAX;i++)
{
cout<<"Elemento"<<i<<"es"<<*(g_ptr+i)<<endl;
}
system("pause");
return 0;
}

COM
PILADO:

PROGRAMA 6
#include<iostream>

#include<stdlib.h>
using namespace std;
int main ()
{ int numcalif,i;
cout<<"Introduce numero de calificaciones"<<endl;
cin>>numcalif;
int*calif=new int[numcalif];
for(i=0;i<numcalif;i++)
{ cin>>calif[i];
cout<<endl;
}
cout<<"Se crea un arreglo de"<<numcalif<<"de tipo entero"<<endl;
cout<<"Los valores almacenados en el arreglo son"<<endl;
for(int i=0; i<numcalif;i++)
{ cout<<"Elemento"<<i<<"="<<calif [i]<<endl;
}
system("pause");
delete [] calif;
return 0;
}

PROGRAMA 7
CODIGO :
#include <iostream>
#include <stdlib.h>
using namespace std;
float lee(int dato){
float v;
cout<<"Introducir el elemento "<<dato<<": ";
cin>>v;
return v;
}
float escribe(int dato, float dato1){
cout<<endl<<"El dato "<<dato<<" es: "<<dato1;
return 0;
}
void ordenar(float num[], int dato){
float aux;
int j,k;
for(j=1;j<dato;j++){
for(k=0;k<dato-1;k++){
if(num[k]<num[k+1]){
aux=num[k];
num[k]=num[k+1];
num[k+1]=aux;
}
}
}
}
int main(){
int n, i;
cout<<"Ingrese el tamao de la lista: ";
cin>>n;
float *num=new float[n];
for(i=0;i<n;i++){
num[i]=lee(i);
}
for(i=0;i<n;i++){
escribe(i, num[i]);
}
ordenar(num, n);
cout<<endl;
for(i=0;i<n;i++){
cout<<" "<<num[i]<<endl;
}
cout<<"El mayor: "<<num[0]<<endl;
cout<<"El menor: "<<num[n-1]<<endl;
system("PAUSE");
delete []num;
return 0;
}

CONCLUSION
En conclusin podemos decir que gracias a la explicacin del tema apuntadores y la realizacin
de los programas para nosotros fue un logro mas a la ampliacin de nuestro conocimiento en
programacin , dimos por entendido Para que? Cmo? Y Dnde? Utilizaremos apuntadores asi
mismo entendimos la manera en que estos se desarrollan e interactan dentro de un programa y
la manera en que los llevemos a la practica en la solucin de problemas.

You might also like