elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Programacion c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: Programacion c++  (Leído 9,859 veces)
durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: Programacion c++
« Respuesta #10 en: 6 Abril 2012, 23:27 pm »

me imaginaba que la entrada la hacias con caracteres, en fin si hubieses leido lo que te mande... T dejo el codigo en C
Código
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. int main(void)
  5. {
  6.    int num,res;
  7.    int suma=0;
  8.    int auxNum;
  9.  
  10.    printf("Ingrese un numero\n");
  11.    scanf("%d",&num);
  12.    auxNum=num;
  13.    for(;num>0;)
  14.    {
  15.       res=num%10;
  16.       suma+=pow(res,3);
  17.       num/=10;
  18.    }
  19.  
  20.    if(auxNum==suma)
  21.      printf("Bien, num=%d igual a suma=%d\n",auxNum,suma);
  22.    else
  23.      printf("Mal\n");
  24.  
  25.    return 0;
  26. }

Fijate q la entrada es de un entero no de caracteres... Si vas a seguir usando cin busca una funcion que te convierte esa cadena en su representacion a entero

Saludos

PD: si vas a compilar en devC++ cambia el pow(res,3) por res*res*res. No entiendo xq me anda mal con Dev C++


En línea

Ahorrate una pregunta, lee el man
Sagrini

Desconectado Desconectado

Mensajes: 107


Ver Perfil WWW
Re: Programacion c++
« Respuesta #11 en: 6 Abril 2012, 23:29 pm »

Y qué tal si tratáis el número como una cadena?
Código
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. int Atoi (char car)
  5. { switch (car)
  6. { case '0': return 0; case '1': return 1; case '2': return 2; case '3': return 3;
  7. case '4': return 4; case '5': return 5; case '6': return 6; case '7': return 7;
  8. case '8': return 8; case '9': return 9; default : return -1;
  9. }
  10. }
  11.  
  12. int main (int argc, char *argv [])
  13. { if (argc != 2) { printf ("Use: code <num>\n"); return 1; }
  14. int resultado=0, a;
  15. for (a=0; a<strlen (argv [1]); a++) resultado+=pow (Atoi (argv [1][a]), strlen (argv [1])-a);
  16. printf ("%d\n", resultado); return 0;
  17. }
  18.  


En línea

mmaikel

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Programacion c++
« Respuesta #12 en: 6 Abril 2012, 23:37 pm »

Mil gracias a todos.. no se por que no me compila el dev c++ con el pow, y farresito gracias por lo del FOR, como ya dije soy un completo ignorante en esa materia, apenas estoy empezando a hacer pijotadillas de estas..y la verdad es que me esta empezando a gustar esto..xD

Saludos y gracias de nuevo
En línea

farresito


Desconectado Desconectado

Mensajes: 302



Ver Perfil
Re: Programacion c++
« Respuesta #13 en: 6 Abril 2012, 23:43 pm »

Lo estoy haciendo sin el 'pow' de la siguiente manera:

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    int num,x,y,a,b,c,res,prim,sec,ter;
    cout<<"Introduzca una cifra de 3 digitos: "<<endl;
    cin>>num;
    {
         for (num>=000;num<=999;)
             a=num%10;
             x=num/10;
             b=x%10;
             y=x/10;
             c=y%10;
             prim=a*a*a;
             sec=b*b*b;
             ter=c*c*c;
             res=prim+sec+ter;
                  if (res=num)
                     cout << "El resultado de la suma de los cubos de los digitos es igual al numero" << endl;
                  else
                     cout <<"El resultado de la suma de los cubos de los digitos no es igual al numero"<< endl;
                
    }
system ("pause");
return 0;
}

Me lo compila perfectamente, pero el programa no hace nada.. xD
Ah, me olvidada.

Usa un titulo mas descriptivo cuando crees temas.

Y despues, para comparar dos numeros, hay que hacer ==, no =, porque este ultimo lo que hace es asignar, lo que devuelve el valor true.
En línea

mmaikel

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Programacion c++
« Respuesta #14 en: 6 Abril 2012, 23:47 pm »

Ah, me olvidada.

Usa un titulo mas descriptivo cuando crees temas.

Y despues, para comparar dos numeros, hay que hacer ==, no =, porque este ultimo lo que hace es asignar, lo que devuelve el valor true.

si, ahi me cole, pero lo tenia bien en el programa.. y una cosa, por que lo del system (pause) es una mala practica?
« Última modificación: 7 Abril 2012, 00:23 am por mmaikel » En línea

farresito


Desconectado Desconectado

Mensajes: 302



Ver Perfil
Re: Programacion c++
« Respuesta #15 en: 7 Abril 2012, 00:22 am »

si, ahi me cole, pero lo tenia bien en el programa.. y una cosa, por que lo del system (pause)?
No es portable, esto es, tan solo funciona en Windows. Es una funcion muy pesada (necesita bastantes recursos) porque hace lo siguiente:
Suspender el programa
Llamar el Sistema Operativo
Abre una shell de la terminal
Busca la funcion PAUSE
Reserva memoria
Ejecuta el comando y espera una pulsacion
Elimina la memoria reservada
Resume el programa

Sabes la famosa ventana negra de Windows (la terminal) muy usada en las peliculas de hackers? Vamos, como la que te sale cuando compilas los programas? Ahi puedes ejecutar comandos como ipconfig y otras cosas. Pues la funcion system lo que hace es ejecutar lo que le pasas por parametro (lo que uno ejecutaria manualmente en una de esas terminale) y devuelve el valor, si no me equivoco (hace tiempo que no uso Windows, demasiado).
En línea

flony


Desconectado Desconectado

Mensajes: 583



Ver Perfil
Re: Programacion c++
« Respuesta #16 en: 7 Abril 2012, 03:25 am »

para sacar el seno usando el teorema de taylor debes sacar la derivada primera igualar a cero ..a ese resultado le volves a sacar la derivada e igualas a cero...asi eternamente depende del nivel de error que quieras después de que digito a la izquierda de la coma
Citar
x-(x^3)/3! +(x^5)/5!-(x^¨7)/7!
ejemplo el 7!=7*6*5*4*3*2*1 osea usa for para que lo multiplique hasta llegar a 1 o para no complicarte tanto lo pones como una constante (obvio previo uso de calculadora en mano, pero creo que la idea debe ser que uses for) una ayudita lee
Citar
... así con el resto de números factoriales...se supone que x seria la variable a la cual vos le ingresas el numero
« Última modificación: 7 Abril 2012, 04:10 am por flony » En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
mmaikel

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Programacion c++
« Respuesta #17 en: 7 Abril 2012, 05:55 am »

Para el ejercicio del polinomio de Taylor lo que estoy haciendo es lo siguiente:
siguiendo la formula



#include <iostream>
#include <cmath>
#define PI 3.141592654
using namespace std;
int main()
{
     int x,n,sen;
     cout << "Ingrese el numero de terminos a aproximar: " << endl;
     cin >> n;
     cout << "Ingrese el valor de angulo: " << endl;
     cin >> x;
     cout << "seno" << x << ": " << sen << endl;                  
     system("pause");
     return 0;
}      
      
                double a;
                a = x*PI/180;

Primer problema, me da error en 'a'.

Alguien me podria decir por que?


« Última modificación: 7 Abril 2012, 08:28 am por mmaikel » En línea

flony


Desconectado Desconectado

Mensajes: 583



Ver Perfil
Re: Programacion c++
« Respuesta #18 en: 7 Abril 2012, 17:38 pm »

una pregunta tonta...donde ves pi=3.1415 en esa serie?
ejemplo si quieres y según el grado de error que quieras en decimales (porque taylor es solo una aproximación a la función seno) vas a tener la cantidad de sumandos yo te di hasta 3, podes hacerla hasta el infinito si tenes ganas de complicarte la vida.
bueno en definitiva queres 6 sumandos n sera hasta 6 y vas cambiando en esa serie que da con uno que da con dos asi hasta llegar a seis, una vez echo eso quedara una funcion parecida a la que te di.....echo eso recien vas a poder usarla para poner el valor que quieras a x y te dara la aproximacion a seno....
Sin animo de ofender matematicas avanzadas muy poco cierto?
por otro lado
Código:
  double a;
                a = x*PI/180;
esta fuera de main por eso el error pero igual no es esa la formula que te piden
« Última modificación: 7 Abril 2012, 17:41 pm por flony » En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
david_BS

Desconectado Desconectado

Mensajes: 99



Ver Perfil WWW
Re: Programacion c++
« Respuesta #19 en: 7 Abril 2012, 19:39 pm »

para no estar haciendo continuamente  PI/180 mejor pongan 0.17 que es constante tmb, aunque sin demasiada precisión

algo así

Código:
#define PI 3.1415
#define pisobre180 0.17

para no tener que estar haciendo una divisón continuamente cada vez que se usa 0.17

EDIT: quise poner
Código:
#define pisobre180 0.17 


« Última modificación: 7 Abril 2012, 19:48 pm por david_BS » En línea

Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
algunas dudas en programacion BATCH(nuevo en esto de programacion)
Scripting
stock_C 8 8,995 Último mensaje 19 Junio 2009, 18:08 pm
por frank30
programacion web vs programacion de escritorio
Programación General
lupitapro 2 7,561 Último mensaje 29 Mayo 2010, 05:51 am
por Dreamaker
Programacion Estructurada Vs Programacion Orientada a Objetos
Programación General
79137913 3 8,126 Último mensaje 1 Junio 2011, 18:02 pm
por 79137913
Programación Rx
Programación General
yoldi 2 2,126 Último mensaje 7 Junio 2022, 22:12 pm
por yoldi
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines