Comunidad PHPeros
Lenguajes => C / C++ => Mensaje iniciado 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
- Velocidad a tiempo real (Obviamente jaja)
- No hace falta uso del ratón
- Simple y cómodo
Desventajas
- No trabaja decimales ¡Fixed! Ya funciona ;)
VirusTotal
http://www.virustotal.com/file-scan/report.html?id=e5124f05c185976da987e451cc6ceea5db29eb3a6ef0f37a9a9fe4c784fa46ba-1287841181
Imagenes
(http://www.angelsamuel.com/C++/1.png)
(http://www.angelsamuel.com/C++/2.png)
Mirrors
http://www.megaupload.com/?d=JC5ADT74
¡Que lo disfrutes! ;)
-
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!
-
¿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!
-
No lo entiendo :confused:
-
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
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 :)
-
Sigo sin entender T.T
-
¿Trabajaste las operaciones con métodos de una clase? O todo lo tiraste en el main?
-
Creo que lo puso todo en main. Ahora pone el código. Vamos a ver...
-
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:
#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();
}
-
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:
#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!
-
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 :)
-
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.
-
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:
#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
-
Uf, buen aporte Gink.
Creo que llegué tarde para ayudar a Siqui :) Te me has avanzado ^^
Un abrazo
-
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)
-
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 :)
-
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 :)
-
¡Actualizo! Calculadora fixeada :D ¡Gracias! Voy a intentar colocarle mas cosas a la calculadora :D
-
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 ;)
-
: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...
-
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.
-
Pon que está programado en C, no en C++.
-
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
-
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++?
-
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
-
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