Documentos de Académico
Documentos de Profesional
Documentos de Cultura
operaciones lógicas
1
En lugar de hacer una gráfica de temperatura en un rango continuo,
supongamos que simplemente medimos la temperatura cada hora. Lo que
tenemos ahora son muestras que representan la temperatura en instantes
discretos de tiempo (cada hora) a lo largo de un período de 24 horas. De
esta forma, hemos convertido de forma efectiva una magnitud analógica a
un formato que ahora puede digitalizarse, representando cada valor
muestreado mediante un código digital. Es importante darse cuenta de que
la siguiente figura no es la representación digital de la magnitud analógica.
2
convierte de nuevo la señal de audio amplificada en ondas sonoras con un
volumen mucho mayor que el sonido original captado por el micrófono.
3
DÍGITOS BINARIOS, NIVELES LÓGICOS Y FORMAS DE
ONDA DIGITALES
La electrónica digital utiliza sistemas y circuitos en los que sólo existen dos
estados posibles. Estos estados se representan mediante dos niveles de
tensión diferentes: ALTO (HIGH) y BAJO (LOW).
Estos dos estados también pueden representarse mediante niveles de
corriente, bits y relieves en un CD o en un DVD, etc. En los sistemas digitales
como las computadoras, las combinaciones de los dos estados,
denominadas códigos, se emplean para representar números, símbolos,
caracteres alfabéticos y otros tipos de datos. El sistema de numeración de
dos estados se denomina binario y los dos dígitos que emplea son 0 y 1. Un
dígito binario se denomina bit.
Dígitos binarios
Cada uno de los dos dígitos del sistema binario, 1 y 0, se denomina bit, que
es la contracción de las palabras binary digit (dígito binario). En los circuitos
digitales se emplean dos niveles de tensión diferentes para representar los
dos bits. Por lo general, el 1 se representa mediante el nivel de tensión más
elevado, que se denomina nivel ALTO (HIGH) y 0 se representa mediante
el nivel de tensión más bajo, que se denomina nivel BAJO (LOW). Este
convenio recibe el nombre de lógica positiva.
ALTO (HIGH) = 1 y BAJO (LOW) = 0
Un sistema en el que un 1 se representa por un nivel BAJO y un 0
mediante un nivel ALTO se dice que emplea lógica negativa.
4
Los grupos de bits (combinaciones de 1s y 0s), llamados códigos, se utilizan
para representar números, letras, símbolos, instrucciones y cualquier otra
cosa que se requiera en una determinada aplicación.
Niveles lógicos
Las tensiones empleadas para representar un 1 y un 0 se denominan niveles
lógicos. En el caso ideal, un nivel de tensión representa un nivel ALTO y otro
nivel de tensión representa un nivel BAJO. Sin embargo, en un circuito digital
real, un nivel ALTO puede ser cualquier tensión entre un valor mínimo y un
valor máximo especificados. Del mismo modo, un nivel BAJO puede ser
cualquier tensión comprendida entre un mínimo y máximo especificados. No
puede existir solapamiento entre el rango aceptado de niveles ALTO y el
rango aceptado de niveles BAJO.
Por ejemplo, los valores para el nivel ALTO en un determinado tipo de
circuito digital denominado CMOS pueden variar en el rango de 2 V a 3,3 V
y los valores para el nivel BAJO en el rango de 0 V a 0,8 V. De esta manera,
si por ejemplo se aplica una tensión de 2,5 V, el circuito lo aceptará como
un nivel ALTO, es decir, un 1 binario. Si se aplica una tensión de 0,5 V, el
circuito lo aceptará como un nivel BAJO, es decir, un 0 binario. En este tipo
de circuito, las tensiones comprendidas entre 0,8 V y 2 V no son aceptables.
5
OPERACIONES LÓGICAS BÁSICAS
En su forma más simple, la lógica es la parte del razonamiento humano que
nos dice que una determinada proposición (sentencia de asignación) es
cierta si se cumplen ciertas condiciones. Las proposiciones se pueden
clasificar como verdaderas o falsas. Muchas situaciones y procesos que
encontramos en nuestra vida cotidiana pueden expresarse como funciones
proposicionales o lógicas. Dado que tales funciones son sentencias
verdaderas/falsas o afirmativas/negativas, pueden aplicarse a los circuitos
digitales, ya que éstos se caracterizan por sus dos estados.
Cuando se combinan varias proposiciones se forman funciones lógicas o
proposicionales. Por ejemplo, la proporción “la luz está encendida” será
cierta si “la bombilla no está fundida” lo es y si “el interruptor está dado”
también es verdadera. Por tanto, esta proposición lógica puede formularse
de la manera siguiente: la luz está encendida sólo si la bombilla no está
fundida y el interruptor está dado. En este ejemplo, la primera sentencia sólo
es verdadera si las dos últimas lo son. La primera proposición (“la luz está
encendida”) es por tanto la proposición básica y las otras dos son las
condiciones de las que depende la proposición.
Hacia 1850, el matemático y lógico irlandés George Boole desarrolló un
sistema matemático para formular proposiciones lógicas con símbolos, de
manera que los problemas puedan formularse y resolverse de forma similar
a como se hace en el álgebra ordinaria. El álgebra de Boole, como se le
conoce hoy día, encuentra aplicaciones en el diseño y el análisis de los
sistemas digitales.
El término lógico se aplica a los circuitos digitales que se utilizan para
implementar funciones lógicas. Existen varios tipos de circuitos lógicos que
son los elementos básicos que constituyen los bloques sobre los que se
construyen los sistemas digitales más complejos, como por ejemplo una
computadora. Ahora vamos a abordar estos elementos y vamos a estudiar
sus funciones de una forma muy general.
6
A continuación, se muestran los símbolos estándar distintivos de las tres
operaciones lógicas básicas (NOT, AND y OR).
Las líneas conectadas a cada símbolo son las entradas y las salidas. Las
entradas son las líneas situadas a la izquierda de cada símbolo y la salida
es la línea de la derecha. Un circuito que realiza una operación lógica
determinada (NOT, AND, OR) se denomina puerta lógica. Las puertas AND
y OR pueden tener cualquier número de entradas.
En las operaciones lógicas, las condiciones mencionadas anteriormente de
verdadero/falso se representan mediante un nivel ALTO (verdadero) y un
nivel BAJO (falso). Cada una de las tres operaciones básicas da lugar a una
única respuesta para un determinado conjunto de condiciones.
NOT
La operación NOT cambia de un nivel lógico al nivel lógico opuesto.
Cuando la entrada está a nivel ALTO (1), la salida se pone a nivel BAJO (0).
Cuando la entrada está a nivel BAJO, la salida se pone a nivel ALTO. En
cualquier caso, la salida no es la misma que la entrada. La operación NOT
se implementa mediante un circuito lógico conocido como inversor.
7
AND
La operación AND genera un nivel ALTO sólo cuando todas las entradas
están a nivel ALTO, para el caso de dos entradas. Cuando una entrada está
a nivel ALTO y la otra entrada está a nivel ALTO, la salida se pone a nivel
ALTO. Cuando cualquiera de las entradas o todas ellas están a nivel BAJO,
la salida se pone a nivel BAJO. La operación AND se implementa mediante
un circuito lógico conocido como puerta AND.
OR
La operación OR genera un nivel ALTO cuando una o más entradas están
a nivel ALTO, para el caso de dos entradas. Cuando una de las entradas
está a nivel ALTO o ambas entradas están a nivel ALTO, la salida es un
nivel ALTO. Cuando ambas entradas están a nivel BAJO, la salida será un
nivel BAJO. La operación OR se implementa mediante un circuito lógico
denominado puerta OR.
8
Estructuras de Control Condicional
1. Instrucciones condicionales
Las estructuras condicionales permiten la ejecución condicional de bloques
de código. La instrucción if, que en inglés tiene el mismo significado que
nuestro "si" condicional, permite evaluar una expresión y, sobre la base de
su resultado (verdadero o falso), ejecutar o no la instrucción o el bloque que
le sigue. Es decir, si el resultado de la expresión es verdadero, ejecuta el
código. En caso contrario, el programa sigue su curso normal.
Una instrucción (o estructura) condicional o de selección es aquella que
establece qué instrucciones deben de ejecutarse o no, en función del valor
de una condición.
TIPOS DE INSTRUCCIONES CONDICIONALES
• de condición simple,
• bicondicional o
• de condición múltiple.
El valor de la condición que determina si se ha de ejecutar o no un conjunto
de instrucciones viene dado por un valor booleano que es el resultado de
una expresión booleana.
2. Condicional Simple
Un condicional simple es una estructura de control que ejecuta un conjunto
de líneas de código si es cierta una expresión booleana. En Processing* un
condicional simple se expresa según este código:
if (expresion) {
Líneas de código que se ejecutan
si la expresión es cierta.
}
Processing es un lenguaje de programación y entorno de desarrollo integrado de código abierto basado en Java, de
fácil utilización, y que sirve como medio para la enseñanza y producción de proyectos multimedia e interactivos de
diseño digital.
9
El siguiente código muestra la división de dos números naturales siempre y
cuando el denominador no sea nulo.
3. La cláusula else
A un condicional simple se le puede añadir la cláusula else para especificar
qué líneas de código se quieren ejecutar si la expresión booleana es falsa.
En este caso se habla de la estructura if-else, que en Processing se expresa
según este código:
if (expresion) {
Líneas de código que se ejecutan
si la expresión es cierta.
} else {
Líneas de código que se ejecutan
si la expresión es falsa.
}
4. Anidamiento
Las instrucciones (o estructuras) condicionales pueden aparecer en
cualquier bloque del programa. Por ejemplo, puede aparecer en el bloque
de una función, pero también puede aparecer en los bloques que componen
una instrucción condicional.
10
Un bloque de un programa es todo aquello que se encuentra entre las llaves
{ y }.
Cuando en alguno de los bloques de una instrucción if-else se incluye otro
if u otro if-else se dice que esta segunda estructura está anidada en la
primera y se habla de secuencia de estructuras condicionales anidadas.
11
5.Estructura de selección múltiple
En el caso de anidar reiteradamente estructuras if-else en cada una de las
cláusulas else puede convenir la estructura de selección múltiple. Es una
estructura que permite seleccionar entre varias alternativas posibles. Las
alternativas tienen que ser valores literales de tipo int, char o String. En
Processing se expresa según este código:
switch (expresion) {
case constante1:
conjunto de sentencias que se ejecutarán
si expresion == constante1 es cierto.
break;
case constante2:
conjunto de sentencias que se ejecutarán
si expresion == constante2 es cierto.
break;
...
case constanteK:
conjunto de sentencias que se ejecutarán
si expresion == constanteK es cierto.
break;
default:
conjunto de sentencias que se ejecutarán
si expresion no retorna un valor coincide
con ninguna de las constantes anteriores.
}
Ejemplo 5. Uso de switch-case-default
12
El siguiente código muestra un mensaje correspondiente al día de la semana, en
función de un valor numérico.
6. Repaso
✓ Una estructura condicional ejecuta ciertas líneas de código en función
de una expresión booleana.
13
✓ Mientras que en las estructuras if y if-else la expresión booleana
condicional puede contener cualquier tipo de dato y puede intervenir
cualquier tipo de operador condicional o booleano, la expresión
condicional de la estructura switch-case es solo de comparación de
igualdad y restringida a los tipos de datos int, char o String
14