diff --git a/fundamentos-programacion/PR4/README.md b/fundamentos-programacion/PR4/README.md index 99717a2..eb3162a 100644 --- a/fundamentos-programacion/PR4/README.md +++ b/fundamentos-programacion/PR4/README.md @@ -16,17 +16,64 @@ ## 17. Esquemas de recorrido y búsqueda +Ya hemos visto las estructuras secuencial, alternatica e iterativa, con esto, ya podemos resolver cualquier problema. Ahora vamos a ver esquemas de recorrido y búsqueda, que son una especie de patrones o estructuras predeterminadas para diseñar algoritmos de manera más sistemática y ganar en eficiencia y fiabilidad. +Un esquema es una especie de plantilla que nos permite solucionar un tipo de problema específico con adaptaciones a cada caso concreto. Un ejemplo de aplicación de esquemas de recorrido y búsqueda es para resolver problemas de tratamiento de secuencias de manera más eficiente y sistemática. ### 17.1. Aprocimación intuitiva - +La idea es que, en lugar de ir a ciegas, sigamos un esquema de recorrido o búsqueda que nos permita ir avanzando de manera sistemática y eficiente. Por ejemplo, si tenemos que recorrer una matriz, podemos hacerlo por filas o por columnas, o si tenemos que buscar un elemento en una lista, podemos hacerlo de manera secuencial o binaria. #### 17.1.1. Ejemplo 1 +Vamos a calular la temperatura media de todo el año suponiendo que vamos leyendo por el canal de entrada las temperaturas medias de cada día: +```alg +algorithm averageTemp + var + temperature: real; + average: real; + i: integer; + end var + + i:= 0; + average:= 0; + + while i < 365 do + temperature:= readReal(); + average:= average + temperature; + i:= i + 1; + end while + + write(average / 365.0); + +end algorithm +``` + +```c +#include + +int main(int argc, char** argv) { + float temperature; + float average; + int i; + + i = 0; + average = 0; + + while (i < 365) { + scanf("%f", &temperature); + average = average + temperature; + i = i + 1; + } + + printf("%f\n", average / 365.0); + + return 0; +} +``` #### 17.1.2. Ejemplo 1