Ejercicio 2.b - Esquemas de recorrido y búsqueda · Fundamentos de Programación UOC Juny 2022

Tema: Esquemas de recorrido y búsqueda sobre tablas · Del examen Juny (2022)

Enunciado

Ejercicio 2 (20% del total). Lectura y diseño de algoritmos sobre tablas y registros

Se dispone de las siguientes estructuras de datos y de la definición del subprograma mysteryAction:

const

MAX_VIDEOGAMES: integer = 100;

end const

type

tAgeCategories = {AGE3, AGE12, AGE18}

{ Rangos: AGE3 (3 a 11 años), AGE12 (12 a 17 años) y AGE18 (18 o más años) }

tVideoGame = record

title: string;

price: real; { importe en euros }

recommendedAge: tAgeCategories;

end record

tVideoGamesTable = record

nVideoGames: integer;

vGamesSummary: vector[MAX_VIDEOGAMES] of tVideoGame;

end record

end type

action mysteryAction(in games: tVideoGamesTable,

out res1: integer, out res2: integer, out res3: integer)

var

i: integer;

end var

res1:= 0;

res2:= 0;

res3:= 0;

for i:= 1 to games.nVideoGames do

if games.vGamesSummary[i].recommendedAge = AGE3 then

res1:= res1 + 1;

else

if games.vGamesSummary[i].recommendedAge = AGE12 then

res2:= res2 + 1;

else

res3:= res3 + 1;

end if;

end if;

end for

end action

b.

Modifica el cuerpo de la acción para que, conservando el cálculo de las categorías, determine e imprima en la salida estándar el nombre o título del artículo que posea el coste económico más alto.

Si coincidieran varios títulos con el mismo precio tope, debe presentarse el primero que figure en el vector. Se puede dar por sentado que la estructura de entrada contiene como mínimo un registro de videojuego.

Enunciado: Ejercicio 2.b - Esquemas de recorrido y búsqueda · Fundamentos de Programación UOC Juny 2022

Solución

Según los criterios oficiales de corrección

b. Modifica el cuerpo de la acción para que, conservando el cálculo de las categorías, determine e imprima en la salida estándar el nombre o título del artículo que posea el coste económico más alto.

Solución: ```pseudocode action mysteryAction(in games: tVideoGamesTable, out res1: integer, out res2: integer, out res3: integer) var i: integer; posMax: integer; costeMax: real; end var { Inicialización de los contadores de categorías } res1 := 0; res2 := 0; res3 := 0; { Inicialización del seguimiento de precio tope } posMax := 1; costeMax := games.vGamesSummary[1].price; for i := 1 to games.nVideoGames do { Comprobación de precio más alto con estricto menor } if costeMax < games.vGamesSummary[i].price then posMax := i; costeMax := games.vGamesSummary[i].price; end if; { Distribución por grupos de edad recomendada } if games.vGamesSummary[i].recommendedAge = AGE3 then res1 := res1 + 1; else if games.vGamesSummary[i].recommendedAge = AGE12 then res2 := res2 + 1; else res3 := res3 + 1; end if; end if; end for { Notificación por la salida estándar } writeString("Most expensive videogame:"); writeString(games.vGamesSummary[posMax].title); end action ```

La explicación paso a paso, hecha con IA, es Premium. Premium

Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.

‹ Ejercicio 2.b · Juny 2022 · Pregunta 2 · 2018 ›

Más ejercicios de Esquemas de recorrido y búsqueda sobre tablas