Ejercicio 2.b · Fundamentos de Programación UOC Juny 2022

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

Enunciado

A partir de la definición de tipos y la acción que se presentan a continuación:

const

MAX_SALES: integer = 20;

end const

type

tSale = record

sellPrice: real; { importe de venta en euros }

costPrice: real; { importe de coste en euros }

end record

tSaleTable = record

nSales: integer; { total de ventas registradas }

salesSummary: vector[MAX_SALES] of tSale; { lista de ventas }

end record

end type

action mysteryAction(in sales: tSaleTable, out res1: integer, out res2: real)

var

i: integer;

end var

res1:= 0;

res2:= 0.0;

for i:= 1 to sales.nSales do

if sales.salesSummary[i].sellPrice < sales.salesSummary[i].costPrice then

res1:= res1 + 1;

res2:= res2 + (sales.salesSummary[i].costPrice - sales.salesSummary[i].sellPrice);

end if

end for

end action

b. Modificad las sentencias de mysteryAction para que, además de lo que ya realiza, obtenga el beneficio neto acumulado por el conjunto de todas las ventas recogidas en la tabla y muestre dicho valor final por pantalla. Se define el beneficio de una venta como la resta entre el precio de venta ( sellPrice) y el precio de coste ( costPrice). Podéis partir del supuesto de que el registro contiene como mínimo una venta.

Enunciado: Ejercicio 2.b · Fundamentos de Programación UOC Juny 2022

Solución

Según los criterios oficiales de corrección

b. Modificad las sentencias de mysteryAction para que, además de lo que ya realiza, obtenga el beneficio neto acumulado por el conjunto de todas las ventas recogidas en la tabla y muestre dicho valor final por pantalla.

Solución: ```pseudocode action mysteryAction(in sales: tSaleTable, out res1: integer, out res2: real) var i: integer; beneficioTotal: real; end var res1 := 0; res2 := 0.0; beneficioTotal := 0.0; for i := 1 to sales.nSales do if sales.salesSummary[i].sellPrice < sales.salesSummary[i].costPrice then res1 := res1 + 1; res2 := res2 + (sales.salesSummary[i].costPrice - sales.salesSummary[i].sellPrice); end if beneficioTotal := beneficioTotal + (sales.salesSummary[i].sellPrice - sales.salesSummary[i].costPrice); end for writeString("El beneficio total obtenido es: "); writeReal(beneficioTotal); 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 - Esquemas de recorrido y búsqueda… · Juny 2022 · Ejercicio 2.b - Esquemas de recorrido y búsqueda · Juny 2022 ›

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