[ Foro de Pascal ]

Ayuda con una duda! - Cardinal

29-Apr-2015 19:56
Invitado (Christian Guzmán)
1 Respuestas

Hola a todos...
Estudiando en un libro me encontré con unos ejemplos en pascal, y entiendo unas cosas del lenguaje, pero no he podido entender que significa MAX(CARDINAL) en el siguiente código:
Lo que no entiendo es cuales son los valores que compara para encontrar el MAX, porque hay varias cosas declaradas CARDINAL...
Agradezco su ayuda, un saludo!


CONST n = ...; (* num. tipos de monedas distintos del sistema *)
L = ...; (* cantidad a conseguir *)
TYPE TIPOMONEDA = ARRAY[1..n] OF CARDINAL;
VECTOR = ARRAY[0..L] OF CARDINAL;


PROCEDURE Cambio(VAR C:VECTOR;L,n:CARDINAL;VAR T:TIPOMONEDA):CARDINAL;

VAR i,j:CARDINAL;

BEGIN
C[0]:=0;
FOR i:=1 TO n DO

FOR j:=1 TO L DO

IF (i=1) AND (j<T[i]) THEN

C[j]:=MAX(CARDINAL)

ELSIF i=1 THEN

C[j]:=1+C[j-T[1]]

ELSIF j>=T[i] THEN

C[j]:=Min2(C[j],1+C[j-T[i]])

(* ELSE C[j] no se modifica *)

END
END;
END;

RETURN C[L]

END Cambio;


 


30-Apr-2015 15:00
Nacho Cabanes (+83)

El tipo "cardinal" es un entero sin signo que permiten algunos compiladores.

En general, podrías reemplazarlo por "integer" sin problemas en la mayoría de compiladores, o por "word" si los valores no son muy grandes y tu compilador permite de tipo de datos, o por "longint". Si van a ser valores grandes.

En cuanto a "Max(Cardinal)", en Turbo Pascal y Free Pascal se podría reemplazar por "maxint" (máximo valor aceptable para un entero).






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)