You are on page 1of 9

PROGRAMACIN DE COMPUTADORAS I ARN HERRERA PONTE

Programacin de Computadoras I

Apuntadores

Captulo 8. Apuntadores
Prctica Dirigida N 8 Apuntadores Problema 1: Cul es el valor final de x ? int x = 5; x +=2; int *ap1=&x; *ap1 = x + *ap1; int *ap2 = ap1; *ap1 = 2*(*ap2)/(*ap1); cout<<El valor de x es <<x; Pseudocdigo VARIABLES Entero : x Puntero : ap1 , ap2 ACCION Hallar_x x 5 x x+2 ap1 &x ap1 x + ap1 ap2 ap1 ap1 2*(ap2)/(ap1) Escribir("El valor de x es : ", x ) FIN_ACCION

C++ #include<iostream.h> #include<conio.h> void main() {int x=5; x+=2; int *ap1=&x; *ap1=x+*ap1; int *ap2=ap1; *ap1=2*(*ap2)/(*ap1); cout<<"El valor de x es : "<<x; getch(); clrscr(); }

Prof. Arn Elas Herrera Ponte

Pg. 2

Programacin de Computadoras I

Apuntadores

Problema 2 : Cul es el resultado de las siguientes operaciones? int *p , a; ptr = &a; a = a + 10; *ptr = *ptr + 10; if ( a < 20 ) { cout<<a es menor que 20; } else { cout<<a es mayor que 20; }

Pseudocdigo VARIABLES Entero : a Puntero : ptr ACCION Hallar_resultado ptr &a a a + 10 ptr ptr + 10 Si ( a < 20 ) Entonces Escribir("a es menor que 20") Sino Escribir("a es mayor o igual a 20") Fin_Si FIN_ACCION

C++ #include<iostream.h> #include<conio.h> void main() {int *ptr, a; ptr=&a; a = a + 10; *ptr = *ptr + 10; if( a < 20 ) { cout<<"a es menor que 20"; } else { cout<<"a es mayor o igual a 20"; } getch(); clrscr(); }

Prof. Arn Elas Herrera Ponte

Pg. 3

Programacin de Computadoras I

Apuntadores

Problema 3 : Qu se imprime? int a , b , c , *p1 , *p2; p1 = &a; *p1 = 1; p2 = &b; *p2 = 2; p1 = p2; *p1 = 0; p2 = &c; *p2 = 3; *p1 = 1; cout<<El valor de a es :<<a; cout<<\nEl valor de b es :<<b; cout<<\nEl valor de c es :<<c; Pseudocdigo VARIABLRES Entero : a , b , c Puntero : p1 , p2 ACCION Mostrar_variables p1 &a p1 1 p2 &b p2 2 p1 p2 p1 0 p2 &c p2 3 p1 1 Escribir("El valor de a es ", a ) Escribir("El valor de b es ", b ) Escribir("El valor de c es ", c ) FIN_ACCION

C++ #include<iostream.h> #include<conio.h> void main() {int a , b , c , *p1 , *p2; p1=&a; *p1=1; p2=&b; *p2=2; p1=p2; *p1=0; p2=&c; *p2=3; *p1=1; Prof. Arn Elas Herrera Ponte Pg. 4

Programacin de Computadoras I

Apuntadores

cout<<"El valor de a es "<<a; cout<<"\nEl valor de b es "<<b; cout<<"\nEl valor de c es "<<c; getch(); clrscr(); }

Prof. Arn Elas Herrera Ponte

Pg. 5

Programacin de Computadoras I

Apuntadores

Ejercicios Adicionales #include #include #include #include <iostream.h> <conio.h> <ctype.h> <stdio.h>

Ejercicio 1: void main() { int *punt, A; A=100; punt=&A; cout<<"El valor de A es : "<<*punt; punt=&A; *punt=99; cout<<"\nEl valor de A es : "<<A; getch(); clrscr(); } Ejercicio 2: void main() { int a,*punt_a; float b,*punt_b; double c,*punt_c; punt_a=&a; punt_b=&b; punt_c=&c; cout<<"Direccion actual de punt_a : "<<punt_a; cout<<"\nDireccion actual de punt_b : "<<punt_b; cout<<"\nDireccion actual de punt_c : "<<punt_c; punt_a++;punt_b++;punt_c++; cout<<"\n\nDireccion actual de punt_a : "<<punt_a; cout<<"\nDireccion actual de punt_b : "<<punt_b; cout<<"\nDireccion actual de punt_c : "<<punt_c; getch(); clrscr(); } Ejercicio 3: void main () { int *punt, A; punt=&A; A=11; cout<<"Direccion de punt : "<<punt; cout<<"\nValor de A : "<<A; //*punt=*punt+1; Prof. Arn Elas Herrera Ponte Pg. 6

Programacin de Computadoras I

Apuntadores

(*punt)++; //*punt++; cout<<"\nDireccion de punt : "<<punt; cout<<"\nValor de A : "<<A; getch(); clrscr(); } Ejercicio 4: void main() { int V[10]={1,2,3,4,5,6,7,8,9,10}; int *punt; punt=V; cout<<"Valores del vector : "; cout<<*punt<<" "<<*(punt+1)<<" "<<*(punt+2); cout<<"\nValores del vector : "; cout<<V[0]<<" "<<V[1]<<" "<<V[2]; getch(); clrscr(); } Ejercicio 5: void main() { char cadena[]="Arriba siempre arriba hasta las estrellas"; int i; for(i=0;cadena[i];i++) { cadena[i]=toupper(cadena[i]); } cout<<"Mayusculas : "; puts(cadena); for(i=0;cadena[i];i++) { cadena[i]=tolower(cadena[i]); } cout<<"Minusculas : "; puts(cadena); getch(); clrscr(); } Ejercicio 6: void main() { char cadena[80],*punt; int i; cout<<"Ingrese una cadena de caracteres : "; gets(cadena); punt=cadena; while(*punt) { *punt=toupper(*punt); punt=punt+1; Prof. Arn Elas Herrera Ponte Pg. 7

Programacin de Computadoras I

Apuntadores

} cout<<"Mayusculas : "; puts(cadena); punt=cadena; while(*punt) { *punt=tolower(*punt); punt++; } cout<<"Minusculas : "; puts(cadena); getch(); clrscr(); } Ejercicio 7: void main() {char cadena[80],**punt_m,*punt; punt=cadena; punt_m=&punt; cout<<"Ingrese su nombre : "; gets(*punt_m); cout<<"Hola "<<*punt_m; getch(); clrscr(); } Ejercicio 8: int hallar_longitud(char *cadena); void main() { char cadena[80]; int valor; cout<<"Ingrese una cadena de caracteres : "; gets(cadena); valor=hallar_longitud(cadena); cout<<"Longitud de la cadena de caracteres : "<<valor; getch(); clrscr(); } int hallar_longitud(char *cadena) { int cont=0; while(*cadena) { cont=cont+1; cadena=cadena+1; } return(cont); } Ejercicio 9 : int negar_numero(int *num); void main() { Prof. Arn Elas Herrera Ponte Pg. 8

Programacin de Computadoras I

Apuntadores

int num; negar_numero(&num); cout<<num; getch(); clrscr(); } int negar_numero(int *num) { int valor; cout<<"Ingrese un numero entero : "; cin>>valor; *num=-valor; }

Prof. Arn Elas Herrera Ponte

Pg. 9

You might also like