From 19034a1b781e06a991c84174038d0093a0de55ba Mon Sep 17 00:00:00 2001 From: Manuel Vergara Date: Sun, 2 Jun 2024 19:51:39 +0200 Subject: [PATCH] Update PR4 --- fundamentos-programacion/PR4/README.md | 73 ++++++++++++++++++++++++-- 1 file changed, 68 insertions(+), 5 deletions(-) diff --git a/fundamentos-programacion/PR4/README.md b/fundamentos-programacion/PR4/README.md index eb3162a..d315e3c 100644 --- a/fundamentos-programacion/PR4/README.md +++ b/fundamentos-programacion/PR4/README.md @@ -6,8 +6,8 @@ - [PR 3](#pr-3) - [17. Esquemas de recorrido y búsqueda](#17-esquemas-de-recorrido-y-búsqueda) - [17.1. Aprocimación intuitiva](#171-aprocimación-intuitiva) - - [17.1.1. Ejemplo 1](#1711-ejemplo-1) - - [17.1.2. Ejemplo 1](#1712-ejemplo-1) + - [17.1.1. Ejemplo temperatura media](#1711-ejemplo-temperatura-media) + - [17.1.2. Ejemplo](#1712-ejemplo) - [17.2. Esquema de recorrido](#172-esquema-de-recorrido) - [17.3. Esquema de búsqueda](#173-esquema-de-búsqueda) - [17.3.1. Ejemplo](#1731-ejemplo) @@ -26,9 +26,9 @@ Un esquema es una especie de plantilla que nos permite solucionar un tipo de pro 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 +#### 17.1.1. Ejemplo temperatura media -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: +Vamos a calcular 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 @@ -76,15 +76,78 @@ int main(int argc, char** argv) { ``` -#### 17.1.2. Ejemplo 1 +#### 17.1.2. Ejemplo +Cargamos los datos de una tabla de recaudaciones de una sala de cine a partir de lo leído por el canal de entrada estándar. +```alg +const + MAX_THEATERS: integer = 20; + END_SEQ: real = -1.0; +end const + +type + tTheater = record + collect: vector[MAX_THEATERS] real; + numTheaters: integer; + end record +end type + +action fillTable(inout movieTheater:tTheater); + + var + i: integer; + temp: real; + end var + + temp:= readReal(); {We read the first value} + movieTheater.numTheaters:= 0; + + while temp ≠ END_SEQ do + movieTheater.numTheaters:= movieTheater.numTheaters + 1; + movieTheater.collect[movieTheater.numTheaters]:= temp; + temp:= readReal(); + end while + +end action +``` + +```c +#include +#define END_SEQ -1 +#define MAX_THEATERS 20 + +typedef struct { + float collect[MAX_THEATERS]; + int numTheaters; +} tTheater; + +void fillTable(tTheater *movieTheater) { + /* var definition */ + int i; + float temp; + + /* table initialization */ + temp = 0; + movieTheater->numTheaters = 0; + scanf("%f", &temp); /* read the first value */ + + /* iteration while the read number is not -1 */ + while (temp != END_SEQ) { + /* Save the read number in the table */ + movieTheater->collect[movieTheater->numTheaters] = temp; + movieTheater->numTheaters = movieTheater->numTheaters + 1; + scanf("%f", &temp); + } +} +``` ### 17.2. Esquema de recorrido + ### 17.3. Esquema de búsqueda