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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 [8] 9
71  Programación / Programación C/C++ / Re: Leer un char como float en: 24 Octubre 2012, 12:59 pm
Ya entiendo, pero me podrías decir en que biblioteca esta la función val?
72  Foros Generales / Foro Libre / Re: Destruccion de Agujeros Negros? en: 24 Octubre 2012, 00:14 am
yo creo que te aplastas
La pregunta no era que te pasaría al caer en un agujero negro, de hecho se sabe que morirías, ya que experimentarías una aceleración de miles de G, cuando el cuerpo humano solo puede soportar unas pocas (creo que el máximo esta en 10G).
El tema era sobre si el agujero negro desaparecería con el tiempo o estaría ahí eternamente. Según la ecuación que he posteado, un agujero negro desaparecería, pero tarda mucho. Un agugero negro que se fuera a evaporar en un tiempo igual al que lleva existiendo el Universo (13.5x109 años) tendría una masa de solo 1.7x1011kg (la masa de la Tierra es de 5.98x1024kg), de manera que los agujeros negros se pueden considerar eternos, a menos que sean muy pequeños.
73  Programación / Programación C/C++ / Re: Leer un char como float en: 23 Octubre 2012, 23:36 pm
Pero no quiero tener que escribirlo así, porque de esta manera no puedo calcular el radio de un AN de 1 kg, que puedo querer hacerlo. Además, quiero hacer esto para las masas de un protón, un átomo, la Tierra, Júpiter y el Sol, y tendría que reservar demasiadas variables. Lo que quiero es escribir Mt y que lea 5.98e24 (la masa de la Tierra) sin que tenga que reservar valores concretos que me podría interesar calcular.
74  Programación / Programación C/C++ / Leer un char como float en: 23 Octubre 2012, 22:38 pm
Hola, estoy haciendo un programa sencillo que calcula el radio de Schwarzschild entre otras cosas de un agujero negro a partir de la masa del agujero negro, pero quiero poder escribir Ms (por ejemplo) para no tener que escribir la masa del Sol y que al leer lo lea como float 1.9891e30.
Alguien podría explicarme como hacerlo?

la idea es escribir:

Código:
...
const long float G=6.67e-11,
                       c=3e8;
float m;
cin >> m;
r=2*G*m/(c*c);
...

Y que al escribir Ms cuando te pide la masa (m) el programa entienda que he escrito 1.9891e30

Gracias
75  Foros Generales / Foro Libre / Re: Destruccion de Agujeros Negros? en: 23 Octubre 2012, 17:17 pm
Se que este post ya está muerto, pero quiero dar la respuesta a la pregunta que se planteó inicialmente ya que no se llegó a dar. En ese momento aún era una conjetura, pero ya se ha demostrado que los agujeros negros pierden masa a través de la radiación de Hawking, basada en la teoría cuántica.
Según la teoría cuántica es posible que en el vacío se formen pares de partículas-antipartículas que, casi instantáneamente, se anulan mutuamente y desaparecen. Si esto sucede cerca de un agujero negro, existe la posibilidad de que una de estos partículas caiga en el agujero negro, provocando que la otra salga despedida a la velocidad de la luz en forma de radiación gamma. Cuando esto sucede (y se ha probado que es así), la partícula que cae en el agujero negro reacciona con una partícula del interior del agujero negro destruyéndola. De esta manera el agujero negro pierde masa. El tiempo que tarda en evaporarse un agujero negro es:
Código:
t_ev= 5120*π*√(ħ*G[sup]2[/sup]*m[sub]0[/sub][sup]3[/sup]/(ħ*c[sup]4[/sup])

donde π=3.1415926...,        pi
ħ=1.055*10-34, constante reducida de plank
G=6.67*10-11,  constante de gravitación universal
c=3*108,          velocidad de la luz

A mi me gusta la astrofísica, es lo que quiero estudiar, de manera que quería ayudar a los visitantes del foro que buscan respuesta a preguntas como estas.

Yo he creado un programa muy sencillo para calcular el radio de Schwarzschild, la temperatura en la superfície del agujero negro (horizonte de sucesos) y el tiempo que tardan en evaporarse.

Código:
 #include <cstdlib>
#include <iostream>
#include <cmath>
#include <cstdlib>

long double calcr (long double);
long double calcT (long double );
long double calct_ev (long double);
long double calcm ();
void mostrar ();
void mostraT ();
void mostrat_ev ();
void mostratot ();
void mostram ();
void error ();
void reiniciar ();

using namespace std;

int main ()
{inicio:
    unsigned int a;

cout << "Escriu 0 per calcular el radi de Schwarzschild  \n"
         << "Escriu 1 per calcular la temperatura a la superficie del forat negre \n"
         << "Escriu 2 per calcular el temps d'evaporacio \n"
         << "Escriu 3 per calcular-ho tot alhora \n"
         << "Escriu 4 per calcular la massa \n";
bucle1:
cin >> a;
switch (a)
{
        case 0: {
                 mostrar ();
                 break;
                }
        case 1: {
                 mostraT();
                 break;
                }
        case 2: {
                 mostrat_ev ();
                 break;
                }
        case 3: {
                 mostratot ();
                 break;
                }
        case 4: {
                 mostram ();
                 break;
                }
        default:
        {
            cout << "Nombre incorrecte \n";
            goto bucle1;
        }
}
reiniciar ();
}



void mostrar ()
{
long double m;
    cout << "Escriu la massa del forat negre: ";
cin  >> m;
cout << "El radi del forat negre mesura " << calcr (m) << " m" << "\n\n";
return;
}



void mostraT ()
{
     long double m;
     cout << "Escriu la massa del forat negre: ";
cin  >> m;
cout << "A la superficie del forat negre hi ha una temperatura de " << calcT (m) << " k" << "\n\n";
return;
}



void mostrat_ev ()
{
     long double m;
     cout << "Escriu la massa del forat negre: ";
cin  >> m;
cout << "El forat negre s'evaporara en " << calct_ev (m) << " anys" << "\n\n";
}



void mostratot ()
{
     long double m;
     cout << "Escriu la massa del forat negre: ";
cin  >> m;
cout << "El radi del forat negre mesura " << calcr (m) << " m" << endl;
cout << "A la superficie del forat negre hi ha una temperatura de " << calcT (m) << " k" << endl;
cout << "El forat negre s'evaporara en " << calct_ev (m) << " anys" << "\n\n";
return;
}



long double calcr (long double m)
{
     const long double G=6.67e-11,
                       c=3e8;
     return (2*G*m/(c*c));
}



long double calcT (long double m)
{
const long double c=3e8,
                  pi=3.1415926,
              h=1.034e-34,
              Kb=1.38e-23,
                G=6.67e-11;

return (h*c*c*c/(8*pi*G*m*Kb));
}


long double calct_ev (long double m)
{
const long double pi=3.1415926,
              G=6.67e-11,
              c=3e8,
              h=1.034e-34;

return (5120*pi*G*G*m*m*m/(h*c*c*c*c*31557600));
}



void mostram ()
{
unsigned int a;
long double r,
            T,
            t_ev,
                m;
const long double c=3e8,
          G=6.67e-11,
          pi=3.1415926,
          Kb=1.38e-23,
          h=1.034e-34;

cout << "\nEscriu 0 per calcular la masa a partir del radi de Schwarzschild, \n"
    << "\nEscriu 1 per calcular la masa a partir de la temperatura \n"
    << "\nEscriu 2 per calcular la masa a partir del temps d'evaporacio: ";
bucle2:
cin >> a;
switch (a)
{
case 0:
{
cout << "\nEscriu el radi de Schwarzschild: ";
cin >> r;
m=(r*c*c/(2*G));
cout << "La massa es " << m << endl;
break;
}
case 1:
{
cout << "\nEscriu la temperatura: ";
cin >> T;
            m=(h*c*c*c/(8*pi*G*Kb*T));
cout << "La massa es " << m << endl;
break;
}
case 2:
{
cout << "\nEscriu el temps d'evaporacio: ";
cin >> t_ev;
            m=(cbrt(t_ev*h*c*c*c*c*31557600/(5120*pi*G*G)));
cout << "La massa es " << m << endl;
break;
}
    default:
    {
             cout << "\nNumero incorrecto";
     goto bucle2;
    }
    }
}



void reiniciar ()
{
     int s;
     cout << "Escriu 0 per reiniciar el programa \n"
          << "Escriu 1 per sortir \n";
bucle3:
     cin  >> s;
     switch (s)
     {
            case 0:
                {
                    system ("CLS");
                    main ();
                }
            case 1: exit (0);
     }
}

76  Programación / Programación C/C++ / Re: Programa para resolver sistemas de ecuaciones hecho en C++ en: 21 Octubre 2012, 14:07 pm
Yo cambiaría un fragmento del código, la parte que has puesto

Código:
cin>>opcion;
while(opcion<1||opcion>2)
{
cout<<endl<<"Seleccione una opci\xA2n valida"<<endl;
cout<<"Opci\xA2n: ";
cin>>opcion;
}

yo lo escribiria con default. Si usas switch tienes la opcion de poner default que es para todas las opciones diferentes de las que has declarado con case:

Código:
case 1:
     ...
     break;
case 2:
     ...
     break;
default:
     cout<<endl<<"Seleccione una opci\xA2n valida"<<endl;
     cout<<"Opci\xA2n: ";
     cin>>opcion;
     break;

Creo que es mas cómodo trabajar así, porque si luego quieres modificar el código para incluir mas opciones te será mas facil. Ademas pondría los algoritmos de la resolución de los sistemas en funciones para que sea más legible el código.
77  Programación / Programación C/C++ / Re: Programa para la adivinación de un numero. en: 21 Octubre 2012, 13:56 pm
No me habia dado cuenta, tienes razón. Es que solo hace un mes que he empezado con la programación y lo hago todo de manera autodidacta, de manera que aún cometo muchos fallos graves, pero así se aprende, buscado nuevas salidas y aprendiendo de los errores  ;D
78  Programación / Programación C/C++ / Re: programa que muestre los números naturales mas pequeños que n en: 19 Octubre 2012, 22:04 pm
Si es usando solo while lo mas facil es

Código:
...
     int i=1;
     cin >> n;
     while i<=n;
     {
          cout << i;
          i++;
     }
...
79  Programación / Programación C/C++ / Re: Programa para la adivinación de un numero. en: 19 Octubre 2012, 20:06 pm
Justo antes del while deberias poner *i-=; y hacer que el bucle sea cuando los intentos restantes no sean 0.

Te quedaría así:
Código:
printf("Quedan %d intentos\n", *i); 
i-=;
}
}
while(*i!=0);
80  Programación / Programación C/C++ / Re: programa que muestre los números naturales mas pequeños que n en: 19 Octubre 2012, 19:52 pm
También puedes hacer el bucle con while. De la manera en que lo he hecho yo te salen los numeros por orden ascendente (Aunque se puede invertir facilmente)

Código:
#include <iostream>

using namespace std;

int main ()
{
    int n,
        i=1;
    cin  >> n;
    do
    {
         cout << endl << i;
         i++;
    }while (i<n);
    cin >> n;
    return 0;
}

Páginas: 1 2 3 4 5 6 7 [8] 9
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines