Introducción a la Programación “Ejercicios”
description
Transcript of Introducción a la Programación “Ejercicios”
![Page 1: Introducción a la Programación “Ejercicios”](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814e47550346895dbbc7c2/html5/thumbnails/1.jpg)
Introducción a la Programación“Ejercicios”
Semestre de Otoño 2006
Manuel Crisosto M., Claudio Gutiérrez S.,
Christian Vidal C.
![Page 2: Introducción a la Programación “Ejercicios”](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814e47550346895dbbc7c2/html5/thumbnails/2.jpg)
Algoritmos
Destrezas Esperadas
Utilización de Matrices para resolver problemas.
Utilización de cadenas en la solución de problemas.
![Page 3: Introducción a la Programación “Ejercicios”](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814e47550346895dbbc7c2/html5/thumbnails/3.jpg)
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.
![Page 4: Introducción a la Programación “Ejercicios”](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814e47550346895dbbc7c2/html5/thumbnails/4.jpg)
Algoritmoint 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”)
![Page 5: Introducción a la Programación “Ejercicios”](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814e47550346895dbbc7c2/html5/thumbnails/5.jpg)
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.
![Page 6: Introducción a la Programación “Ejercicios”](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814e47550346895dbbc7c2/html5/thumbnails/6.jpg)
Algoritmoint 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)
![Page 7: Introducción a la Programación “Ejercicios”](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814e47550346895dbbc7c2/html5/thumbnails/7.jpg)
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
![Page 8: Introducción a la Programación “Ejercicios”](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814e47550346895dbbc7c2/html5/thumbnails/8.jpg)
Algoritmochar cad[20]int i, largoprintf(“ingrese su nombre”)gets(cad)for(i=0,largo=0;cad[i]=‘\0’;i=i+1) largo=largo+1printf(“el largo de su nombre es”, largo)
![Page 9: Introducción a la Programación “Ejercicios”](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814e47550346895dbbc7c2/html5/thumbnails/9.jpg)
4. Crear un algoritmo
Crear un algoritmo que cambie las vocales minúsculas por mayúsculas. Considere una cadena de tamaño 20.
![Page 10: Introducción a la Programación “Ejercicios”](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814e47550346895dbbc7c2/html5/thumbnails/10.jpg)
Algoritmochar 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 }
![Page 11: Introducción a la Programación “Ejercicios”](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814e47550346895dbbc7c2/html5/thumbnails/11.jpg)
5. Crear un algoritmo
Crear un algoritmo que busque una cadena de tamaño 3 en una cadena de tamaño 9.
![Page 12: Introducción a la Programación “Ejercicios”](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814e47550346895dbbc7c2/html5/thumbnails/12.jpg)
Algoritmochar cad3[3], cad9[9]int i, j, k, m, esta=0// Aquí se han ingresado las cadenasfor(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á”)
![Page 13: Introducción a la Programación “Ejercicios”](https://reader036.fdocuments.es/reader036/viewer/2022082411/56814e47550346895dbbc7c2/html5/thumbnails/13.jpg)
Conclusiones
Las cadenas siempre terminan con el elemento ‘\0’
Podemos utilizar la función gets para capturar una cadena.