Comunidad PHPeros

Lenguajes => C / C++ => Mensaje iniciado por: Siquillote en 23 de Octubre de 2010, 15:59:28 pm

Título: [APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: Siquillote en 23 de Octubre de 2010, 15:59:28 pm
¡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
(http://www.angelsamuel.com/C++/1.png)
(http://www.angelsamuel.com/C++/2.png)

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

¡Que lo disfrutes! ;)
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: Farresito 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!
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: gink 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!
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: Siquillote en 23 de Octubre de 2010, 23:25:53 pm

No lo entiendo  :confused:
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: Farresito 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 :)
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: Siquillote en 24 de Octubre de 2010, 00:06:09 am

Sigo sin entender T.T
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: Physlet 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?
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: Farresito 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...
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: Siquillote 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();
}   
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: gink 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!
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: gink 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 :)
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: Physlet 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.
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: gink 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:

(http://img835.imageshack.us/img835/6493/sinttuloyq.png)

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
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: Farresito 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
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: Siquillote 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)
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: Farresito en 24 de Octubre de 2010, 12:35:40 pm
No seas así Siqui :) Recuerda que soy catalán y que me odias xD. No me des un Karma por una explicación de MSN :D

Nah, un abrazo igualmente. Y te lo agradezco.

Saludos! Haz la versión mejorada de tu calculadora y lo vas subiendo en este post :)
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: Siquillote en 24 de Octubre de 2010, 12:41:04 pm
No seas así Siqui :) Recuerda que soy catalán y que me odias xD. No me des un Karma por una explicación de MSN :D

Nah, un abrazo igualmente. Y te lo agradezco.

Saludos! Haz la versión mejorada de tu calculadora y lo vas subiendo en este post :)

Ya te dije que me caen fatal la mayoría de los catalanes pero tu al menos no :)
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: Siquillote en 24 de Octubre de 2010, 12:44:18 pm

¡Actualizo! Calculadora fixeada :D ¡Gracias! Voy a intentar colocarle mas cosas a la calculadora :D
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: Farresito en 24 de Octubre de 2010, 12:48:56 pm
Ya te dije que me caen fatal la mayoría de los catalanes pero tu al menos no :)
:D

Por cierto, podrías añadir la raíz cuadrada (en este mismo post te expliqué la función, échale un vistazo al segundo o tercero mensaje), también puedes añadir un conversor de decimal a binario, para probar. Mira éste post: http://www.circuitoselectronicos.info/2007/10/cdigo-para-convertir-un-nmero-decimal.html

Un abrazo. Si quieres te ayudo, pero tiene más gracia que lo hagas tu, así vemos como vas mejorando ;)
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: Siquillote en 24 de Octubre de 2010, 12:57:10 pm
:D

Por cierto, podrías añadir la raíz cuadrada (en este mismo post te expliqué la función, échale un vistazo al segundo o tercero mensaje), también puedes añadir un conversor de decimal a binario, para probar. Mira éste post: http://www.circuitoselectronicos.info/2007/10/cdigo-para-convertir-un-nmero-decimal.html

Un abrazo. Si quieres te ayudo, pero tiene más gracia que lo hagas tu, así vemos como vas mejorando ;)

¡Estoy en ello ahora! Y claro, si yo no aprendo no tiene emocion...
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: Farresito en 24 de Octubre de 2010, 13:00:57 pm
Si no entiendes el código del conversor a binario te lo explico. Las funciones, claro, porque yo de algoritmos no soy de los más expertos :)

Un abrazo.
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: Physlet en 24 de Octubre de 2010, 17:59:31 pm
Pon que está programado en C, no en C++.
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: Farresito en 24 de Octubre de 2010, 18:01:16 pm
Pon que está programado en C, no en C++.
Bah, lo podría hacer pero total. Cualquier compilador C++ que acepte los estándares podrá compilar un C. Que haga lo que quiera :D
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: Physlet en 24 de Octubre de 2010, 18:02:03 pm
Bah, lo podría hacer pero total. Cualquier compilador C++ que acepte los estándares podrá compilar un C. Que haga lo que quiera :D
¿Y? ¿Estamos hablando de C o C++?
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: gink en 24 de Octubre de 2010, 18:12:01 pm
Esta en C++, porque supongo que es un .cpp y acepta cualquier tipo de clases :P
No hay de que, cualquier cosa me dicen.
Saludos
Título: Re:[APORTE] Descarga calculadora by Siquillote (C++) - PHPeros.net - V.BETA
Publicado por: Siquillote en 24 de Octubre de 2010, 18:13:40 pm
Esta en C++, porque supongo que es un .cpp y acepta cualquier tipo de clases :P
No hay de que, cualquier cosa me dicen.
Saludos

Si, es un .cpp