elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  En una funcion nunca debe ir cout y cin??
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: En una funcion nunca debe ir cout y cin??  (Leído 1,554 veces)
cristofermil

Desconectado Desconectado

Mensajes: 4


Ver Perfil
En una funcion nunca debe ir cout y cin??
« en: 21 Enero 2017, 23:00 pm »

Mi profesor me explico que nunca dentro de una función debe ir cout y cin , digamos un ejemplo : este es para hallar el máximo común divisor de 2 números , si se fijan al ultimo del void puse cout , pero dicen que la funcion void no devuelve nada , si no devuelve nada como rayos me va a botar el compilador algo :¬¬ :¬¬ ?? , entonces para que me sirviria , expliquenme :silbar: :silbar: detalladamente porfavor ;) :3
Código
  1. #include <iostream>
  2. using namespace std;
  3. void MCD(int a, int b) {
  4. int m;
  5. if(a>b){
  6. m=a%b;
  7. }
  8. else if(b>a){
  9. m=b%a;
  10. }
  11. else if(a==b){
  12. m=1;
  13. }
  14. cout<<"el maximo comun divisior es :"<<m;
  15. }
  16. int main(){
  17. int p,q;
  18. cout<<"ingrese el primer valor :"; cin>>p;
  19. cout<<"ingrese el segundo valor :"; cin>>q;
  20. MCD(p,q);
  21.  
  22. }
  23.  
  24.  


« Última modificación: 21 Enero 2017, 23:04 pm por engel lex » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: En una funcion nunca debe ir cout y cin??
« Respuesta #1 en: 21 Enero 2017, 23:07 pm »

probablemente sacas un poco de contexto a tu profesor, con eso de cin y cout... solo que el ejemplo no es para hacerlo así...
simplemente cambia void en el MCD por int y en lugar de usar cout, usas return (claro que sin <<) y listo, puedes hacer

Código
  1. cout << MCD(p,q);


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: En una funcion nunca debe ir cout y cin??
« Respuesta #2 en: 22 Enero 2017, 12:33 pm »

Para concretar:
Una función es, o un trozo de código que quieres "encapsular", también llamado sub-rutina o sub-programa, o, como una función matemática, a la que tú le das unos valores de entrada y ella te da unos valores de salida.

En el primer caso, usar cout/cin o cualquier otro método de entrada o salida es totalmente válido (mientras sea coherente, claro, generelizar es complicado).
En el segundo caso, rara vez querrás hacer eso.

Tu ejemplo claramente es del "segundo tipo". Tú le das unos valores de entrada (a, b), y ella te da un valor de retorno que ella calcula (MCD). La forma de usar esa función es como dijo engel lex.

Imagínate que el MCD no lo quieres sacar por pantalla con cout, sino que quieres guardarlo en un archivo. Tendrías que modificar la función para lograrlo, mientras que haciendo que retorne el valor, sería tan simple como:
Código
  1. archivo << MCD(5,8);
U otro ejemplo:
Código
  1. int n = 50 / MCD(50, 25);
  2. for(int i=0; i<n; i++){
  3.    // ...
  4. }
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines