Está en la página 1de 23

Guía práctica de laboratorio de Fundamentos de

Programación
Tercera Unidad: Módulos para la programación: función y procedimiento
Práctica N°05-CGT

GRUPO H
Sección :
Fecha : 11 /07/ 2020 Duración: 100 min
Tipo de práctica: Individual ( x ) Grupal ( )
Docente :

Instrucciones: Desarrolle los siguientes programas haciendo uso del software Dev-C++.

GRUPO H – INTEGRANTES:
VLADIMIR IVAN ZAVALA RIVEROS
ERNESTO MAURICIO RAMOS ARAPA
MARCOS WILLIAM HUALLPA CONDORI
WILLIAMS LIMA HUACOTO
HENRY JESÚS GUIME CUYO PUCHO

1.- Tema: Funciones


2.- Objetivo: Poner en práctica los principios básicos del uso de funciones en lenguaje C++.
3.- Materiales a utilizar en la práctica:
• Programa Dev C++
• Procesador de texto Microsoft Word
• Computadora personal
4.- Planteamiento de ejercicios:

FUNCIONES

1. Realizar una función llamada hipotenusa, que calcule la hipotenusa de un triángulo, en


función a los catetos de un triángulo

float hipotenusa (int a, int b);


#include<iostream>
#include<math.h>
#include<conio.h>

using namespace std;

float hallarhipotenusa(int a,int b);

int main(){

int C_ad,C_op;

cout<<"Ingrese el cateto adyacente : ";cin>>C_ad;


cout<<"Ingrese el catero opuesto : ";cin>>C_op;

cout<<"\nLa hipotenusa del triangulo es: "<<hallarhipotenusa(C_ad,C_op)<<endl;

getch();
return 0;

}
float hallarhipotenusa(int C_ad,int C_op){

float hipotenusa;
hipotenusa=sqrt(pow(C_ad,2)+pow(C_op,2));

return hipotenusa;
}

2. Realizar una función llamada areaTriangulo, que calcule el área en función a tres lados, y
otra función que calcule el perímetro del triángulo
Área = p( p − a)( p − b)( p − c)

Donde p: es el semiperímetro, p = (a + b + c) / 2, siendo a, b, c los tres lados del triángulo.


Análisis del problema:

double perimetroTriangulo (int a, int b, int c);


double areaTriangulo (int a, int b, int c);
int mayorLado (int a, int b, intc);

#include<iostream>
#include<math.h>
#include<conio.h>

using namespace std;

double perimetroTriangulo (int a, int b, int c);


double areaTriangulo (int a, int b, int c);
int mayorLado (int a, int b, int c);

int main(){

int a,b,c;
double area, semiperimetro;

cout<<" Ingrese los 3 lados del triangulo:"<<endl;


cin>>a>>b>>c;

area=areaTriangulo(a,b,c);

if(area>0)
{
cout<<"\n El area de triangulo es: "<<area;
}
else
{
cout<<"ERROR! El triangulo no existe";
}

//cout<<" El perimetro del triangulo es: "<<perimetroTriangulo (base,L1,L2)<<endl;


//cout<<" El mayor lado del triangulo es: "<<mayorLado (base,L1,L2)<<endl;

getch();
return 0;

}
double areaTriangulo (int a, int b, int c){
double area;

double perimetro, sperimetro;

perimetro = perimetroTriangulo(a,b,c);
sperimetro=perimetro/2;

area=sqrt(sperimetro*(sperimetro-a)*(sperimetro-b)*(sperimetro-c));

return area;
}

double perimetroTriangulo (int a, int b, int c){

int perimetro;
int mayor=mayorLado(a,b,c); //verificar mayorLado

if(mayor>0)
{
perimetro = (a+b+c);
}
else
{
perimetro=0;
}

return perimetro;

int mayorLado (int a, int b, int c){


int mayor;

if ( 0<a && 0<b && 0<c )


{
if ( a > b )
{
if ( a > c )
{
if ( b > c )
{
if ( b-c < a && a < b+c )
{
//cout<<"El triangulo SI existe";
mayor=a;
}
else
{
//cout<<"ERROR! El triangulo NO existe";
mayor=0;
}
}
else
{
if ( c-b < a && a < c+b )
{
//cout<<"El triangulo SI existe";
mayor=a;
}
else
{
//cout<<"ERROR! El triangulo NO existe";
mayor=0;
}
}
}

else
{
if ( a-b < c && c < a+b )
{
//cout<<"El triangulo SI existe";
mayor=c;
}
else
{
//cout<<"ERROR! El triangulo NO existe";
mayor=0;
}

}
}
else
{
if ( b > c )
{
if ( a > c )
{
if ( a-c < b && b < a+c )
{
//cout<<"El triangulo SI existe";
mayor=b;
}
else
{
//cout<<"ERROR! El triangulo NO existe";
mayor=0;
}
}
else
{
if ( c-a < b && b < c+a )
{
//cout<<"El triangulo SI existe";
mayor=b;
}
else
{
//cout<<"ERROR! El triangulo NO existe";
mayor=0;
}
}
}
else
{
if ( b-a < c && c < b+a )
{
//cout<<"El triangulo SI existe";
mayor=c;
}
else
{
//cout<<"ERROR! El triangulo NO existe";
mayor=0;
}
}
}

else
{
//cout<<"ERROR! No puede tener lados menores o iguales a 0";
mayor=0;
}
return mayor;
}

3. Escribir un programa que calcule la potencia usando una función propia (no debe usar la
función pow).

double potencia (int base, int exponente);


#include<iostream>
#include<math.h>
#include<conio.h>
using namespace std;

int hallarpotencia(int base, int exponente);

int main(){

int base,exponente;

cout<<"Ingrese la base: ";cin>>base;


cout<<"Ingrese el exponente: ";cin>>exponente;

cout<<"\n La potencia es: "<<hallarpotencia(base, exponente)<<endl;

getch();
return 0;

int hallarpotencia(int base, int exponente){

double potencia=1;

for ( int i=exponente;i>0;i--)


potencia*=base;

return potencia;
}

4. Realizar las funciones que se detallan, en función a tres números ingresados


double promedio (int n1, int n2, int n3);
double mayor(int n1, int n2, int n3);
double menor(int n1, int n2, int n3);

#include<iostream>
#include<math.h>
#include<conio.h>

using namespace std;

double promedio (int n1, int n2, int n3);


double mayor(int n1, int n2, int n3);
double menor(int n1, int n2, int n3);

int main(){

int n1,n2,n3;

cout<<" Digite el primer numero: ";cin>>n1;


cout<<" Digite el segundo numero: ";cin>>n2;
cout<<" Digite el tercer numero: ";cin>>n3;

cout<<"\n El promedio es: "<<promedio (n1,n2,n3)<<endl;


cout<<" Mayor numero es: "<<mayor(n1,n2,n3)<<endl;
cout<<" Menor numero es: "<<menor(n1,n2,n3)<<endl;

getch();
return 0;
}
double promedio (int n1, int n2, int n3){
double promedio;

promedio=(n1+n2+n3)/3;

return promedio;
}
double mayor(int n1, int n2, int n3){

int mayor;

if(n1>n2)
if(n1>n3)
mayor =n1;
else mayor=n3;
else if(n2>n3)
mayor=n2;
else
mayor=n3;

return mayor;

}
double menor(int n1, int n2, int n3){
int menor;

if(n1<n2)
if(n1<n3)
menor=n1;
else menor=n3;
else if(n2<n3)
menor=n2;
else menor=n3;

return menor;
}

5. Realizar una función que calcule la suma siguiente serie, “n” debe ser mayor o igual a 2

3 3 3 3 3 3
𝑠=− + − + − +⋯
2 4 6 8 10 2𝑛

double suma(int n);


#include <numeric>
#include <iostream>
#include <vector>
#include<conio.h>
using namespace std;

double suma(int n)
{
float s1 = 0;
float s2 = 0;
for(int i=1;i<=n;i+=2)
{
s1 = s1 -(3.0/(2*i));
}
for(int k=2;k<=n;k+=2)
{
s2 = s2 + (3.0/(2*k));
}
return s1 + s2;
}

int main()
{
int N;
cout<<"Ingrese el valor de n: "<<"\n";
cin>>N;
if(N>=2)
{
float j = suma(N);
cout <<"La suma es: "<< j;
return 0;
}
else
cout<<"EL valor de n debe ser mayor o igual a 2 "<<"\r\n";

return main();
}

6. Realizar una función que calcule la suma siguiente serie, “n” debe ser mayor o igual a 2

30 31 32 33 3𝑛−1
𝑠= + + + +⋯
1 2 3 4 𝑛

double suma(int n);

#include <numeric>
#include <iostream>
#include <vector>
#include<conio.h>
#include <math.h>
using namespace std;

double suma(int n)
{
float s = 0;
for(int i=1;i<=n;i+=1)
{
s = s + (pow(3.0,i-1)/(i));
}
return s;
}

int main()
{
int N;
cout<<"Ingrese el valor de n: "<<"\n";
cin>>N;
if(N>=2)
{
float j = suma(N);
cout <<"La suma es: "<< j;
return 0;
}

else
cout<<"EL valor de n debe ser mayor o igual a 2 "<<"\r\n";

return main();
}

7. Realizar una función llamada promedioFinal, que calcule el promedio en función a la


siguiente fórmula:

float promedioFinal (int C1, int EP, int C2, int EF);

En la función principal debe retornar el promedio, y en función a este mostrar el siguiente


mensaje:
#include<math.h>
#include<iostream>
#include<stdio.h>
#include<conio.h>
using namespace std;

float promedioFinal (int C1, int EP, int C2, int EF)
{
//proceso
float PF=(C1*0.20)+(C2*0.20)+(EP*0.25)+(EF*0.35);

return PF;
}

int main()
{ //declaracion de variables
double PF,intC1,intEP,intC2,intEF;
//entrada
cout<<"PROMEDIO FINAL""\n""\n";
do{
cout<<"INGRESE CONSOLIDADO 1 (20%) : ";
cin>>intC1;
}while(intC1<0 || intC1>20);
do{
cout<<"INGRESE CONSOLIDADO 2 (20%) : ";
cin>>intC2;
}while(intC2<0 || intC2>20);
do{
cout<<"INGRESE EXAMEN PARCIAL(25%) : ";
cin>>intEP;
}while(intEP<0 || intEP>20);
do{
cout<<"INGRESE EXAMEN FINAL(35%) : ";
cin>>intEF;
}while(intEF<0 || intEF>20);

PF=promedioFinal(intC1,intEP,intC2,intEF);

//salida
cout<<"-----------------------------------""\n";
cout<<"PROMEDIO : "<<PF<<"\n";
cout<<"CONDICION : ";
if(PF>=15){ cout<<"Con honores""\n";
}
if(PF<=10.5){ cout<<"Quedo""\n";
}
else{ cout<<"Aprobo""\n";
}

system("pause");
return 0;
}

8. El siguiente es el menú de un restaurante de bocadillos. Diseñar un programa capaz de leer


el número de unidades consumidas de cada alimento ordenado y calcular la cuenta total
del precio incluyendo IGV (19%).

Bocadillo de jamón: 3.50 soles


Patatas fritas: 2.20 soles
Refresco: 3.00 soles
Cerveza: 4.50 soles

double cuentaTotal (int bj, int pf, int r, in c);

#include<iostream>
#include<math.h>
#include<conio.h>
using namespace std;
double cuentatotal(int bj, int pf, int r, int c);//declarando mi prototip0
int main()
{
int bj,pf,r,c;

cout<<"\n ************* RESTAURANTE EL HUARIQUE ****************\n";


cout<<"\n BOCADITO DE JAMON a 3.50 soles";
cout<<"\n PAPAS FRITAS a 2.20 soles";
cout<<"\n REFRESCOS a 3.00 soles";
cout<<"\n CERVEZA a 4.50 soles\n";
cout<<"\n ******************************************************\n";
cout<<"\n INGRESE UNIDADES CONSUMIDAS DE BOCADITO DE JAMON : ";
cin>>bj;
cout<<"\n INGRESE UNIDADES CONSUMIDAS DE PAPAS FRITAS : ";
cin>>pf;
cout<<"\n INGRESE UNIDADES CONSUMIDAS DE REFRESCOS : ";
cin>>r;
cout<<"\n INGRESE UNIDADES CONSUMIDAS DE CERVEZA : ";
cin>>c;
cout<<"\n SU CUENTA A PAGAR CON IGV(18%) ES : S/ "<<cuentatotal( bj, pf, r, c);
cout<<"\n\n ******************************************************\n";
return 0;
}
double cuentatotal(int bj, int pf, int r, int c)
{ double cuenta,cuentigv;
cuenta=bj*3.5+pf*2.2+r*3+c*4.5;
cuentigv=cuenta+cuenta*18/100;// llamando a un subproceso dentro de un subproceso
return cuentigv;

Problemas Reto

9. Realizar una función en el que se envíe como parámetro la cantidad de números. En esta
función el usuario debe ingresar los “n” números para retornar el mayor número, de los
ingresados.

int mayor(int n);


#include<iostream>
#include<math.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>

using namespace std;

int mayor(int n);


int main()
{
int n;
int m;

cout<<"============================"<<"\r\n";
cout<<"NUMERO MAYOR"<<"\r\n";
cout<<"============================"<<"\r\n";

cout<<"Cantidad de numeros a evaluar: "<<"\r\n";


cin>>n;

m=mayor(n);
cout<<"El numero mayor es: "<< m;

return 0;
}

int mayor(int n)
{
int m;
int num;
for ( int i=0;i<n;i++ )
{
cout<<"Ingresa el numero "<<i+1<<": ";
cin>>num;
if (i==0)
{
m=num;
}
else
{
if(num>m)
{
m=num;
}
}
}

return m;
}

10. Realizar una función en el que se envíe como parámetro la cantidad de números. En esta
función el usuario debe ingresar los “n” números para retornar la cantidad de múltiplos de 5

int multiplosCinco(int n);

#include<iostream>
#include<math.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>

using namespace std;

int multiplosCinco(int n);


int main()
{
int n;
int m;
cout<<"============================"<<"\r\n";
cout<<"MULTIPLOS DE 5"<<"\r\n";
cout<<"============================"<<"\r\n";

cout<<"Cantidad de numeros a evaluar: "<<"\r\n";


cin>>n;

m=multiplosCinco(n);
cout<<"La cantidad de multiplos de 5 son: "<< m;

return 0;
}

int multiplosCinco(int n)
{
int m=0;
int num;
for ( int i=0;i<n;i++ )
{
cout<<"Ingresa el numero "<<i+1<<": ";
cin>>num;

if(num>=5)
{
if (num%5==0)
{
m++;
}
}
}

return m;
}

11. Elaborar una función que devuelva “correcto”, si adivinó la contraseña “conti123”, caso contrario
que devuelva “incorrecto”. Si la contraseña es “correcto” mostrar un mensaje “Acceso autorizado”,
caso contrario “Acceso denegado”.
string Adivina (string pass) // devuelve “correcto” o “incorrecto”
#include<iostream>
#include<math.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>

using namespace std;

bool Acceso(char pswd[]);


int main()
{
char pswd[10];
bool access=false;

cout<<"============================"<<"\r\n";
cout<<"INICIAR SESION"<<"\r\n";
cout<<"============================"<<"\r\n";

cout<<"Ingresa la contrasena: "<<"\r\n";


cin>>pswd;

access=Acceso(pswd);

if ( access == true )
{
cout<<"++++++++++++++++++++++++++++++"<<"\r\n";
cout<<"Acceso Autorizado"<<"\r\n";
cout<<"++++++++++++++++++++++++++++++"<<"\r\n";
}
else
{
cout<<"------------------------------"<<"\r\n";
cout<<"Acceso Denegado"<<"\r\n";
cout<<"------------------------------"<<"\r\n";
}

return 0;
}

bool Acceso(char pswd[])


{
bool access = false;
char secret[] = "conti123";

if( strcmp(pswd,secret) == 0 )
{
access = true;
}
else
{
access = false;
}

return access;
}

12. Una empresa ofrece un descuento, de acuerdo a la tabla siguiente, en función al tipo de
producto, para “n” clientes

Tipo de producto Descuento


[A.] Mouse 8%
[B.]Teclado 10%
[C.] Disco Duro 11%
[D.] Monitor 15%

Determine el monto de venta (considerando el descuento), de los “n” clientes.

double descuento(int cantidad, double precio);


double venta (int n); // este procedimiento calcula el monto total de venta y usa la función
descuento
#include<iostream>
#include<math.h>
#include<stdio.h>
#include<conio.h>
#include<string.h>

using namespace std;

double descuento(int producto, int cantidad, double precio);


double venta(int n);

int main()
{
int n;
double vt;

cout<<"============================"<<"\r\n";
cout<<"VENTA DE PRODUCTOS"<<"\r\n";
cout<<"============================"<<"\r\n";

cout<<"Ingrese cantidad de clientes: ";


cin>>n;

vt=venta(n);
cout<<"MONTO TOTAL DE VENTA: S/ "<< vt;

return 0;
}
double descuento(int producto, int cantidad, double precio)
{
double dsc;
double dsc_A=0.08; //%8
double dsc_B=0.1; //%10
double dsc_C=0.11; //%11
double dsc_D=0.15; //%15

if(producto == 1)
{
dsc=(cantidad*precio)*dsc_A;
}

else if(producto == 2)
{
dsc=(cantidad*precio)*dsc_B;
}

else if(producto == 3)
{
dsc=(cantidad*precio)*dsc_C;
}

else if(producto == 4)
{
dsc=(cantidad*precio)*dsc_D;
}

return dsc;
}

double venta(int n)
{
double vt=0;
int producto;
int cantidad=0;
double precio;
bool status;
//int num;

cout<<"++++++++++++++++++++++"<<"\r\n";

for ( int i=0;i<n;i++ )


{
cout<<"CLIENTE Nro "<<i+1<<"\r\n";
cout<<"--------------------"<<"\r\n";

do
{
cout<<"Seleccione Producto:"<<"\r\n";
cout<<"[1] Mouse"<<"\r\n";
cout<<"[2] Teclado"<<"\r\n";
cout<<"[3] Disco Duro"<<"\r\n";
cout<<"[4] Monitor"<<"\r\n";
cout<<"[5] Salir"<<"\r\n";
cin>>producto;

switch(producto)
{
case 1:
{
cout<<"Cantidad: ";
cin>>cantidad;
cout<<"Precio (unitario): ";
cin>>precio;
vt=((cantidad*precio)-descuento(producto,cantidad,precio))+vt;
status=true;
}
break;
case 2:
{
cout<<"Cantidad: ";
cin>>cantidad;
cout<<"Precio (unitario): ";
cin>>precio;
vt=((cantidad*precio)-descuento(producto,cantidad,precio))+vt;
status=true;
}
break;
case 3:
{
cout<<"Cantidad: ";
cin>>cantidad;
cout<<"Precio (unitario): ";
cin>>precio;
vt=((cantidad*precio)-descuento(producto,cantidad,precio))+vt;
status=true;
}
break;
case 4:
{
cout<<"Cantidad: ";
cin>>cantidad;
cout<<"Precio (unitario): ";
cin>>precio;
vt=((cantidad*precio)-descuento(producto,cantidad,precio))+vt;
status=true;
}
break;
case 5: status=false;
break;
default: cout << "Usted ha ingresado una opcion incorrecta"<<"\r\n";
}
cout<<"--------------------"<<"\r\n";
}
while (status==true);

return vt;
}

Referencias bibliográficas consultadas y/o enlaces recomendados


• JOYANES, L. (2008). Fundamentos de Programación. Algoritmos, estructura de datos y objetos, 4ª
Edición. Madrid: McGraw-Hill.
• Beekman, G., Pacheco, R. y Tábora, A. (2008). Introducción a la computación. México: Pearson
Educación.

También podría gustarte