Sei sulla pagina 1di 3

Título: Evaluación semántica de fórmulas categóricas de forma típica,

según la Lógica Clásica, por medio de universos ad-hoc, matrices


boooleanas 1-D representativas y algoritmos computacionales
conexos.
Autor: Sergio M. Estrin.
Fecha: 12/01/2011.

Consideraremos para el caso un hipotético universo ad-hoc de 9 individuos


nominados con las "etiquetas" o labels 0, 1, 2, ... ,9 , y las clases S(ujeto) y
P(redicado), tales que cada una de las entidades indicadas puede pertenecer
a S, o a P, sólamente, a ambos S y P o también a ninguno de ellos, es decir
a SNP, NSP, SP o NSNP. Estas "pertenencias" serán traducidas o modeliza-
das mediante sendos boolean arrays: S-array y P-array, los cuales almacena-
rán un 1 como constante lógica true en las posiciónes del valor numérico co-
rrespondientes a cada individuo que sea miembro de la clase indicada, y un 0,
constate lógica false, en caso contrario. Estos "vectores" serán generables de
manera randómica (aleatoria) o bien en modo "prefijado", y en ambas situa-
ciones es posible la verificación de los resultados obtenidos por los progra-
mas mediante la construcción de los diagramas de Venn asociados.
Las fórmulas categóricas de forma típica que trataremos, con sus respectivas
letras tradicionales identificatorias son: A: Todo S es P [Universal
Afirmativa],
E: Ningún S es P [Universal Negativa], I: Algùn S es P [Particular Afirmativa],
y O: Algún S no es P [Particular Negativa].

/* Programa en seudocódigo que permite obtener el valor de verdad de


/* A: Todo S es P [Universal Afirmativa], a partir de los vectores lógicos
/* S-array (0 to 9), y P-array (0 to 9).

dim boolean S-array (0 to 9), P-array (0 to 9)


short integer Indice /* short integer = entero corto
string Individuo /* string = cadena de caracteres
/*Generación de S-array(Indice); Indice = 0, 1, 2, ... ,9
/*Generación de P-array(Indice); Indice = 0, 1, 2, ... ,9
for Indice = 0 to 9; +1
Individuo = trim(str(Indice))
/* str() convierte de tipo numérico a cadena, y trim() elimina los espacios
/* en blanco a izquierda y/o derecha de la cadena que pudieran haberse
/* producido durante la conversión.
if (S-array(val(Individuo)) then
/* val() devuelve el valor numérico de Individuo
if (P-array(val(Individuo) then
else
exit for /* salir del bucle for / end for
end if
else
end if
next Indice /* end for
if (Indice > 9) then
Print "A: Todo S es P :: Verdadera"
else
Print "A: Todo S es P :: Falsa"
end if
/* Fin del Programa

/* Programa en seudocódigo que permite obtener el valor de verdad de


/* E: Ningún S es P [Universal Negativa], a partir de los vectores lógicos
/* S-array (0 to 9), y P-array (0 to 9).
dim boolean S-array (0 to 9), P-array (0 to 9)
short integer Indice /* short integer = entero corto
string Individuo /* string = cadena de caracteres
/*Generación de S-array(Indice); Indice = 0, 1, 2, ... ,9
/*Generación de P-array(Indice); Indice = 0, 1, 2, ... ,9
for Indice = 0 to 9; +1
Individuo = trim(str(Indice))
/* str() convierte de tipo numérico a cadena, y trim() elimina los espacios
/* en blanco a izquierda y/o derecha de la cadena que pudieran haberse
/* producido durante la conversión.
if (S-array(val(Individuo)) then
/* val() devuelve el valor numérico de Individuo
if (P-array(val(Individuo) then
exit for /* salir del bucle for / end for
else
end if
else
end if
next Indice /* end for
if (Indice > 9) then
Print "E: Ningún S es P :: Verdadera"
else
Print "E: Ningún S es P :: Falsa"
end if
/* Fin del Programa

/* Programa en seudocódigo que permite obtener el valor de verdad de


/* I: Algún S es P [Particular Afirmativa], a partir de los vectores lógicos
/* S-array (0 to 9), y P-array (0 to 9).

dim boolean S-array (0 to 9), P-array (0 to 9)


short integer Indice /* short integer = entero corto
string Individuo /* string = cadena de caracteres
/*Generación de S-array(Indice); Indice = 0, 1, 2, ... ,9
/*Generación de P-array(Indice); Indice = 0, 1, 2, ... ,9
for Indice = 0 to 9; +1
Individuo = trim(str(Indice))
/* str() convierte de tipo numérico a cadena, y trim() elimina los espacios
/* en blanco a izquierda y/o derecha de la cadena que pudieran haberse
/* producido durante la conversión.
if (S-array(val(Individuo)) then
/* val() devuelve el valor numérico de Individuo
if (P-array(val(Individuo) then
exit for /* salir del bucle for / end for
else
end if
else
end if
next Indice /* end for
if (Indice < 9 or Indice = 9) then
Print "I: Algún S es P :: Verdadera"
else
Print "I: Algún S es P :: Falsa"
end if
/* Fin del Programa

/* Programa en seudocódigo que permite obtener el valor de verdad de


/* O: Algún S no es P [Particular Negativa], a partir de los vectores lógicos
/* S-array (0 to 9), y P-array (0 to 9).
dim boolean S-array (0 to 9), P-array (0 to 9)
short integer Indice /* short integer = entero corto
string Individuo /* string = cadena de caracteres
/*Generación de S-array(Indice); Indice = 0, 1, 2, ... ,9
/*Generación de P-array(Indice); Indice = 0, 1, 2, ... ,9
for Indice = 0 to 9; +1
Individuo = trim(str(Indice))
/* str() convierte de tipo numérico a cadena, y trim() elimina los espacios
/* en blanco a izquierda y/o derecha de la cadena que pudieran haberse
/* producido durante la conversión.
if (S-array(val(Individuo)) then
/* val() devuelve el valor numérico de Individuo
if (P-array(val(Individuo) then
else
exit for /* salir del bucle for / end for
end if
else
end if
next Indice /* end for
if (Indice < 9 or Indice = 9) then
Print "O: Algún S no es P :: Verdadera"
else
Print "O: Algún S no es P :: Falsa"
end if
/* Fin del Programa

Potrebbero piacerti anche