Autor Tema: [APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA  (Leído 5362 veces)

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
¡Hola PHPeros!. Bueno, hace un par de día que me he puesto a estudiar C++ y la verdad es que no tiene mucha dificultad si pilotas de PHP. Lo que he hecho ha sido una calculadora para vosotros (Y también por que me cundía el aburrimiento).

Ventajas
Citar
- Velocidad a tiempo real (Obviamente jaja)
- No hace falta uso del ratón
- Simple y cómodo

Desventajas
Citar
- No trabaja decimales ¡Fixed! Ya funciona ;)

VirusTotal
http://www.virustotal.com/file-scan/report.html?id=e5124f05c185976da987e451cc6ceea5db29eb3a6ef0f37a9a9fe4c784fa46ba-1287841181

Imagenes
Citar


Mirrors
Citar
http://www.megaupload.com/?d=JC5ADT74

¡Que lo disfrutes! ;)
« Última modificación: 24 de Octubre de 2010, 12:42:35 pm por Siquillote »

#Fdo. Physlet

Comunidad PHPeros


Desconectado Farresito

  • PHPero Avanzado
  • ****
  • Mensajes: 385
  • Karma: 5
  • Sexo: Masculino
  • PimPamTomaC++
    • Ver Perfil
    • Farresito
Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
« Respuesta #1 en: 23 de Octubre de 2010, 19:08:35 pm »
Te dejo Karma+.

Siqui, podrías implementar la raíz cuadrada que no es difícil.

Se necesita la librería Math, y se usa la funcion sqrt [square root].

Me imagino que dominas el english. Echa un vistazo:

http://www.cplusplus.com/reference/clibrary/cmath/sqrt/

Un abrazo!
“Lo mejor de los booleanos es que si te equivocas estás a un sólo bit de la solución correcta.”

-- Anónimo

"No temo a los ordenadores; lo que temo es quedarme sin ellos"

-- Isaac Asimov

Desconectado gink

  • PHPer@ Fijo
  • ***
  • Mensajes: 146
  • Karma: 10
  • Sexo: Masculino
    • Ver Perfil
    • Mi blog personal
Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
« Respuesta #2 en: 23 de Octubre de 2010, 23:11:30 pm »
¿Porque no en decimales?
Una simple división con resultado en decimal seria:

cout << "Dime el primer numero";
cin >> int a;
cout<<"Dime el segundo numero";
cin >> int b;
double resultado=(double)a/(double)b;

Prueba y me dices :P. Cuidate!

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
« Respuesta #3 en: 23 de Octubre de 2010, 23:25:53 pm »

No lo entiendo  :confused:

#Fdo. Physlet

Desconectado Farresito

  • PHPero Avanzado
  • ****
  • Mensajes: 385
  • Karma: 5
  • Sexo: Masculino
  • PimPamTomaC++
    • Ver Perfil
    • Farresito
Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
« Respuesta #4 en: 23 de Octubre de 2010, 23:48:45 pm »
No lo entiendo  :confused:
Si. Como en PHP, tu puedes convertir una variable de un tipo a otro. Si por ejemplo hago esto:. Lápsus mental, en PHP no se define el tipo de variable xD Me confundí. Perdonen
Código: [Seleccionar]
double numero = 12.465;
numero = (int)numero
Lógicamente, la variable numero perderá los decimales pero se convertirá a integer. Mediante la conversión del resultado a un tipo que acepte decimales, te debería funcionar.

Un abrazo. La he probado y funciona de maravilla. Si quieres que te eche una mano, no dudes :)
« Última modificación: 24 de Octubre de 2010, 00:09:00 am por Farresito »
“Lo mejor de los booleanos es que si te equivocas estás a un sólo bit de la solución correcta.”

-- Anónimo

"No temo a los ordenadores; lo que temo es quedarme sin ellos"

-- Isaac Asimov

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
« Respuesta #5 en: 24 de Octubre de 2010, 00:06:09 am »

Sigo sin entender T.T

#Fdo. Physlet

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
« Respuesta #6 en: 24 de Octubre de 2010, 00:24:55 am »
¿Trabajaste las operaciones con métodos de una clase? O todo lo tiraste en el main?

Desconectado Farresito

  • PHPero Avanzado
  • ****
  • Mensajes: 385
  • Karma: 5
  • Sexo: Masculino
  • PimPamTomaC++
    • Ver Perfil
    • Farresito
Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
« Respuesta #7 en: 24 de Octubre de 2010, 00:31:01 am »
Creo que lo puso todo en main. Ahora pone el código. Vamos a ver...
“Lo mejor de los booleanos es que si te equivocas estás a un sólo bit de la solución correcta.”

-- Anónimo

"No temo a los ordenadores; lo que temo es quedarme sin ellos"

-- Isaac Asimov

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
« Respuesta #8 en: 24 de Octubre de 2010, 00:35:10 am »
Bueno, tenía pensado ponerlo en source cerrado  8) jajaja así para practicar como windows peeeero dadas las circuntancias, comprobemos que me esta ocurriendo. He aquí el código a sanear:

Citar
#include <stdio.h>
#include <conio.h>

// Calculadora by Siquillote
// Todos los derechos reservados
// 2010 ;) - AngelSamuel.com :O

int main(){
   
   // Defino las variables que voy a usar
   int num1,num2,accion,total;
   
   // Recogemos los valores-> Uno \n para saltar de línea
   printf(" Elige tu primer numero: ");
      scanf("%d", &num1);
   printf(" Elige tu segundo numero: ");
      scanf("%d", &num2);
   printf("\n -----------------------Elige accion------------------------------\n 1) Sumar\n 2) Restar\n 3) Multiplicar\n 4) Dividir\n -----------------------------------------------------------------\n\n ----------------------¿Tu decision es...?------------------------\n Accion: ");
      scanf("%d", &accion);
   printf(" -----------------------------------------------------------------\n");       
   
   // Verificamos que el numero sea mayor que 1 y menos que 4...
   if(accion < 1 or accion > 4){
       printf(" La accion debe estar comprendida entre los numeros 1 y 4. No puede ser mayor o menor");
   } else {
       if(accion == 1){
           total = num1+num2;     
       } else if(accion == 2){
           total = num1-num2;   
       } else if(accion == 3){
           total = num1*num2;       
       } else if(accion == 4){
           total = (int)num1/num2;
       }
       
       // Mostramos el resultado final:
       printf("\n -----------------------Resultado---------------------------------\n >>>> %d <<<<\n -----------------------------------------------------------------\n\n\n", total);
       printf("        *------------------------------------------------*\n");
       printf("        | # Calculadora by Siquillote                    |\n");
       printf("        | # PHPeros.net -> Siquillote                    |\n");
       printf("        | # @CopyRight 2010-2011                         |\n");
       printf("        | # Contacto: Soporte@angelsamuel.com            |\n");
       printf("        *------------------------------------------------*\n");                                         
   }
   
  getch();
}   
« Última modificación: 24 de Octubre de 2010, 00:45:28 am por Siquillote »

#Fdo. Physlet

Desconectado gink

  • PHPer@ Fijo
  • ***
  • Mensajes: 146
  • Karma: 10
  • Sexo: Masculino
    • Ver Perfil
    • Mi blog personal
Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
« Respuesta #9 en: 24 de Octubre de 2010, 01:00:35 am »
En vez de utilizar if(numero==1)
Puedes usar:

switch numero {
case 1: cout<<"Hola"; break;
case 2: cout<<"Como estas?";break;
}

Haciendo como antes de dije el codigo quedaria:
Código: [Seleccionar]
#include <stdio.h>
#include <conio.h>

// Calculadora by Siquillote
// Todos los derechos reservados
// 2010  - AngelSamuel.com :O

int main(){
   
   // Defino las variables que voy a usar
   int num1,num2,accion,total;
   
   // Recogemos los valores-> Uno \n para saltar de línea
   printf(" Elige tu primer numero: ");
      scanf("%d", &num1);
   printf(" Elige tu segundo numero: ");
      scanf("%d", &num2);
   printf("\n -----------------------Elige accion------------------------------\n 1) Sumar\n 2) Restar\n 3) Multiplicar\n 4) Dividir\n -----------------------------------------------------------------\n\n ----------------------¿Tu decision es...?------------------------\n Accion: ");
      scanf("%d", &accion);
   printf(" -----------------------------------------------------------------\n");       
   
   // Verificamos que el numero sea mayor que 1 y menos que 4...
   if(accion < 1 or accion > 4){
       printf(" La accion debe estar comprendida entre los numeros 1 y 4. No puede ser mayor o menor");
   } else {
switch accion {
case 1: total = num1+num2; break;
case 2: total = num1-num2; break;   
case 3: (double)total = (double)num1*(double)num2; break;
case 4: (double)total = (double)num1/(double)num2; break;
}
       }
       
       // Mostramos el resultado final:
       printf("\n -----------------------Resultado---------------------------------\n >>>> %d <<<<\n -----------------------------------------------------------------\n\n\n", total);
       printf("        *------------------------------------------------*\n");
       printf("        | # Calculadora by Siquillote                    |\n");
       printf("        | # PHPeros.net -> Siquillote                    |\n");
       printf("        | # @CopyRight 2010-2011                         |\n");
       printf("        | # Contacto: Soporte@angelsamuel.com            |\n");
       printf("        *------------------------------------------------*\n");                                         
   }
   
  getch();
}   

Pruebalo y me dices, saludos!

Desconectado gink

  • PHPer@ Fijo
  • ***
  • Mensajes: 146
  • Karma: 10
  • Sexo: Masculino
    • Ver Perfil
    • Mi blog personal
Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
« Respuesta #10 en: 24 de Octubre de 2010, 01:03:59 am »
Explico, tu declaraste todo como int.
En la suma y division no hay problema, pero en una multiplicacion y division muchas veces te dara con coma. Si tu declaras todo como int te lo redondea y eso seria un grave error.

Yo no toque la forma en el que tu declaras, solo que convierto la variable TOTAL en double (obviamente, para que el contenido se muestre en comas) y convierto las 2 variables de numero tambien en double (para que tengan coma ,0 al iniciar y poder hacer la multiplicacion y division).

Luego el switch y case es para evitarte tanto if. Es algo como:
En accion(es una variable) {
en caso que de 1: muestroresultado; pausa;
en caso de que 2: muestroresultado; pausa;
}

Cuidate :)

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
« Respuesta #11 en: 24 de Octubre de 2010, 01:08:36 am »
Corrige el título, eso no es C++, es C.
El switch() es lo mismo que un if-else validando siempre la parte verdadera y con el operador == de igualdad. Es mucho mejor usarlo en esta situación.

Desconectado gink

  • PHPer@ Fijo
  • ***
  • Mensajes: 146
  • Karma: 10
  • Sexo: Masculino
    • Ver Perfil
    • Mi blog personal
Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
« Respuesta #12 en: 24 de Octubre de 2010, 01:40:48 am »
Volví, me corregí errores y modificando cositas logre que acepte comas. :)
Así quedo el programa:



Aquí esta el codigo de tu maravilla:
Código: [Seleccionar]
#include <stdio.h>
#include <conio.h>
#include <iostream.h>

// Calculadora by Siquillote
// Todos los derechos reservados
// 2010  - AngelSamuel.com :O

int main(){
   
   // Defino las variables que voy a usar
   float num1,num2,total;
   int accion;
   
   // Recogemos los valores-> Uno \n para saltar de línea
   printf(" Elige tu primer numero: ");
      cin>>num1;
   printf(" Elige tu segundo numero: ");
      cin>>num2;
   printf("\n -----------------------Elige accion------------------------------\n 1) Sumar\n 2) Restar\n 3) Multiplicar\n 4) Dividir\n -----------------------------------------------------------------\n\n ----------------------¿Tu decision es...?------------------------\n Accion: ");
      cin>>accion;
   printf(" -----------------------------------------------------------------\n");       
   
   // Verificamos que el numero sea mayor que 1 y menos que 4...
   if(accion < 1 or accion > 4){
       printf(" La accion debe estar comprendida entre los numeros 1 y 4. No puede ser mayor o menor");
   } else {
switch (accion) {
case 1: total = num1+num2; break;
case 2: total = num1-num2; break;   
case 3: total = num1*num2; break;
case 4: total = num1/num2; break;
}
       }
       
       // Mostramos el resultado final:
       printf("\n -----------------------Resultado---------------------------------\n >>>> %.3f <<<<\n -----------------------------------------------------------------\n\n\n", total);
       printf("        *------------------------------------------------*\n");
       printf("        | # Calculadora by Siquillote                    |\n");
       printf("        | # PHPeros.net -> Siquillote                    |\n");
       printf("        | # @CopyRight 2010-2011                         |\n");
       printf("        | # Contacto: Soporte@angelsamuel.com            |\n");
       printf("        *------------------------------------------------*\n");   
       getch();                                   
   }

Primero explico;
Incluí el iostream.h para poder utilizar "cin". Yo lo veo mas funcional que scanf porque recoge mas caracteres (incluyendo comas).

Luego cambie tus int (menos el accion) por float. Para poder mostrar los resultados en coma (y los numeros utilizados también).

Esto talvez sea lo que mas te sorprenda: %.3f .
Lo unico que hace es decir cuantos decimales muestra luego de la coma. Yo puse 3, tu pon todos los que quieras :P

Si no entiendes algo avisame, ¡Cuidate!
PD: Menos mal que me di cuenta que me equiboque antes, la conversion de int a double no me la permitio por utilizarla varias veces y de una forma tan variada. Jeje

Desconectado Farresito

  • PHPero Avanzado
  • ****
  • Mensajes: 385
  • Karma: 5
  • Sexo: Masculino
  • PimPamTomaC++
    • Ver Perfil
    • Farresito
Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
« Respuesta #13 en: 24 de Octubre de 2010, 12:19:39 pm »
Uf, buen aporte Gink.

Creo que llegué tarde para ayudar a Siqui :) Te me has avanzado ^^

Un abrazo
“Lo mejor de los booleanos es que si te equivocas estás a un sólo bit de la solución correcta.”

-- Anónimo

"No temo a los ordenadores; lo que temo es quedarme sin ellos"

-- Isaac Asimov

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
« Respuesta #14 en: 24 de Octubre de 2010, 12:27:24 pm »
Uf, buen aporte Gink.

Creo que llegué tarde para ayudar a Siqui :) Te me has avanzado ^^

Un abrazo

¡Ni que lo digas! Muchas gracias Gink, ya he entendido como expresar decimales. Ahora publicaré un nuevo tema por que tengo una nueva duda respecto a esto (nada de decimales ni por el estilo jaja!). Gink +K, Farresito +K (por lo de ayer que me explicaste en msn)

#Fdo. Physlet