Laboratorio 3
Laboratorio 3
Laboratorio 3
Arequipa - Perú
2021
EJERCICIOS PROPUESTOS
EJERCICIO 1.
Implemente en C++ lo siguiente mediante la implementación de funciones. El Programa pregunta dos
números y precisa que operación desea efectuar y muestra los resultados.
Se sugiere utilizar el código mostrado a continuación para la implementación del ejercicio.
#include <iostream>
using namespace std;
int main(void){
int a,b,c;
cout<<"Escribe un numero"<< endl;
cin>>a;
cout<<"Escribe otro numero"<< endl;
cin>>b;
cout<<"Que operacion desea hacer? (1:suma ; 2:producto)"<<endl;
cin>>c;
if(c==1)
cout<<"El resultado de la suma es: "<< Suma(a,b)<<endl; else
cout<<"El resultado del producto es: "<< Producto(a,b)<<endl;
return 0;
}
#include<iostream>
using namespace std;
switch (figura){
case 1:
cout<<"introduzca el valor del lado"<<endl;
cin>>a;
if(!AreaCuadrilateros (a,a))
cout<<"ojo el area del cuadrilatero es negativa"<<endl;
break;
case 2:
cout<<"introduzca el valor del lado a"<<endl;
cin>>a;
cout<<"introduzca el valor del lado b"<<endl;
cin>>b;
if(!AreaCuadrilateros(a,b))
cout<<"ojo el area es negativa"<<endl;
break;
case 3:
cout<<"introduzca el valor de la base"<<endl;
cin>>a;
cout<<"introduzca el valor de la altura"<<endl;
cin>>b;
if(!AreaTriangulos (a,b))
cout<<"ojo el area es negativa"<<endl;
break;
default:
cout<<"figura equivocada"<<endl;
break;
}
return 0;
}
EJERCICIO 3.
Escriba un programa que me permita obtener la funcionalidad de una calculadora estándar como se
muestra. Estas son: Suma, Resta, Multiplicación, División, Exponencial cuadrado, División especial
de uno (1) entre un numero ingresado, la raíz cuadrada y el porcentaje. Implementar la interfaz
mediante un menú de opciones.
#include <iostream>
#include <math.h>
using namespace std;
cout <<
"\nOperaciones\n1(Suma)\n2(Resta)\n3(Producto)\n4(Division)\
n5(Exponencial Cuadrado)\n6(Division especial de uno)\n7(Raiz Cuadrada)\
n8(Porcentaje)" << endl;
cin >> c;
switch(c){
case 1:
cout << "Ingrese los valores" << endl;
cin >> a;
cin >> b;
cout << "El resultado de la suma es: " << Suma(a,b) << endl;
break;
case 2:
cout << "Ingrese los valores" << endl;
cin >> a;
cin >> b;
cout << "El resultado de la resta es: " << Resta(a,b) <<
endl;
break;
case 3:
cout << "Ingrese los valores" << endl;
cin >> a;
cin >> b;
cout << "El resultado del producto es: " << Producto(a,b) <<
endl;
break;
case 4:
cout << "Ingrese los valores" << endl;
cin >> a;
cin >> b;
if(b==0){
cout<<"operandos no validos"<<endl;
}
else{
cout<<"El resultado de la division es:
"<<Division(a,b)<<endl;
}
break;
case 5:
cout<<"ingrese el valor"<<endl;
cin>>a;
cout<<"el resultado de la potenciacion es:
"<<Exponencial_cuadrado(a)<<endl;
break;
case 6:
cout<<"ingrese el valor"<<endl;
cin>>a;
if(a==0)
cout<<"operando no valido"<<endl;
else
cout<<"el resultado de la division especial es:
"<<Division_especial(a)<<endl;
break;
case 7:
cout<<"ingrese el valor"<<endl;
cin>>a;
if(a<0){
cout<<"operando no valido"<<endl;
}
else{
cout<<"El resultado de la radicacion es:
"<<Raiz_cuadrada(a)<<endl;
}
break;
case 8:
cout<<"ingrese los valores"<<endl;
cin>>a;
cin>>b;
cout<<"el "<<a<<" % de "<<b<<" da como resultado:
"<<Porcentaje(a,b)<<endl;
break;
default:
cout<<"operacion no encontrada"<<endl;
break;
}
}
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main(void){
int c = 1;
int d;
int suma = 0;
int tirada;
char rpt='S';
srand(time(NULL));
while (rpt == 'S'){
for(int i = 1; i <= 2; i++){
d = 1 + rand()%6;
suma = suma + d;
}
cout << "Ronda: " << c << "Tu puntaje: " << suma << endl;
if(c == 1){
if(suma ==7 || suma == 11){
cout << "Ganaste!" << endl;
break;
}
else if(suma == 2 || suma == 3 || suma == 12){
cout << "Perdiste" << endl;
break;
}
else{
tirada = suma;
}
}
else{
if(suma == 7){
cout << "Perdiste" << endl; break;
}
else if(suma == tirada){
cout << "Ganaste!" << endl;
break;
}
else{
cout << "Jugar de nuevo? S(si) N(no)";
cin >> rpt;
}
}
c++;
suma = 0;
}
}
EJERCICIO 5.
Realice un programa que realice las funciones que a continuación se indican. Todas las opciones
deben ser presentadas al usuario a través de un menú de opciones.
● Escriba una función en la que se introduzcan 10 enteros y determine cuáles de estos enteros
son pares y cuales son impares.
● Un número entero es un “número perfecto” si sus factores, incluyendo al 1 (pero excluyendo
en el número mismo), suman igual que el número. Ejemplo: 6 es un numero perfecto porque
6= 1+2+3. Escriba una función que regrese los primeros 100 números perfectos. Esta función
debe tener una función anidada que determine al número perfecto.
● Escriba una función que tome un valor entero de cuatro dígitos y regrese el número con los
dígitos invertidos. Por ejemplo, dado el número 7631, la función deberá regresar 1367.
#include <iostream>
using namespace std;
void numParImpar();
void numPerfecto();
void numInvertido();
int main(){
int rpt=0; while(rpt != 4){
cout << "Menu\n1:Determinar numero pares e impares\n2:Ver los
100 primeros numeros perfectos\n3:Invertir numero\n4:Salir" << endl;
cin >> rpt;
switch(rpt){
case 1:
numParImpar();
break;
case 2:
numPerfecto();
break;
case 3:
numInvertido();
break;
case 4:
break;
default:
return 0;
}
}
void numParImpar(){
int arr[10];
int rpt;
cout << "Ingrese 10 numeros: " << endl;
for (int i = 0; i < 10 ; i++){
cin >> rpt;
arr[i] = rpt;
}
for (int i = 0; i < 10 ; i++){
//cout << "Numero " << (i+1) << ": " << arr[i] << endl;
if(arr[i]%2 == 0)
cout << arr[i] << " es un numero par" << endl;
else
cout << arr[i] << " es un numero impar" << endl;
}
}
void numPerfecto(){
int sum = 0;
int c = 0;
cout << "Numeros perfectos: " << endl;
for(int i = 1; c < 100; i++){
if(i%2 == 0){
for(int j = (i/2) ; j > 0; j-- ){
if(i%j == 0){
sum = sum + j;
}
}
if(sum == i){
cout << i<< endl;
c++;
}
}
sum = 0;
}
}
void numInvertido(){
int num,r,nInv = 0;
cout << "Ingrese numero: ";
cin >> num;
while (num > 0){
r = num%10;
num=num/10;
nInv = nInv*10+r;
}
cout << "Numero invertido: " << nInv << endl;
}
EJERCICIO 6.
Escriba un programa que despliegue todas las permutaciones de los números del 1 a n. Por ejemplo, si
n = 3, debe obtenerse:
#include <iostream>
using namespace std;
int main(){
int numero;
cout << "Numero: "<<endl;
cin >> numero;
cout << "Permutacion: "<<endl;
permutaciones(numero);
}
void permutaciones(int arr[], int i, int n){
if (i == n){
for(int k = 0;k <= n;k++){
cout << arr[k]<<" ";
}
cout<<endl;
}
else{
for (int j = i; j <= n; j++){
swap(arr[i], arr[j]);
permutaciones(arr, i+1, n);
swap(arr[i], arr[j]);
}
}
}
void permutaciones(int n){
int* arr = new int[n];
for(int i = 0; i < n; i++){
arr[i] = i + 1;
}
permutaciones(arr, 0, n-1);
}
EJERCICIO 7.
Escriba un programa que despliegue todos los subconjuntos no vacíos del conjunto de los números del
1 a n. Por ejemplo, si n = 3, debe obtenerse
#include <iostream>
using namespace std;
int main(){
int num;
cout << "Ingrese numero: " ;
cin >>num;
conjunto(num);
}