Hola soy nuevo y estoy programando el siguiente ejercicio.
Las cartas de la baraja española pueden representarse mediante un nú-
mero entre uno y cuarenta. En esta representación, las cartas del palo de
oros tendrán sus valores entre 1 y 10. Las del de copas entre 11 y 20, espadas
entre 21 y 30, y las de bastos entre 31 y 40. Dentro de cada palo, el primer
número corresponderá al as, el segundo al dos, y así sucesivamente hasta el
último que representa al rey.
Con esta representación, al seis de copas le corresponderá el 16, al caballo
de espadas el 29 y a la sota de bastos el 38.
Implementar un subprograma que pregunte al usuario un número entre 1
y 40 y escriba por pantalla la carta de la baraja y el palo al que corresponde
function devuelveCarta(n:integer):string;
var
aux:string;
unidad:integer;
begin
unidad:=n mod 10;
case unidad of
1:aux:='El As de';
8:aux:='La Sota de';
9:aux:='El Caballo de';
0:aux:='El Rey de';
else
aux:='El n de';
end;{end case}
case n of
1..10: devuelveCarta:=aux+'Oros';
11..20:devuelveCarta:=aux+'Copas';
21..30:devuelveCarta:=aux+'Espadas';
31..40:devuelveCarta:=aux+'Bastos';
end;{end case}
end;
Centrandome en la función en sí y de momento no validando la entrada y mostrando la salida, llevo esto, pero me acabo de dar cuenta de que en el primer case cuando entra al else realmente me escribre "El n de" y no si fuera n=8 "El 8 de" y nose como puedo luego concatenarlo con el 2ºcase sin ponerlo como una variable...
¿Alguíen me puede ayudar o dar alguna pista?
Gracias!