Sei sulla pagina 1di 16

Estructuras de Programacin

Una caracterstica bsica de un programador, es la capacidad de aplicar soluciones a problemas


generales. Esto implica la habilidad de:

Entender y formular problemas


Aplicar soluciones creativas
Expresar las soluciones de manera clara, en un lenguaje apropiado

Tipos de Lenguajes:

(Sintaxis + Semntica)

Lenguaje Natural: Son los lenguajes usados por las personas para comunicarse. Son lenguajes
no diseados por las personas, sino que aparecieron con el uso. Aunque tienen algunas reglas
sintcticas, permiten expresiones confusas o incoherentes. Por ej: aunque una frase contenga
faltas de ortografa, se entiende el contenido.
Ej: La micro se est demorando mucho (El micro / Se est demorando / Mucho se est ).
Adems se puede decir lo mismo de otra forma: La micro est atrasada. / demasiado.

Lenguaje Formal: Son lenguajes diseados por las personas, para un propsito especfico. Por
ej: la notacin matemtica permite usa un lenguaje formal til para expresar las relaciones
entre nmeros y smbolos. Los qumicos usan un lenguaje para representar las estructuras
qumicas, etc.

Un lenguaje de programacin es un lenguaje formal que ha sido diseado para expresar


clculos y entregar instrucciones precisas a un computador.

Los lenguajes formales tienen reglas sintcticas rigurosas, que deben ser respetadas por
quienes los utilizan. Por ej: 3 + 3 = 6 (siempre). H2O = agua en cualquier parte.
Las reglas sintcticas se basan en dos elementos:
Smbolos: Son los elementos bsicos del lenguaje, como letras o palabras.
Estructura: Se refiere a la forma en que los smbolos se ordenan dentro de una sentencia.
Ejemplos:
Cuando se lee una sentencia o frase en castellano, hay que averiguar la estructura de esa
frase (en forma inconsciente). Esto se llama anlisis gramatical (parsing).
Por ej: la frase la micro est atrasada. La micro es el sujeto y est atrasada es el predicado.
Una vez que se ha analizado la frase, se puede entender su significado, o semntica de la
frase.
Tanto los lenguajes naturales como formales tienen reglas sintcticas, pero hay algunas
diferencias:
Ambigedad: El lenguaje natural (LN) est lleno de ambigedades que se entienden por el
contexto de la frase. Un lenguaje formal (LF) debe ser no ambiguo.
Redundancia: Un LN tiene muchos sinnimos, una misma cosa se puede decir de diferentes
formas. Un LF debe ser no redundante.
Sentido Literal: El LN contiene metforas y se dicen cosas sin sentido. Un LF expresa
claramente una idea.

El significado de un programa computacional es literal y no ambiguo, y puede ser entendido


completamente mediante el anlisis de sus smbolos y estructura.

Nivel de Lenguaje:

Un lenguaje se considera de alto nivel mientras ms se parece al lenguaje natural.


Un lenguaje se considera de bajo nivel mientras ms se parece al lenguaje del computador .
El lenguaje de ms bajo nivel es el lenguaje del computador (ceros y unos).
Los lenguajes de programacin son lenguajes intermedios
Tambin hay un lenguaje de bajo nivel llamado ASSEMBLER (casi computador). Corresponde al
conjunto de instrucciones de mquina que contiene cada CPU.
1 / 16

Estructuras de Programacin
Generaciones de Lenguajes de Programacin:

Los lenguajes de programacin han evolucionado con el avance de la tecnologa.


La 1GL: Corresponde al lenguaje de mquina, no usa traductores ni compiladores. Se
programa conectando interruptores electrnicos, los cuales representaban los 0s y 1s.
Ventaja: genera un cdigo eficiente y rpido.
Desventajas: Lento de programar, difcil de encontrar los errores.
2GL: Corresponde al lenguaje ASSEMBLER, que consiste en cdigos nemotcnicos ms fciles
de entender que los 0s y 1s. Ej: ADD, MOV, DIV, etc. Utiliza alguna estructuracin lgica.
Ventaja sigue generando cdigo rpido y eficiente, es ms fcil de entender.
Desventaja: Lento de programar, difcil de encontrar los errores.
3GL: Utiliza una sintaxis ms entendible para las personas, agrega tipos de datos y estructuras
lgicas ms eficientes (programacin estructurada).
Ventajas: Ms fcil de entender y encontrar los errores.
Desventaja: Requiere traduccin. Genera programas menos eficientes.
Ejemplos: Fortran, COBOL, C, BASIC, Pascal, Java, etc.
4GL: Cada generacin de lenguaje se aleja ms del cdigo de mquina. Resulta ms fcil
programar y es ms fcil de entender por las personas. Adems con una sola instruccin hacen
lo mismo que varias instrucciones de un lenguaje de ms bajo nivel.
Ventajas: Muy fcil de entender y rpido de programar, portabilidad.
Desventajas: Requiere traduccin, cdigo menos eficiente.
Ej: Phyton, PowerBuilder, Perl, etc.
5GL: Orientados a resolver problemas mediante el uso de restricciones de tipo lgico, en vez
de algoritmos. El programador slo define el problema, y el computador lo resuelve. En
general son lenguajes de inteligencia artificial.
Ej: Lisp, Prolog, etc.

Traduccin de Programas:

El computador slo entiende su propio lenguaje de mquina. Luego los programas escritos en
lenguajes de alto nivel deben ser traducidos a lenguaje de mquina.
Existen diversas formas de traduccin:
Intrpretes: Un intrprete lee un programa con cdigo de alto nivel y lo ejecuta. Procesa el
programa de a poco (una lnea por vez). Lee la lnea, verifica la sintaxis, traduce a cdigo
de mquina y la ejecuta, luego contina con la lnea siguiente.

Compilador: Primero debe pasar por una etapa de revisin de la sintaxis y traduccin
completa del programa a cdigo de mquina. A partir de un cdigo fuente, genera un
cdigo objeto (ejecutable). Una vez que el programa est compilado, se puede ejecutar
repetidas veces sin tener que traducirlo nuevamente.

2 / 16

Estructuras de Programacin
Conceptos de Programacin:
Programa:
Secuencia de instrucciones usualmente llamadas sentencias, que especifican cmo ejecutar un
clculo determinado (resolver una ecuacin, ordenar una lista de objetos, etc.)
Cada lenguaje tiene caractersticas propias, pero en general un programa se compone de:
Entradas (input): Lee datos desde el teclado, un archivo, o similar.
Salidas (output): Enva datos a la pantalla, impresora, un archivo, o similar.
Clculos: Ejecuta operaciones matemticas como sumas o multiplicaciones.
Ejecucin condicional: Verifica ciertas condiciones y luego ejecuta una secuencia
apropiada de sentencias.
Ejecucin repetitiva: Ejecuta alguna accin repetitiva, usualmente con alguna variacin.
Qu es programar?

Disear y aplicar una solucin para un problema.


Habilidades:
Anlisis Separa el problema en problemas ms pequeos. Entender el problema.
Abstraccin Concentrarse en el problema y abstraerse de los detalles
Razonamiento lgico Para el procesamiento con condiciones mltiples
Reutilizacin de cdigo Uso de funciones y procedimientos. Evitar redundancia.
Aplicar herramientas como ordenamiento, seleccin, recursividad, etc.
Manejo de estructuras de datos.
Evitar errores (y detectarlos)
Y por supuesto conocer bien el lenguaje

La 1 unidad tratar la teora necesaria para desarrollar el razonamiento lgico.

3 / 16

Estructuras de Programacin
4. LGICA Y TABLAS DE VERDAD.
4.1. Introduccin.
Un computador se puede programar para tomar decisiones basadas en ciertos enunciados, por
ejemplo: el resultado de un clculo es mayor que 100. Tales enunciados pueden ser verdaderos
o falsos, es decir contienen un valor de verdad; es decir un enunciado puede ser verdadero o
falso, pero no ambas cosas. Algunos enunciados son compuestos por axiomas, ms algunos
elementos de conexin entre ellos.
Ejemplo 1:
a) Las rosas son rojas y las violetas son azules, es un enunciado compuesto mediante la
conexin y
b) El es inteligente o estudia todas las noches, es un enunciado compuesto mediante la
conexin o.
c) Para dnde va?, no es un enunciado ya que no posee un valor de verdad.
La propiedad de un enunciado compuesto es que su valor de verdad est completamente
determinado por los valores de verdad de sus axiomas, junto con la forma en que estn
conectados. Para entender los valores de verdad es necesario entender los tipos de conexiones
entre enunciados. Se usarn las letras p, q, r, como identificadores de un enunciado cualquiera.
4.2. Conjuncin.
Dos enunciados cualquiera se pueden combinar con la palabra y para formar un enunciado
compuesto denominado conjuncin. La siguiente tabla muestra los valores de verdad de un
enunciado compuesto por una conjuncin:
p

p^q

V
V
F
F

V
F
V
F

V
F
F
F

El enunciado p ^ q es verdadero slo en el caso que los dos axiomas son verdaderos.
Ejemplo 2: Considerar los cuatro enunciados siguientes:
a)
b)
c)
d)

Pars
Pars
Pars
Pars

est
est
est
est

en
en
en
en

Francia
Francia
Inglaterra
Inglaterra

y
y
y
y

2
2
2
2

+
+
+
+

2
2
2
2

=
=
=
=

4.
5.
4.
5.

Slo el enunciado (a) es verdadero, puesto que los axiomas que lo componen son verdaderos.
4.3 Disyuncin.
Dos enunciados cualquiera se pueden combinar con la palabra o para formar un enunciado
compuesto denominado disyuncin. La siguiente tabla muestra los valores de verdad de un
enunciado compuesto por una disyuncin:

4 / 16

Estructuras de Programacin

pvq

V
V
F
F

V
F
V
F

V
V
V
F

El enunciado p v q es verdadero en el caso que cualquiera de los dos axiomas sea verdaderos.
Dicho de otra forma, el enunciado p v q es falso slo en el caso que los dos axiomas sean falsos.
Ejemplo 3: Considerar los cuatro enunciados siguientes:
a)
b)
c)
d)

Pars
Pars
Pars
Pars

est
est
est
est

en
en
en
en

Francia
Francia
Inglaterra
Inglaterra

o
o
o
o

2
2
2
2

+
+
+
+

2
2
2
2

=
=
=
=

4.
5.
4.
5.

Slo el enunciado (d) es falso. Cada uno de los otros enunciados es verdadero puesto que al
menos uno de sus axiomas que los componen es verdadero.
Observacin: la palabra espaola o se usa comnmente de dos formas. Algunas veces se usa en
el sentido de p o q o ambos, es decir, al menos una de las dos alternativas se cumple. Otras
veces se usa en el sentido p o q pero no ambos, es decir slo se debe cumplir una de las
alternativas. Por ejemplo la siguiente frase: El estudiar en la Universidad de Concepcin o en la
Universidad de la Frontera, en este caso el o se usa en el segundo sentido y se denomina
disyuncin exclusiva (XOR).
4.4 Negacin.
Dado cualquier enunciado p, se puede formar otro enunciado, denominado negacin de p, por
ejemplo escribiendo Es falso que ... antes de p, o insertando en p la palabra no. La notacin
simblica de esto puede tener dos formas:
~p
p
(se lee no p). Ambas formas se
pueden combinar dentro de un conjunto de enunciados.
La siguiente tabla muestra los valores de verdad de un enunciado compuesto por una negacin:
p

V
F

F
V

Si p es verdadero entonces p es falso; y si p es falso entonces p es verdadero.


Ejemplo 4: Considerar los enunciados siguientes:
a) Pars est en Francia .
b) Es falso que Pars est en Francia.
c) Pars no est en Francia.

d) 2 + 2 = 5.
e) Es falso que 2 + 2 = 5.
f) 2 + 2 5.

Entonces (b) y (c) son c/u la negacin de (a). Por otro lado, (e) y (f) son c/u la negacin de (d).
Ya que (a) es verdadero, entonces (b) y (c) son falsos; y como (d) es falso, entonces (e) y (f) son
verdadero.
4.5. Proposiciones y Tablas de Verdad.
5 / 16

Estructuras de Programacin

Con el uso repetido de las conectiva lgicas: y, o, no, se pueden construir enunciados compuestos
que son ms elaborados. En el caso que los axiomas p, q, de un enunciado compuesto P(p, q,
) sean variables, el enunciado compuesto se denomina una proposicin.
El valor de verdad de una proposicin depende exclusivamente de los valores de verdad de sus
variables, es decir, el valor de verdad de una proposicin se conoce una vez que se conozcan los
valores de verdad de sus variables. Por ejemplo la tabla de verdad de la proposicin ~(p ^ q) se
construye de la siguiente forma:
p

p^q

~(p ^ q)

V
V
F
F

V
F
V
F

F
V
F
V

F
V
F
F

V
F
V
V

Observar que las primeras dos columnas de la tabla son las variables p, q, y que la tabla
contiene suficientes filas para permitir todas las combinaciones posibles de V y F para estas
variables (para 2 variables se requieren 4 filas, para 3 variables se requieren 8 filas, para 4
variables se requieren 16 filas), en general, para n variables se requieren 2n filas. Luego la tabla
contiene una columna para cada etapa elemental de la construccin del enunciado, el valor de
verdad de cada columna siguiente es determinado por las anteriores con las definiciones de las
conectivas lgicas ^ v ~. Finalmente en la ltima columna se obtiene el valor de verdad de la
proposicin completa. En rigor slo interesan las columnas que contienen las variables y la
columna que contiene la proposicin, el resto de columnas intermedias se utilizan solamente para
ayudar a construir la tabla de verdad.
4.6. Tautologas y Contradicciones.
Algunas proposiciones P(p, q, ) contienen slo valores V en la ltima columna de sus tablas de
verdad, es decir, son verdaderas para cualquier valor de verdad de sus variables. A tales
proposiciones se les denomina tautologas. Anlogamente, una proposicin P(p, q, ) se
denomina contradiccin si contiene slo valores F en la,ltima columna de su tabla de verdad, es
decir, es falsa para cualquier valor de verdad de sus variables. Por ej. la proposicin p o no p, es
decir p v p es una tautologa; y la proposicin p y no p, es decir p ^ p es una contradiccin.
Esto se puede verificar por sus tablas de verdad:
p

pvp

p^p

V
F

F
V

V
V

V
F

F
V

F
F

Se puede observar que la negacin de una tautologa es una contradiccin, ya que siempre ser
falsa. Por otro lado, la negacin de una contradiccin es una tautologa, ya que siempre ser
verdadera.
Sea P(p, q, ) una tautologa, y sean P1(p, q, ), P2(p, q, ) proposiciones cualesquiera. Como el
valor de verdad de P(p, q, ) no depende de los valores de verdad particulares de sus variables p,
q, entonces se puede reemplazar p por P1 , q por P2, en la tautologa P(p, q, ), es decir:
Principio de sustitucin: Si P(p, q, ) es una tautologa, entonces P(P1, P2, ) es una tautologa
para proposiciones cualquiera P1, P2,
6 / 16

Estructuras de Programacin
Ejemplo 5: La tabla de verdad (p v p) result ser una tautologa. Reemplazando p por q ^ r se
obtiene la proposicin (q ^ r) v ~(q ^ r), que por el principio de sustitucin tambin debera ser
una tautologa. Esto se puede verificar en la siguiente tabla de verdad.
q

q^r

V
V
F
F

V
F
V
F

V
F
F
F

~(q ^ r) (q ^ r) v ~(q ^ r)
F
V
V
V

V
V
V
V

4.7. Equivalencia Lgica: lgebra de Proposiciones.


Dos proposiciones P(p, q, ) y Q(p, q, ) son lgicamente equivalentes, o simplemente
equivalentes o iguales, denotado por: P(p, q, ) Q(p, q, ), si tienen idnticas tablas de
verdad. Por ejemplo considerar las tablas de verdad de ~(p ^ q) y (p v q).
p

p^q

~(p ^ q)

pvq

V
V
F
F

V
F
V
F

V
F
F
F

F
V
V
V

V
V
F
F

V
F
V
F

F
F
V
V

F
V
F
V

F
V
V
V

Las tabas de verdad son las mismas, es decir, ambas proposiciones son falsas en el primer caso y
verdaderas en los otros tres casos, luego ambas proposiciones son lgicamente equivalentes.
~(p ^ q) (p v q)
Ejemplo 6: Considerar el enunciado Es falso que las rosas son rojas y las violetas son azules.
Este enunciado se puede escribir de la forma ~(p ^ q), en donde p es las rosas son rojas y q es
las violetas son azules. Sin embargo por las tablas de verdad anteriores ~(p ^ q) es lgicamente
equivalente con (p v q), luego el enunciado original se puede expresar mediante otro enunciado
equivalente Las rojas no son rojas o las violetas no son azules. En general las proposiciones
satisfacen muchas equivalencias lgicas, o leyes, como las descritas en la tabla siguiente:
Leyes de idempotencia
1b. p ^ p p
Leyes asociativas
2a. (p v q) v r p v (q v r)
2b. (p ^ q) ^ r p ^ (q ^ r)
Leyes conmutativas
3a. p v q q v p
3b. p ^ q q ^ p
Leyes distributivas
4a. p v (q ^ r) (p v q ) ^ (p v r)
4b. p ^ (q v r ) (p ^ q) v (p ^ r)
Leyes de identidad
5a. p v F p
5b. p ^ V p
6a. p v V V
6b. p ^ F F
Leyes de complementos
7a. p v p V
7b. p ^ p F
8a. V F
8b. F V
Ley de involucin
9. ~p p
Leyes de Morgan
10a. ~(p v q) p ^ q
10b. ~(p ^ q) p v q
1a. p v p p

7 / 16

Estructuras de Programacin

4.8. Enunciado Condicional y Bicondicional.


El condicional p q frecuentemente se lee p implica q o p slo si q
El condicional p q se lee p si y slo si q
Los valores de verdad de p q y p q se indican en las tablas siguientes:
p

pq

pq

V
V
F
F

V
F
V
F

V
F
V
V

V
V
F
F

V
F
V
F

V
F
F
V

Observar que el condicional p q es falso slo cuando de una verdad se desprende una falsedad,
por otro lado el condicional p q es verdadero cuando ambos axiomas son iguales, es decir,
ambos son verdaderos o ambos son falsos.
Considerar la siguiente proposicin: p v q:
p

pvq

V
V
F
F

V
F
V
F

F
F
V
V

V
F
V
V

Observar que la tabla de verdad es idntica a la tabla de verdad de p q. As que se puede decir
que p q es lgicamente equivalente a la proposicin p v q, es decir: p q p v q.
En otras palabras, el enunciado condicional Si p entonces q es lgicamente equivalente al
enunciado no-p o q.
Considerar la proposicin p q y las otras proposiciones condicionales simples que contienen p, q
qp
pq
qp
Estas proposiciones se denominan respectivamente: la recproca, inversa y contrarrecrpoca de la
proposicin p q. Las tablas de verdad respectivas son:
p

pq

qp

pq

qp

V
V
F
F

V
F
V
F

V
F
V
V

V
V
F
V

F
F
V
V

F
V
F
V

V
V
F
V

V
F
V
V

Observar que un enunciado condicional y su recproco o su inverso no son lgicamente


equivalentes, pero en la tabla se puede ver que un enunciado condicional y su contrarrecproco s
son lgicamente equivalentes.
Teorema 1: Un enunciado condicional p q y su contrarrecproco q p son lgicamente
equivalentes, es decir: p q q p.
Ejemplo 7: (a) Considerar los siguientes enunciados sobre un tringulo A:
p q: Si A es equiltero, entonces A es issceles.
8 / 16

Estructuras de Programacin
q p: Si A es issceles, entonces A es equiltero.
En este caso p q es verdadero, pero su recproco q p es falso.
Ejercicios:
1) Sea p = Marcos es millonario y sea q = Marcos es feliz. Escribir las siguientes
proposiciones en forma simblica:
a) Marcos es pobre, pero feliz.
b) Marcos ni es millonario ni es feliz.
c) Marcos o es millonario o es infeliz.
d) Marcos es pobre o si no l es tanto millonario como infeliz.
2) Sea p = Ana habla francs y q = Ana habla dans. Formar una frase verbal sencilla que
describa las siguientes proposiciones: (a) p v q; (b) p ^ q; (c) p ^ ~q (d) ~p v ~q;
(e) ~~p; (f) ~(~p ^ ~q).
3) Encontrar las tablas de verdad de las siguientes proposiciones: (a) p v ~q; (b) ~p ^ ~q;
(c) ~(~p ^ q); (d) ~(~p v ~q).
4) Encontrar las tablas de verdad de las siguientes proposiciones: (a) (p ^ ~p) v r;
(b) ~p v (q ^ ~r); (c) (p v ~r) ^ (q v ~r).
5) Demostrar la ley de distribucin: p ^ (q v r) (p ^ q) v (p ^ r), construyendo las tablas
de verdad apropiadas.
6) Demostrar que p v (p ^ q) p, construyendo las tablas de verdad apropiadas.
7) Escribir la negacin de c/u de los siguientes enunciados, de la manera ms sencilla posible:
a) l es bajo pero inteligente.
b) Ella es rubia o de ojos azules.
c) El ni es rico ni es feliz.
d) El se retir o no fue a clases hoy.
e) Ni Marcos ni Pedro son infelices
f) Ana habla espaol o francs pero no alemn
8) Encontrar las tablas de verdad de las siguientes proposiciones: (a) (~p v q) p;
(b) q (~q ^ p)
9) Encontrar las tablas de verdad de las siguientes proposiciones: (a) (p ~q) (~p ^ q);
(b) (~q v p) (q ~p).
10)Determinar la contrarrecproca de cada enunciado: (a) Si l tiene coraje, l ganar;
(b) Slo si no est cansado, l ganar.
11)Encontrar:
a) La contrarrecproca de p q.
b) La contrarrecrpoca de ~p q.
c) La contrarrecproca de la recproca de p ~q.
d) La recproca de la contrarrecproca de ~p ~q.

9 / 16

Estructuras de Programacin
ANEXO: Pasos para armar la tabla de verdad de una proposicin, por ej: ~(p ^ ~q)
Paso usual:
p

~q

V
V
F
F

V
F
V
F

F
V
F
V

p ^ ~q ~(p ^ ~q)
F
V
F
F

V
F
V
V

Otra forma de armar la tabla de verdad para la misma proposicin, es armar una tabla slo con
los valores de las variables y usar columnas para cada nueva variable y conectivas lgicas de la
proposicin, por ejemplo:
p

V
V
F
F

V
F
V
F

(p

q)

Paso
A continuacin se copian los valores de verdad de las variables en las columnas que corresponda:

V
V
F
F

V
F
V
F

Paso

(p

q)

V
V
F
F

V
F
V
F

A continuacin de asignan los valores de verdad de los conectores lgicos, desde el ms interior
hasta el ms exterior (1 ~q).
p

V
V
F
F

V
F
V
F

Paso

(p

q)

V
V
F
F

F
V
F
V

V
F
V
F

2 se debe definir los valores del conector lgico ^


p

V
V
F
F

V
F
V
F
Paso

(p

q)

V
V
F
F

F
V
F
F

F
V
F
V

V
F
V
F

10 / 16

Estructuras de Programacin

3 se deben definir los valores de la segunda negacin (ms exterior), que representa ~(p ^ ~q)
p

(p

q)

V
V
F
F

V
F
V
F

V
F
V
V

V
V
F
F

F
V
F
F

F
V
F
V

V
F
V
F

Paso

En cada paso se deben evaluar los valores de verdad del paso anterior.

11 / 16

Estructuras de Programacin
lgebra de Boole. Compuertas Lgicas.
Sea B un conjunto en el cual se han definido dos operaciones binarias, + y *, y una operacin
unitaria denotada '. Sean 0 y 1 dos elementos de B. Entonces la sextupla (B, +, *, ', 0, 1), si se
cumplen los siguientes axiomas para los elementos a, b, c, cualesquiera en el conjunto B.
1) Leyes conmutativas:
(1.a) a + b = b + a

(1.b) a * b = b * a

2) Leyes distributivas:
(2.a) a + (b * c) = (a + b) * (a + c)

(2.b) a * (b + c) = (a * b) + (a * c)

3) Leyes de identidad:
(3.a) a + 0 = a

(3.b) a * 1 = a

4) Leyes de complemento:
(4.a) a + a' = 1

(4.b) a * a' = 0

Al elemento ' se le llama complemento.


+
suma.
*
producto.
Es costumbre obviar el uso del elemento *. Por ejemplo a * b = ab
Orden de precedencia. (se puede modificar con el uso de parntesis):
1='
2=*
3=+
Por ejemplo: a + b * c

significa

a + (b * c)

Circuitos y Compuertas Lgicas.

Son circuitos que pueden tener un o ms dispositivos de entrada y un slo dispositivo de


salida.
En cada instante determinado, cada dispositivo de entrada tiene exactamente un bit de
informacin (0 1).
Estos datos son procesados por el circuito para producir un bit de salida, ya sea un 1 o un 0 en
el dispositivo de salida.
A los dispositivos de entrada se le pueden asignar sucesiones de bits, que son procesadas por
el circuito, bit por bit, para generar una sucesin similar de bits de salida.
Un bit se puede interpretar como un voltaje que pasa a travs de los dispositivos. Un 1 se
interpreta como un voltaje positivo (alto) y un 0 se interpreta como un voltaje negativo (bajo).
Las sucesiones de bits se procesan de izquierda a derecha.
Los circuitos lgicos se construyen a partir de ciertos circuitos elementales llamados
compuertas lgicas.

Compuerta OR
La salida de la compuerta OR se denota: Y = A + B.
Su comportamiento es idntico al OR lgico
Desde el punto de vista elctrico, se puede considerar como un circuito con interruptores
paralelos.
Tabla de vedad de la compuerta OR:

12 / 16

Estructuras de Programacin

A+B

0
0
1
1

0
1
0
1

0
1
1
1

Por ej: se tienen las siguiente secuencias de bit:


A = 11000110
B = 10010101
Entonces la compuerta OR genera la siguiente secuencia: 11010111
Dibujar circuito equivalente...

La
La

compuerta OR puede tener ms de dos entradas, por ej. la sgte figura: Y = A + B + C + D


salida ser 0 slo si todas las entradas son 0, luego las siguientes entradas:
A = 10000101
Dibujar circuito equivalente...
B = 10100001
C = 00100100
D = 10010101

OR general la salida: Y = 10110101

Compuerta AND.
La salida de una compuerta AND se designa como el producto de sus entradas: Y = A * B = AB
La salida de AND genera 1 slo cuando todas sus entradas tienen el valor 1

Tabla de vedad de la compuerta AND:


A

A*B

0
0
1
1

0
1
0
1

0
0
0
1

Dibujar circuito equivalente...


13 / 16

Estructuras de Programacin

Es equivalente a tener un circuito elctrico con dos interruptores en serie, todos deben estar
cerrados para que pase la corriente.
Una compuerta AND tambin puede tener ms de dos entradas, por ej. la figura sgte muestra
una compuerta AND con cuatro entradas. Y = A * B * C * D = ABCD.
Dibujar circuito equivalente...

Si

se
A
B
C
D

tienen las siguientes entradas:


= 11100111
= 01111011
= 01110011
= 11101110

AND genera la salida: Y = 01100010


Compuerta NOT

Tambin se denomina inversor. Tiene una sola entrada y genera una salida que es el
complemento de la entrada. Y = A.
El valor de salida de Y es el opuesta al valor de entrada.

Tabla de vedad de la compuerta NOT:


A

0
1

1
0

Circuitos Lgicos.

Las tablas de verdad de las compuertas OR, AND y NOT son idnticas a las proposiciones de
disyuncin (p v q), conjuncin (p ^ q) y negacin (~p).
La diferencia es que en este caso se usan 1 y 0 en vez de V y F.
En general un circuito lgico L tiene varias entradas y una sola salida. Las entradas atraviesan
un conjunto de compuertas lgicas AND, OR, NOT, las cuales generalmente alimentan a una
compuerta final OR.
Dado un circuito lgico L, se desea conocer el efecto sobre L de cualquier entrada arbitraria.
Esto se hace definiendo una tabla de verdad para L. a partir de las tablas de verdad de las
compuertas que componen el circuito L. Esto se hace paso a paso.
Por ej: se tiene el sgte circuito L:
Hacer ejercicios ms simples previo a este
14 / 16

Estructuras de Programacin

Para determinar l tabla de verdad de Y, se debe partir con las tablas de verdad de las
compuertas lgicas

A*B*C

A*B*C
= A*B*C + A*B*C + AB

A*B

Ahora es posible ver las posibilidades para Y, recordando el comportamiento de las distintas
compuertas lgicas.

A*B*C = 00000001.
A*B*C = 00000100.
A*B
= 00110000.

(toma el valor 1 cuando todas las entradas son 1)

Ahora, las salidas de las compuertas AND se deben combinar en la compuerta OR para hacer la
15 / 16

Estructuras de Programacin
tabla de verdad del circuito L.
Ahora el comportamiento de OR es 1 si cualquiera de las entradas es 1.
A*B*C

A*B*C

A*B

Ejercicios:
1. Dadas las siguientes sucesiones de bits, determinar las salidas generadas por (a) una
compuerta AND y (b) una compuerta OR:
(a)
A=110001
B=101101

(b)
A=10001111
B=00111100

(c)
A=101100111000
B=000111001101

2. Dada las siguientes sucesiones de bits, determinar las salidas generadas por una compuerta
NOT.
(a) A=110001

(b) A=10001111

(c) A=101100111000

3. Dadas las siguientes sucesiones de bits, encontrar las tablas de verdad indicadas:
A=1100110110
B=1110000111
C=1010010110
(a) A+B+C

(b) A*B*C

(c) C*(A+B)

(d) A*(B+C)

4. Dadas cinco entradas a un circuito A, B, C, D y E. Encontrar todas las posibles combinaciones


de sucesiones de bits que se pueden dar.
5. Dadas tres entradas A, B y C. Encontrar las tablas de verdad de las siguientes combinaciones:
A*B*C

A*B*C

A*B*C

A*B*C

A*B*C

A*B*C

A*B*C

6. Encontrar la expresin de Boole y la tabla de verdad para el siguiente circuito lgico:

16 / 16

A*B*C

Potrebbero piacerti anche