Ejercicios de Arreglos y Funciones En C Semestre

  • Slides: 12
Download presentation
Ejercicios de Arreglos y Funciones “En C” Semestre de Otoño 2006 Claudio Gutiérrez-Soto

Ejercicios de Arreglos y Funciones “En C” Semestre de Otoño 2006 Claudio Gutiérrez-Soto

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

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

Ejercicios 1 n Crear una función que cuente cuántas palabras tiene una cadena. La

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

Solución 1 int Cuenta. Palabras(char arreglo[]) { int i, cont, pal; for(i=0, cont=0, pal=0;

Solución 1 int Cuenta. Palabras(char arreglo[]) { int i, cont, pal; for(i=0, cont=0, pal=0; arreglo[i]!=‘’; i++) { if(arreglo[i]!=‘ ‘ && arreglo[i]!=‘. ’ && arreglo[i]!=‘; ’) pal++; // Aquí vamos contando los caracteres de una palabra else if(pal!=0) { cont++; // aquí contamos las palabras pal=0; } else continue; } if(pal!=0) return(cont+1); else return(cont); }

Ejercicio 2 n Crear una función que copie de una cadena a otra a

Ejercicio 2 n Crear una función que copie de una cadena a otra a partir del i-ésimo elemento.

Solución 2 void Copiar. Iesimo(char cadena. Dest[ ], int iesimo , char cadena. O[

Solución 2 void Copiar. Iesimo(char cadena. Dest[ ], int iesimo , char cadena. O[ ]) { int i, j=0; for(i=iesimo; cadena. O[i]!='' ; i++, j++) cadena. Dest[j]=cadena. O[i]; cadena. Dest[j]=''; }

Ejercicio 3 n Crear una función que calcule transpuesta de una matriz de 5

Ejercicio 3 n Crear una función que calcule transpuesta de una matriz de 5 x 5: Ejemplo, de una matriz de 3 x 3 abc adg def= beh ghi c f i la

Solución 3 void Traspuesta(int matriz[][5]) { int Mat. Aux[5][5], i, j; for(i=0; i<5; i++)

Solución 3 void Traspuesta(int matriz[][5]) { int Mat. Aux[5][5], i, j; for(i=0; i<5; i++) for(j=0; j<5; j++) Mat. Aux[j][i]=matriz[i][j]; for(i=0; i<5; i++) for(j=0; j<5; j++) matriz[i][j]=Mat. Aux[i][j]; } Observe que aquí no es necesario dejar explícito la primera dimensión de una matriz. De hecho un en un vector multidimensional, la primera dimensión nunca se expresa

Ejercicio 4 n Crear una función que determine si dos arreglos contienen los mismos

Ejercicio 4 n 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 4 Fíjese que cuando hablamos de vectores (no de cadenas), es necesario recibir

Solución 4 Fíjese que cuando hablamos de vectores (no de cadenas), es necesario recibir como parámetro la dimensión del arreglo int Verifica. Iguales(int arr 1[], int arr 2[], int N) { int i, j, encontrado, stop; for(i=0, stop=0; i<N && !stop; i++) { for(j=0, encontrado=0; j<N ; j++) { if(arr 1[i]==arr 2[j]) encontrado=1; else continue; } if(encontrado==0) stop=1; else continue; } return(!stop); }

Ejercicio 5 n Crear una función que determine si una cadena es una subcadena

Ejercicio 5 n Crear una función que determine si una cadena es una subcadena de otra cadena. Si la cadena de menor tamaño es una subcadena, entonces la función retorna 1, sino 0.

Solución 5 int Sub. Cadena(char cad[], char Sub[]) { int i, LCad, LSub; char

Solución 5 int Sub. Cadena(char cad[], char Sub[]) { int i, LCad, LSub; char Cad. Aux[20]; LCad=largo(cad); LSub =largo(Sub); if(LSub<=LCad) { for(i=0; cad[i]!=‘’; i++) if(cad[i]==Sub[0]) { Copiar_Iesimo(cad, i, Cad. Aux); if(Comparar(Cad. Aux, Sub)) return(1); else continue; ; } else continue; return(0); }else return(0); }