Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ayuda con programa en C

Estas en el tema de Ayuda con programa en C en el foro de C/C++ en Foros del Web. Hola, me han propuesto entregar un ejercicio para esta tarde puntuable en el que no entiendo ni lo que me piden ... espero que alguien ...
  #1 (permalink)  
Antiguo 13/05/2010, 05:52
 
Fecha de Ingreso: abril-2010
Ubicación: Galicia
Mensajes: 11
Antigüedad: 14 años, 7 meses
Puntos: 0
Ayuda con programa en C

Hola, me han propuesto entregar un ejercicio para esta tarde puntuable en el que no entiendo ni lo que me piden ... espero que alguien me pueda ayudar, porque no sé como empezar para resolverlo.

Hay que usar la función malloc.
Y la estructura complejo

typedef struct
{
double real;
double imag;
}
complejo;

El programa tiene que integrar lo siguiente:

int main ()
void llenavalores(complejo*x, int n)
void ver(complejo*x, int n=

La función llenavalores llena aleatoriamente los campos real e imag de las n variables x[0]...x[n-1].
Se puede llenar cada campo con el valor de (double) (rand()%100)/(double)100

La función ver permite visualizar lso valores de las n variables de tipo complejo.
Se pide la salida por pantalla con este formato:
printf("x[%i]=(%.2lf, %.2lf)\n", k, x[k].real, x[k].imag);

La función main pregunta al usuario e numero de variables de tipo complejo que va a utilizar, invoca a malloc y a llenavalores. Invoca la función ver para observar las variables v[0]...v[n-1].

El programa es ese, más o menos lo entiendo, pero me perdí algo con el tema de punteros y me cuesta arrancar y claro no sé como empezar...

Espero que alguien me pueda ayudar, gracias.
  #2 (permalink)  
Antiguo 13/05/2010, 09:02
 
Fecha de Ingreso: enero-2008
Mensajes: 229
Antigüedad: 16 años, 9 meses
Puntos: 1
Respuesta: Ayuda con programa en C

cuando entras a la funcion llenavalores debes hacer lo siguiente

x = (Carta*)malloc(sizeof(Carta)*n);

y acesar a cada uno de los miembro de la estructura con el operador -> en lugar del operador .
  #3 (permalink)  
Antiguo 31/05/2010, 11:04
Avatar de donyoyo  
Fecha de Ingreso: mayo-2010
Ubicación: Chile
Mensajes: 31
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ayuda con programa en C

estimado, aca un propuesto de codigo:

#include <stdlib.h>

struct complejo
{
double real;
double imag;
};

struct complejo *x;

int cantidad;


void llenavalores(struct complejo *x, int n)
{
int k;

for(k=0;k<n;k++)
{
x[k].real=(double)(rand()%100)/(double)100;
x[k].imag=(double)(rand()%100)/(double)100;
}
}

void ver(struct complejo *x, int n)
{
int k;

for(k=0;k<n;k++)
printf("x[%i]=(%.2lf, %.2lf)\n", k+1, x[k].real, x[k].imag);
}

int main(int argc, char **argv)
{
if (argc > 1)
{
cantidad=atoi(argv[1]);
printf("Se creara un vector de %d posiciones\n",cantidad);
}
else
{
cantidad=10;
printf("No se definio Cantidad, se creara un vector de 10 posiciones\n");
}

srand(atol(argv[2]));

printf("Asignando memoria para %d bytes\n",cantidad*sizeof(struct complejo));

x=(struct complejo*)realloc(x,sizeof(struct complejo)*cantidad);

printf("Llenando %ld vectores\n",cantidad);
llenavalores(x, cantidad);

printf("Mostrando %ld vectores\n",cantidad);
ver(x,cantidad);
}

la idea es ejecutarlo asi:

complejos 20
eso te creara dinamicamente un arreglo de 20 posiciones, y utilizara rand para rellenar

si ejecutas:

complejos 20 30
el treinta es para iniciar semilla al rand y no repetir siempre los mismo pseudo numeros

Última edición por donyoyo; 31/05/2010 a las 11:09

Etiquetas: programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:56.