Hola, soy nuevo en este foro y nuevo en el mundo de la programación, estoy algo desesperado. Me han recomendado este foro, así que voy a probar suerte. Muchas gracias a todos
Tengo este código en Java, y necesito que sea en lenguaje C, con ese lenguaje C empezar a hacer unos ejercicios. Estoy muy perdido.
public class descomp {
private double l;
private int N;
private int t;
//numeros aleatorios
private Random rnd=new Random();
public Radiactivo(double l, int N) {
this.l=l;
this.N=N;
t=0;
}
public int getnumero(){return N;}
public int evolucion(int dt){
int N1;
for(int k=0; k<dt; k++){
N1=0;
for(int i=0; i<N; i++){
if(rnd.nextDouble()<l) N1++;
}
N-=N1;
}
t+=dt;
return N;
}
}
Ya que eres nuevo en el foro, te avisaré de que no se hacen tareas. Esto no va de que tu pones tus códigos o tus ejercicios y nosotros te los hacemos. El foro sirve para cuando tienes una duda concreta y a ser posible tienes que poner tus avances para que podamos orientarte mejor.
Java como ya sabrás o deberías saber está totalmente orientado a objetos por lo que es obligatorio crear una clase para tu programa. C, en cambio, no está orientado a objetos (no tiene clases) aunque tiene un "apaño" que son la estructuras (struct). No conviertas cada clase de Java en un struct de C porque no tiene sentido, vas a tener que pensar un poco si deberías crearla o no.
PD: Otra característica de un struct es que todos sus campos son públicos por defecto. No se pueden establecer como privados.
Y para crear un número aleatorio en C se utiliza el siguiente código:
#include <stdlib.h> // Para las funciones rand() y srand()
#include <time.h> // Para la funcion time()
int main(){
// Se establece una semilla que es como un generador de numeros aleatorios.
// Una semilla con un valor x siempre genera los mismos numeros aleatorios en cada ejecucion.
// Para que sea mas aleatorio se usa time(NULL) para usar la hora del sistema y que cambie con cada ejecucion.
srand(time(NULL));
int numeroAleatorio = rand();
// El numero aleatorio esta entre 0 y la constante RAND_MAX.
printf("Numero aleatorio entre %d y %d: %d", 0, RAND_MAX, numeroAleatorio);
// Para obtener un numero entre [a, b):
numeroAleatorio = a + rand() % (b-a);
// Para obtener un numero entre [a, b]:
numeroAleatorio = a + rand() % (b-a+1);
}
Dicho esto que creo que es lo más diferente entre Java y C, el resto son bucles y operaciones aritméticas básicas que tienes que poder hacerlo tú solo.
Suerte.
Cita de: Deivid_Math en 1 Mayo 2020, 09:52 AM
Hola, soy nuevo en este foro y nuevo en el mundo de la programación, estoy algo desesperado.
Porque tambien he estado perdido y desesperado con la fisica :xD...y porque igual en este momento no tengo nada mejor que hacer.
Eso si, como ya te dijeron, no esperes llegar siempre para que te resuelvan las tareas :rolleyes:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int evolucion(int dt, int N, int t, float l);
int main()
{
float l = 0.0;
int N = 0;
int t = 0;
srand(time(0));
return 0;
}
int evolucion(int dt, int N, int t, float l)
{
int N1;
for(int k = 0; k < dt; k++)
{
N1=0;
for(int i = 0; i < N; i++)
{
if(((float)rand() / RAND_MAX) < l)
{
N1++;
}
}
N -= N1;
}
t += dt;
return N;
}
Muchas gracias por las respuestas, si estoy desesperado por la Física, pero es lo que tiene estar 30 días con fiebre y dolores por todo el cuerpo, y ahora al menos me puedo sentar delante delante del ordenador.
Repito, muchas gracias, ahora espero seguir yo solo.
Saludos