140 likes | 272 Views
Introducción a la Programación “Ejercicios”. Semestre de Otoño 2006. Manuel Crisosto M., Claudio Gutiérrez S., Christian Vidal C. Algoritmos. Destrezas Esperadas Utilización de Matrices para resolver problemas. Utilización de cadenas en la solución de problemas. 1.Crear un algoritmo.
E N D
Introducción a la Programación“Ejercicios” Semestre de Otoño 2006 Manuel Crisosto M., Claudio Gutiérrez S., Christian Vidal C.
Algoritmos • Destrezas Esperadas • Utilización de Matrices para resolver problemas. • Utilización de cadenas en la solución de problemas.
1.Crear un algoritmo Dada una matriz de 5x5 y un vector de 5 elementos, verificar que el vector es un subconjunto de la matriz (todos los elementos del vector están en la matriz). Considere el arreglo y la matriz de tipo entero.
Algoritmo int arr[5],matriz[5][5], i, j, enc, k, es=1 // Suponemos que hemos ingresado los valores de // la matriz y del arreglo for(k=0;k<5 && es ;k=k+1) // ciclo que recorre el vector { for(i=0, enc=0;i<5 && es; i=i+1)//Ciclos que recorren la matriz { for(j=0;j<5 && es ;j=j+1) { if(arr[k]==matriz[i][j]) enc=1 // aquí se encontró el elemento else continue } } if(enc==0) // Nunca lo encontró es=0 // con esto decimos que no es subconjunto else continue } if(es==1) // significa que si es subconjunto printf(“El arreglo es un subconjunto”) else printf(“El arreglo no es subconjunto”)
2. Crear un algoritmo • Dadas dos matrices enteras de 4x4 sin elementos repetidos en cada matriz. Determinar cuán similares son las matrices. Las matrices son 100% similares si ambas matrices tienen todos sus elementos iguales, las matrices pueden estar desordenadas. Si las matrices tienen 8 elementos iguales tienen un 50% de similaridad.
Algoritmo int arr1[4], arr2[4],i, sim=0 // Suponemos que hemos ingresado los datos for(i=0; i<4 ;i=i+1) // ciclos de la primera matriz { for(j=0; j<4 ;j=j+1) { for(k=0;k<4;k=k+1)//ciclos para la 2° matriz { for(m=0;m<4;m=m+1) { if(arr1[i][j]==arr2[k][m]) sim=sim+1 else continue } } } } printf(“La similaridad de las matrices son”(sim/16)*100)
3. Crear un algoritmo • Crear un algoritmo que calcule el largo de una cadena ingresada por teclado. En lugar de usar scanf, podemos utilizar la funcion gets, para capturar cadenas
Algoritmo char cad[20] int i, largo printf(“ingrese su nombre”) gets(cad) for(i=0,largo=0;cad[i]=‘\0’;i=i+1) largo=largo+1 printf(“el largo de su nombre es”, largo)
4. Crear un algoritmo • Crear un algoritmo que cambie las vocales minúsculas por mayúsculas. Considere una cadena de tamaño 20.
Algoritmo char cad[20] int i // Aquí se han ingresado el arreglo for(i=0;cad[i]!=‘\0’ ;i=i+1) { if(cad[i]==‘a’) cad[i]=‘A’ else if(cad[i]==‘e’) cad[i]=‘E’ else if(cad[i]=‘i’) cad[i]=‘I’ else if(cad[i]=‘o’) cad[i]=‘O’ else if(cad[i]=‘u’) cad[i]=‘U’ else continue }
5. Crear un algoritmo • Crear un algoritmo que busque una cadena de tamaño 3 en una cadena de tamaño 9.
Algoritmo char cad3[3], cad9[9] int i, j, k, m, esta=0 // Aquí se han ingresado las cadenas for(i=0; cad3[i]=! ’\0’ && !esta;i=i+1) { for(j=0;cad9[j]=!’\0’&& !esta;j=j+1) { if(cad[i]==cad9[j]) { k=i+1,m=j+1,cont=1 // se usan var. auxiliares para recorrer // cont cuenta las coincidencias while((cad3[k]==cad9[m])&& cad3[k]!= ’\0’) cont=cont+1 if(cont==3) esta=1 else continue } } } if(esta==1) printf(“la cadena está”) esle printf(“la cadena no está”)
Conclusiones • Las cadenas siempre terminan con el elemento ‘\0’ • Podemos utilizar la función gets para capturar una cadena.