[ Foro de C++ ]

Tengo de tarea poner todo en funciones y metodos en c++, ¿Cómo hago que la opcion 4 y 6 funcionen?

22-Nov-2020 03:38
Invitado (Adrian Enrique)
0 Respuestas

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

using namespace std;
int op,sub,v1,v2,i;
int X[3], Y[3], Z[3];
char ola[20], hi[20];
void menu();
void submenu();
int suma(int a, int b);
int resta(int a, int b);
int multiplicar(int a, int b);
int dividir(int a, int b);
int modulo(int a, int b);
int primo(int a);
int factorial(int a);
void lectura_datos();
void leer_1dato();
void lectura();
void lectura_1cadena();
void lectura_vector();
char cadena(char a1[20]);
char comparar(char a1[20], char a2[20]);
int suma_vectores(int x1[3],int y1[3],int z1[3]);
main()
{
do{
menu();
cout<<" Dame una opción"<<endl;
cin>>op;
switch(op)
{
case 1: submenu();
cin>>sub;
do{
switch(sub)
{
case 1:lectura_datos();
cout<<"El resultado de la suma es-->"<<suma(v1,v2);
break;
case 2: lectura_datos();
cout<<"El resultado de la resta es-->"<<resta(v1,v2);
break;
case 3: lectura_datos();
cout<<"El resultado de la multiplicación es-->"<<multiplicar(v1,v2);
break;
case 4: lectura_datos();
cout<<"El resultado de la división es-->"<<dividir(v1,v2);
break;
case 5: lectura_datos();
cout<<"El resultado del modulo es-->"<<modulo(v1,v2);
break;
}
}while(sub!=6);
case 2: leer_1dato();
cout<<primo(v1);
break;
case 3: leer_1dato();
cout<<"El factorial de su numero es-->"<<factorial(v1);
break;
case 4: lectura_1cadena();
cout<<"El tamaño de su cadena es"<<cadena(ola);
break;
case 5: lectura();
cout<<comparar(ola, hi);
break;
case 6: lectura_vector();
cout<<suma_vectores(X, Y, Z);
break;
}
}while(op!=8);
return 0;
}

void menu()
{
cout<<"Elige una opción"<<endl;
cout<<"1.- Operaciones aritmeticas simples"<<endl;
cout<<"2.- Comprobar si un número es primo"<<endl;
cout<<"3.- Calcular el factorial de un número"<<endl;
cout<<"4.- Determinar el tamaño de una cadena"<<endl;
cout<<"5.- Comparar dos cadenas y determinar si son iguales"<<endl;
cout<<"6.- Suma de vectores (x,y,z)"<<endl;
cout<<"7.- Multiplicación de matrices"<<endl;
cout<<"8.- Salir"<<endl;
}
void submenu()
{
cout<<"1.- Sumar"<<endl;
cout<<"2.- Restar"<<endl;
cout<<"3.- Multiplicar"<<endl;
cout<<"4.- Dividir"<<endl;
cout<<"5.- Modulo"<<endl;
cout<<"6.- Salir"<<endl;
}
int suma(int a, int b)
{
int sum=a+b;
return sum;
}
int resta(int a, int b)
{
int res=a-b;
return res;
}
int multiplicar(int a, int b)
{
int mul=a*b;
return mul;
}
int dividir(int a, int b)
{
int div=a/b;
return div;
}
int modulo(int a, int b)
{
int mod=a%b;
return mod;
}
void lectura_datos()
{
cout<<"Dame valor 1-->";
cin>>v1;
cout<<endl;
cout<<"Dame valor 2-->";
cin>>v2;
}
void leer_1dato()
{
cout<<"Dame el numero a resolver";
cin>>v1;

}
void lectura()
{
cout<<"Dame una cadena"<<endl;
cin.getline(ola,20);
cin.getline(ola,20);
cout<<"Dame la segunda cadena"<<endl;
cin.getline(hi,20);
}
void lectura_1cadena()
{
cout<<"Dame una cadena"<<endl;
cin.getline(ola,20);
cin.getline(ola,20);

}
int primo(int a)
{
int x=1;
int contador=0;
while(a>=x)
 {
  if (a%x==0){
  contador++;
}
x++;
}
if(contador==2)
cout<<"El numero es primo";
else
cout<<"El numero no es primo"<<endl;
}
int factorial(int a)
{
int facto=a;
for(int i=a-1;i>=1;i--)
{
facto=facto*i;
}
return facto;

}
char comparar(char a1[20], char a2[20])
{
if (strcmp(a1,a2)==0)
{
cout<<"Las cadenas son iguales"<<endl;
}
else{
cout<<"las cadenas no son iguales";
}
}
char cadena(char a1[20])
{
return strlen(a1);
}
void lectura_vector()
{
for(int i=0;i<3;i++)
{
cout<<" Dame el valor del vector x, "<<i<<"." <<endl;
cin>>X[i];
}
for(int i=0;i<3;i++)
{
cout<<" Dame el valor del vector y,"<<i<<"."<<endl;
cin>>Y[i];
}
}
int suma_vectores(int x1[3],int y1[3],int z1[3])
{
for(int i=0;i<3;i++)
{
{
z1[i]=x1[i]+y1[i];
}
for(int i=0;i<3;i++){//iniciamos ciclo para poder imprimir el resultado
cout<<" El valor de la resultante "<<i<<" es: "<<z1[i]<<endl;
}
}
}




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)