View
43
Download
0
Category
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);
}
Recommended