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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [ayuda] duda con una variable en C.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [ayuda] duda con una variable en C.  (Leído 3,268 veces)
fer_fer_73

Desconectado Desconectado

Mensajes: 14



Ver Perfil
[ayuda] duda con una variable en C.
« en: 2 Marzo 2011, 00:26 am »

hola, buenas tardes, no entiendo por que en este final ponen en la funcion void carga a int* como parametro, ya que es la cantidad de articulos, segun dice ahi, y ademas d eso si me pueden decir si estan bien declaradas las variables segun el final, porque para mi estan bien, pero tuve un problema con otro final que el error que me marcaba era que a no estaba definida... muchas gracias a los que contesten!

el final esta en este link:   http://img42.imageshack.us/i/img112d.jpg/ 

Código:
#include <stdio.h>

struct productos {
       int cod_a; /*articulo*/
       char modelo[10];
       char descripcion[200];
       float precio;
       long cod_p; /*proveedor*/
       nom_p[30];};
       
       void carga (struct productos[], int*);
       void ordenar (struct productos[], int*, int);
       void mostrar (struct productos[], int*, char[]);
       .............. buscar (struct productos[], int*, char[]);   /*no se que va en lo que retorna*/
       char* modificar (struct productos[], int*, int);
       
       main()
       {
             struct productos a[49];
             .
             .
             .
             .
             } 


En línea

con el rock en las venas...
Oblivi0n


Desconectado Desconectado

Mensajes: 392

Odio las ranas.


Ver Perfil
Re: [ayuda] duda con una variable en C.
« Respuesta #1 en: 2 Marzo 2011, 00:57 am »

Eso son los prototipos de las funciones, lo que declara es un parametro del tipo int*, es decir un puntero a un int


En línea

fer_fer_73

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Re: [ayuda] duda con una variable en C.
« Respuesta #2 en: 2 Marzo 2011, 01:12 am »

gracias por contestarme, antes que nada, pero mi duda no es que es, eso lo se, lo que no entiendo es por que no es directamente int, ya que un numero nomas, y te pediria que me digas si esta bien el struct, el arreglo a, los prototipos y que va en el retorno que no puse.. (acuerdo al final).
En línea

con el rock en las venas...
anonimo12121


Desconectado Desconectado

Mensajes: 1.813


Ver Perfil WWW
Re: [ayuda] duda con una variable en C.
« Respuesta #3 en: 2 Marzo 2011, 01:41 am »

que quieres retornar un int? pues int buscar. y asi con lo que sea incluso structuras creo.
En línea

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746
fer_fer_73

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Re: [ayuda] duda con una variable en C.
« Respuesta #4 en: 2 Marzo 2011, 02:19 am »

que quieres retornar un int? pues int buscar. y asi con lo que sea incluso structuras creo.

retorna un puntero a la estructura, esta bien si pongo struct productos*  en el retonrno??

me podrias decir por favor, de acuerdo al final, si estan bien los prototipos y bien declarado el arreglo a?
En línea

con el rock en las venas...
ryan parker

Desconectado Desconectado

Mensajes: 81



Ver Perfil
Re: [ayuda] duda con una variable en C.
« Respuesta #5 en: 2 Marzo 2011, 03:06 am »

Creo que el mejor tipo seria void.

Bien seria el tipo void por que es un tipo generico que puede representar cualquier tipo de dato, entonces si lo parametros formales son de tipos diferentes, entonces deben devolver a un tipo generico en este caso el tipo void.

Creo que hay otras maneras de devolver valores sin hacer uso de void, mm con operadores cast, bien esto si no se, asi que espero que algun guru nos ilumine :)
 
Bueno por lo demas no estoy muy avanzado para poder opinar  :silbar:

Saludos
En línea

Your kung-fu is not strong!
N0body

Desconectado Desconectado

Mensajes: 95


Ver Perfil
Re: [ayuda] duda con una variable en C.
« Respuesta #6 en: 2 Marzo 2011, 12:52 pm »

La verdad que en el enunciado, por más que el profesor trata de ser lo más detallista posible, se presta a ciertas ambigüedades. Además debo aclarar que detesto cuando tratan de "programar a los programadores" (diciendole como tienen q hacer el código, en vez de dandole la descripcion de la entrada y la relación la la salida) xD

-Al parecer según veo, los argumentos para tus funciones están en el orden en que los nombra en el enunciado.
Además no es sólo en la función carge que pasas la cantidad de articulos como puntero a int, sino en el resto de las funciones que requieren ese dato.
En primer lugar, pensé que quizás la función carga podría modificar la cantidad, en este caso es importante que pases el puntero a la variable, para tener acceso a la variable que pasas como argumento desde el main y no tener una simple "copia" de ella... Espero que lo entiendas, sino, repasa un poco esto:
Código
  1. void fun1 (int a)
  2. {
  3. a++;
  4. return;
  5. }
  6. void fun2 (int *a)
  7. {
  8. (*a)++;
  9. return;
  10. }
En el primer caso paso el valor de un entero, y la modificacion no influye sobre la variable que le paso dede el main (o en donde se llame a fun1). En el segundo paso la direccion y modifico el valor del entero a donde esa direccion apunta, osea que la modificacion es efectiva en la variable con la que trabajo en el main.
Entonces convenimos en esto: si quieres modificar la variable, pasa el puntero a dicha variable... xD Pero creo que no necesitas modificar el valor de la cantidad, así que no sé para que... Si, como dices tu sería mejor pasar el valor (un int directamente). Igualmente no sé de donde sacaste esos prototipos, en el enunciado no están...

-Las variables las declaras bien, no usas variables globales como la consigna bien aclara que no hay que usar. Pero declaras 49 variables del tipo "struct productos", cuando necesitas 50, en las cadenas de caracteres dentro de la definicion de la estructura no tienes problemas con esto... Creo que la confusion viene por este lado:
Cuando hacés
Código
  1. int a[20]
declaras 20 variables int, que serán nombradas desde a[0] hasta a[19]. Yo antes, cuando empecé a programar, pensaba que haciendo int a[19] declarabas 20 variables...

-En la definición de la esctructura no pones el tipo de "nom_p[30]", que como leí en el enunciado debería ser una cadena de caracteres...

-La función buscar, según el enunciado devuelve todos los datos del producto... Justamente aclara (y aca el error de muchos estudiantes) que no muestra dichos datos... Por que? porque a veces vamos a tener que buscar un producto no para mostrar sus datos, sino para trabajar con ellos...Como son muchos datos (todos los de la estructura), puedes hacer varias cosa:
a)devolver un entero, que sea la posicion de la estructura buscada en el array.
b)devolver un puntero a la estructura encontrada (ahí estaría bien hacer "struct producto *").
c)devolver una estructura "struct producto" que sea la estructura encontrada.
La mejor opcion a mi criterio es la "a", ya que con ese dato podés determinar todos los otros. Si tienes un puntero a la estructura en verdad también porque hacés la diferencia entre éste y el puntero q apunta al principio de la estructura y te da la posición en la lista, pero es complicarse sin mucho sentido. Por ultimo, la opción "b" no te brinda información alguna sobre en que posición se encuentra, simplemente te pasa los datos del producto, pero como la consigna dice simplemente esto, no creo que esté mal...

Lo leí muy a la ligera, probablemente me olvide de más cosas, así que revisalo vos...
En línea

fer_fer_73

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Re: [ayuda] duda con una variable en C.
« Respuesta #7 en: 2 Marzo 2011, 15:03 pm »

La verdad que en el enunciado, por más que el profesor trata de ser lo más detallista posible, se presta a ciertas ambigüedades. Además debo aclarar que detesto cuando tratan de "programar a los programadores" (diciendole como tienen q hacer el código, en vez de dandole la descripcion de la entrada y la relación la la salida) xD

-Al parecer según veo, los argumentos para tus funciones están en el orden en que los nombra en el enunciado.
Además no es sólo en la función carge que pasas la cantidad de articulos como puntero a int, sino en el resto de las funciones que requieren ese dato.
En primer lugar, pensé que quizás la función carga podría modificar la cantidad, en este caso es importante que pases el puntero a la variable, para tener acceso a la variable que pasas como argumento desde el main y no tener una simple "copia" de ella... Espero que lo entiendas, sino, repasa un poco esto:
Código
  1. void fun1 (int a)
  2. {
  3. a++;
  4. return;
  5. }
  6. void fun2 (int *a)
  7. {
  8. (*a)++;
  9. return;
  10. }
En el primer caso paso el valor de un entero, y la modificacion no influye sobre la variable que le paso dede el main (o en donde se llame a fun1). En el segundo paso la direccion y modifico el valor del entero a donde esa direccion apunta, osea que la modificacion es efectiva en la variable con la que trabajo en el main.
Entonces convenimos en esto: si quieres modificar la variable, pasa el puntero a dicha variable... xD Pero creo que no necesitas modificar el valor de la cantidad, así que no sé para que... Si, como dices tu sería mejor pasar el valor (un int directamente). Igualmente no sé de donde sacaste esos prototipos, en el enunciado no están...

-Las variables las declaras bien, no usas variables globales como la consigna bien aclara que no hay que usar. Pero declaras 49 variables del tipo "struct productos", cuando necesitas 50, en las cadenas de caracteres dentro de la definicion de la estructura no tienes problemas con esto... Creo que la confusion viene por este lado:
Cuando hacés
Código
  1. int a[20]
declaras 20 variables int, que serán nombradas desde a[0] hasta a[19]. Yo antes, cuando empecé a programar, pensaba que haciendo int a[19] declarabas 20 variables...

-En la definición de la esctructura no pones el tipo de "nom_p[30]", que como leí en el enunciado debería ser una cadena de caracteres...

-La función buscar, según el enunciado devuelve todos los datos del producto... Justamente aclara (y aca el error de muchos estudiantes) que no muestra dichos datos... Por que? porque a veces vamos a tener que buscar un producto no para mostrar sus datos, sino para trabajar con ellos...Como son muchos datos (todos los de la estructura), puedes hacer varias cosa:
a)devolver un entero, que sea la posicion de la estructura buscada en el array.
b)devolver un puntero a la estructura encontrada (ahí estaría bien hacer "struct producto *").
c)devolver una estructura "struct producto" que sea la estructura encontrada.
La mejor opcion a mi criterio es la "a", ya que con ese dato podés determinar todos los otros. Si tienes un puntero a la estructura en verdad también porque hacés la diferencia entre éste y el puntero q apunta al principio de la estructura y te da la posición en la lista, pero es complicarse sin mucho sentido. Por ultimo, la opción "b" no te brinda información alguna sobre en que posición se encuentra, simplemente te pasa los datos del producto, pero como la consigna dice simplemente esto, no creo que esté mal...

Lo leí muy a la ligera, probablemente me olvide de más cosas, así que revisalo vos...



Muchisimas gracias Nobody por todo lo que escribiste, lo del a[49] tenes razon, me confundi, con respecto a lo de los prototipos los hice yo, no estan en el final y queria saber si estan bien. Lo del tipo de nom_p me olvide de ponerlo jaja  seria char*..

otra vez muchas gracias! te re jugaste che!  ;-)
En línea

con el rock en las venas...
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda con formulario y variable PHP
PHP
Red Mx 3 2,031 Último mensaje 23 Diciembre 2006, 18:29 pm
por Red Mx
Duda con comillas y variable
Programación Visual Basic
demoniox12 4 2,079 Último mensaje 10 Diciembre 2007, 09:31 am
por SKL (orignal)
Duda con variable Archivos de Programa
Programación Visual Basic
musicaward 2 5,508 Último mensaje 25 Febrero 2009, 22:33 pm
por Dessa
Duda sobre variable
.NET (C#, VB.NET, ASP)
_CrisiS_ 5 3,063 Último mensaje 30 Enero 2011, 04:21 am
por _CrisiS_
Duda con variable
Scripting
pity0926 2 2,135 Último mensaje 12 Abril 2011, 14:34 pm
por pity0926
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines