Sei sulla pagina 1di 7

Lenguajes de Programacin UNAM

Gua Prcticade Laboratorio N 06

Objetivos
Solucionar problemas usando funciones y procedimientos
Codificar algoritmos que usan funciones y procedimientos

PROBLEMA 01
Calcular la suma de tres nmeros, cree un procedimiento para la lectura o ingreso de los nmeros
y otro procedimiento para que dibuje la lnea de separacin, de tal manera que la salida sea de la
siguiente manera:
-----------------------
INGRESE UN NUMERO: 23
INGRESE UN NUMERO: 21
INGRESE UN NUMERO: 10
-----------------------
EL TOTAL ES: 54
-----------------------

1. En una ventana nueva escriba la codificacin en C++del problema 01, use procedimientos.
Guia0601.cpp
#include <cstdlib>
#include <iostream>"
using namespace std;
voi dingresar(); Declaracin de los procedimientos
voi dlinea();
main()
{
int X,Y,Z,T;
linea();
ingresar();
cin>>X; Llamada o invocacin al procedimiento
ingresar();
cin>>Y;
ingresar();
cin>>Z;
T=X+Y+Z;
linea();
cout<<"EL TOTAL ES: "<<T<<"\n";
linea();
system("pause");
return 0;
}

void ingresar()
{
cout<< "INGRESA UN NUMERO ENTERO : "; Implementacin de los procedimientos
}

void linea()
{
int i;
for(i=1;i<=30;i++)
cout<<"-";
cout<<"\n";
}
Ing. Edwing A. Maquera Flores Pagina 1 de 7
Ing. Juan Carlos Clares Perca
Lenguajes de Programacin UNAM

a) Analiza el cdigo y responda:cuantos procedimientos existen?, Cuntas llamadas a


procedimientos existen?
b) Modifique el cdigo para que el programa tenga la siguiente salida:

=======================
INGRESE UN NUMERO: 23
INGRESE UN NUMERO: 21
INGRESE UN NUMERO: 10
=======================
EL TOTAL ES: 54
=======================

PROBLEMA 02
Visualice la tabla de multiplicar de un nmero dado, use un procedimiento que reciba dos
parmetros: el primer parmetro ser un nmero entero y el segundo indicara el nmero de
mltiplos que se debe visualizar.

2. Escriba el siguiente cdigo como solucin al problema 02, se usa un procedimiento con dos
parmetros, pero no se devuelve ningn valor.

Guia0602.cpp
/*Ejemplo de un procedimiento con parmetros y que no devuelve un
valor*/
#include <iostream>
#include <cstdlib>
using namespace std;
void tablamult(int, int);
main()
{
int n, m;
cout<<"Cual tabla desea?";
cin>>n;
cout<<"Cuantos multiplos desea?";
cin>>m;
tablamult(n,m);
system("pause");
} //fin de main()

void tablamult(int n, int m)


{
int i;
cout<<"\nTABLA DE MULTIPLICAR DEL "<<n<<"\n";
for (i=1;i<=m; i++)
cout<<i<<"x"<<n<<"="<<i*n<<endl;
}

a) Ejecute el programa con los valores 4 y 10; 0 y 11

b) Mejore el programa Guia0602.cpp de tal manera que si el usuario ingresa para la variable
m un nmero menor que 1 (m<1) el programa emita un mensaje de error, en caso contrario
visualice los resultados solicitados

Ing. Edwing A. Maquera Flores Pagina 2 de 7


Ing. Juan Carlos Clares Perca
Lenguajes de Programacin UNAM

PROBLEMA 03
Mediante el uso de funciones, calcule la suma de dos nmeros. Use dos parmetro y que la
funcin devuelva la suma de dichos nmeros ingresados.

3. Escriba el siguiente cdigo como solucin al problema 03, se usa una funcin que recibe dos
parmetros y devuelve la suma de los parmetros recibidos.

Guia0603.cpp
#include <cstdlib>
#include <iostream>
using namespace std;
int operacion(int,int);
main()
{
int X,Y,T;
cout<<"INGRESE UN NUMERO : "; cin>>X;
cout<<"INGRESE OTRO NUMERO : "; cin>>Y;
T=operacion(X,Y);
cout<<"LA SUMA DE LOS NUMEROS ES: "<<T<<endl;
system("pause");
return 0;
}

int operacion(int A,int B)


{
return (A+B);
}

PROBLEMA 04
Mediante el uso de funciones calcule el mayor de dos nmeros. Use una funcin que reciba dos
parmetros y que la funcin devuelva el mayor de dichos parmetros.

4. Escriba el siguiente cdigo como solucin al problema 04.


Guia0604.cpp
#include <iostream>
#include <cstdlib>
using namespace std;
float Maximo(float x, float y);
main()
{
intx,y,M;
cout<<"Ingrese el primer numero: "; cin>>x;
cout<<"Ingrese el segundo numero: "; cin>>y;
M=Maximo(x,y);
cout<<"El numero mayor es "<<M<<endl;
system("pause");
}

float Maximo( float x, float y )


{
float resultado;
if (x>y)
{resultado = x;}
else
{resultado = y;}
return resultado;
}
Ing. Edwing A. Maquera Flores Pagina 3 de 7
Ing. Juan Carlos Clares Perca
Lenguajes de Programacin UNAM

PROBLEMA 05
Mediante funciones y procedimientos calcule el resultado de dos nmeros, de acuerdo al
operador ingresado ( + - * / ).

5. Como solucin al problema 05, escriba y analice el siguiente programa, este contiene la
funcin operacion() que recibe dos parametros y devuelven un valor, y la funcin titulo() sin
parmetros y que no devuelve un valor .

Guia0605.cpp
/*Ejemplo de una funcin con parmetros y que devuelve un
valor. La funcin calcula el resultado de la operacin suma,
resta, multiplicacin odivisin de dos nmeros*/
#include<cstdlib>
#include<iostream>
using namespace std;

void titulo(void);
int operacion(int A,int B,char Op);
main()
{
int X,Y;
charOp;
titulo();
cout<<"INGRESE UN NUMERO : "; cin>>X;
cout<<"INGRESE OTRO NUMERO : "; cin>>Y;
cout<<"INGRESE EL OPERADOR (+, -, *, /) : ";
cin>>Op;
cout<<"EL RESULTADO ES: "<<operacion(X,Y,Op)<<"\n";
system("pause");
return 0;
}

voidtitulo(void)
{
cout<<" CALCULO DE OPERACIONES \n";
cout<<" ====================== \n";
}

int operacion(int A,int B,char Op)


{
if (Op=='+')
return (A+B);
if (Op=='-')
return (A-B);
if (Op=='*')
return (A*B);
if (Op=='/')
return (A/B);
}

a) Ejecute el programa Guia0605.cpp con los valores 10 y 2 operador /, ahora pruebe con los
valores 10 y 0 operador /.

b) Mejore el programa Guia0605.cpp, de tal manera que no permita una divisin por cero y
adems agregue el operador %.

Ing. Edwing A. Maquera Flores Pagina 4 de 7


Ing. Juan Carlos Clares Perca
Lenguajes de Programacin UNAM

PROBLEMA 06
Escriba y analice el siguiente cdigo

Guia0606.cpp
//Ejemplo de funcin con parmetros y que devuelve un valor
//Diseo de un men y para cada opcin se utiliza una funcin
#include <cstdlib>
#include <iostream>
using namespace std;

voidtitulo(void);
intoperacion(intA,intB,char Op);

main()
{
intX,Y,Eleccion,k;
k=1;
titulo();
cout<<" 1. SUMAR DATOS \n";
cout<<" 2. RESTAR DATOS \n";
cout<<" 3. MULTIPLICAR DATOS \n";
cout<<" 4. DIVIDIR DATOS \n";
cout<<" 5. SALIR \n";
k=1;
while (k==1)
{
cout<<"\n INGRESE SU OPCION : "; cin>>Eleccion;
if (Eleccion>0 &&Eleccion<5)
{
cout<<" INGRESE UN NUMERO : "; cin>>X;
cout<<" INGRESE OTRO NUMERO : "; cin>>Y;
cout<<"\n";
switch(Eleccion)
{
case 1:
cout<<" LA SUMA DE LOS NUMERO ES: ";
cout<<operacion(X,Y,'+')<<"\n";
break;
case 2:
cout<<" LA RESTA DE LOS NUMEROS ES : ";
cout<<operacion(X,Y,'-')<<"\n";
break;
case 3:
cout<<" LA MULTIPLICACION DE LOS NUMEROS ES : ";
cout<<operacion(X,Y,'*')<<"\n";
break;
case 4:
cout<<" LA DIVISION DE LOS NUMEROS ES : ";
cout<<operacion(X,Y,'/')<<"\n";
break;
}
}
else {k=0;}
}
return 0;
}

Ing. Edwing A. Maquera Flores Pagina 5 de 7


Ing. Juan Carlos Clares Perca
Lenguajes de Programacin UNAM

voidtitulo(void) //implementacion dela funcion


{
cout<<" CALCULO DE OPERACIONES \n";
cout<<" ====================== \n";
}

intoperacion(intA,intB,char Op) //implementacion


{
if (Op=='+')
return (A+B);
if (Op=='-')
return (A-B);
if (Op=='*')
return (A*B);
if (Op=='/')
return (A/B);
}

EJERCICIOS PROPUESTOS

1. Usando funciones escriba un algoritmo que diga si un nmero es primo o no.

2. Usando funciones encuentre los divisores comunes de dos nmeros.

3. Use una funcin para convertir pulgadas a centmetros

4. El algoritmo de codificacin del Cesar codifica un texto sustituyendo cada letra por la letra
tres posiciones a su derecha en el alfabeto. Realizar un programa que codifique un texto
terminado en el carcter . Mediante el algoritmo del Cesar. Este programa deber incluir
una funcin para codificar una letra y hacer uso de esta funcin para codificar el texto.

A continuacin se facilita un posible esquema de la solucin

Ejercicio0604.c
pp
/*****************************************
*Autor:
*Fecha: version:
******************************************/
#include<iostream>
#include<cstdlib>
using namespace std;

charcodifica(char letra);

int main()
{
char l, c;
cout<<"Introduzca texto terminado en punto:";
cin>>l;
while (l!='.')
{
c=codifica(l);

Ing. Edwing A. Maquera Flores Pagina 6 de 7


Ing. Juan Carlos Clares Perca
Lenguajes de Programacin UNAM

cout<<c;
cin>>l;
}
cout<<endl;
system("pause");
return 0;
}

char codifica(char letra)


{
/*Funcion que devuelve el valor de letra codificado por
elmtodo del cesar */
/*Implementar*/
}

5. Realizar un procedimiento que reciba por parmetro un numero y un carcter. Este


procedimiento escribir tantas veces este carcter como indique el numero pasado por
parmetro. Utilizar este procedimiento para dibujar un triangulo por pantalla. El ancho
(numero de filas) del triangulo se leer por teclado al comenzar el programa.

Por ejemplo el procedimiento con los parmetros


Numero = 10
Carcter =*

Dara como resultado:

**********

Entonces con el procedimiento anterior dibujar el tringulo, que tomara el ancho 10:
*
**
***
****
*****
******
*******
********
*********
**********

"Estudia y practica! No para saber una cosa ms, sino para saberla
Estudia y practica! Nomejor."
para saber una cosa ms, sino para
saberla mejor.

No se olvide subir la solucin de los ejercicios propuestos al aula virtual

Ing. Edwing A. Maquera Flores Pagina 7 de 7


Ing. Juan Carlos Clares Perca

Potrebbero piacerti anche