Ejercicios de Arreglos y Funciones “En C”

Preview:

DESCRIPTION

Ejercicios de Arreglos y Funciones “En C”. Semestre de Otoño 2006. Claudio Gutiérrez-Soto. Destrezas Esperadas. Solucionar un problema utilizando funciones, sin preocuparse de su implementación. Utilizar algunas funciones incorporadas en C, para el manejo de cadenas. Ejercicios 1. - PowerPoint PPT Presentation

Citation preview

Ejercicios de Arreglos y Funciones“En C”

Semestre de Otoño 2006

Claudio Gutiérrez-Soto

Destrezas Esperadas

Solucionar un problema utilizando funciones, sin preocuparse de su implementación.

Utilizar algunas funciones incorporadas en C, para el manejo de cadenas

Ejercicios 1

Crear una función que cuente cuántas palabras tiene una cadena. La cadena puede estar separada por espacios, puntos y puntos y comas.

Solución 1

int CuentaPalabras(char arreglo[]){ int i,cont; for(i=0,cont=0,pal=0; arreglo[i]!=‘\0’;i++) if(arreglo[i]!=‘ ‘ && arreglo[i]!=‘.’ && arreglo[i]!=‘;’) pal++; else if(pal!=0) { cont++; pal=0; } else continue;

if(pal!=0) return(cont+1); else return(cont);}

Ejercicio 2

Crear una función que calcule la transpuesta de una matriz de 5x5:

Ejemplo, de una matriz de 3x3

a b c a d g

d e f = b e h

g h i c f i

Solución 2

void Traspuesta(int matriz[][5])

{ int MatAux[5][5],i,j;

for(i=0;i<5;i++)

for(j=0;j<5;j++)

MatAux[j][i]=matriz[i][j];

for(i=0;i<5;i++) for(j=0;j<5;j++) matriz[i][j]=MatAux[i][j];

}

Ejercicio 3

Crear una función que determine si dos arreglos contienen los mismos elementos. Considere que los arreglos pueden estar desordenados. Los arreglos pueden ser de cualquier tamaño.

Solución 3int VerificaIguales(int arr1[], int arr2[],int indice)

{ int i,j,encontrado,stop;

for(i=0,stop=0;i<indice && !stop;i++)

{ for(j=0,encontrado=0;j<indice && !encontrado;j++)

if(arr1[i]==arr2[j])

encontrado=1;

else continue;

if(encontrado==0)

stop=1;

else continue;

}

return(!stop);

}

Ejercicio 3

Crear una función que determine si una cadena es una subcadena de otra cadena.

Solución 3int SubCadena(char cad[], char Sub[])

{ int i,LCad,LSub; char CadAux[20];

LCad=largo(cad);

LSub =largo(Sub);

if(LSub<=LCad)

{ for(i=0;cad[i]!=‘\0’;i++)

if(cad[i]==Sub[0])

{ Copiar_Iesimo(cad,i,CadAux);

if(Comparar(CadAux,Sub))

return(1);

else continue;;

}

else continue;

return(0);

}else return(0);

}