• Lunes 29 de Abril de 2024, 04:22

Autor Tema:  Conjuntos, Busqueda E Impresion De Elementos  (Leído 951 veces)

dark_1

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Conjuntos, Busqueda E Impresion De Elementos
« en: Miércoles 10 de Octubre de 2007, 03:04 »
0
Saludos!
Bueno, recurro al foro por la razon que no se me ocurre (y dios google no me ayuda mucho tampoco) cómo guardar varias palabras en un mismo tipo

Me explico; la idea del programa es la igualdad de conjuntos, le pido al usuario que ingrese 2 elementos y que el programa muestre en pantalla los Conjuntos que cumplen con tener a ambos elementos

-El problema que tengo, es que los conjuntos deben tener solo palabras como elementos, es decir;
Código:
Conjunto A = Casa, Auto, Calle 29...
Conjunto B = Calle 29, Auto, Llaves, Mouse...

Lo que está en el code no tengo idea como hacerlo, intente con la libreria string.h, pero no me permite guardar mas de 1 frase.

-Ya, Si se logrará guardar los conjuntos como esta mostrado arriba, como lo haria para que el programa buscara los elementos tal que exista(n) algun(os) conjunto(s) que cumpla(n) con lo pedido, y los imprima en pantalla?
Hay una funcion en la libreria string.h que se llama "strncmp" que compara la igualdad de dos palabras, y le asigna valor numerico igual a cero si son iguales.

Porfavor, El que pueda ayudarme con lo que pueda, estaria muy agradecido.

Cualquier ayuda sirve, si saben de alguna libreria que quizas podria servir, posteenla y la estudiare, pero porfavor ayudenme, busque en dios google varias librerias y la string.h me parece la mas adecuada.

Disculpen si rompi alguna regla con postear acá la pregunta, o si me extendi demasiado

Uso el dev-c++ 4.9.9.2 y tengo intel pentium 4 y el lenguaje a programar es C

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: Conjuntos, Busqueda E Impresion De Elementos
« Respuesta #1 en: Miércoles 10 de Octubre de 2007, 18:25 »
0
Es muy simple, vas por buen camino, no necesitas ninguna libreria extra aparte de string.h, solo necesitas declarar una matriz de cadenas de la siguiente manera:

Código: Text
  1.  
  2. char ConjuntoA[3][20] = { "Casa", "Auto", "Calle 29"};
  3. char Elemento[20] = "Casa";
  4.  
  5.  

y entonces ya puedes hacer hacer la comparacion de las cadenas:

Código: Text
  1.  
  2.  if (strcmp(ConjuntoA[i], Elemento) == 0)
  3.  
  4.  

Con esta informacion supongo que ya podras hacer lo demas. Solo ten cuidado de declarar suficiente espacio para el tamaño de tus cadenas (en este caso, yo use tamaño 20) y suficiente espacio para el total de elementos (en este caso 3, pero si utilizas 10, por ejemplo, solo cambia el 3 por el 10

Saludos 8)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

dark_1

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Conjuntos, Busqueda E Impresion De Elementos
« Respuesta #2 en: Miércoles 10 de Octubre de 2007, 20:09 »
0
ohh, gracias, parece que va saliendo

Código: Text
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include<windows.h>
  4.  
  5. int main(){
  6.     char Conjunto A[3][20] = { "Camion", "Viana", "Calle 29"};
  7.     char Conjunto B[3][20] = { "vina", "alvares", "choca"};
  8.     char Elemento1[20];
  9.     char Elemento2[20];
  10.     gets(Elemento1);
  11.     gets(Elemento2);
  12.     int i;
  13.     for(i=0;i<3;i++){
  14.     if (strcmp(Conjunto A[i], Elemento1) == 0){
  15.     for(i=0;i<3;i++){
  16.                      if (strcmp(Conjunto A[i], Elemento2) == 0)
  17.                                            printf("Conjunto A cumple \n");
  18.                                            
  19.                      }
  20.                                        }
  21.                      }
  22.    
  23.  
  24.  
  25.    
  26.        system("pause");
  27.    return 0;
  28. }
  29.  

ahora solo tengo que hacer este bucle "N veces" donde N es el numero de conjuntos

Código: Text
  1. for(i=0;i<3;i++){
  2.     if (strcmp(Conjunto A[i], Elemento1) == 0){
  3.     for(i=0;i<3;i++){
  4.                      if (strcmp(Conjunto A[i], Elemento2) == 0)
  5.                                            printf("Conjunto A cumple\n");
  6.                                            
  7.                      }
  8.                                        }
  9.                      }
  10.  



Alguna idea mas optima?
Gracias por la ayuda, entendi en el instante...