100% encontró este documento útil (1 voto)
315 vistas17 páginas

Funciones en Algoritmos y Programación

El documento presenta una guía de laboratorio sobre funciones como parte 2. Propone 5 ejercicios para practicar el uso de funciones en C++. El primer ejercicio pide crear funciones para calcular diferentes volúmenes geométricos y agruparlas en una biblioteca. El segundo ejercicio también pide crear funciones para calcular el mayor, menor y promedio de notas. Los ejercicios 3, 4 y 5 piden implementar funciones sobrecargadas o con valores predeterminados para devolver valores máximos, mínimos o máximo común divisor de números.

Cargado por

Flavio Amayo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
315 vistas17 páginas

Funciones en Algoritmos y Programación

El documento presenta una guía de laboratorio sobre funciones como parte 2. Propone 5 ejercicios para practicar el uso de funciones en C++. El primer ejercicio pide crear funciones para calcular diferentes volúmenes geométricos y agruparlas en una biblioteca. El segundo ejercicio también pide crear funciones para calcular el mayor, menor y promedio de notas. Los ejercicios 3, 4 y 5 piden implementar funciones sobrecargadas o con valores predeterminados para devolver valores máximos, mínimos o máximo común divisor de números.

Cargado por

Flavio Amayo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd

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();
}

También podría gustarte