domingo, 10 de octubre de 2010

ESTRUCTURAS BÁSICAS DE DIAGRAMAS DE FLUJO

Tipos de estructuras de programación. Estructuras básicas y secuencial.

Un problema se puede dividir en acciones elementales o instrucciones, usando un número limitado de estructuras de control (básicas) y sus combinaciones que pueden servir para resolver dicho problema.
Las Estructuras Básicas pueden ser:
Secuenciales: cuando una instrucción del programa sigue a otra.
Selección o decisión: acciones en las que la ejecución de alguna dependerá de que se cumplan una o varias condiciones. Repetición, Iteración: cuando un proceso se repite en tanto cierta condición sea establecida para finalizar ese proceso.

ESTRUCTURAS BÁSICAS.
Tipos de estructuras de programación. Estructuras básicas y secuencial.
Estructura Secuencial.
Se caracteriza porque una acción se ejecuta detrás de otra. El flujo del programa coincide con el orden físico en el que se han ido poniendo las instrucciones. Dentro de este tipo podemos encontrar operaciones de inicio/fin, inicialización de variables, operaciones de asignación, cálculo, sumarización, etc. Este tipo de estructura se basa en las 5 fases de que consta todo algoritmo o programa:
Definición de variables (Declaración)
Inicialización de variables.
Lectura de datos
Cálculo
Salida


La especificación formal de algoritmos tiene realmente utilidad cuando el algoritmo requiere una descripción más complicada que una lista sencilla de instrucciones. Este es el caso cuando existen un número de posibles alternativas resultantes de la evaluación de una determinada condición.
Estas estructuras se identifican porque en la fase de solución del problema existe algún punto en el cual es necesario establecer una pregunta, para decidir si ciertas acciones d eben realizarse o no.
Las condiciones se especifican usando expresiones lógicas. La representación de una estructura selectiva se hace con palabras en pseudocódigo (if - then - else o en español si - entonces - sino) y en flujograma con una figura geométrica en forma de rombo.
Las estructuras selectivas o alternativas se clasifican en:
a) Simples
b) Dobles
c) Compuestas
d) Múltiples


ESTRUCTURAS SELECTIVAS SIMPLES.
Se identifican porque están compuestos únicamente de una condición. La estructura si - entonces evalúa la condición y en tal caso:
Si la condición es verdadera, entonces ejecuta la acción Si (o acciones si son varias).
Si la condición es falsa, entonces no se hace nada.

Español                      Inglés
Si <condición>            If <condición>
Entonces                    then
<acción Si>                <acción Si>
fin_si                          endif

Tipos de estructuras selectivas. Estructura simple.

ESTRUUTRA DE SELECCIÓN DOBLE
Son estructuras lógicas que permiten controlar la ejecución de varias acciones y se utilizan cuando se tienen dos opciones de acción, por la naturaleza de estas se debe ejecutar una o la otra, pero no ambas a la vez, es decir, son mutuamente excluyentes.
Representación pseudocodificada.
Español                                    Inglés
Si <condición> entonces             If <condición> then
<acción S1>                             <acción S1>
sino                                          else
<acción S2>                             <acción S2>
Fin_Si                                      End_if
Entonces, si una condición C es verdadera, se ejecuta la acción S1 y si es falsa, se ejecuta la acción S2.

Estructura de selección doble.

ESTRUCTURA SELECTIVA COMPUESTA
En la solución de problemas encontramos numerosos casos en los que luego de tomar una decisión y marcar el camino correspondiente a seguir, es necesario tomar otra decisión. Dicho proceso puede repetirse numerosas veces. En aquellos problemas en donde un bloque condicional incluye otro bloque condicional se dice que un bloque está anidado dentro del otro.

ESTRUCTURA SELECTIVA MÚLTIPLE
Con frecuencia es necesario que existan más de dos elecciones posibles. Este problema se podría resolver por estructuras selectivas simples o dobles, anidadas o en cascada, pero si el número de alternativas es grande puede plantear serios problemas de escritura y de legibilidad.
Usando la estructura de decisión múltiple se evaluará una expresión que podrá tomar n valores distintos, 1, 2 , 3, ....,n y según que elija uno de estos valores en la condición, se realizará una de las n acciones o lo que es igual, el flujo del algoritmo seguirá sólo un determinado camino entre los n posibles.
Esta estructura se representa por un selector el cual si toma el valor 1 ejecutará la acción 1, si toma el valor 2 ejecutará la acción 2, si toma el valor N realizará la acción N.
Estructura selectiva múltiple.

ESTRUCTURAS REPETITIVAS E ITERATIVAS

Son operaciones que se deben ejecutar un número repetido de veces. El conjunto de instrucciones que se ejecuta repetidamente cierto número de veces, se llama Ciclo, Bucle o Lazo.
Iteración es cada una de las diferentes pasadas o ejecuciones de todas las instrucciones contenidas en el bucle.

Fases de un Programa Cíclico :
1. Entrada de datos e instrucciones previas
2. Lazo o bucle
3. Instrucciones finales o resto del proceso
4. Salida de resultado

Ejemplo de bucle infinito:
Estructuras repetitivas e iterativas. En el flujograma anterior, observa que la flecha que se regresa hacia arriba nos está indicando que hay que volver a evaluar la expresión. En ese caso como el bucle es infinito, no se tiene una condición para terminar y se estará haciendo siempre. En el siguiente ejemplo, ya se agregó una condición, la cual nos permitirá finalizar la ejecución del bucle en el caso en que la condición se cumpla.
Ejemplo de bucle finito:
 Estructuras repetitivas e iterativas.

Bucles Repetitivos:
A continuación, te muestro tres diseños de estructuras cíclicas: las independientes son cuando los bucles se realiza uno primero hasta que se cumple la condición y solo en ese caso se entra al bucle B.
En los ciclos anidados, al entrar a una estructura de repetición, dentro de ella se encuentra otra. La más interna se termina de realizar y se continúa con la externa hasta que la condición se cumple.
En los bucles cruzados, los cuales no son convenientes de utilizar, se tiene que iniciamos un bucle y no se ha terminado cuando empezamos otro, luego utilizamos estructuras goto (saltos) para pasar al bucle externo y se quedan entrelazados.
Esto puede ocasionar que el programa pierda el control de cuál proceso se está ejecutando y podamos obtener resultados erróneos. Veamos gráficamente el diseño de estas tres formas cíclicas:
Estructuras repetitivas e iterativas.

FUENTE: http://www.mailxmail.com/b-estructura-repetitiva

lunes, 4 de octubre de 2010

GENERACIONES DE LENGUAJES DE PROGRAMACIÓN

Los lenguajes de programación se dividen en 2 categorías fundamentales:
bajo nivel: Son dependientes de la máquina, están diseñados para ejecutarse en una determinada computadora. A esta categoría pertenecen las 2 primeras generaciones. Alto Nivel: Son independientes de la máquina y se pueden utilizar en una variedad de computadoras. Pertenecen a esta categoría la tercera y la cuarta generación. Los lenguajes de más alto nivel no ofrecen necesariamente mayores capacidades de programación, pero si ofrecen una interacción programador/computadora más avanzada. Cuanto más alto es el nivel del lenguaje, más sencillo es comprenderlo y utilizarlo.

Cada generación de lenguajes es más fácil de usar y más parecida a un lenguaje natural que su predecesores. Los lenguajes posteriores a la cuarta generación se conocen como lenguajes de muy alto nivel. Son lenguajes de muy alto nivel los generadores de aplicaciones y los naturales.

En cada nuevo nivel se requieren menos instrucciones para indicar a la computadora que efectúe una tarea particular. Pero los lenguajes de alto nivel son sólo una ayuda para el programador. Un mayor nivel significa que son necesarios menos comandos, debido a que cada comando o mandato de alto nivel reemplaza muchas instrucciones de nivel inferior.

1. Primera - Lenguaje de máquina: Empieza en los años 1940-1950. Consistía en sucesiones de dígitos binarios. Todas las instrucciones y mandatos se escribían valiéndose de cadenas de estos dígitos. Aún en la actualidad, es el único lenguaje interno que entiende la computadora; los programas se escriben en lenguajes de mayor nivel y se traducen a lenguaje de máquina.

2. Segunda - Lenguajes ensambladores: Fines de los ´50. Se diferencian de los lenguajes de máquina en que en lugar de usar códigos binarios, las instrucciones se representan con símbolos fáciles de reconocer, conocidos como mnemotécnicos,. Aún se utilizan estos lenguajes cuando interesa un nivel máximo de eficiencia en la ejecución o cuando se requieren manipulaciones intrincadas. Al igual que los lenguajes de la máquina, los lenguajes ensambladores son únicos para una computadora particular. Esta dependencia de la computadora los hace ser lenguajes de bajo nivel.

3. Tercera : años ´60. Los lenguajes de esta generación se dividen en tres categorías, según se orienten a:

procedimientos : Requieren que la codificación de las instrucciones se haga en la secuencia en que se deben ejecutar para solucionar el problema. A su vez se clasifican en científicos (p.ej.: FORTRAN), empresariales (v.g.: COBOL), y de uso general o múltiple (p.ej.: BASIC). Todos estos lenguajes permiten señalar cómo se debe efectuar una tarea a un nivel mayor que en los lenguajes ensambladores. Hacen énfasis los procedimientos o las matemáticas implícitas, es decir en lo que se hace (la acción). problemas : Están diseñados para resolver un conjunto particular de problemas y no requieren el detalle de la programación que los lenguajes orientados a procedimientos. Hacen hincapié en la entrada y la salida deseadas. objetos : El énfasis se hace en el objeto de la acción. Los beneficios que aportan estos lenguajes incluyen una mayor productividad del programador y claridad de la lógica, además de ofrecer la flexibilidad necesaria para manejar problemas abstractos de programación.

4. Cuarta: su característica distintiva es el énfasis en especificar qué es lo que se debe hacer, en vez de cómo ejecutar una tarea. Las especificaciones de los programas se desarrollan a un más alto nivel que en los lenguajes de la generación anterior. La característica distintiva es ajena a los procedimientos, el programador no tiene que especificar cada paso para terminar una tarea o procesamiento. Las características generales de los lenguajes de cuarta generación son:

Uso de frases y oraciones parecidas al inglés para emitir instrucciones; no operan por procedimientos, por lo que permiten a los usuarios centrarse en lo que hay que hacer no en cómo hacerlo; Al hacerse cargo de muchos de los detalles de cómo hacer las cosas, incrementan la productividad.

Hay dos tipos de lenguajes de cuarta generación, según se orienten:
a la producción: Diseñados sobre todo para profesionales en la computación. al usuario: Diseñados sobre todo para los usuarios finales, que pueden escribir programas para hacer consultas en una base de datos y para crear sistemas de información. También se llama lenguaje de consultas (SQL, Structured Query Language: lenguaje estructurado para consultas).

miércoles, 29 de septiembre de 2010

HERRAMIENTAS: COMPORTAMIENTO PARA LA RELACIÓN DE PROBLEMAS

HARDWARE:
En computación, término inglés que hace referencia a cualquier componente físico tecnológico, que trabaja o interactúa de algún modo con la computadora. No sólo incluye elementos internos como el disco duro, CD-ROM, disquetera, sino que también hace referencia al cableado, circuitos, gabinete, etc. E incluso hace referencia a elementos externos como la impresora, el mouse, el teclado, el monitor y demás periféricos.

El
hardware contrasta con el software, que es intangible y le da lógica al hardware (además de ejecutarse dentro de éste).

El
hardware no es frecuentemente cambiado, en tanto el software puede ser creado, borrado y modificado sencillamente. (Excepto el firmware, que es un tipo de software que raramente es alterado).

Hardware típico de una computadora

El
típico hardware que compone una computadora personal es el siguiente:

• Su
chasis o gabinete
• La
placa madre, que contiene: CPU, cooler, RAM, BIOS, buses (PCI, USB, HyperTransport, CSI, AGP, etc)
Fuente de alimentación
Controladores de almacenamiento: IDE, SATA, SCSI
Controlador de video• Controladores del bus de la computadora (paralelo, serial, USB, FireWire), para conectarla a periféricos
Almacenamiento: disco duro, CD-ROM, disquetera, ZIP driver y otros
Tarjeta de sonido
• Redes: módem y tarjeta de red

El hardware también puede incluir componentes externos como:
Teclado
Mouse, trackballs
Joystick, gamepad, volante
Escáner, webcam
• Micrófono, parlante
Monitor (LCD, o CRT)
Impresora

SISTEMA OPERATIVO:


Un Sistema Operativo es el software encargado de ejercer el control y coordinar el uso del hardware entre diferentes programas de aplicación y los diferentes usuarios. Es un administrador de los recursos de hardware del sistema. 
En una definición informal es un sistema que consiste en ofrecer una distribución ordenada y controlada de los procesadores, memorias y dispositivos de E/S entre los diversos programas que compiten por ellos.
A pesar de que todos nosotros usamos sistemas operativos casi a diario, es difícil definir qué es un sistema operativo. En parte, esto se debe a que los sistemas operativos realizan dos funciones diferentes. 
Proveer una máquina virtual, es decir, un ambiente en el cual el usuario pueda ejecutar programas de manera conveniente, protegiéndolo de los detalles y complejidades del hardware. Administrar eficientemente los recursos del computador. 

PROGRAMAS DE APLICACIÓN:

En la informática, es un tipo de software diseñado para facilitar al usuario la concreción de un cierto trabajo. Esta característica lo diferencia de otros tipos de programas, como los sistemas operativos (que son los que hacen funcionar a la computadora) y las utilidades (que realizan tareas de mantenimiento o de uso general).

LENGUAJES DE PROGRAMACIÓN:

Los lenguajes de programación son herramientas que nos permiten crear programas y software. Entre ellos tenemos Delphi, Visual Basic, Pascal, Java, etc..

Una computadora funciona bajo control de un programa el cual debe estar almacenado en la unidad de memoria; tales como el disco duro.

Los lenguajes de programación de una computadora en particular se conoce como código de máquinas o lenguaje de máquinas.
 
Estos lenguajes codificados en una computadora específica no podrán ser ejecutados en otra computadora diferente.

Para que estos programas funcionen para diferentes computadoras hay que realizar una versión para cada una de ellas, lo que implica el aumento del costo de desarrollo.

Por otra parte, los lenguajes de programación en código de máquina son verdaderamente difíciles de entender para una persona, ya que están compuestos de códigos numéricos sin sentido nemotécnico.

Los lenguajes de programación facilitan la tarea de programación, ya que disponen de formas adecuadas que permiten ser leidas y escritas por personas, a su vez resultan independientes del modelo de computador a utilizar.

Los lenguajes de programación representan en forma simbólica y en manera de un texto los códigos que podrán ser leidos por una persona.

Los lenguajes de programación son independientes de las computadoras a utilizar.
Existen estrategias que permiten ejecutar en una computadora un programa realizado en un lenguaje de programación simbólico. Los procesadores del lenguaje son los programas que permiten el tratamiento de la información en forma de texto, representada en los lenguajes de programación simbólicos.

Hay lenguajes de programación que utilizan compilador.


La ejecución de un programa con compilador requiere de dos etapas:

1) Traducir el programa simbólico a código máquina
2) Ejecución y procesamiento de los datos.

Otros lenguajes de programación utilizan un programa intérprete o traductor, el cual analiza directamente la descripción simbólica del programa fuente y realiza las instrucciones dadas.

El intérprete en los lenguajes de programación simula una máquina virtual, donde el lenguaje de máquina es similar al lenguaje fuente.

La ventaja del proceso interprete es que no necesita de dos fases para ejecutar el programa, sin embargo su inconveniente es que la velocidad de ejecución es más lenta ya que debe analizar e interpretar las instrucciones contenidas en el programa fuente.



BIBLIOGRAFÍA:
http://www.alegsa.com.ar/Dic/hardware.php
http://definicion.de/programa-de-aplicacion/
http://www.euram.com.ni/pverdes/verdes_informatica/informatica_al_dia/que_es_un_so_144.htm
http://www.lenguajes-de-programacion.com/lenguajes-de-programacion.shtml

sábado, 18 de septiembre de 2010

EXPRESIONES BOOLEANAS

Las expresiones booleanas se usan para determinar si un conjunto de una o más condiciones es verdadero o falso, y el resultado de su evaluación es un valor de verdad. Los operandos de una expresión booleana pueden ser cualquiera de los siguientes:
  • Expresiones relacionales: que comparan dos valores y determinan si existe o no una cierta relación entre ellos (ver más adelante), tal como mfn<10;
  • Funciones booleanas: tal como p(v24), que regresa un valor de verdad (estos se explican bajo "Funciones booleanas").
Las expresiones relacionales permiten determinar si una relación dada se verifica entre dos valores. La forma general de una expresión relacional es:
       expresión-1 operador-de-relación expresión-2
 donde:
  • expresión-1 es una expresión numérica o de cadena
  • operador-de-relación es uno de los siguientes:
    •  = Igual
    • <> No igual (diferente de)
    • < Menor que
    • <= Menor o igual que
    • > Mayor que
    • >= Mayor o igual que
    • : Contiene (puede ser usado sólo en expresiones de cadena)

  • expresión-2 es una expresión del mismo tipo que expresión-1, o sea, expresión-1 y expresión-2 deben ser ambas expresiones numéricas o ambas expresiones de cadena.
Los operadores de relación = <> < <= > >= tienen su significado convencional cuando se aplican a expresiones numéricas (dentro de los límites de precisión de los valores numéricos definidos bajo "Expresiones numéricas"). Cuando se comparan expresiones de cadena, se aplican las siguientes reglas:

  • Excepto por el operador ":" (contiene), las cadenas se comparan exactamente en la forma en que ocurren, o sea, las letras mayúsculas y minúsculas se comparan de acuerdo con el código ASCII que les corresponde (p.ej. A será considerada menor que a);

  • Dos expresiones de cadena no son consideradas iguales, a menos que tengan la misma longitud. Si dos expresiones generan cadenas de diferente longitud que son idénticas, carácter por carácter, hasta el total de la longitud de la más corta, entonces, la más corta será considerada menor que la más larga.
El operador : (contiene), busca una cadena de caracteres (definida por expresión-2) en otra cadena (definida por expresión-1). Si el segundo operando existe en cualquier parte del segundo operando, el resultado es Verdadero (TRUE). Este operador es insensible al hecho de que los caracteres se hallen en mayúsculas o minúsculas: por lo que las letras minúsculas se consideran iguales a su letra mayúscula correspondiente. Por ejemplo, el resultado de:
        v10 : 'química'
será Verdadero (True) si, y sólo si, el campo 10 contiene la cadena química. en caso contrario, el resultado será Falso (False). Nótese que el segundo operando puede ser cualquier cadena o carácter, y no necesita ser una palabra como tal. Por lo tanto, en este ejemplo, el resultado será Verdadero no sólo si el campo 10 contiene la palabra química, sino también si contuviera bioquímica, fotoquímicas, químicamente, etc.
Los operandos de una expresión booleana pueden combinarse con los operadores siguientes:

  • NOT (NO) Este operador produce el valor Verdadero, si su operando es Falso; y el valor Falso, si su operando es Verdadero. El operador NOT sólo puede usarse como operador signo +, o sea, siempre se aplica a la expresión booleana que le sigue;

  • AND (Y) Este operador produce el valor Verdadero si ambos operandos son Verdadero. Si cualquiera de los dos operandos es Falso, entonces el resultado será Falso;

  • OR (O) Este operador realiza una operación O-inclusivo. El resultado es Verdadero si cualquiera de los dos operandos, o ambos son Verdadero. En caso contrario, es Falso.
Al evaluar expresiones booleanas, y en ausencia de paréntesis, CDS/ISIS ejecutará las operaciones NOT en primer lugar, después las operaciones AND, y finalmente las OR. Las series de dos o más operadores del mismo nivel, se ejecutan de izquierda a derecha. Se pueden usar paréntesis para alterar el orden de evaluación: las expresiones dentro de paréntesis se evalúan antes, y las expresiones entre paréntesis internos a otros, son evaluadas antes que las expresiones externas a los paréntesis.
La figura 17 presenta ejemplos de expresiones booleanas.


FUENTE: http://www.cindoc.csic.es/isis/04-2-3.htm

COMPUERTAS LÓGAS



-INTRODUCCIÓN:


Hay disponible una gran variedad de compuertas estándar, cada una con un comportamiento
perfectamente definido, y es posible combinarlas entre si para obtener funciones nuevas.
Desde el punto de vista practico, podemos considerar a cada compuerta como una caja negra, en la que
se introducen valores digitales en sus entradas, y el valor del resultado aparece en la salida.
Cada compuerta tiene asociada una tabla de verdad, que expresa en forma de lista el estado de su salida
para cada combinación posible de estados en la(s) entrada(s).
Si bien al pensar en la electrónica digital es muy común que asumamos que se trata de una tecnología
relativamente nueva, vale la pena recordar que Claude E. Shannon experimento con relés e
interruptores conectados en serie, paralelo u otras configuraciones para crear las primeras compuertas
lógicas funcionales. En la actualidad, una compuerta es un conjunto de transistores dentro de un circuito
integrado, que puede contener cientos de ellas. De hecho, un microprocesador no es más que un chip
compuesto por millones de compuertas lógicas.
Veremos a continuación que símbolo se utiliza para cada compuerta, y su tabla de verdad.


-Compuerta IF (SI)


La compuerta IF se representa
con un triángulo.





La puerta lógica IF, llamada SI en castellano, realiza la función
booleana de la igualdad. En los esquemas de un circuito electrónico
se simboliza mediante un triangulo, cuya base corresponde a la
entrada, y el vértice opuesto la salida. Su tabla de verdad es
también sencilla: la salida toma siempre el valor de la entrada. Esto
significa que si en su entrada hay un nivel de tensión alto, también
lo habrá en su salida; y si la entrada se encuentra en nivel bajo, su
salida también estará en ese estado.
En electrónica, generalmente se utilizan compuertas IF como amplificadores de corriente (buffers en
ingles), para permitir manejar dispositivos que tienen consumos de corriente elevados desde otros que
solo pueden entregar corrientes más débiles.


La compuerta IF es la más sencilla de todas


-Compuerta NOT (NO)




Entrada A    Salida A


      0               0
      1               1



El circulo en la salida significa
negación.





Esta compuerta presenta en su salida un valor que es el opuesto del
que esta presente en su única entrada. En efecto, su función es la
negación, y comparte con la compuerta IF la característica de tener
solo una entrada.
Se utiliza cuando es necesario tener disponible un valor lógico
opuesto a uno dado. La figura muestra el símbolo utilizado en los
esquemas de circuitos para representar esta compuerta, y su tabla
de verdad.
Se simboliza en un esquema eléctrico en el mismo símbolo que la compuerta IF, con un pequeño circulo
agregado en su salida, que representa la negación.





Entrada A   Salida S


      0             1
      1             0


El estado de la salida es el opuesto al de la entrada.

-Compuerta AND (Y)



Compuertas AND de 2 y 4
entradas.



Con dos o más entradas, esta compuerta realiza la función
booleana de la multiplicación.
Su salida será un “1” cuando todas sus entradas también estén en
nivel alto. En cualquier otro caso, la salida será un “0”. El operador
AND se lo asocia a la multiplicación, de la misma forma que al
operador SI se lo asociaba a la igualdad.
En efecto, el resultado de multiplicar entre si diferentes valores
binarios solo dará como resultado “1” cuando todos ellos también
sean 1, como se puede ver en su tabla de verdad.
Matemáticamente se lo simboliza con el signo “x”.



Entrada A   Entrada B   Salida S


       0               0             0
       0               1             0
       1               0             0
       1               1             1


Tabla de verdad de la compuerta AND de dos entradas.


Entrada A   Entrada B   Entrada C   Salida S


       0                0              0             0
       0                0              1             0
       0                1              0             0
       0                1              1             0
       1                0              0             0
       1                0              1             0
       1                1              0             0


Es posible tener más de dos
entradas.



A la izquierda, compuertas AND de 2 y 4 entradas



Podemos pensar en esta compuerta como una lámpara, que hace las veces de salida, en serie con la
fuente de alimentación y dos o mas interruptores, cada uno oficiando de entrada. La lámpara se
encenderá únicamente cuando todos los interruptores estén cerrados. En este ejemplo, el estado de los
interruptores es “1” cuando están cerrados y 0 cuando están abiertos. La salida esta en 1 cuando la
lámpara esta encendida, y en 0 cuando esta apagada.


Circuito eléctrico equivalente a una compuerta AND.


-Compuerta OR (O)


La función booleana que realiza la compuerta OR es la asociada a la
suma, y matemáticamente la expresamos como “+”.
Esta compuerta presenta un estado alto en su salida cuando al
menos una de sus entradas también esta en estado alto.
En cualquier otro caso, la salida será 0.
Tal como ocurre con las compuertas AND, el número de entradas
puede ser mayor a dos.
Entrada A   Entrada B   Salida S


      0                0              0
      0                1              1
      1                0              1
      1                1              1



Tabla correspondiente a una OR de dos
entradas.

 
      0              0                 0            0
      0              0                 1            1
      0              1                 0            1
      0              1                 1            1
      1              0                 0            1
      1              0                 1            1
      1              1                 0            1
      1              1                 1            1


Con tres entradas, la tabla
contiene el doble de estados
posibles.


Un circuito eléctrico equivalente a esta compuerta esta compuesto por una lámpara conectada en serie
con la alimentación y con dos o mas interruptores que a su vez están conectados en paralelo entre si.
Nuevamente, los interruptores serian las entradas, y la lámpara la salida. Si seguimos las convenciones
fijadas en el ejemplo visto al explicar la compuerta AND, tenemos que si ambos interruptores están
abiertos (o en 0), la lámpara permanece apagada. Pero basta que cerremos uno o más de los
interruptores para que la lámpara se encienda.


Circuito eléctrico equivalente a una compuerta OR

-Compuerta NAND (NO Y)



Agregando una etapa NOT a una
compuerta AND obtenemos una
NAND.


Cualquier compuerta lógica se puede negar, esto es, invertir el
estado de su salida, simplemente agregando una compuerta NOT
que realice esa tarea. Debido a que es una situación muy común,
se fabrican compuertas que ya están negadas internamente. Este
es el caso de la compuerta NAND: es simplemente la negación de
la compuerta AND vista anteriormente.
Esto modifica su tabla de verdad, de hecho la invierte (se dice
que la niega) quedando que la salida solo será un 0 cuando todas
sus entradas estén en 1.
El pequeño círculo en su salida es el que simboliza la negación. El
numero de entradas debe ser como mínimo de dos, pero no es
raro encontrar NAND de 3 o mas entradas.


Entrada A   Entrada B   Salida S


      0                0            1
      0                1            1
      1                0            1
      1                1            0
La compuerta NAND es una AND negada

-Compuerta NOR (NO O)




Agregando una etapa NOT a una compuerta AND obtenemos
una NAND.


De forma similar a lo explicado con la compuerta NAND, una
compuerta NOR es la negación de una compuerta OR, obtenida
agregando una etapa NOT en su salida.


Como podemos ver en su tabla de verdad, la salida de una compuerta NOR es 1 solamente cuando todas
sus entradas son 0. Igual que en casos anteriores, la negación se expresa en los esquemas mediante un
círculo en la salida. El número de entradas también puede ser mayor a dos.


Entrada A   Entrada B   Salida S


      0                0            1
      0                1            0
      1                0            0
      1                1            0
Tabla de verdad de la compuerta NOR

FUENTE: http://www.ucontrol.com.ar/PDF/compuertasl.pdf


Entrada A   Entrada B   Entrada C   Salida S