Universidad Nacional de Trujillo
CURSO:
ALGORITMOS Y PROGRAMACIÓN
main
funciones
GUÍA DE LABORATORIO 9
FUNCIONES –PARTE 2
NOMBRES Y APELLIDOS:............................................................…………
Algoritmos y Programación: FUNCIONES PARTE 2
2
Algoritmos y Programación: FUNCIONES PARTE 2
1.
Dado el siguiente programa principal, elabore las funciones que invoca y agruparlas en una librería
volumen.h
.
#include <iostream>
#include <conio.h>
#include <volumen.h> Pi como
using namespace std; variable
int main()
global
{ int op; float a,x,y,radio;
cout<<"*******MENU*********"<<endl;
cout<<" 1. volumen esfera"<<endl;
cout<<" 2. volumen cubo"<<endl;
cout<<" 3. volumen pirámide"<<endl;
cout<<" 4. volumen cono"<<endl; Considerar
cout<<" 5. SALIR"<<endl; pirámide
cout<<"********************"<<endl;
cout<<"ingrese opcion "; cin>>op;
rectangular
switch(op)
{ case 1: cout<<“Ingrese radio”;
cin>> radio;
y=volesfera(radio);
cout<<«El volumen de la esfera
es: «<<y; Fórmulas Volumen
break;
case 2: cout<<«ingrese arista:»; cin>>a Esfera=4/3 pi r3
volcubo(a);
break;
Cono=(areabase*altura)/3
case 3: x= volpiramide(); Piramide==(areabase*altura)/3
cout<<«El volumen de la pirámide
es: «<<x; Cubo=l3
break;
case 4: volcono();
break;
case 5: cout<<"Gracias por su visita";
break; }
getch();
}
3
Algoritmos y Programación: FUNCIONES PARTE 2
#include<iostream>
#include<conio.h>
using namespace std;
float pi=3.14;
float volesfera(float radio)
{
float esfera;
esfera=(4/3)*(pi)*(radio*radio*radio);
return(esfera);
}
void volcubo(float a)
{
float cubo;
cubo=a*a*a;
cout<<"El volumen del cubo es: "<<cubo;
getch();
}
float volpiramide()
{
float n1, n2, a_base,altura, p;
cout<<"Ingrese el largo: ";
cin>>n1;
cout<<"Ingrese el ancho: ";
cin>>n2;
cout<<"Ingrese altura: ";
cin>>altura;
a_base=n1*n2;
p==a_base*altura/3;
return(p);
}
void volcono()
{
float cono, ra, al, bs;
cout<<"Ingrese radio de la base: ";
cin>>ra;
cout<<"Ingrese altura: ";
cin>>al;
bs=pi*ra*ra;
cono=bs*al/3;
cout<<"El volumen del cono es: "<<cono;
getch();
}
4
Algoritmos y Programación: FUNCIONES PARTE 2
2.
Dado el siguiente programa principal, elaborar las funciones que invoca e implemente la librería
formulitas.h
#include <iostream>
#include <conio.h>
#include <formulitas.h>
using namespace std;
int main()
{ float not1,not2,not3;
cout<<"Ingrese Primera Nota"<<endl;
cin>>not1;
cout<<"Ingrese Segunda Nota"<<endl;
cin>>not2;
cout<<"Ingrese Tercera Nota"<<endl;
cin>>not3;
while(20<not1 || 20<not2 || 20<not3 || not1<0 || not2<0 || not3<0)
{
cout<<"Recuerda que las notas deben ser entre 0 a 20. "<<endl;
cout<<"Ingrese Primera Nota"<<endl;
cin>>not1;
cout<<"Ingrese Segunda Nota"<<endl;
cin>>not2;
cout<<"Ingrese Tercera Nota"<<endl;
cin>>not3;
}
system ("cls");
cout<<"Las notas ingresadas son: "<<endl<<not1<<endl<<not2<<endl<<not3<<endl;
cout<<"la Nota Mayor es: "<< mayor(not1,not2,not3) <<endl;
cout<<"la Nota Menor es: "<< menor(not1,not2,not3) <<endl;
cout<<"El promedio es: "<< promedio(not1,not2,not3) <<endl;
getch(); }
5
Algoritmos y Programación: FUNCIONES PARTE 2
#include<conio.h>
#include<iostream>
using namespace std;
float mayor(float not1, float not2, float not3)
{
float mayor;
mayor=not1;
if(mayor<not2)
mayor=not2;
if(mayor<not3)
mayor=not3;
return(mayor);
}
float menor(float not1, float not2, float not3)
{
float menor;
menor=not1;
if(menor>not2)
menor=not2;
if(menor>not3)
menor=not3;
return(menor);
}
float promedio(float not1, float not2, float not3)
{
float promedio;
promedio=(not1+not2+not3)/3;
return(promedio);
}
6
Algoritmos y Programación: FUNCIONES PARTE 2
3
Usar funciones homónimas (sobrecarga de funciones) o funciones con valores predefinidos al parámetro
(valores por omisión)
Usted seleccione cual es la más conveniente (funciones homónimas o o funciones con valores predefinidos
al parámetro)
• Acepte como parámetros 2, 3 o 4 números reales y devuelva el mayor.
#include <iostream>
#include <conio.h>
using namespace std;
float mayor(float n1, float n2)
{
float mayor;
mayor=n1;
if(mayor<n2)
mayor=n2;
return(mayor);
}
float mayor(float n1, float n2, float n3)
{
float mayor;
mayor=n1;
if(mayor<n2)
mayor=n2;
if(mayor<n3)
mayor=n3;
return(mayor);
}
float mayor(float n1, float n2, float n3, float n4)
{
float mayor;
mayor=n1;
if(mayor<n2)
mayor=n2;
if(mayor<n3)
mayor=n3;
if(mayor<n4)
mayor=n4;
return(mayor);
}
int main()
{
cout<<"la Numero Mayor es: "<< mayor(1, 2) <<endl;
cout<<"la Numero Mayor es: "<< mayor(1, 2,3) <<endl;
cout<<"la Numero Mayor es: "<< mayor(2, 9, 14, 10) <<endl;
getch();
}
7
Algoritmos y Programación: FUNCIONES PARTE 2
4
Usar funciones homónimas (sobrecarga de funciones) o funciones con valores predefinidos al parámetro
(valores por omisión)
Usted seleccione cual es la más conveniente (funciones homónimas o o funciones con valores predefinidos
al parámetro)
• Acepte como parámetros 2, 3 o 4 números reales y devuelva el menor.
#include <iostream>
#include <conio.h>
using namespace std;
float menor(float n1, float n2)
{
float menor;
menor=n1;
if(menor>n2)
menor=n2;
return(menor);
}
float menor(float n1, float n2, float n3)
{
float menor;
menor=n1;
if(menor>n2)
menor=n2;
if(menor>n3)
menor=n3;
return(menor);
}
float menor(float n1, float n2, float n3, float n4)
{
float menor;
menor=n1;
if(menor>n2)
menor=n2;
if(menor>n3)
menor=n3;
if(menor>n4)
menor=n4;
return(menor);
}
int main()
{
cout<<"la Numero menor es: "<< menor(1, 2) <<endl;
cout<<"la Numero menor es: "<< menor(1, 2,3) <<endl;
cout<<"la Numero menor es: "<< menor(2, 9, 14, 10) <<endl;
getch(); 8
}
Algoritmos y Programación: FUNCIONES PARTE 2
5
Usar funciones homónimas (sobrecarga de funciones) o funciones con valores predefinidos al parámetro
(valores por omisión)
Usted seleccione cual es la más conveniente (funciones homónimas o o funciones con valores predefinidos
al parámetro)
• Acepte como parámetros 2, 3 o 4 números enteros y devuelva su máximo común divisor.
#include <iostream>
#include <conio.h>
#include <windows.h>
using namespace std;
int mcd (int n1, int n2)
{
while(n1<0 || n2<0)
{
cout<<"Uno o los dos parametros no cumplen, recuerda que no puede ser ni negativo ni decimal.";
cout<<endl;
cout<<"Ingrese el primer parametro: ";
cin>>n1;
cout<<"Ingrese el segundo parametro: ";
cin>>n2;
cout<<endl;
}
int mcd=n1, residuo;
do {
residuo =mcd%n2;
mcd = n2;
n2 = residuo;
} while (residuo != 0);
cout<<"El mcd de los 2 numeros es: ";
return(mcd);
int mcd (int n1, int n2,int n3)
{
while(n1<0 || n2<0 || n3<0)
{
cout<<"Uno o los dos parametros no cumplen, recuerda que no puede ser ni negativo ni decimal.";
cout<<endl;
cout<<"Ingrese el primer parametro: ";
cin>>n1;
cout<<"Ingrese el segundo parametro: ";
cin>>n2;
cout<<endl;
cout<<"Ingrese el tercer parametro: ";
cin>>n3;
cout<<endl;
}
int mcd=n1, residuo;
do {
residuo =mcd%n2;
mcd = n2;
n2 = residuo;
} while (residuo != 0);
do {
residuo =mcd%n3;
mcd = n3;
n3 = residuo;
} while (residuo != 0);
cout<<"El mcd de los 3 numeros es: "; 9
return(mcd);
}
Algoritmos y Programación: FUNCIONES PARTE 2
int mcd (int n1, int n2,int n3, int n4)
{
while(n1<0 || n2<0 || n3<0 || n4<0)
{
cout<<"Uno o los dos parametros no cumplen, recuerda que no puede ser ni negativo ni decimal.";
cout<<endl;
cout<<"Ingrese el primer parametro: ";
cin>>n1;
cout<<"Ingrese el segundo parametro: ";
cin>>n2;
cout<<endl;
cout<<"Ingrese el tercer parametro: ";
cin>>n3;
cout<<endl;
cout<<"Ingrese el cuarto parametro: ";
cin>>n4;
cout<<endl;
}
int mcd=n1, residuo;
do {
residuo =mcd%n2;
mcd = n2;
n2 = residuo;
} while (residuo != 0);
do {
residuo =mcd%n3;
mcd = n3;
n3 = residuo;
} while (residuo != 0);
do {
residuo =mcd%n4;
mcd = n4;
n4 = residuo;
} while (residuo != 0);
cout<<"EL mcd de los 4 numeros es: ";
return(mcd);
}
int main()
{
cout<<"Tomar en cuenta que solo se toma la parte entera en caso de poner un decimal. "<<endl;
cout<<endl;
cout<<mcd(8,-8)<<endl;
cout<<mcd(12, 8,8)<<endl;
cout<<mcd(10, 5, 20, 10)<<endl;
getch();
}
10
Algoritmos y Programación: FUNCIONES PARTE 2
6
Usar funciones homónimas (sobrecarga de funciones) o funciones con valores predefinidos al parámetro
(valores por omisión)
Usted seleccione cual es la más conveniente (funciones homónimas o o funciones con valores predefinidos
al parámetro)
• Acepte como parámetros 2, 3 o 4 números enteros y escriba todos sus divisores comunes
#include <iostream>
#include <conio.h>
using namespace std;
void mcd (int n1, int n2)
{ int mcd=n1, residuo;
while(n1<0 || n2<0)
{
cout<<"Uno o los dos parametros no cumplen, recuerda que no puede ser ni negativo ni decimal.";
cout<<endl;
cout<<"Ingrese el primer parametro: ";
cin>>n1;
cout<<"Ingrese el segundo parametro: ";
cin>>n2;
cout<<endl;
}
do {
residuo =mcd%n2;
mcd = n2;
n2 = residuo;
} while (residuo != 0);
for(int i=1; i<=mcd ;i++)
{
if(mcd%i == 0)
{
cout<<i<<" ";
}
}
}
void mcd (int n1, int n2,int n3)
{int mcd=n1, residuo;
while(n1<0 || n2<0 || n3<0)
{
cout<<"Uno o los dos parametros no cumplen, recuerda que no puede ser ni negativo ni decimal.";
cout<<endl;
cout<<"Ingrese el primer parametro: ";
cin>>n1;
cout<<"Ingrese el segundo parametro: ";
cin>>n2;
cout<<endl;
cout<<"Ingrese el tercer parametro: ";
cin>>n3;
cout<<endl;
}
do {
residuo =mcd%n2;
mcd = n2;
n2 = residuo;
} while (residuo != 0);
do {
residuo =mcd%n3;
mcd = n3;
n3 = residuo;
} while (residuo != 0);
for(int i=1; i<=mcd ;i++)
{
if(mcd%i == 0)
{ 11
cout<<i<<" ";
}
}
}
Algoritmos y Programación: FUNCIONES PARTE 2
void mcd (int n1, int n2,int n3, int n4)
{int mcd=n1, residuo;
while(n1<0 || n2<0 || n3<0 || n4<0)
{
cout<<"Uno o los dos parametros no cumplen, recuerda que no puede ser ni negativo ni decimal.";
cout<<endl;
cout<<"Ingrese el primer parametro: ";
cin>>n1;
cout<<"Ingrese el segundo parametro: ";
cin>>n2;
cout<<endl;
cout<<"Ingrese el tercer parametro: ";
cin>>n3;
cout<<endl;
cout<<"Ingrese el cuarto parametro: ";
cin>>n4;
cout<<endl;
}
do {
residuo =mcd%n2;
mcd = n2;
n2 = residuo;
} while (residuo != 0);
do {
residuo =mcd%n3;
mcd = n3;
n3 = residuo;
} while (residuo != 0);
do {
residuo =mcd%n4;
mcd = n4;
n4 = residuo;
} while (residuo != 0);
for(int i=1; i<=mcd ;i++)
{
if(mcd%i == 0)
{
cout<<i<<" ";
}
}
int main()
{
cout<<"Tomar en cuenta que solo se toma la parte entera en caso de poner un decimal. "<<endl;
cout<<endl;
mcd(12,18);
cout<<endl;
mcd(12, 8,8);
cout<<endl;
mcd(10, 5, 20, 10);
getch();
}
12
Algoritmos y Programación: FUNCIONES PARTE 2
7
El siguiente programa lee por teclado un año y calcula y muestra si es bisiesto. Para realizar el cálculo utiliza
una función llamada bisiesto.
La función bisiesto recibe el año leído por teclado, comprueba si es o no bisiesto y devuelve 1 si lo es ó 0 si no
lo es.
#include<iostream>
#include<conio.h>
#include<windows.h>
using namespace std;
int validacion(float a)
{
if(a<1000 || a!=int(a))
{
return 1;
}
return 0 ;
}
int bisiesto(int a)
{
if((a%4)!=0)
{
return 0;
}
else
{
if((a%100)!=0)
{
return 1;
}
else
{
if((a%400)!=0)
{
return 0;
}
else
{
return 1;
}
}
}
}
13
Algoritmos y Programación: FUNCIONES PARTE 2
int main()
{
float year;
int year_1,b=0;
do
{
cout<<"Ingrese a\xA4o: ";
cin>>year;
b=validacion(year);
if(b==1)
{
cout<<"El año no se puede aceptar. "<<endl;
cout<<"Intente de nuevo. "<<endl;
Sleep(2000); system("cls");
}
}while(b==1);
year_1=year;
b=bisiesto(year_1);
if(b==1)
{
cout<<b;
}
else
{
cout<<b<<endl<<endl;
}
getch();
}
14
Algoritmos y Programación: FUNCIONES PARTE 2
8
Programa que lee por teclado la fecha actual y la fecha de nacimiento de una persona y calcula su edad
(devuelve los años que tiene).
El programa utiliza tres funciones:
fecha_valida: comprueba si la fecha leída es correcta.
bisiesto: comprueba si un año es bisiesto. La función bisiesto es invocada por función fecha_valida
calcular_edad: recibe las dos fechas y devuelve la edad.
#include<iostream>
#include<conio.h>
#include<windows.h>
using namespace std;
void bandera()
{
cout<<"Ingreso Incorrecto"<<endl;
cout<<"Intente de nuevo"<<endl;
Sleep(2000); system("cls");
}
int bisiesto(int x)
{
if((x%4)!=0)
return 0;
else{
if((x%100)!=0)
return 1;
else{
if((x%400)!=0)
return 0;
else return 1;
}
}
}
int fecha_valida(float x)
{ if(x<1000||x!=int(x))
return 1;
return 0;
}
int fecha_valida(float x , float y)
{ if(y<=0||y>12||y!=int(y))
return 1;
return 0;
}
int fecha_valida(float x , float y,float z)
15
int fechas(float a,float b,float c,float x,float y,float z)
{ if(a>x){
Algoritmos y Programación:
cout<<"El a\xA4oFUNCIONES PARTE
de nacimiento 2
no puede ser mayor que el a\xA4o actual"<<endl;
cout<<"Intente de nuevo"<<endl;
Sleep(2000);
system("cls");
return 1;}
else
{
if(a==x){
if(b>y){
cout<<"Encontrandose en el mismo a\xA4o, el mes de nacimiento no puede ser mayor que el actual"<<endl;
cout<<"Intente de nuevo"<<endl;
Sleep(2000);
system("cls");
return 1;
}
else
{
if(b==y){
if(c>z){
cout<<"Encontrandose en el mismo a\xA4o y mes , el dia de nacimiento no
puede ser mayor al actual"<<endl;
cout<<"Intente de nuevo"<<endl; Sleep(1000); system("cls"); return 1;
}
}
}
}
}
}
int calcular_edad(float a,float b,float c,float x,float y,float z)
{ int edad;
if(a==x)
{
if(b<y)
return(y-b);
else
{
if(c<z)
return(z-c);
else return 0;
}
}
else
{
if((x-a)==1)
{
if(b<y)
return 1;
else{
if(b>y)
return(12-b+y);
else{
if(c>=z)
return 1;
else return(11);
}
}
}
else
{
if(b<y)
return(x-a);
else
{
if(b>y)
return(x-a-1);
else
{
if(c<=z)
return(x-a);
else return(x-a-1);
}
}
} 16
}
}
Algoritmos y Programación: FUNCIONES PARTE 2
int main()
{
float year1, year2, mes1 , mes2, dia1,dia2;
int flag=0,val=0 , edad;
do
{
cout<<"INGRESE FECHA DE NACIMIENTO"<<endl<<endl;
cout<<"Ingrese a\xA4o: "; cin>>year1;
flag=fecha_valida(year1);
if(flag==1){
bandera(); continue;}
cout<<"Ingrese mes: "; cin>>mes1;
flag=fecha_valida(year1,mes1);
if(flag==1) {
bandera(); continue;}
cout<<"Ingrese dia: "; cin>>dia1;
flag=fecha_valida(year1,mes1,dia1);
if(flag==1){
bandera(); continue;}
cout<<"INGRESE FECHA ACTUAL"<<endl<<endl;
cout<<"Ingrese a\xA4o: "; cin>>year2;
flag=fecha_valida(year2);
if(flag==1) {
bandera(); continue;}
cout<<"Ingrese mes: "; cin>>mes2;
flag=fecha_valida(year2,mes2);
if(flag==1) {
bandera(); continue;}
cout<<"Ingrese dia: "; cin>>dia2;
flag=fecha_valida(year2,mes2,dia2);
if(flag==1){
bandera(); continue;}
val=fechas(year1,mes1,dia1,year2,mes2,dia2);
}while(flag==1||val==1);
edad=calcular_edad(year1,mes1,dia1,year2,mes2,dia2);
if(edad==0)
cout<<"ES LA EDAD DE UN RECIEN NACIDO"<<endl;
else
cout<<"Su edad actual es: "<<edad;
if(year1==year2)
{
if(mes1<mes2) cout<<" meses"<<endl;
else{
if(dia1<dia2) cout<<" dias"<<endl;}
}
else{
if((year2-year1)==1)
{
if(mes1<mes2) cout<<" a\xA4o"<<endl;
else{
if(mes1>mes2) cout<<" meses"<<endl;
else{
if(dia1>=dia2) cout<<" a\xA4o"<<endl;
else cout<<" meses"<<endl;
}
}
}
else cout<<" a\xA4os"<<endl; 17
}
getch();
}