Está en la página 1de 6

Fundamentos de Programacin

Ing. M.Sc. Edelfr Flores Velsquez

GUIA DE PRCTICAS PUNTEROS


Objetivos:
Aplicar los punteros en la solucin de problemas prcticos.

Procedimientos:
I.

Verificar errores de sintaxis y semntica


1) Dada la declaracin e inicializacin de la variable a de tipo entero y una variable puntero pt,
mostrar los valores de salida que corresponde a cada variable:

#include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
int a, *pt;
a=7;
pt=a;
cout << "La direccion de a es: " << a<<endl;
cout << "La direccion de pt es: " << pt<<endl;
cout << "El contenido de pt es: " << <<endl;
cout << "El valor de a es: " << <<endl;
cout << "El valor de pt es: " << pt<<endl;
return 0;
}

Fundamentos de Programacin

Ing. M.Sc. Edelfr Flores Velsquez

2) Programa que cuenta el nmero de palabras de una cadena.

#include <iostream>
using namespace std;
#define MAX 20
int *p[MAX];
void divide(char cadena) {
int j;
char *r=cadena;
for(j=0;j<MAX;++j)
p[j]=NULL;
j=0;
while (1){
while (*r==' ')
++r;
if (*r=='\0')
return;
*(p)=r;
++j;
while (*r!=' '){
if (*r=='\0')
return;
++r;
}
*r='\0';
++r;
}
}
int main(int argc, char *argv[]) {
int j=0;
char cadena[]="puno es una ciudad bonita";
divide(cadena);
while (p[j]!=NULL){

Fundamentos de Programacin

Ing. M.Sc. Edelfr Flores Velsquez

cout<<j+1<<") "<<*(p+j)<<endl;
++j;
}
return 0;
}

II.

Los programas siguientes escrbelos en notacin de punteros

1) Programa que muestre los primeros 100 nmeros de izquierda a derecha usando un array de dos
dimensiones, la ltima fila muestra la suma de sus respectivas columnas.
#include <iostream>
#include <stdio.h>
using namespace std;
int main(int argc, char *argv[]) {
int x,y,sum, numeros[11][10];
for (y=0;y<10;y++)
{
sum=0;
for (x=0;x<10;x++)
{
numeros[x][y]=(x*10)+1+y;
sum=sum+numeros[x][y];
}
numeros[10][y]=sum;
}
for (x=0;x<11;x++)
{
for (y=0;y<10;y++)
{
printf("%d \t", numeros[x][y]);
}
printf("\n");
}
return 0;
}
2) Programa que lee las estaturas de los alumnos de una clase y se realizan con ellos distintos
clculos, para ello se implementan las funciones.
#include <iostream>

Fundamentos de Programacin

Ing. M.Sc. Edelfr Flores Velsquez

#include <iomanip>
#include <stdlib.h>
using namespace std;
//declaracin de funciones
void leer(double []);
double estatura_media(double []);
void max_min(double [], double &, double &);
void cuantos_mayor_menor_media(double [], double, int &, int &);
void mostrar_resultados(double [], double, double, double, int, int);
int main(int argc, char *argv[]) {
double estaturas[10], media, mayor, menor;
int cont_mas = 0, cont_menos = 0;
leer(estaturas);
max_min(estaturas,mayor,menor);
media = estatura_media(estaturas);
cuantos_mayor_menor_media(estaturas,media,cont_mas,cont_menos);
mostrar_resultados(estaturas,media,mayor,menor,cont_mas, cont_menos);
return 0;
}
void leer(double a[])
{
int i;
cout << "Lectura de las estaturas de los alumnos:" << endl;
for(i=0; i<10; i++)
{
cout << "Alumno " << i+1 << ": ";
cin >> a[i];
}
}
double estatura_media(double a[])
{
double media = 0;
int i;
for(i=0; i<10; i++)
{
media = media + a[i];
}
media = media / 10;
return media;
}
void max_min(double a[], double &max, double &min)
{
int i;
max = min = a[0];
for(i=1; i<10; i++)
{

Fundamentos de Programacin

Ing. M.Sc. Edelfr Flores Velsquez

if(a[i]>max)
max = a[i];
else if(a[i]<min)
min = a[i];
}
}
void cuantos_mayor_menor_media(double a[], double media,
int &mayores_media, int &menores_media)
{
int i;
for(i=0; i<10; i++)
{
if(a[i]>media)
mayores_media++;
else if(a[i]<media)
menores_media++;
}
}
void mostrar_resultados(double a[], double media, double mayor,
double menor, int mayores_media, int menores_media)
{
int i;
system("cls");
cout << fixed << setprecision(2);
cout << "Estatura de los alumnos de la clase" << endl;
cout << "-----------------------------------" << endl;
for(i=0; i<10; i++)
{
cout << "Alumno " << setw(4) << i+1 << ": " << a[i] << endl;
}
cout << "Mayor estatura: " << mayor << endl;
cout << "Menor estatura: " << menor << endl;
cout << "Estatura media: " << media << endl;
cout << "Hay " << mayores_media << " alumnos con estatura ";
cout << "superior a la media" << endl;
cout << "Hay " << menores_media << " alumnos con estatura ";
cout << "inferior a la media" << endl << endl;
}

III. Resuelva los siguientes ejercicios


1) Para cada uno de los siguientes puntos, escribir una sentencia que lleve a cabo la tarea
indicada. Asumir que las variables numero1 y numero2 de tipo float se encuentran
definidas y que numero1 ha sido inicializada con 7.3.
a. Definir la variable fPtr como un puntero a tipo float.
b. Asignar la direccin de la variable numero1 a la variable fPtr.

Fundamentos de Programacin

Ing. M.Sc. Edelfr Flores Velsquez

c. Imprimir el valor del dato apuntado por fPtr.


d. Asignar el valor del dato apuntado por fPtr a la variable numero2.
e. Imprimir el valor de numero2.
f. Imprimir la direccin de la variable numero1.
g. Imprimir la direccin almacenada en fPtr.
2) Implemente un programa que usando punteros lea una cadena de texto y muestre
como resultado el nmero de letras maysculas y minsculas.
3) Escribir una funcin multiplo que determine para un par de enteros si el segundo entero
es mltiplo del primero. La funcin deber tomar dos argumentos enteros y retornar 1
(verdadero) si el segundo es mltiplo del primero, y 0 (falso) en otro caso. Usar la
funcin multiplo en un programa que ingrese una serie de pares de enteros y vaya
imprimiendo para cada par el correspondiente cartel. Utilice punteros.
4) Un palndromo es un string que se lee igual de adelante para atrs o de atrs para
adelante. Algunos ejemplos son radar, neuquen, 10100101. Escribir una funcin
esPalindromo que dado un string informe si es o no un palndromo. Probar la funcin
dentro de un programa. Utilice punteros para implementar el programa.

También podría gustarte