Test Foro de elhacker.net SMF 2.1

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
#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
*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 (cpp) [Seleccionar]
#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()
{
// codigo del segundo programa ...
}


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

me dice el siguiente error
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 (cpp) [Seleccionar]
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 (cpp) [Seleccionar]
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
/*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:
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
getchar();

puse
getche();


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