• Lunes 29 de Abril de 2024, 04:07

Autor Tema:  Re: como hacer una tabla con array??  (Leído 2336 veces)

kurko

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
    • http://www.kurko.tk
Re: como hacer una tabla con array??
« en: Domingo 20 de Abril de 2003, 00:53 »
0
necesito saber como hacer una tabla con arrays.
la idea es mas o menos esto
nombre|  apellido | edad
pedro   |  flores    |  26    
juan     | perez     |  27    

y ke cada nombre, apellido y edad sea un elemento del vector.
ayudenme porfa.
gracias!!

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: como hacer una tabla con array??
« Respuesta #1 en: Domingo 20 de Abril de 2003, 01:07 »
0
:comp:
sabes...para los que nos tomamos el trabajo de ayudar con las preguntas...es importante saber si te sirvio de ayuda o no.... por favor nunca dejes un tema en blanco, si fue concluido o sirvio, o no sirvio, por favor documentalo para que todos sepan si lo que se hizo esta bien , o hay que implementar otra cosa... es desagradable trabajar sobre un problema y aunque no es necesario recibir agradecimjeintos, por lo menos poderce uno enterar que sucedio con el problema.
:bad:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: como hacer una tabla con array??
« Respuesta #2 en: Domingo 20 de Abril de 2003, 01:27 »
0
con respecto al arrai de vectores:

esta es una alternativa, aunque puedes tener otras:
debes tener en cuenta que solicitaste una tabla, asi que latabla es un contendor de otros tipos de dato, entonces definimos una estructura asi:
 
Código: Text
  1.  
  2. struct tabla
  3. {
  4.    char nombre[20];
  5.    char apellido[20];
  6.    int edad[2];
  7. }
  8.  
  9.  

2-una vez definido el tipo, creamos una variable del tipo struct tabla:

struct tabla MiTabla;

y para acceder a los campos de este registro hacemos:

MiTabla.Nombre="Juank";
MiTabla.Apellido="KnauJ";
MiTabla.edad=23;

y asi se hace, sin embargo solo trienes un registro, asi que es mejor hacerlo asi, para meter cuantos registros querramos:

 
Código: Text
  1.  
  2. struct tabla  *MiTabla;/*un apuntador a memoria que contiene un tipo de dato tabla*/
  3. MiTabla=(struct tabla *) malloc(sizeof(struct tabla));/*pedimos una direccion de
  4.  memoria que apunte a un segmento del
  5. tamaño de struct tabla, y la asignamos a
  6. nuestro apuntador*/
  7.  
  8. /*accesamos a los datos asi:, es diferente porque ahora son apuntadores*/
  9. /*el operador '-->' se puede leer... tabla que apunta a...*/
  10. MiTabla->Nombre="Juank";
  11. MiTabla->Apellido="KnauJ";
  12. MiTabla->edad=23;
  13. /*sin embargo para enlazr con el
  14. siguiente miembro de la lista es mejor
  15. incluir en la estructura, por lo menos el
  16. campo siguiente, para poder hacer esto:*/
  17.  
  18. struct tabla *aux;
  19. aux=(struct tabla *) malloc(sizeof(struct tabla));
  20. MiTabla->siguiente=aux;/* se lee mi tabla
  21.  en su campo siguiente apunta a aux...ver
  22.  respuesta de la pregunta anterior para
  23. mas detalles*/.
  24.  
  25.  
O  T  R  A      F  O  R  M  A  

/*guardar 20 campos de cada uno, en el
caso de nombre y apellido, cada campo
es capaz de guardar informacion de 20 caracteres*/
char nombre[20][20];
char apellido[20][20];
int edad[20];
/*aqui ya tienes una tabla de 20 filas y
tres columnas, solo tienes tantas filas
como decidas al momento de la creacion
de la variable : queda asi:

     nombre   apellido    edad
1
2
3
4
5
.
.
.
20  

espero que esto haya solucionado tu pregunta.

juank
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

kurko

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
    • http://www.kurko.tk
Re: como hacer una tabla con array??
« Respuesta #3 en: Domingo 20 de Abril de 2003, 01:36 »
0
gracias!!
y disculpa por haber dejado el tema anterior sin respuesta.

hice esto y no me funciona, si puedes, revisalo.
la idea es llenar los vectores, en este caso con 2 nombres y 2 apellidos.
 luego hacer un switch para buscar por nombre o por apellido.
por favor, revisalo.
gracias

#include <stdio.h>
main ()
{
int eleccion;
int i=0;
char n[2][10];
char a[2][10];
char nombre[10];
char apellido[10];
printf("ningrese su nombre: ");     // llenamos los vectores//
scanf("%s",&n[0]);
printf("ningrese su apellido: ");
scanf("%s",&a[0]);
printf("ningrese su nombre: ");
scanf("%s",&n[1]);
printf("ningrese su apellido: ");
scanf("%s",&a[1]);
printf("nelije 1 para buscar por nombre, 2 por apellido, 3 para salir:");
scanf("%d",&eleccion);
switch (eleccion)                  //menu de buskeda
{
case 1:printf("ningrese nombre a buscar:");        //buscar por nombre
       scanf("%s",&nombre);
       while(n=nombre && n!=NULL,i++)
            {
             printf("%s, %s",n,a);
            }
            break;
case 2:printf("ingrese apellido a buscar:");
       scanf("%s",&apellido);
       while(a=apellido && a!=NULL,i++)
            {
             printf("%s, %s",n,a);
            }
case 3: break;
default: break;
}
}

kurko

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
    • http://www.kurko.tk
Re: como hacer una tabla con array??
« Respuesta #4 en: Domingo 20 de Abril de 2003, 01:47 »
0
cuando compilo lo ke en el mensaje anterior puse, me aparece lo siguiente.:

c:>gcc-o prueba prueba.c
prueba.c: In function `main':
prueba.c:24: incompatible types in assignment
prueba.c:31: incompatible types in assignment

que significa eso??
gracias :good:

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: como hacer una tabla con array??
« Respuesta #5 en: Domingo 20 de Abril de 2003, 05:59 »
0
este error se debe especificamente a esto:

while(n=nombre && n!=NULL,i++)

si te fijas estas asignando con = en vez de comparar con ==, te pasa en las dos ocasiones que lo usas.


Una vez los corrijas te van a salir estos errores:

lista.c(24) Warning:  comparison of distinct pointer types lacks a cast
lista.c(31) Warning:  comparison of distinct pointer types lacks a cast

y es porque
while(n==nombre && n!=NULL,i++)

si te fijas compararias n  que es tipo char *, con nombre, que tambien lo es..
pues bien , en c no puedes comparar asi los datos, lo que debes hacer es compararlos uno a uno en cada una de sus posiciones, por suerte para ti ya existen las funciones que hacen esto, y son:.....(estas son del djgpp, la mayoria estaran tambien en otros compiladofres, pero no lo garantizo)
strcat
strchr
strcmp
strcoll
strcpy
strcspn
strdup
stricmp
strncasecmp
strncat
strncmp
strncpy
strnicmp
strpbrk
strrchr
strsep
strspn
strupr
strxfrm

todas sirven para cosas diferentes, para comparar, para comparar sin tener en cuenta mayusculas y minusculas, para concatenar, para conseguir subcadenas de una cadena, para convertir de mayus a minus, viceversa,  etc, etc...

si tuviese

char a [10], b[30];
...
...
if (strcmp(a,b)==0)//son iguales
{
}
else
{
}

asi que debes de rediseñar tu programa para implementar estas funciones, recuerda que si tienes
char a [5][10];
char b[12];

tendrias que hacer algo como

strcmp(a[1],b);... segun lo que vayas a comparar.

suerte
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

kurko

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
    • http://www.kurko.tk
Re: como hacer una tabla con array??
« Respuesta #6 en: Domingo 20 de Abril de 2003, 23:55 »
0
nuevamente, gracias juanka!! :good:

kurko

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
    • http://www.kurko.tk
Re: como hacer una tabla con array??
« Respuesta #7 en: Lunes 21 de Abril de 2003, 00:13 »
0
juanka

donde puedo encontral informacion sobre ke hacen especificamente estas funciones??

strcat
strchr
strcmp
strcoll
strcpy
strcspn
strdup
stricmp
strncasecmp
strncat
strncmp
strncpy
strnicmp
strpbrk
strrchr
strsep
strspn
strupr
strxfrm

desorden

  • Miembro activo
  • **
  • Mensajes: 57
    • Ver Perfil
Re: como hacer una tabla con array??
« Respuesta #8 en: Lunes 21 de Abril de 2003, 01:54 »
0
desorden

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: como hacer una tabla con array??
« Respuesta #9 en: Lunes 21 de Abril de 2003, 02:39 »
0
por lo general tu compilador la dabe tener, si es el turboc o el djgpp, bastara con predionar F! sobre la palabra clave para que te muestre los encabezados necesarios, los datos que necesitan, los datos que devuelven y po supuesto un ejemplo, con el Visual C++ , talñ vez a travez de msdn library, o con el Visual Studio.NET con actyivar la ventana de ayuda dinamoca y colocar el cursos sobre la palabra clave, funcion, etc, etc, esta ayuda se modificara y te mostrara links a la diferente dopcumentcion y o ejemplos que puedas necesitar, por supuesto quue esta documentacio queda instalada con vs.net...

he subido la documentacion de libc para el djgpp e esta direccion:

http://juank-solocodigo.iespana.es

no olvides que te sirve, porque en general estos parametros no deberian cambiar de un compilador a otro, salvo que sean funciones propias del compilador.

Suerte.

Juank:lightsabre:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

kurko

  • Miembro activo
  • **
  • Mensajes: 33
    • Ver Perfil
    • http://www.kurko.tk
como hacer una tabla con array??
« Respuesta #10 en: Miércoles 23 de Abril de 2003, 00:30 »
0
gracias por todo
me sirvio mucho.
kurko:good: