Sei sulla pagina 1di 2

JOSE BERMUDEZ GONZALEZ.

GRUPO MEDIANO 3.

1- ENUNCIADO.

Analisis y diseno de la funcion es_sufijo.

2- DATOS DE ENTRADA.

Se incuiran dos datos en la llamada a la funcion:

-char *cadena: Se pasa a la funcion una cadena con la palabra original a la que se
le va a buscar el sufijo. Este dato es tipo char.
-char *sufijo: Se le pasa a la funcion una cadena que contiene el sufijo en la
cadena principal. Este dato es tipo char.

3- RESULTADOS O SALIDA.

Despues de procesar ambas cadena, la funcion es sufijo devolvera un 1 en caso de


que el sufijo pertenezca a la cadena original o un 0 si no pertenece. Esto se puede
hacer de dos formas: con un return 1 o return 0 dependiendo del resultado o creando
una variable entera (ej: int resultado;) a la que asignarle el valor y devolverla
al acabar la funcion.

4- DATOS AUXILIARES.

Necesitaremos un total de 4 datos auxiliares.


-una variable entera i inicializada a 0 para el bucle for.
-una variable tipo char de nombre aux que nos ayudara a a guardar el final de la
cadena principal. Tendra el mismo tamano que la cadena sufijo.
-una variable entera con nombre final que nos ayudara en el bucle. Tendra de tamano
el mismo tamano que la cadena principal.
-una variable entera de nombre j inicializada a la resta entre la variable final
menos la longitud de la cadena sufijo. Esta variable nos ayudara como contador
dentro del bucle.

5- DESCRIPCION DEL ALGORITMO.

Con este algoritmo queremos si en una cadena introducida en la main, hay o no un


sufijo introducido posteriormente tambien en la main. Para ello pasamos ambas
cadenas a la funcion es_sufijo y declaramos las 4 variables descritas en el
apartado anterior.
Una vez hecho eso, iremos recorriendo la cadena principal desde el final hacia al
principio(de derecha a izquierda) e iremos almacenando los caracteres en la
variable auxiliar. El numero de iteraciones esta definido por el tamano que tenga
la cadena sufijo.
Una vez hecho el bucle y con la variable aux completada, mediante la funcion strstr
incluida en la biblioteca string.h, compararemos las cadenas aux y sufijo. Si son
iguales o distintas de NULL devolveremos un 1 (esto querra decir que el sufijo
pertenece a la cadena principa), en caso contrario, devolveremos un 0.

6- PSEUDOCODIGO DEL ALGORITMO.

Declaramos como entero i<-0.


Declaramos como cadena aux<-[tamano de la cadena sufijo].
Declaramos como entero final<-tamano de la cadena principal.
Declaramos como entero j<-final-tamano de la cadena sufijo.
i<-1
para i desde i hasta el tamano de la cadena sufijo paso 1 hacer:
igualar la cadena aux en la posicion i a cadena en la posicion j.
aumento j en 1.
fin_para.

si la funcion strstr con las variables aux y sufijo es distinta de null:


devolvemos 1.
fin_si.

si_no
devolvemos 0.
fin si.

Potrebbero piacerti anche