Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: peterfly en 1 Diciembre 2011, 22:51 pm



Título: calculadora + interrogatorio
Publicado por: peterfly en 1 Diciembre 2011, 22:51 pm
hoy estaba jugando a un juego de sumas... y me preguntaba que si se puede juntar los dos siguientes codigos

codigo 1
Código:
#include <cstdlib>
#include <iostream>
#include <stdio.h>
int main()
{
    unsigned long long int a,b;
     printf("primer numero:");
     scanf(" %llu", &a);
    
     printf("segon numero:");
     scanf(" %llu", &b);
    
     printf("el resultat es %llu", a+b);
    
    system("PAUSE");
    return EXIT_SUCCESS;
}

codigo 2
Código:
*preguntes i respostes*/
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <string.h>
int main (void)
{
 
    int i;
    char cadena1[40]="";
        char respuesta =0;
    do{
    printf("pregunta \n \n");
    printf("escriba la pregunta:  ");
    gets(cadena1);
    
    i= strcmp(cadena1,"cuantos años tengo");
    if (i==0){
    printf("10");
    }
    i= strcmp(cadena1,"de donde soy");
    if (i==0){
    printf("valencia");
    }

std::cout << "\n\ndesea continuar (S o N o C)?\n";
std::cin >> respuesta;
setbuf(stdin,NULL);
switch (respuesta){
      
case 's':
printf("ha salido con la respuesta s\n\n\n");
break;

case 'c':
printf("\nprograma creado por\nGUILLEM BORRAS I MARTI");
break;

case 'n':
printf("ha salido con la respuesta n");
return false;
break;
default:
 
printf("ha salido sin la letra n o s");
return false;
break;
 
}
}while ((respuesta =='s')||(respuesta == 'S'));
 
     getchar();
     return 0;
}

alguien me puede ayudar a juntarlos???

gracias de antemano


Título: Re: calculadora + interrogatorio
Publicado por: Leyer en 1 Diciembre 2011, 23:05 pm
es una pregunta algo rara :xD


Título: Re: calculadora + interrogatorio
Publicado por: peterfly en 1 Diciembre 2011, 23:08 pm
la verdad es que si... pero se puede??? como???... no lo se... por eso lo preguntaba...


Título: Re: calculadora + interrogatorio
Publicado por: rir3760 en 2 Diciembre 2011, 00:23 am
Es posible, la forma mas facil es colocando el codigo de cada programa en una funcion (por supuesto con las correcciones pertinentes).

Un empujon:
Código
  1. #include <iostream>
  2. using std::cout;
  3. using std::endl;
  4.  
  5. #include <cstdio>
  6. using std::printf;
  7. using std::scanf;
  8.  
  9. void fn_programa_a();
  10. void fn_programa_b();
  11.  
  12. int main()
  13. {
  14. fn_programa_a();
  15. fn_programa_b();
  16.  
  17. return 0;
  18. }
  19.  
  20. void fn_programa_a()
  21. {
  22. unsigned long a;
  23. unsigned long b;
  24.  
  25. printf("primer numero:");
  26. scanf("%lu", &a);
  27.  
  28. printf("segon numero:");
  29. scanf("%lu", &b);
  30.  
  31. printf("el resultat es %lu", a+b);
  32. }
  33.  
  34. void fn_programa_b()
  35. {
  36. // codigo del segundo programa ...
  37. }

Dos detalles a considerar: 1) Casi no utilizas las facilidades del lenguaje C++ y 2) El tipo "long long" no existe en C++ estandar (pero si en C99).

Un saludo


Título: Re: calculadora + interrogatorio
Publicado por: peterfly en 2 Diciembre 2011, 17:49 pm
he puesto el siguente codigo
Código:
#include <iostream>
using std::cout;
using std::endl;
 
#include <cstdio>
using std::printf;
using std::scanf;
 
void fn_programa_a();
void fn_programa_b();
 
int main()
{
fn_programa_a();
fn_programa_b();
 
return 0;
}
 
void fn_programa_a()
{
unsigned long a;
unsigned long b;
 
printf("primer numero:");
scanf("%lu", &a);
 
printf("segon numero:");
scanf("%lu", &b);
 
printf("el resultat es %lu", a+b);
}
 
void fn_programa_b()
{
unsigned long a;
unsigned long b;

int i;
    char cadena1[40]="";
        char respuesta =0;
    do{
    printf("pregunta \n \n");
    printf("escriba la pregunta:  ");
    gets(cadena1);
   
    i= strcmp(cadena1,"cuantos años tengo");
    if (i==0){
    printf("10");
    }
    i= strcmp(cadena1,"de donde soy");
    if (i==0){
    printf("valencia");
    }

std::cout << "\n\ndesea continuar (S o N o C)?\n";
std::cin >> respuesta;
setbuf(stdin,NULL);
switch (respuesta){
       
case 's':
printf("ha salido con la respuesta s\n\n\n");
break;

case 'c':
printf("\nprograma creado por\nGUILLEM BORRAS I MARTI");
break;

case 'n':
printf("ha salido con la respuesta n");
return false;
break;
default:
 
printf("ha salido sin la letra n o s");
return false;
break;
 
}
}while ((respuesta =='s')||(respuesta == 'S'));
}

y donde pone
Código:
return false;

me dice el siguiente error
Código:
return-statement with a value, in funcion returning 'void'


Título: Re: calculadora + interrogatorio
Publicado por: rir3760 en 2 Diciembre 2011, 18:21 pm
Porque al declarar la funcion:
Código
  1. void fn_programa_b();
Se esta indicando que ella no retorna un valor, si vas a utilizar la sentencia de retorno esta debe ser:
Código
  1. return;

Pero como esta tu programa lo mejor es simplemente eliminarla.

Un saludo


Título: Re: calculadora + interrogatorio
Publicado por: peterfly en 2 Diciembre 2011, 18:41 pm
muxas gracias amigo... aora me falta que al principio me pregunte si quiero usar la calculadora o si quiero usar el interrogatorio...


Título: Re: calculadora + interrogatorio
Publicado por: rir3760 en 2 Diciembre 2011, 19:07 pm
Para eso solo debes crear un menú donde el usuario elija la opción y en base a esta se llame a una de las funciones.

Inténtalo, no es difícil.

Un saludo


Título: Re: calculadora + interrogatorio
Publicado por: peterfly en 9 Diciembre 2011, 16:22 pm
He puesto el siguiente codigo
Código:
/*calculadora + interrogatori*/

#include <stdio.h>
#include <cstdlib>
#include <iostream>
#include <string.h>

int main()
{
int opcion;

do{
printf("\n *** MENU *** \n");
printf("\n 1. Calculadora\n");
printf("\n 2. Interrogatorio");
printf("\n Selecciona una opcio: ");
scanf("%d",&opcion);

}while(opcion < 1 || opcion > 2);
switch(opcion)
{
case 1:
unsigned long long int a,b;
printf("\n ***CALCULADORA***\n");
printf("primer numero:");
scanf(" %llu", &a);    
printf("segon numero:");
scanf(" %llu", &b);
printf("el resultat es %llu", a+b);
break;

case 2:
char cadena1[40]="";
char respuesta =0;
do{
printf("\n ***INTERROGATORIO***\n");
printf("escriba una pregunta:  ");
gets(cadena1);
    {
 int i;
i= strcmp(cadena1,"cuantos años tengo");
if (i==0){
printf("pocos");
}
i= strcmp(cadena1,"cuando naci");
if (i==0){
printf("no me acuerdo");
break;
}
getche();
return 0;
}

Y donde pone:
Código:
getche();
return 0;
}
me dice "error" y no consigo resolverlo... me podeis ayudar???

gracias


Título: Re: calculadora + interrogatorio
Publicado por: peterfly en 9 Diciembre 2011, 16:51 pm
no me di cuenta... envez de poner
Código:
getchar();

puse
Código:
getche();

pero sigo con el problema de antes pero envez de en esa parte solo me dice error en el ultimo "}"