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.

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 ›