• Domingo 22 de Diciembre de 2024, 22:35

Autor Tema:  Ayuda Please !  (Leído 1467 veces)

franc

  • Miembro MUY activo
  • ***
  • Mensajes: 157
    • Ver Perfil
Ayuda Please !
« en: Martes 20 de Enero de 2004, 21:58 »
0
Mira tengo estos "codigos" y necesito construir 3 programas ( uno para cada codigo ) que demuestre que ese codigo funciona correctamente, es decir que hay que usar cada codigo.

Yo se lo que hace ( vamos creo que lo se ) pero a la hora de trabajar con el codigo consigo "demostrar" que funciona.

Se supone que los 2 codigos comparan cadenas de forma similar a como lo hace la funcion strcmp()


Si alguien me puede ayudar se lo agradecere ;)

Código: Text
  1.  
  2.  
  3. int compara1 (char *cad1, char *cad2)
  4. {
  5. register int i;
  6. for (i = 0; cad1[i]; i++) if (cad1[i] - cad2[i]) return (cad1[i] - cad2[i]);
  7. return 0;
  8. }
  9.  
  10.  

Código: Text
  1.  
  2. int compara2 (char *cad1, char *cad2)
  3. {
  4. char *p1, *p2;
  5. p1 = cad1;
  6. p2 = cad2;
  7. while (*p1) {
  8. if (*p1 - *p2) return (*p1 - *p2);
  9. else {
  10. p1++;
  11. p2++;
  12. }
  13. }
  14. return 0;
  15. }
  16.  
  17.  

Código: Text
  1.  
  2. int compara3 (char *cad1, char *cad2)
  3. {
  4. char *p1, *p2;
  5. p1 = cad1;
  6. p2 = cad2;
  7. for (; *p1; p1++, p2++) if (*p1 - *p2) return (*p1 - *p2);
  8. return 0;
  9. }
  10.  
  11.  
  12.  


gracias

dreadlock

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Ayuda Please !
« Respuesta #1 en: Miércoles 21 de Enero de 2004, 01:45 »
0
Hola, espero haber entendido, quieres aplicar esos 3 codigos uno en cada programa, eso es facil, tenemos el primero


Código: Text
  1.  
  2. //
  3. //este programa compara dos cadenas
  4. //la funcion compara regresa 0 si son iguales
  5. #include <stdio.h>
  6. #include <conio.h>
  7.  
  8. int compara1 (char *cad1, char *cad2){
  9. register int i;
  10. for (i = 0; cad1[i]; i++)
  11. if (cad1[i] - cad2[i])
  12. return (cad1[i] - cad2[i]);
  13. return 0;}
  14.  
  15. int main(){
  16. int y;
  17. char *text1,*text2;
  18. clrscr();
  19. printf("Compara cadenas");
  20. printf("Ingresa la cadena 1: ");
  21. fflush(stdin);
  22. gets(text1);
  23. printf("\nIngresa la cadena 2: ");
  24. fflush(stdin);
  25. gets(text2);
  26. printf("\n------------------------------------->");
  27. y=compara1(text1,text2);
  28. if(y==0)
  29. printf("\n Las cadenas son iguales");
  30. if(y<0||y>0)
  31. printf("\n Las cadenas son distintas");
  32. getche();
  33. return (0);
  34. }
  35.  
  36.  

Y asi deberas hacer con las otras 2 funciones, como veras no es dificil, solo debes poner atencion en que valor regresa la funcion si es igual y desigual, espero que esto te ayude para las otras dos,
UN intento de explicar lo inezplicable:D

shephiroth

  • Miembro activo
  • **
  • Mensajes: 30
    • Ver Perfil
Re: Ayuda Please !
« Respuesta #2 en: Miércoles 21 de Enero de 2004, 13:07 »
0
Buenas. Lo unico que debes de tener claro en esas funciones porque "se sale un poco de lo normal" por asi decirlo, el la resta de caracteres. En una resta, por ejemplo "a"-"H" lo que ocurre es que pasa ambas cadenas a numeros mediante la tabla ascii, y de esa forma puede realizar la resta.  Sabiendo eso el ejercicio te debería resultar facilón ^_^

franc

  • Miembro MUY activo
  • ***
  • Mensajes: 157
    • Ver Perfil
Re: Ayuda Please !
« Respuesta #3 en: Jueves 22 de Enero de 2004, 15:55 »
0
ya lo he entendido, muchas gracias ;)