Laboratorio 3

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 12

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN DE AREQUIPA

FACULTAD DE PRODUCCION Y SERVICIOS


ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS

Curso: Laboratorio de Programación de Sistemas - Grupo B


INFORME N°03
Docente: Roni Guillermo Apaza Aceituno
Estudiante: Enrique Lipa Toledo
CUI: 20140886

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;

double Suma (double x, double y);


double Producto (double x, double y);

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

double Suma(double x, double y){


double z;
z=x+y; return z;
}

double Producto(double x, double y){


return (x*y);
}
EJERCI CIO 2.
Implemente en C++ lo siguiente mediante la implementación de funciones. Calcular el área de
polígonos.
Se sugiere utilizar el código mostrado a continuación para la implementación del ejercicio.

#include<iostream>
using namespace std;

int AreaCuadrilateros (double lado_a,double labo_b);


int AreaTriangulos (double lado_a,double altura_b);

int main (void){


double a,b;
int figura;

cout<<"que figura quiere analizar:"<<endl;


cout<<"(1) Cuadrado, (2) Rectangulo, (3) Triangulo: "<<endl;
cin>>figura;

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;

double Suma (double x, double y);


double Resta (double x, double y);
double Producto (double x, double y);
double Division (double x, double y);
double Exponencial_cuadrado (double x);
double Division_especial (double x);
double Raiz_cuadrada (double x);
double Porcentaje (double x, double y);

int main (void){


double a, b;
int c;

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

double Suma (double x, double y){


return x + y;
}
double Resta(double x, double y){
return x - y;
}
double Producto (double x, double y){
return x * y;
}
double Division(double x, double y){
return x / y;
}
double Exponencial_cuadrado (double x){
return pow(x,2);
}
double Division_especial (double x){
return 1 / x;
}
double Raiz_cuadrada (double x){
return sqrt(x);
}
double Porcentaje (double x, double y){
return x / 100 * y;
}
EJERCICIO 4.
El juego de dados conocido como “craps” (tiro perdedor) es muy popular, realice un programa que
simule dicho juego, a continuación, se muestran las reglas para los jugadores.
● Un jugador tira dos dados. Cada dato tiene seis caras. Las caras contienen 1, 2, 3, 4, 5 y 6
puntos.
● Una vez que los dados se hayan detenido, se calcula la suma de los puntos en las dos caras
superiores.
● Si a la primera tirada, la suma es 7, o bien 11, el jugador gana.
● Si a la primera tirada la suma es 2, 3 o 12 (conocido como “craps”), el jugador pierde (es
decir la casa “gana”).
● Si a la primera tirada la suma es 4, 5, 6, 8, 9 ó 10, entonces dicha suma se convierte en el
“punto” o en la “tirada”.
● Para ganar, el jugador deberá continuar tirando los dados hasta que haga su “tirada”.
● El jugador perderá si antes de hacer su tirada sale una tirada de 7.

#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;

void permutaciones(int n);


void permutaciones(int a[], int i, int n);

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;

void conjunto(int n);


void conjunto(int *arr, int i, int n,int *subconjunto, int j);

int main(){
int num;
cout << "Ingrese numero: " ;
cin >>num;
conjunto(num);
}

void conjunto(int n){


int* arr = new int[n];
int subconjunto[50];
for(int i = 0; i < n; i++){
arr[i] = i + 1;
}
conjunto(arr, 0, n, subconjunto, 0);
}

void conjunto(int *arr, int i, int n,int *subconjunto, int j){


if(i == n){
int k = 0;
while(k < j){
cout << subconjunto[k] << " ";
++k;
}
cout << endl;
return;
}
conjunto(arr, i + 1 , n, subconjunto, j); subconjunto[j] = arr[i];
conjunto(arr, i + 1, n, subconjunto, j + 1);
}

También podría gustarte