Está en la página 1de 71

2021

CIBERNÉTICA Y COMPUTACIÓN I

Centro Universitario IMEC


Centro Universitario IMEC
2021
CIBERNÉTICA Y COMPUTACIÓN I

CONTENIDO
UNIDAD I. LA CIBERNÉTICA_____________________________________________________1
I.1.- Origen y objetivos de la cibernética.______________________________________________1
I.2.- Sistemas____________________________________________________________________4
I.3.- Modelos____________________________________________________________________8
UNIDAD II. CIRCUITOS LÓGICOS________________________________________________13
II.1.- Sistema Binario_____________________________________________________________13
II.2.- Conversión entre los sistemas de numeración_____________________________________19
II.3.- Operaciones en el sistema binario______________________________________________27
II.4.- Operaciones de adición y sustracción en los sistemas octal y hexadecimal._____________30
II.5.- Elementos del álgebra de Boole: Conjunción, disyunción y negación.__________________34
II.6.- Circuitos en serie y paralelo___________________________________________________38
II.7.- Compuertas Lógicas__________________________________________________________39
II.8.- Representación de compuertas lógicas__________________________________________40
UNIDAD III METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS___________________________46
III.1 Definición y conceptos generales________________________________________________46
III.2.- Elementos y relaciones del problema.___________________________________________47
III.3 Herramientas computacionales para la solución de problemas________________________48
III.4.- Ciclo de Desarrollo de programas______________________________________________53
III.5.- Modelos de ciclo de vida_____________________________________________________54
III.6.- Expresiones y Operadores____________________________________________________61
UNIDAD I. LA CIBERNÉTICA

UNIDAD I. LA CIBERNÉTICA

I.1.- Origen y objetivos de la cibernética.


La cibernética es una ciencia nacida hacia 1942. Esta ciencia surgió de
los problemas planteados durante la Segunda Guerra Mundial a la hora
de desarrollar los denominados cerebros electrónicos y los
mecanismos de control automático para los equipos militares como los
visores de bombardeo. Fue impulsada inicialmente por Norbert Wiener
y Arturo Rosenblueth Stearns, y tiene como objeto “desarrollar un
lenguaje y técnicas que nos permitan abordar el problema de control y
la comunicación en general”.

Norbert Wiener

Norbert Wiener (Columbia, Estados Unidos, 1894 - Estocolmo, 1964)


Matemático estadounidense. Hijo de un profesor de lenguas eslavas
emigrado a Harvard, fue un niño extremadamente precoz, que a la
temprana edad de dieciocho años obtuvo un doctorado de lógica
matemática en Cambridge, Reino Unido, donde estudió con Bertrand
Russell. Resumió sus teorías en Cibernética (1948) y también escribió

~1~
UNIDAD I. LA CIBERNÉTICA

“The Human Use of Human Beings” (1950), “Nonlinear Problems of


Random Theory” (1958) y “God and Golem”, Inc. (1964).

Durante la segunda guerra mundial trabajó para las fuerzas armadas de


los Estados Unidos en un proyecto para guiar la artillería antiaérea de
forma automática mediante el empleo del radar. El objetivo del
proyecto era predecir la trayectoria de los bombarderos y con ella
orientar adecuadamente los disparos de las baterías, mediante
correcciones basadas en las diferencias entre la trayectoria prevista y la
real, conocidas como innovaciones del proceso. Como resultado de los
descubrimientos realizados en este proyecto introduce en la ciencia los
conceptos de feedback (retroalimentación), y de cantidad de
información, con lo que se convierte en el precursor de la “Teoría de la
comunicación” o la “psicología cognitiva”

Arturo Rosenblueth, doctor, fisiólogo y


músico mexicano que vivió de 1900 a
1970.

Realizó algunos estudios en Harvard,


cuyos resultados fueron de gran utilidad al
desarrollo de algunas técnicas mecánicas y
eléctricas.

Realizó contribuciones especializadas en la


inteligencia artificial y ayudó a Norbert
Wiener a redactar su informe sobre la
cibernética.
Arturo Rosenblueth
Stearns
Contribuyó también a construir una máquina con retroalimentación
voluntaria y que se usó para explicar algunos fenómenos, como
síntomas del mal de Parkinson.

~2~
UNIDAD I. LA CIBERNÉTICA

En 1944 publicó un trabajo en el que demostraba que el ADN era el


principal responsable de la transmisión genética. En 1966 ganó el
Premio Nacional de las Ciencias de México.

La cibernética es una disciplina íntimamente vinculada con la teoría


general de sistemas, al grado en que muchos la consideran inseparable
de esta, y se ocupa del estudio de: el mando, el control, las
regulaciones y el gobierno de los sistemas. El propósito de la
cibernética es desarrollar un lenguaje y técnicas que nos permitan
atacar los problemas de control y comunicación en general.

Teoría general de sistemas: Su propósito es estudiar los principios


aplicables a los sistemas en cualquier nivel en todos los campos de
la investigación.

Un concepto muy importante o casi fundamental en cibernética es la


retroalimentación. La retroalimentación parte del principio de que
todos los elementos de una totalidad de un sistema deben comunicarse
entre sí para poder desarrollar interrelaciones coherentes. Sin
comunicación no hay orden y sin orden no hay totalidad (físicos,
biológicos y sociológicos).

La cibernética también se aplica al estudio de la psicología, la


inteligencia artificial, los servomecanismos, la economía, la
neurofisiología, la ingeniería de sistemas y al de los sistemas sociales.

La palabra cibernética ha dejado de identificar un área independiente


de estudio y la mayor parte de la actividad investigadora se centra
ahora en el estudio y diseño de redes neuronales artificiales.

I.2.- Sistemas
 Concepto.

~3~
UNIDAD I. LA CIBERNÉTICA

De acuerdo con O'Brien un sistema es “un grupo de componentes


interrelacionados que trabajan juntos hacia un fin común, aceptando
entradas y produciendo salidas en un proceso de transformación
organizado.” [O’Brien 93]. Partiendo de esta definición podemos
decir que un sistema puede describirse como un conjunto de
elementos (objetos, entidades o conceptos), interrelacionados de
algún modo a fin de lograr un objetivo común.
 Tipos.
 Con respecto al medio ambiente.
 Sistema Cerrado: Aquel que no tiene ambiente ni contexto.
No presentan intercambio con el medio ambiente que los
rodea, son herméticos a cualquier influencia ambiental. No
reciben ningún recurso externo y nada producen que sea
enviado hacia fuera. También se aplica el término a los
sistemas completamente estructurados, donde los elementos y
relaciones se combinan de una manera peculiar y rígida
produciendo una salida invariable, como las máquinas. En
rigor, no existen sistemas cerrados. Se da el nombre de
sistema cerrado a aquellos sistemas cuyo comportamiento es
determinístico y programado y que opera con muy pequeño
intercambio de energía y materia con el ambiente.
 Sistema Abierto: Aquel que tiene medio ambiente o si
interactúa con su medio ambiente. Los sistemas abiertos
presentan intercambio con el ambiente, a través de entradas y
salidas. Intercambian energía y materia con el ambiente. Son
adaptativos para sobrevivir. Su estructura es óptima cuando el
conjunto de elementos del sistema se organiza, aproximándose
a una operación adaptativa.
 Con respecto a su origen
 Sistema Natural: Nacen en respuesta a fenómenos físicos,
químicos y biológicos y que se crean por la naturaleza.

~4~
UNIDAD I. LA CIBERNÉTICA

 Sistema Artificial: Son aquellos que fueron logrados por la


intervención directa de la actividad humana. Un ser humano
participa de manera activa en su diseño, manejo, control y
ejecución.

 Diseño
Un sistema conceptual o sistema ideal es un conjunto organizado de
definiciones nombres, símbolos y otros instrumentos de
pensamiento o comunicación.

Implica una fuerte abstracción, tendente a encontrar lo común a


entidades diferentes. El esfuerzo por encontrar leyes generales del
comportamiento de los sistemas reales.

 Aplicaciones
La creación de máquinas complejas que reemplacen a los
trabajadores provocaría un recorte de personal.

En un futuro ya no se ocuparía personal "viejo" y contratan técnicos


jóvenes para el mantenimiento de las máquinas.

Es una tecnología muy potente pero su gran limitación es encontrar


la relación máquina-sistema nervioso; ya que para esto se debería
conocer el sistema nervioso perfectamente.

 Control y comunicación
La comunicación es "la capacidad de transmitir mensajes y de
reaccionar frente a ellos". Ella "forma las organizaciones", desde las
células en los tejidos hasta los hombres en los grupos sociales. Para
la cibernética, "el gobierno es uno de los procesos más interesantes
y significativos", y su estudio en diversos niveles y áreas
"aumentará nuestra comprensión de los problemas referentes a
todos esos campos".

~5~
UNIDAD I. LA CIBERNÉTICA

 Retroalimentación.
Método de control de sistemas en el cual los resultados obtenidos
de una tarea o actividad son reintroducidos nuevamente en el
sistema con el fin de controlar y optimizar su comportamiento.

Como tal, la retroalimentación se aplica prácticamente a


cualquier proceso que involucre mecánicas semejantes de ajuste
y autorregulación de un sistema. En este sentido, también se la
conoce con el nombre de realimentación, retroacción o, en
inglés, feedback.

 De Información.
Las organizaciones desarrollan sistemas de información para
obtener, capturar y procesar grandes cantidades de datos de
fuentes tanto internas como externas, y convertirlos en
información significativa y procesable y cumplir con los
requerimientos definidos de información. Los sistemas de
información implican una combinación de personal, datos, y
tecnología que apoyan los procesos del negocio.

La información se puede obtener a través de varias formas como


entradas manuales, recopilación, o tecnologías de información.
El volumen de la información de la organización puede presentar
tanto oportunidad como riesgos.

Por esta razón se deben implementar controles que garanticen el


uso y manejo adecuado de la información, sistemas de
información desarrollados con integridad y procesos
tecnológicos que proporcionen oportunidades para mejorar la
efectividad, velocidad y acceso de la información a los usuarios.

Otro factor importante es la calidad de la información, la cual debe


cumplir con las siguientes características:

~6~
UNIDAD I. LA CIBERNÉTICA

Accesibilidad
Apropiada
Actual
Protegida
Conservada
Suficiente
Oportuna
Valida
Verificable

~7~
UNIDAD I. LA CIBERNÉTICA

I.3.- Modelos
Los modelos nos sirven para simplificar estructuras y procesos
complejos, de manera que podamos representarlas, estudiarlas y
comprenderlas. Un modelo es una simplificación que imita los
fenómenos del mundo real, de modo que se puedan comprender las
situaciones complejas y podamos hacer predicciones.

Son útiles para describir, explicar o comprender mejor la realidad, esto


cuando es imposible trabajar la realidad en sí.

Hay diversos tipos de modelos en uso y diferentes entre ellos según el


propósito que se tenga. Existe el modelo verbal que consiste en una
simple explicación con palabras de lo fundamental de una realidad.

Están también los modelos gráficos en los cuales se utilizan


diagramas, los rasgos esenciales están expuestos, la estructura y el
contenido son percibidos con claridad y precisión.

 Modelos naturales y artificiales


 Naturales: Un sistema natural es cuando existe naturalmente sin
que en su origen intervenga la mano del hombre.
Este modelo recrea la realidad, pero bajo ciertas condiciones, en
el caso de los autos se trabaja con prototipos que son modelos
naturales, luego se fabrican a gran escala.
El Sistema Solar es un ejemplo de modelo natural.
 Artificiales: Un modelo artificial es cuando interviene en él la
mano del hombre, son adecuados cuando un modelo natural sería
muy costoso o imposible su utilización.
Un sistema artificial puede ser un coche, al igual que lo es una
computadora o una planta de producción de aluminio.

~8~
UNIDAD I. LA CIBERNÉTICA

Todos los sistemas, tanto artificiales como naturales, tienen vida


limitada, sin embargo, existen sistemas naturales que, aunque algún
día van a terminar su existencia, esta trasciende ampliamente la vida
del hombre y, por tanto, pueden considerarse como permanentes, por
ejemplo, el sistema solar.

Sistema de producción de automóviles. Utiliza modelos o prototipos.

 Analógicos y digitales.
 Analógicos: Es una representación material de un objeto o un
proceso para entender mejor su origen, formación o
funcionamiento. Es usado en ciencia e ingeniería para validar las
hipótesis y aproximaciones, mediante el cálculo numérico.
Son aquellos en el que el origen de los datos es directo (como en
los discos de acetato) las variables o los datos son curvados,
imprecisos, pero son los más fieles porque nos dan una
proyección más real.

No obstante tienen altas posibilidades de error e interferencia, ya


que pueden tener interferencias ambientales.

~9~
UNIDAD I. LA CIBERNÉTICA

 Digitales: Es cualquier dispositivo destinado a la generación,


transmisión, procesamiento o almacenamiento de señales
digitales. Es una combinación de dispositivos diseñados para
manipular cantidades físicas o información que solo pueden
tomar valores discretos, es decir, representados de una manera
digital.
Para llegar a la elaboración de los modelos digitales es necesario
efectuar un proceso de codificación de la información, muchas
veces originadas por un modelo analógico, que permite una
presentación virtual en forma de cifras. Los sistemas digitales
basan su proyección en unos y ceros, positivo y negativo, y con
esto no tienen posibilidades de interferencia.

 Híbridos
Si bien existen muchas formas de describir diferentes subsistemas
por separado que están relacionados, se necesita un modelo único
para poder comprender las relaciones causa-efecto de manera total y
optimizar el diseño del proceso o sistema en forma global que se
quiera estudiar.

Los sistemas híbridos surgieron como una respuesta a la necesidad


de integrar los modelos dinámicos de subsistemas de diferentes
naturalezas. Un sistema híbrido es aquel donde existen varios
modos de operación, de dinámica continua en el tiempo, y
transiciones entre dichos modos, que ocurren en ciertos instantes,
bajo ciertas condiciones. Estas transiciones son descritas a través de
modelos dinámicos de tipo discreto. En pocas palabras, los sistemas
híbridos integran dinámicas continuas y discretas.

Por ejemplo, en un proceso de fabricación podría encontrarse un


robot con diversos tiempos de ejecución para trayectorias distintas,
que transporta una pieza, que en la etapa siguiente será sometida a
un proceso químico o térmico. Luego, la pieza será sometida a un
proceso de acabado; posteriormente, será montada en otra pieza que

~ 10 ~
UNIDAD I. LA CIBERNÉTICA

proviene de un proceso de inyección de plástico con el que debe


sincronizarse; y así sucesivamente.

Proceso de fabricación de ladrillos de arcilla.

Los procesos pueden ser modelados por ecuaciones que describen


su dinámica en forma continua en el tiempo y son iniciados por
ciertos eventos o condiciones, como cuando la pieza alcanza ciertas
especificaciones o llega a cierta posición en el espacio de trabajo,
entre otras posibilidades.

En un proceso como el anterior, puede ser de interés controlar una


variable común a todos los subsistemas, como el consumo de
energía o el tiempo total empleado en la fabricación del producto.
Para ello, se necesita disponer de un modelo único donde se
consideren tanto los modelos de los subsistemas como sus
interacciones. Obtener un modelo relativamente simple de la
dinámica del sistema completo puede ser una tarea ardua y es en
este punto donde los modelos híbridos son de gran utilidad.

 Matemáticos
Un modelo matemático es un tipo de modelo científico que utiliza
algún formulismo matemático para expresar relaciones, proposiciones
sustantivas de hechos, variables, parámetros, entidades y relaciones

~ 11 ~
UNIDAD I. LA CIBERNÉTICA

entre variables y/o entidades u operaciones. Estos modelos se utilizan


para analizar los comportamientos de sistemas complejos ante
situaciones que resultan difíciles de observar en la realidad.

Los modelos matemáticos


pueden dividirse en
deterministas (no hay
incertidumbre respecto a la
forma del resultado y los
datos utilizados son
completamente conocidos y
determinados) y estocásticos
(son modelos probabilísticos,
ya que no se conoce el
resultado esperado sino su
probabilidad).

~ 12 ~
UNIDAD II. CIRCUITOS LÓGICOS

UNIDAD II. CIRCUITOS LÓGICOS

II.1.- Sistema Binario


Todo sistema de comunicación necesita un mensaje, un emisor del
mismo, un receptor, un canal para transmitir la información y un
código que tanto el emisor como el receptor sean capaces de entender.
Así, por ejemplo, cuando dos seres humanos hablan entre sí (emisor y
receptor) utilizan un idioma que ambos entiendan (código) y
transmiten el mensaje mediante el sonido de la voz y su propagación
por el aire (canal). El avance de las comunicaciones ha ido dando lugar
a modificaciones de los canales usados para transmitir la información,
así como los códigos empleados. En la era digital, el desarrollo de
sistemas que usan la electricidad y las ondas electromagnéticas como
canales para emitir información ha supuesto una vía de desarrollo de
códigos que se adapten a los mismos. La transmisión de información
mediante estos sistemas puede responder a formas alámbricas (por un
cable e impulsos eléctricos) o inalámbricas (mediante la propagación
de ondas electromagnéticas). Los códigos empleados para ambos
canales responden a dos formas:

 Transmisión analógica: los valores que se transmiten son


continuos, es decir, se mide la intensidad de la señal que llega, y
esta toma una infinidad de valores entre unos límites.
 Transmisión digital: Los valores que se transmiten son discretos y
adoptan un número concreto de valores. El caso más habitual es
utilizar sólo dos posibilidades, que responden a recibir señal
(primera posibilidad) o no recibirla (segunda posibilidad).

En ambos casos, de la señal recibida se toman valores regularmente (es


decir, se divide la misma en “trocitos” entre los cuales pasa un tiempo
determinado y se mide el valor de la misma en cada “trocito”).

~ 13 ~
UNIDAD II. CIRCUITOS LÓGICOS

En el caso de una señal analógica cada vez que tomemos un dato la


señal tendrá una intensidad y ésta tendrá un significado.

En el caso de una señal digital al tomar un dato obtendremos una señal


o la ausencia de la misma. Pero, ¿cómo se envía la información en una
computadora? Partiendo de la base de que las computadoras funcionan
con electricidad y envían la información que procesan mediante
impulsos eléctricos, el primer paso es entender por qué es mejor una
señal digital. Una señal analógica necesita codificar la información
(hablando de impulsos eléctricos) con diferentes voltajes,
estableciendo un código que transforme la información en diferentes
voltajes. El problema sería que, si la señal eléctrica sufre interferencias
o se atenúa1 el mensaje cambiaría completamente y, con toda
seguridad, pasaría a no tener sentido. Estableciendo una transmisión
digital, la intensidad de la señal carece de sentido, pues sólo es
importante establecer cuándo se recibe señal y cuando no se recibe
señal. Por ello, se desarrolló un sistema, llamado código binario, que
responde a los dos estados anteriormente mencionados (recibir señal o
no recibirla) y establece para ellos dos valores:

Recibo señal ...................................1


No recibo señal ..............................0

La computadora va tomando valores de forma periódica, en


pequeñísimos tramos de tiempo, y va marcando si recibe señal (1) o si
no la recibe (0). De ello surge una sucesión de 1 y 0. Ya tenemos la
base para desarrollar un código, que tiene que utilizar esos dos
números y combinarlos para que respondan a nuestras necesidades.

A la unidad más pequeña que se puede representar en binario (es


decir, a cada 1 o 0) se le denomina bit. Cada uno podríamos
establecer nuestro código binario y marcar nuestras combinaciones de
1 y 0, pero no podríamos entendernos entre nosotros al estar los
mensajes en diferentes “idiomas” binarios. Por ello, es importante que
1
Atenuar es el término usado para definir el proceso por el cual una señal eléctrica o electromagnética se debilita.

~ 14 ~
UNIDAD II. CIRCUITOS LÓGICOS

todas las computadoras trabajen bajo un mismo código. El código


binario que emplean de forma general las computadoras se denomina
código ASCII (en inglés siglas de “American Standard Code for
Information Interchange”) y establece un número concreto de bits para
cada uno de los símbolos que utilizamos. Pero, ¿qué número de bits es
necesario? Si utilizamos un sólo bit las posibilidades son dos, el 1 y el
0. Si utilizamos dos bits las combinaciones aumentan, como se
muestra en la siguiente tabla:

Número de bits Combinaciones posibles


1 2 0, 1
2 4 00, 01, 10, 11
000, 001, 010, 011,
3 8
100, 101, 110, 111
0000, 0001, 0010, 0011,
0100, 0101, 0110, 0111,
4 16
1000, 1001, 1010, 1011,
1100, 1101, 1110, 1111

La cantidad necesaria, para poder abarcar todos nuestros caracteres,


sería de 8 bits, que nos da 256 combinaciones posibles, las cuales nos
permiten dar cabida a los caracteres de nuestro alfabeto. El código
ASCII, para no incurrir en errores, establece una combinación concreta
de 8 bits a cada caracter. A cada grupo de 8 bits que representan un
caracter se le denomina byte u octeto.

A continuación se establecen algunos ejemplos de caracteres y su


equivalencia en código ASCII:

Equivalencia en
Caracter
ASCII
A 01000001

~ 15 ~
UNIDAD II. CIRCUITOS LÓGICOS

L 01001100
W 01010111
1 00110001

A partir del byte las unidades de capacidad de información, en el


sistema internacional, se miden en múltiplos de 1000, siendo un
kilobyte (Kb)1000 bytes, tal y como se refleja en la tabla siguiente:

Como vemos en la tabla, las siglas de Kilobyte son KB, ya que la


palabra byte se representa con una B y el bit con una b.
Frecuentemente esta nomenclatura es usada de forma errónea y se
representa Kilobyte como Kb, pero no es correcto.

Es usual, en el mundo informático, usar múltiplos de 1024 en lugar de


múltiplos de 1000 a la hora de representar la cantidad de bits. Esto se
debe a que el sistema binario se basa en dos estados, por lo que al
principio las capacidades iban creciendo según potencias de base 2, y
se estandarizó el uso de 1024 como múltiplo para ir estableciendo las
equivalencias, ya que es la potencia de base 2 más cercana a 1000
(2^10 = 1024). En muchas ocasiones se suele leer y escuchar que 1
Kilobyte son 1024 bytes, pero no es correcto. Para las equivalencias

~ 16 ~
UNIDAD II. CIRCUITOS LÓGICOS

basadas en potencias de base 2 (múltiplos de 1024) se usa la palabra


Kibibyte, tal como se muestra en la siguiente tabla:

Como el código ASCII representa cada byte con grupos de 8 bits,


existe un método algo más simplificado para representar la
información, denominado código HEXADECIMAL. Este código sólo
sirve para representar información a nivel usuario. La computadora no
trabaja con el mismo, pero el programador si ve facilitado su trabajo.
El código hexadecimal convierte cada grupo de 4 bits en un solo
caracter. De esta forma, un byte (ocho 1 y 0) se representará por 2
caracteres. A cada grupo de 4 bits se le denomina nibble, de forma que
2 nibbles forman un byte. Si contamos todas las combinaciones con 4
bits veremos que hay 16 posibilidades. El código hexadecimal
establece un solo caracter a cada uno de ellos, empezando por la
combinación más baja posible (0000) a la cual le otorga el 0, siguiendo
con los números en orden hasta el 9 y finalizando con letras en orden
alfabético, como muestra la siguiente tabla:

~ 17 ~
UNIDAD II. CIRCUITOS LÓGICOS

~ 18 ~
UNIDAD II. CIRCUITOS LÓGICOS

II.2.- Conversión entre los sistemas de numeración


Conversión decimal a binario
Existe una forma de transformar cualquier número decimal en un
número binario, con la cual obtenemos el mismo resultado que
conseguiríamos si siguiésemos la secuencia de la tabla anterior. Para
ello, hay que ir dividiendo el número decimal entre 2, sin sacar
decimales (por lo que el resto de cada división, al ser el divisor 2,
siempre será 0 ó 1). Seguiremos dividiendo los resultados hasta que
obtengamos un 1, como muestra el siguiente ejemplo en el cual vamos
a transformar el número decimal 450 en número binario:

Una vez realizadas las sucesivas divisiones entre 2 tenemos una serie
de restos (marcados en negrita y subrayados), así como el 1 final que
queríamos. Todos los restos y dicho 1 están resaltados en verde.
Nuestro número binario, ya obtenido, se lee de derecha a izquierda,
encadenando el 1 final y todos los restos obtenidos. De esta forma
sabemos que...:

450 en decimal se corresponde con 111000010 en binario.

Conversión binario a decimal


Si queremos saber qué número decimal corresponde a un número
binario, el proceso a seguir es sencillo, basta con realizar una serie de

~ 19 ~
UNIDAD II. CIRCUITOS LÓGICOS

pasos y acabaremos obteniendo el número decimal que se corresponde


con el número binario. Para ello vamos a hacer el proceso en seis
partes:

1) Separamos los bits (1 y 0) del número binario.


2) Situamos un 2 multiplicando a cada bit.
3) Vamos a poner potencias a los 2 que hemos situado en el paso
anterior, empezando por el 2 de la derecha, al que le pondremos
como potencia el 0 (20) y seguiremos poniendo potencias cada una
un grado más alto que la anterior (0, 1, 2, 3, etc.).
4) Resolvemos las potencias de base 2.
5) Realizamos la multiplicación del bit por el resultado de la potencia
de base 2.
6) Sumamos todos los resultados anteriores.

En el siguiente cuadro se realizan los seis pasos para transformar el


110010110 en número decimal:

Binario: 110010110
1) 1 1 0 0 1 0 1 1 0
2) 1-- 2 1--2 0--2 0--2 1--2 0--2 1--2 1--2 0--2
3) 1 * 28 1 * 27 0 * 26 0 * 25 1 * 24 0 * 23 1 * 22 1 * 21 0 * 20
4) 1*25 1*12 0*64 0*32 1*16 0*8 1*4 1*2 0*1
5) 6
256 8
128 0 0 16 0 4 2 0
6) 256 + 128 + 16 + 4 + 2
Decimal: 406

Practicar estos procesos es sencillo, no tienes más que elegir un


número decimal, por ejemplo el 650, y convertirlo en número binario.
Una vez que has obtenido el número binario, vuelve a operarlo para
pasarlo a número decimal. Si tras ambos procesos vuelves a obtener el
650 es que has operado de forma correcta.

~ 20 ~
UNIDAD II. CIRCUITOS LÓGICOS

Conversión octal a decimal


El sistema de numeración posicional cuya base es 8, se llama octal y
utiliza los dígitos indio arábigos: 0, 1, 2, 3, 4, 5, 6, 7. En informática a
veces se utiliza la numeración octal en vez de la hexadecimal. Tiene la
ventaja de que no requiere utilizar otros símbolos diferentes de los
dígitos. Sin embargo, para trabajar con bytes o conjuntos de ellos,
asumiendo que un byte es una palabra de 8 bits, suele ser más cómodo
el sistema hexadecimal, por cuanto todo byte así definido es
completamente representable por dos dígitos hexadecimales2.

El sistema de numeración octal es un sistema de numeración en base 8,


una base que es potencia exacta de 2 o de la numeración binaria. Esta
característica hace que la conversión a binario o viceversa sea bastante
simple. El sistema octal usa 8 dígitos (0, 1, 2, 3, 4, 5, 6, 7) y cada
dígito tiene el mismo valor que en el sistema de numeración decimal.

Como el sistema de numeración octal usa la notación posicional


entonces para el número 3452.32 tenemos que:

2*80 + 5*81 + 4*82 + 3*83 + 3*8-1 + 2*8-2 = 2 + 40 + 4*64 + 3*512 +


3*0,125 + 2*0,015625 = 2 + 40 + 256 + 1536 + 0.375 + 0.03125 =
1834 + 0.40625d

Entonces, 3,452.32q = 1,834.40625d; mejor aún: 3,452.32(8).

El sub índice "q" indica número octal, se usa la letra q para evitar
confusión entre la letra 'o' y el número 0. En informática, a veces se
utiliza la numeración octal en vez de la hexadecimal. Tiene la ventaja
de que no requiere utilizar otros símbolos diferentes de los dígitos. Es
posible que la numeración octal se usara en el pasado en lugar de la
decimal, por ejemplo, para contar los espacios interdigitales o los
dedos distintos de los pulgares.
2
Extraído de Internet en Wikipedia: https://es.wikipedia.org/wiki/Sistema_octal

~ 21 ~
UNIDAD II. CIRCUITOS LÓGICOS

Conversión decimal a octal


Para poder convertir un número en base decimal a base octal se divide
dicho número entre 8, dejando el residuo y dividiendo el cociente
sucesivamente entre 8 hasta obtener cociente 0, luego los restos de las
divisiones leídos en orden inverso indican el número en octal.

Ejemplo:

Escribir en octal el Escribir en octal el


número decimal 730 número decimal 179
730÷8= 91.25 179÷8= 22.38
91=cociente 22= cociente
8 x 91= 728 8 x 22= 176
730 - 728= 2 179-176= 3
2 = residuo 3 = residuo

91÷8= 11.375 22÷8= 2


11=cociente 2=cociente
8 x 11= 88 8x2= 16
91-88= 3 22-16= 6
3 = residuo 6 = residuo

11÷8= 1 2÷8= 0
1= cociente 0= cociente
8 x 1= 8 8x0= 0
11-8= 3 2-0= 2
3 = residuo 2 = residuo

1÷8= 0 El octal del número


0=cociente decimal 179= 263

~ 22 ~
UNIDAD II. CIRCUITOS LÓGICOS

8x0=0
1 - 0=1
1 = residuo

El octal del número


decimal 730 = 1332

Sistema de numeración hexadecimal


En el sistema hexadecimal los números se representan con dieciséis
símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F. Se utilizan los
caracteres A, B, C, D, E y F representando las cantidades decimales
10, 11, 12, 13, 14 y 15 respectivamente, porque no hay dígitos
mayores que 9 en el sistema decimal. El valor de cada uno de estos
símbolos depende, como es lógico, de su posición, que se calcula
mediante potencias de base 16.

Se puede representar un número hexadecimal usando un subíndice de


16 (es decir, 23516). Un hex puede considerarse una versión más corta
de un decimal, por ejemplo, un número grande en forma decimal tiene
un equivalente hexadecimal mucho más pequeño (usando menos bits
hexadecimales para representar el número decimal).

Conversión hexadecimal a decimal


¿Cómo se convierte un hexadecimal a un decimal y un decimal a un
hexadecimal? Primero, debemos saber que todas las letras en un
hexadecimal tienen equivalentes decimales, como se detalla en la tabla
a continuación.

Tabla de Hexadecimal a Decimal

Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F
Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

~ 23 ~
UNIDAD II. CIRCUITOS LÓGICOS

Para convertir un hexadecimal a un decimal de forma manual, debe


comenzar multiplicando el número hexadecimal por 16. Luego, lo
eleva a una potencia de 0 y aumenta esa potencia por 1 cada vez de
acuerdo con el número hexadecimal equivalente.

Comenzamos desde la derecha del número hexadecimal y vamos hacia


la izquierda cuando aplicamos las potencias. Cada vez que multiplicas
un número por 16, aumenta la potencia de 16.

Al convertir un hexadecimal C9 a un decimal, su trabajo debería verse


así:

9 = 9 * (16 ^ 0) = 9
C = 12 * (16 ^ 1) = 192
Luego, agregamos los resultados.
192 + 9 = 20110 decimal

Los pasos quedarían como sigue:

1. Primero, convertimos todos nuestros números hexadecimales a sus


equivalentes decimales. C es igual a 12 decimal (consulte la tabla
anterior) y 9 es igual a 9 decimal.
2. Luego, multiplicamos los números 12 y 9 a partir del último
número de la pregunta por 16 y su potencia. Recuerde, las
potencias comienzan desde cero.
3. Nuestra primera multiplicación tenía una potencia de 0 y la
segunda multiplicación tenía una potencia de 1. Si hubiera una
tercera, habría tenido una potencia de 2.
4. El símbolo (^) representa "elevado al poder de". Por lo tanto, los
primeros términos entre paréntesis dicen: "16 a la potencia de 0".
Esto significa que dieciséis se multiplicó por sí mismo cero veces.

~ 24 ~
UNIDAD II. CIRCUITOS LÓGICOS

Cualquier cosa elevada a la potencia de cero es 1. Por lo tanto, 9 se


multiplicó por uno.
5. En el segundo paréntesis, el término decía: "16 a la potencia de 1."
Un número elevado a la potencia de uno es igual a ese número. Por
lo tanto, 12 se multiplicó por 16. Cuando multiplicamos estos,
obtuvimos 192.
6. Luego agregamos los resultados para obtener nuestro número
decimal equivalente, que fue 201.

Veamos el ejemplo de convertir el hexadecimal 10B1A a decimal.

Hexadecimal: 10B1A
1) 1 0 B 1 A
2) 1=1 0=0 B = 11 1 = 1 A=
3) 1 * 16 4
0 * 163 11 * 1 * 16 10*16
1

4) 1*65636 0*4096 11*25 1*16 10*1


5) 65536 0 2816 16 10
6) 65536 + 0 + 2816 + 16 + 10
Decimal: 68378

Conversión decimal a hexadecimal


Para convertir de decimal a hexadecimal, debe dividir el número
decimal por 16 repetidamente. Luego, escriba el último resto que
obtuvo en la columna equivalente hexadecimal. Si el resto es más de
nueve, recuerde cambiarlo a su letra hexadecimal equivalente. La
respuesta se toma del último resto obtenido. Consulte el siguiente
diagrama como ejemplo:

Ejemplo 1. Convertir el número decimal 201 a hexadecimal.

Divisor Número base diez Resto Equivalente hex


16 201 X X
16 12 9 9

~ 25 ~
UNIDAD II. CIRCUITOS LÓGICOS

Divisor Número base diez Resto Equivalente hex


X 0 12 C

Por lo tanto, la respuesta es C9. Como puede ver, contiene menos bits
que su equivalente decimal, 201.

Los pasos quedarían como sigue:

1. Dividimos nuestro número decimal (base 10) por 16 para


convertirlo a un equivalente hexadecimal (base 16).
2. Nuestro número decimal era 201. Dividimos esto entre 16 para
obtener un valor de 12 con un resto de 9. El equivalente
hexadecimal para 9 es 9, por lo que no se realizó ningún cambio.
3. Luego dividimos nuestra respuesta anterior, 12, por 16. Obtuvimos
un valor de cero y un resto de 12. Luego convertimos 12 a
hexadecimal. El equivalente hexadecimal de 12 es C (consulte la
primera tabla). Luego escribimos nuestra respuesta del último resto
que recibimos al primero en el orden de izquierda a derecha.
Ejemplo 2. En este ejemplo, queremos convertir el decimal 3000 a un
hexadecimal.

Divisor Número base diez Resto Equivalente hex


16 3000 X X
16 187 8 8
16 11 11 B
16 0 11 B

La respuesta es BB8 hexadecimal. Recuerde, escribimos el último


resto que recibimos al principio de nuestra respuesta

II.3.- Operaciones en el sistema binario


Para empezar con las operaciones en binario, se deben transformar
previamente a este sistema los números que se van a trabajar en las

~ 26 ~
UNIDAD II. CIRCUITOS LÓGICOS

respectivas operaciones. Con esto dicho, solamente se hablará de


aquellos números en sistema binario.

Suma
Se pueden sumar números en binario en la forma convencional de la
suma de primaria, teniendo en cuenta que cada vez que una suma
supere al número 1, se acarrea en la posición superior de la izquierda,
como se acarrea el número que supera la posición del nueve, en el
sistema decimal. De igual manera, se deja un 0 como el número que se
debe sumar con el siguiente. Por ejemplo:

10101010
+0 1 0 0 1 1 1 1

Resta
Se resuelven de una manera similar si se utiliza el método de la resta
de primaria. Se deben tener en cuenta los siguientes procedimientos:

1) 0-0= 0
2) 1-0= 1
3) 1-1= 0
4) 0-1= 1, con acarreo de 1 a la posición de la izquierda

También se debe saber que los números acarreados a la parte superior


se restan al revés, o sea, de abajo hacia arriba, pero se regresa al orden
original una vez se dejen de restar estos números acarreados (de arriba
hacia abajo). Por ejemplo:

~ 27 ~
UNIDAD II. CIRCUITOS LÓGICOS

Multiplicación
En este procedimiento, se utiliza un método muy similar a las
multiplicaciones con base decimal, siendo innecesario acarrear
números en la primer fase de las multiplicaciones, pues sólo se
obtienen resultados de 1 o 0. Sin embargo es en la fase de la sumas de
los resultados la que conlleva acarrear números, aplicando los mismos
criterios que en la suma de binarios, ya abordada anteriormente. Por
ejemplo:

División
En esta se utiliza un método gráfico que utiliza la “casita” habitual , al
revés, pues esta rodea al divisor, en lugar de al dividendo. Se debe
tener en cuenta de cuántas cifras se compone el divisor, pues es el

~ 28 ~
UNIDAD II. CIRCUITOS LÓGICOS

número inicial de dígitos que se pretenderá tomar del dividendo. Estas


se toman de izquierda a derecha, en el dividendo.

Se debe tomar esa misma cifra, para ver si el divisor cabe una vez en
el dividendo. De no ser así, simplemente se toma otra cifra del
dividendo, para que quepa. Esa sola vez se escribe en el cociente y se
multiplica por todos los dígitos del divisor y se resta al dividendo. Es
obvio que aquí se deben utilizar los criterios usados en la operación se
sustracción de números binarios.

El resultado de esta resta es el nuevo dividendo. Se inicia de nuevo el


procedimiento, como en una división manual normal. Si el divisor no
cabe una vez en el dividendo nuevo, se baja un dígito del dividendo
original y se repite la comparación. Se agrega un 1 al cociente y se
multiplica por el divisor, de nuevo.

Es un proceso cíclico, hasta que se acaben los dígitos en el dividendo


original para bajar. Por ejemplo:

Cabe destacar que todas las operaciones anteriores son comprobables


transformando sus componentes a base 10 y resolverlas de manera
convencional.

~ 29 ~
UNIDAD II. CIRCUITOS LÓGICOS

II.4.- Operaciones de adición y sustracción en los sistemas


octal y hexadecimal.
Sistema Octal
En el sistema de numeración octal, los números se representan
mediante ocho dígitos diferentes: 0, 1, 2, 3, 4, 5, 6 y 7. Cada dígito
tiene, naturalmente, un valor distinto dependiendo del lugar que
ocupen. El valor de cada una de las posiciones viene determinado por
las potencias de base 8.

Suma de octales:
1) Se empieza a sumar de derecha a izquierda.
2) Sumar el/los dígitos que se encuentran en la primer columna y se
coloca el resultado debajo de la columna.
3) En caso de que la suma exceda la base del sistema, se restan 8, y
se coloca un acarreo en la siguiente columna, el valor del acarreo
depende de las veces que haya superado la base del sistema y el
valor que se obtiene de la resta se coloca debajo de la columna.

~ 30 ~
UNIDAD II. CIRCUITOS LÓGICOS

Resta de octales:
Se realiza de la misma forma que en el sistema decimal, la única
diferencia es que cuando se “piden cifras” al número que está al lado,
pasa a la columna de la derecha como 8, luego se suma ese 8 con el
número que “pidió” la cifra y se continua con la operación.

Cuando el segundo número (sustraendo) es mayor que el primero


(minuendo) el resultado (diferencia) será negativo.

Operaciones en hexadecimal:
El sistema hexadecimal tiene como base el número 16, y los números
que lo contemplan son: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F (en donde
A=10, B=11, C=12, D=13, E=14, F=15).

Suma Hexadecimal:
1.) Se efectúa:

 A+A=20 (20-16=4 y llevamos 1)


 Si el resultado de la suma es mayor que 16 llevamos 1 unidad.

~ 31 ~
UNIDAD II. CIRCUITOS LÓGICOS

 Se hace una resta del resultado -16. (si el resultado sigue todavía
siendo mayor se vuelve a restar por 16 y se vuelve a llevar otro y
así sucesivamente, tantas unidades como restas se realicen.)
 A la resultante se le añade 1 al principio dando como resultado
14.

NOTA: A=10 y C=12

En donde 10 + 12= 22, eso se resta con 16(que es la base del sistema)
y el resultado es 6, llevando 1.

Resta Hexadecimal:

Explicación: A es menor que C, entonces A pide prestado 1 unidad a


7(1 unidad =16 por trabajar en base hexadecimal) en donde 7 se

~ 32 ~
UNIDAD II. CIRCUITOS LÓGICOS

convierte en 6 y la unidad se suma con A, el resultado seria 26, 26-


12=14(E). Y el resto se resta normalmente.

~ 33 ~
UNIDAD II. CIRCUITOS LÓGICOS

II.5.- Elementos del álgebra de Boole: Conjunción,


disyunción y negación.

Función Booleana
Una función booleana es una función cuyo dominio son las palabras
formadas por los valores binarios 0 ó 1.

Existen varias formas de representación de una función lógica, entre


las cuales podemos ver las siguientes:

 Algebraica
 Por tabla de verdad
 Numérica
 Gráfica

La Conjunción
La conjunción es el operador correspondiente al término "y", siendo su
símbolo más corriente el siguiente, "^", se le conoce como la
multiplicación lógica. Expresado en el lenguaje matemático, la
conjunción está regida por la ley asociativa , "(pq)r" equivale a decir
"pqr". Pero también es de carácter conmutativo: "pq" y "qp" son
irrelevantes en su orden.

La regla para establecer los criterios de verdad de la conectiva lógica


conjunción es la siguiente:

 Una conjunción de enunciados en los cuales todos son


verdaderos, es verdadera
 Una conjunción de enunciados en donde no todos son verdaderos
es falsa.

~ 34 ~
UNIDAD II. CIRCUITOS LÓGICOS

 Lo que equivale a decir que basta que uno de sus componentes


sea falso para que toda la proposición sea falsa y sólo será
verdadera en el caso de que ambos componentes lo sean.

La expresado anteriormente se resumen simbólicamente de la siguiente


manera:

p q p^q
F F F
F V F
V F F
V V V

Ejemplo:

Sea el siguiente enunciado "el auto enciende cuando tiene gasolina en


el tanque y tiene corriente en la batería" Sean:

p= tiene gasolina el tanque q = tiene corriente la batería r = el auto


enciende = p ^ q

La conclusión resultante es que para que el auto encienda se debe tener


gasolina en el tanque y corriente en la batería, sino se tiene una de
estas dos condiciones el auto no arrancará.

Disyunción Inclusiva
La disyunción inclusiva, llamada también, alternación, expresada
ordinariamente mediante la palabra "o", simbólicamente se le
representa por medio de la letra "v", colocada entre dos proposiciones.
Sin embargo, la "o" en este caso no tiene carácter de encrucijada o de
dilema, y se puede interpretar como " o uno u otro o ambos". Por
ciertas analogías con el álgebra se le llama también suma lógica. La
alternación posee, igualmente, la propiedad asociativa que consiste en

~ 35 ~
UNIDAD II. CIRCUITOS LÓGICOS

la no importancia de la agrupación en relación con la verdad o la


falsedad de una proposición dada. También es afectada por la ley
conmutativa de que el orden de las alternativas no afecta a la
alternación.

La regla de la tabla de verdad para esta conectiva lógica es la


siguiente:

 Una disyunción inclusiva es verdadera cuando por lo menos una


de sus alternativas es verdadera; solamente será falsa si las dos
lo son.

La tabla de verdad del enunciado anterior es como sigue:

p q pvq
V V V
V F V
F V V
F F F

Ejemplo:

Sea el siguiente enunciado "Una persona puede entrar al cine si


compra boleto u obtiene un pase" Sean:

p= compra boleto q = obtiene un pase


r = una persona entra al cine = p v q

La conclusión resultante es obvia, puesto que para entrar al cine es


necesario tener por lo menos una de las dos condiciones: comprar un
boleto o tener un pase, si se tiene ambas también se puede entrar, si no
tengo ninguna de las dos alternativas entonces no se puede entrar al
cine.

~ 36 ~
UNIDAD II. CIRCUITOS LÓGICOS

Disyunción exclusiva
La disyunción exclusiva se simboliza por el signo "v", corresponde a la
expresión " o uno u otro, pero no ambos a la vez". Una de las
propiedades de esta conectiva es la de ser conmutativa y la de poseer
el carácter asociativo. Se puede mostrar la equivalencia de los
esquemas proposicionales así como establecer que es no esencial la
agrupación por la cual optemos. Ejemplos de expresiones afines a esta
conectiva son " a menos que…" o "salvo que…"

La regla de la tabla de verdad para esta conectiva lógica es la


siguiente:

 Una disyunción exclusiva es verdadera cuando una de sus


alternativas es verdadera; y será falsa si las dos alternativas son
falsas o verdaderas. La tabla de verdad del enunciado anterior es
como sigue:

p q pvq
V V F
V F V
F V V
F F F

La Negación
La negación se simboliza, generalmente por el signo "~" (tilde). Este
signo puede ser traducido en palabras, así: "no es el caso que" o, más
brevemente, "no".

A partir de la teoría de conjuntos, establecimos si un elemento


pertenece o no a un conjunto y se señaló que si no es elemento del
conjunto, entonces es elemento del conjunto complemento. Por tanto,
la negación se refiere al conjunto complemento.

~ 37 ~
UNIDAD II. CIRCUITOS LÓGICOS

Se establece el siguiente principio para la negación lógica: la negación


de un enunciado verdadero es falsa; la negación de un enunciado falso
es verdadero. Lo que equivale a decir que la negación de la negación
de una proposición verdadera es verdadera; y la negación de la
negación de una proposición falsa es falsa. Además, la conectiva no es
la única de tipo singular del listado de conectores lógicos señalado
anteriormente.

p ~p
V F
F V

II.6.- Circuitos en serie y paralelo


Circuito en serie
Es aquel que está constituido dispuesto uno detrás del otro. Se
representan mediante la conjunción, basta con que un interruptor está
abierto para que el resultado sea cero

Circuito Paralelo
Está constituido por interruptores dispuestos uno al lado del otro.

Se representa mediante una disyunción hasta que uno de los


interruptores esté cerrado para que el resultado sea igual a 1.

~ 38 ~
UNIDAD II. CIRCUITOS LÓGICOS

Circuitos Serie y Paralelo

II.7.- Compuertas Lógicas


Los circuitos de conmutación y temporización, o circuitos lógicos,
forman la base de cualquier dispositivo en el que se tengan que
seleccionar o combinar señales de manera controlada. Entre los
campos de aplicación de estos tipos de circuitos pueden mencionarse
la conmutación telefónica, las transmisiones por satélite y el
funcionamiento de las computadoras.

Las Compuertas Lógicas son circuitos electrónicos conformados


internamente por transistores que se encuentran con arreglos especiales
con los que otorgan señales de voltaje como resultado o una salida de
forma booleana (Verdadero – Falso), están obtenidos por operaciones
lógicas binarias (suma, multiplicación). También niegan, afirman,
incluyen o excluyen según sus propiedades lógicas. Estas compuertas
se pueden aplicar en otras áreas de la ciencia como mecánica,
hidráulica o neumática.

Existen diferentes tipos de compuertas y algunas de estas son más


complejas, con la posibilidad de ser simuladas por compuertas más
sencillas. Todas estas tienen tablas de verdad que explican los
comportamientos en los resultados que otorga, dependiendo del valor
booleano que tengan en cada una de sus entradas.

~ 39 ~
UNIDAD II. CIRCUITOS LÓGICOS

Compuertas lógicas

Desde el punto de vista práctico, 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.

Los circuitos lógicos se forman combinando compuertas lógicas. La


salida de un circuito lógico se obtiene combinando las tablas
correspondientes a sus compuertas componentes.

II.8.- Representación de compuertas lógicas


A continuación, vamos a analizar las diferentes operaciones lógicas
una por una comenzando por la más simple:

Compuerta AND
Esta compuerta es representada por una multiplicación en el Algebra
de Boole. Indica que es necesario que en todas sus entradas se tenga un
estado binario 1 para que la salida otorgue un 1 binario. En caso
contrario de que falte alguna de sus entradas con este estado o no tenga
si quiera una accionada, la salida no podrá cambiar de estado y

~ 40 ~
UNIDAD II. CIRCUITOS LÓGICOS

permanecerá en 0. Esta puede ser simbolizada por dos o más


interruptores en serie de los cuales todos deben estar activos para que
esta permita el flujo de la corriente.

Tabla 1, Representación y Fórmula Compuerta AND

Compuerta OR
En el Algebra de Boole esta es una suma. Esta compuerta permite que
con cualquiera de sus entradas que este en estado binario 1, su salida
pasara a un estado 1 también. No es necesario que todas sus entradas
estén accionadas para conseguir un estado 1 a la salida, pero tampoco
causa algún inconveniente. Para lograr un estado 0 a la salida, todas
sus entradas deben estar en el mismo valor de 0. Se puede interpretar
como dos interruptores en paralelo, que sin importar cual se accione,
será posible el paso de la corriente.

Tabla 2, Representación y Fórmula Compuerta OR

Compuerta NOT
En este caso esta compuerta solo tiene una entrada y una salida y esta
actúa como un inversor. Para esta situación en la entrada se colocará

~ 41 ~
UNIDAD II. CIRCUITOS LÓGICOS

un 1 y en la salida otorgara un 0 y en el caso contrario esta recibirá un


0 y mostrara un 1. Por lo cual todo lo que llegue a su entrada, será
inverso en su salida.

Tabla 3, Representación y Fórmula Compuerta NOT

Compuerta NAND
También denominada como AND negada, esta compuerta trabaja al
contrario de una AND ya que al no tener entradas en 1 o solamente
alguna de ellas, esta concede un 1 en su salida, pero si esta tiene todas
sus entradas en 1 la salida se presenta con un 0.

Tabla 4, Representación y Fórmula Compuerta NAND

Compuerta NOR
Así como vimos anteriormente, la compuerta OR también tiene su
versión inversa. Esta compuerta cuando tiene sus entradas en estado 0
su salida estará en 1, pero si alguna de sus entradas pasa a un estado 1
sin importar en qué posición, su salida será un estado 0.

~ 42 ~
UNIDAD II. CIRCUITOS LÓGICOS

Tabla 5, Representación y Fórmula Compuerta NOR

Compuerta XOR
También llamada OR exclusiva, esta actúa como una suma binaria de
un digito cada uno y el resultado de la suma seria la salida. Otra
manera de verlo es que con valores de entrada igual el estado de salida
es 0 y con valores de entrada diferente, la salida será 1.

Tabla 6, Representación y Fórmula Compuerta XOR

Compuerta XNOR
Esta es todo lo contrario a la compuerta XOR, ya que cuando las
entradas sean iguales se presentará una salida en estado 1 y si son
diferentes la salida será un estado 0.

~ 43 ~
UNIDAD II. CIRCUITOS LÓGICOS
Tabla 7, Representación y Fórmula Compuerta XNOR

Compuerta IF
Esta compuerta no es una muy utilizada o reconocida ya que su
funcionamiento en estados lógicos es parecido a si solo hubiera un
cable conectado porque exactamente lo que se le coloque en la entrada,
se encontrara en la salida. Pero también es conocido como un buffer,
en la práctica se utiliza como amplificador de corriente o como
seguidor de tensión para adaptar impedancias.

Tabla 8, Representación y Fórmula Compuerta IF

~ 44 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

UNIDAD III METODOLOGÍA DE SOLUCIÓN DE


PROBLEMAS

III.1 Definición y conceptos generales

¿Qué es un problema?
Según el diccionario problema es: a) una cuestión que se trata de
aclarar, b) proposición o dificultad de solución dudosa y c) conjunto
de hechos o circunstancias que dificultan la consecución de algún fin.

Más aún, problema es algo que preocupa; implica un interrogante cuya


respuesta es desconocida y que, en nuestro caso, se busca obtener.

Estamos familiarizados a tratar de darle solución a los acontecimientos


que nos rodean y en los que tenemos injerencia, si no podemos
resolverlo comúnmente significa un problema para nosotros,
entendiendo como problema todo aquello a lo que no le encontramos
una solución, lo consideramos un enigma o una cuestión no aclarada.

Comúnmente, sin darnos cuenta, todos los días los seres humanos al
actuar, realizamos varias acciones y continuamos una serie de pasos o
procedimientos que nos conducen a lograr un fin o resolver un
problema.

Por ejemplo cada nuevo día, al desayunar, al bañarnos, al vestirnos, al


lavarnos los dientes, al ponernos los zapatos, al salir y subirnos en un
camión o un automóvil para ir a la escuela o al trabajo,
inconscientemente o conscientemente estamos siguiendo un
procedimiento, el cual cuando es algo tan cotidiano como comer,
vestirnos, el abrir o cerrar una puerta, lo repetimos tantas veces que ya
lo hacemos en automático, y cuando se nos presenta una situación

~ 45 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

nueva o algo que jamás hemos afrontado requerimos de más esfuerzo


para lograr resolverlo, hacemos entonces un análisis de la situación.

III.2.- Elementos y relaciones del problema.


Podemos decir que los elementos que constituyen un problema son
todos aquellos que afectan e inciden directamente en el flujo de los
pasos o acontecimientos que nos llevan a realizar una actividad y
lograr el fin propuesto.

En el desarrollo de programas nuestros elementos son los datos con los


que vamos a trabajar, número, texto, imagen, audio, video, y la
relación de estos, nuestro problema depende directamente del
resultado que queramos obtener. Entre menos elementos tengamos
para trabajar más fácil será nuestro planteamiento del problema o los
pasos a seguir, entre más elementos tengamos, el planteamiento será
más complicado y, en caso de que los resultados nos exijan el empleo
de muchos elementos, hay métodos de programación que nos permiten
obtenerlo de una manera estructurada y organizada.

Actividad III.2.: Realiza la descripción detallada de las actividades que tendrías


que llevar a cabo para cambiar la llanta de tu coche en caso de ponchadura.
Toma en cuenta que tu solución se inicia con la palabra “INICIO” y termina con
la palabra “FIN”.
Documento en Microsoft WORD, con letra Arial de 12 ptos, Incluir en el trabajo
una portada que contenga el nombre y el escudo de la escuela, el nombre del
alumno, nombre de la materia, nombre del profesor y fecha. Máximo 2 páginas.
Enviarlo al correo del profesor ( hidalgom95@gmail.com ) y turnar copia a la

~ 46 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

Maestra Alma en ( cursos.imec@outlook.com ) y también en (


alma.arenas@imec.com.mx ), a más tardar el jueves 29 de octubre de 2020 a las
07:00 horas.

III.3 Herramientas computacionales para la solución de


problemas

Hardware:
El hardware es el conjunto de todos los componentes y/o dispositivos
físicos que son ensamblados o conectados entre sí para formar la
computadora y luego ser controlados por el microprocesador.

Los componentes y dispositivos del Hardware se dividen en Hardware


Básico y Hardware Complementario.

El Hardware Básico: son las piezas fundamentales e imprescindibles


para que la computadora funcione como son: Placa base, monitor,
teclado y ratón, procesador, memoria y las unidades de
almacenamiento.

El Hardware Complementario: son todos aquellos dispositivos


adicionales no esenciales como pueden ser: impresora, escáner, cámara
de vídeo digital, webcam, etc.

Un hardware necesita de un software para poder funcionar


correctamente. Al hablar del hardware, se habla de todos los
componentes físicos tangibles de una computadora, podemos decir que
es el nivel más básico en el cual una computadora funciona. Toda la
información que se guarda es procesada electrónicamente por el
hardware.

El hardware se compone de varios periféricos como:

 Unidad central de procesos (UCP)

~ 47 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

 Memoria RAM o memoria principal


 Memoria ROM
 Tarjeta madre
 CD-ROM
 Monitor
 Mouse
 Teclado
 Unidad de almacenamiento.

Actividad III.3.: Realiza una investigación en Internet, para ver que


componentes necesitaría para armar una computadora personal es decir, que
compre por separado los componentes principales y yo la arme en mi casa o en
la escuela, por ejemplo: Gabinete, Procesador, etc. Y averigua y anota los
precios de esos componentes. Nota. Considera una computadora básica.
Documento en Microsoft WORD, con letra Arial de 12 ptos, Incluir en el trabajo
una portada que contenga el nombre y el escudo de la escuela, el nombre del
alumno, nombre de la materia, nombre del profesor y fecha. Máximo 4 páginas.
Enviarlo al correo del profesor ( hidalgom0@live.com ) y turnar copia a la
Maestra Alma en ( cursos.imec@outlook.com ) y también en (
alma.arenas@imec.com.mx ), a más tardar el viernes 30 de octubre de 2020 a las
07:00 horas.

Sistema operativo
Es un conjunto de programas que controlan y administran un equipo
de cómputo, y permiten la comunicación entre el usuario y el equipo.
Comienza a trabajar cuando se enciende la computadora, y gestiona el
hardware de la máquina desde los niveles más básicos. Los sistemas
operativos más comunes son: Windows, Linux, Macintosh(MacOS),
Unix, iOS, Android.

Programas de aplicación
Antes de hablar de los programas de aplicación debemos dejar en claro
el concepto de software el cual algunos autores lo definen como la

~ 48 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

parte intangible de una tecnología, la parte lógica y se define como el


conjunto de instrucciones que interactúan entre sí para una
determinada función.

Partiendo de este concepto, un programa, concepto desarrollado por


John Von Neumann en 1946, es un conjunto de instrucciones que
sigue la computadora para alcanzar un resultado específico. El
programa se escribe en un lenguaje de programación a partir de un
diagrama de flujo o un algoritmo diseñado con anterioridad.

Cuando se logra todo esto, se sabe que hay un programa, para realizar
cada una y cada cual de las funciones específicas para las cuales fue
diseñado y, de acuerdo a la función que realizan los podemos clasificar
como:

PROGRAMAS DE OFIMÁTICA: Diseñados para dar apoyo a las


funciones administrativas en las organizaciones, entre otras:
Procesadores de Texto, Hojas de Cálculo y Programas de creación de
Presentaciones electrónicas.

PROGRAMAS DE INGENIERÍA.-Utilizan una computadora


principalmente para procesar números (hacer operaciones aritméticas,
resolver ecuaciones algebraicas o trigonométricas, encontrar la
solución de una ecuación diferencial, en general operaciones
matemáticas).

PROGRAMA DE PROCESAMIENTO DE AUDIO.- Utiliza una


computadora para reproducir pistas de audio e introducir cualquier
tono de sonido como datos.

PROGRAMA DE PROCESAMIENTO DE IMÁGENES Y VÍDEO.-


Utiliza una computadora para crear y manipular imágenes y vídeos
(crearlas, reducirlas, ampliarlas, rotarlas y mejorarlas, entre otras
funciones).

~ 49 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

Lenguajes de programación
Un lenguaje de programación es un lenguaje que puede ser utilizado
para controlar el comportamiento de una máquina, particularmente una
computadora. Consiste en un conjunto de reglas sintácticas y
semánticas que definen su estructura y el significado de sus elementos,
respectivamente. Se clasifican según la forma de ejecución.

Lenguajes compilados
Naturalmente, un programa que se escribe en un lenguaje de alto nivel
también tiene que traducirse a un código que pueda utilizar la
máquina. Los programas traductores que pueden realizar esta
operación se llaman compiladores. Éstos, como los programas
ensambladores avanzados, pueden generar muchas líneas de código de
máquina por cada proposición del programa fuente. Se requiere una
corrida de compilación antes de procesar los datos de un problema.

Los compiladores son aquellos cuya función es traducir un programa


escrito en un determinado lenguaje a un idioma que la computadora
entienda (lenguaje máquina con código binario).

Al usar un lenguaje compilado (como lo son los lenguajes del popular


Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta
mientras haya errores, sino hasta que luego de haber compilado el
programa, ya no aparecen errores en el código.

Lenguajes interpretados
Se puede también utilizar una alternativa diferente de los compiladores
para traducir lenguajes de alto nivel. En vez de traducir el programa
fuente y grabar en forma permanente el código objeto que se produce
durante la corrida de compilación para utilizarlo en una corrida de
producción futura, el programador sólo carga el programa fuente en la
computadora junto con los datos que se van a procesar. A
continuación, un programa intérprete, almacenado en el sistema de
cómputo, o incluido de manera permanente dentro de la máquina,

~ 50 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

convierte cada proposición del programa fuente en lenguaje de


máquina conforme vaya siendo necesario durante el proceso de los
datos. No se graba el código objeto para utilizarlo posteriormente.

La siguiente vez que se utilice una instrucción, se le debe interpretar


otra vez y traducir a lenguaje máquina. Por ejemplo, durante el
procesamiento repetitivo de los pasos de un ciclo, cada instrucción del
ciclo tendrá que volver a ser interpretado cada vez que se ejecute el
ciclo, lo cual hace que el programa sea más lento en tiempo de
ejecución (porque se va revisando el código en tiempo de ejecución)
pero más rápido en tiempo de diseño (porque no se tiene que estar
compilando a cada momento el código completo). El intérprete elimina
la necesidad de realizar una corrida de compilación después de cada
modificación del programa cuando se quiere agregar funciones o
corregir errores; pero es obvio que un programa objeto compilado con
antelación deberá ejecutarse con mucha mayor rapidez que uno que se
debe interpretar a cada paso durante una corrida de producción.

Algunos ejemplos de lenguajes de programación son: Fortran, Java,


PHP, Pascal, .NET, C, C++, C#, Visual Basic, Python, Rust, Dart, Go,
HTML, etc.

III.4.- Ciclo de Desarrollo de programas


El ciclo de vida clásico del desarrollo de un software consta de los
siguientes procedimientos:

 Planteamiento del Problema: definir el resultado del proyecto y


su papel en la estrategia global.
 Análisis del problema: recopilar, examinar y formular los
requisitos del cliente y examinar cualquier restricción que se
pueda aplicar.

~ 51 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

 Diseño general: requisitos generales de la arquitectura de la


aplicación.
 Diseño en detalle: definición precisa de cada subconjunto de la
aplicación.
 Programación (codificación): es la implementación de un
lenguaje de programación para crear las funciones definidas
durante la etapa de diseño.
 Integración: para garantizar que los diferentes módulos se
integren con la aplicación. Éste es el propósito de la prueba de
integración que está cuidadosamente documentada.
 Pruebas (o validación), para garantizar que el software cumple
con las especificaciones originales.
 Documentación: sirve para documentar información necesaria
para todos los interesados en el software y para desarrollos
futuros.
 Implantación: Es la puesta en marcha del sistema o software,
desde su instalación física, hasta su ajuste, adecuación y pruebas
finales.
 Mantenimiento: para todos los procedimientos correctivos
(mantenimiento correctivo) y las actualizaciones secundarias del
software (mantenimiento continuo).

La primera fase es la búsqueda de un plan para conseguir los objetivos


con las limitaciones del proyecto para así buscar y eliminar todos los
riesgos potenciales por medio de un cuidadoso análisis, y si fuera
necesario incluyendo la fabricación de un prototipo. Si es imposible
descartar algunos riesgos, el cliente ha de decidir si es conveniente
terminar el proyecto o seguir adelante ignorando los riesgos. Por
último, se evalúan los resultados y se inicia el diseño de la siguiente
fase.

Existen actualmente otros modelos de ciclos de vida para los sistemas,


pero se basan en el modelo del ciclo de vida clásico.

~ 52 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

III.5.- Modelos de ciclo de vida


Existen tres paradigmas de los modelos de desarrollo de software:

 Paradigma Tradicional: Es uno de los paradigmas más antiguos,


se inventó durante la creación del método estructurado.

Si se aplica este paradigma, uno de los principales problemas, es que


las etapas realizadas no son autónomas de las siguientes, creando una
dependencia estructural y, en el caso de un error, ocasionaría retrasos
en todo el proyecto.

 Paradigma Orientado a Objetos: Estos modelos se basan en la


Programación orientada a objetos; por lo tanto, se refiere al concepto
de clase, el análisis de requisitos y el diseño. El modelo o paradigma
orientado a objetos posee dos características principales, las cuales
son:

 Permite la reutilización de software.

~ 53 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

 Facilita el desarrollo de herramientas informáticas de apoyo al


desarrollo, el cual es simple al implementarla en una notación
orientada a objetos llamada UML3.

 Paradigma de Desarrollo Ágil: Es un paradigma de las


Metodologías de desarrollo basado en procesos ágiles. Estos intentan
evitar los tediosos caminos de las metodologías tradicionales
enfocándose en las personas y los resultados.

Modelo de cascada
El modelo de cascada define las siguientes etapas que deben cumplirse
de forma sucesiva:

1. Especificación de requisitos
2. Diseño del software
3. Construcción o Implementación del software
4. Integración
5. Pruebas (o validación)
6. Despliegue (o instalación)
7. Mantenimiento

Siguiendo el modelo de cascada de forma estricta, sólo cuando se


finaliza una fase, comienza la otra.

Modelo en espiral
La principal característica del modelo en espiral es la gestión de
riesgos de forma periódica en el ciclo de desarrollo.

3
El lenguaje unificado de modelado (UML, por sus siglas en inglés, Unified Modeling Language) es el lenguaje de
modelado de sistemas de software más conocido y utilizado en la actualidad. Es un lenguaje gráfico para
visualizar, especificar, construir y documentar un sistema. UML ofrece un estándar para describir un "plano" del
sistema (modelo), incluyendo aspectos conceptuales tales como procesos, funciones del sistema, y aspectos
concretos como expresiones de lenguajes de programación, esquemas de bases de datos y compuestos
reciclados. En: https://es.wikipedia.org/wiki/Lenguaje_unificado_de_modelado.

~ 54 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

La espiral se visualiza como un proceso que pasa a través de algunas


interacciones con el diagrama de los cuatro cuadrantes representativos
de las siguientes actividades:

1.- Crear planes con el propósito de identificar los objetivos del


software, seleccionados para implementar el programa y
clarificar las restricciones en el desarrollo del software;
2.- Análisis de riesgos: una evaluación analítica de programas
seleccionados, para evaluar cómo identificar y eliminar el riesgo;
3.- La implementación del proyecto: implementación del desarrollo
del software y su pertinente verificación.

Sin embargo, el modelo en espiral tiene algunas limitaciones, entre las


que destacan:

1. El énfasis se sitúa en el análisis de riesgo, y por lo tanto requiere


de clientes que acepten este análisis y actúen en consecuencia.
Para ello es necesaria confianza en los desarrolladores, así como
la predisposición a gastar más para solventar los temas, por lo
cual este modelo se utiliza frecuentemente en desarrollo interno
de software a gran escala.
2. Si la implementación del riesgo de análisis afectará de forma
esencial los beneficios del proyecto, no debería utilizarse este
modelo.
3. Los desarrolladores de software han de buscar de forma explícita
riesgos y analizarlos de forma exhaustiva para que este modelo
funcione.

Desarrollo iterativo e incremental


El desarrollo iterativo recomienda la construcción de secciones
reducidas de software que irán ganando en tamaño para facilitar así la
detección de problemas de importancia antes de que sea demasiado

~ 55 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

tarde. Los procesos iterativos pueden ayudar a desvelar metas del


diseño en el caso de clientes que no saben cómo definir lo que quieren.

Desarrollo ágil
El desarrollo ágil de software utiliza un desarrollo iterativo como base
para abogar por un punto de vista más ligero y más centrado en las
personas que en el caso de las soluciones tradicionales. Hay muchas
variantes de los procesos ágiles:

Programación Extrema: Es un enfoque de la ingeniería de


software formulado por Kent Beck. Es una de las llamadas
Metodologías ágiles de desarrollo de software más exitosas de los
tiempos recientes, nace como una nueva disciplina de desarrollo de
software.

Actualmente la mayoría de los programadores no pensamos en una


metodología de desarrollo a la hora de crear algún software, o sea
tenemos cierta tendencia en embebernos en cuestiones técnicas,
hablar de lenguajes de programación, de técnicas de programación,
de entornos de desarrollo o de editores de recursos.

Pero se nos pasan por alto temas muy importantes como es la


ingeniería de software, la manera en que debemos de hacer nuestro
software. Alrededor de cómo hacer software hay un gran número de
teorías, propuestas, etc. El primer paso es conocer las metodologías
más relevantes o buscar a alguien que las conozca, y en una
situación ideal haber trabajado con varias de ellas.

A la hora de seleccionar una metodología la primera decisión que se


plantea es: ¿Una Metodología ágil o una metodología guiada por
plan?. La gran mayoría de proyectos se pueden beneficiar mucho
del uso de una metodología ágil, pero indudablemente existen
proyectos y entornos en los que es condición, generalmente

~ 56 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

impuesta por el cliente o la dirección de la empresa, que el proyecto


se desarrolle con más control.

Para plantearte el uso de una metodología ágil tenemos que ser


capaces de asumir completamente el Manifiesto ágil y ser capaces
de hacer que sea el paradigma que guíe la gestión de nuestro
proyecto, y desde luego es sumamente importante que logremos un
Sponsor.

Tener un sponsor es vital en todo proyecto de implantación de una


metodología, pero, sobre todo, es vital para implantar una
metodología ágil, pues exige que se produzcan profundos cambios
en la cultura tradicional relativa a la gestión de proyectos. Poniendo
de menos a más ágil, de más revolucionaria a menos, entre las
metodologías más populares, tenemos las siguientes:

 eXtreme Programming
 CMMI con una implantación tradicional
 Rational Unified Process
 MSF for CMMI Process Improvement
 MSF Agile
 Scrum

Codificación y corrección: El desarrollo de codificación y


corrección (en inglés "Code and fix") es, más que una estrategia
predeterminada, el resultado de una falta de experiencia o presión
que se ejerce sobre los desarrolladores para cumplir con una fecha
de entrega. Sin dedicar tiempo de forma explícita para el diseño, los
programadores comienzan de forma inmediata a producir código.
Antes o después comienza la fase de pruebas de software (a menudo
de forma tardía) y los inevitables errores que se encuentran han de
eliminarse antes de poder entregar el software.

~ 57 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

Orientado a la Reutilización: La reutilización de software es un


proceso donde se recurre al uso de activos de software en las
especificaciones de análisis, diseños, implementación y pruebas de
una aplicación o sistemas de software.

La reutilización tiene ciertos Indicadores, por ejemplo:

1. Entre el 40% y 60% de una aplicación es reutilizable en otra.


2. Aproximadamente el 60% de una aplicación administrativa es
reutilizable.
3. Aproximadamente el 75% de las funciones son comunes a
más de un programa.
4. Solo el 15% del código encontrado en muchos sistemas es
único y novedoso a una aplicación específica.
5. El rango general de uso recurrente está entre el 15% y 85%.

La reutilización tiene Principios como la existencia de parecidos en


distintos sistemas de un mismo dominio, donde el software puede
representarse como una combinación de módulos y los sistemas
nuevos se puede caracterizar por diferencias respecto a los antiguos
sistemas.

III.6.- Expresiones y Operadores


Expresión: Es una combinación de operadores y operandos. Los datos
u operandos pueden ser constantes, variables o funciones.

Operadores: Son símbolos especiales, que por lo común se usan en


expresiones. Con la que los operadores definen que va a realizarse con
los datos u operandos.

~ 58 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

Asignación: Permite asignar a un variable el valor el valor de una


expresión.

Operadores: aritméticos: Operan sobre valores de tipo entero o real.

Operadores relacionales: Los operadores relacionales nos permiten


comparar expresiones de tipos compatibles, devolviendo un resultado
de tipo lógico: la comparación es verdadera o falsa.

~ 59 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

Operadores lógicos: Se usan en los buscadores para restringir una


búsqueda y eliminar resultados no deseados.

En la sección II.5 de este documento vimos un poco sobre cómo se


utilizan estos operadores de lógica booleana.

Precedencia de operadores
La precedencia de un operador indica qué tan "estrechamente" se unen
dos expresiones juntas. Por ejemplo, en la expresión 1 + 5 * 3 , la
respuesta es 16 y no 18 porque el operador de multiplicación ("*")
tiene una precedencia mayor que el operador de adición ("+"). Los
paréntesis pueden ser usados para forzar la precedencia, si es
necesario. Por ejemplo: (1 + 5) * 3 se evalúa como 18.

Las operaciones con mayor precedencia se realizan antes que las de


menor prioridad. Por ejemplo, la multiplicación se realiza antes que la
suma.

El uso de paréntesis, incluso cuando no es estrictamente necesario, a


menudo puede aumentar la legibilidad del código haciendo grupos
explícitamente en lugar de confiar en la precedencia y asociatividad
implícitas del operador.

~ 60 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

Los paréntesis en una expresión modifican el orden de evaluación


determinado por la precedencia de operador. Esto significa que una
expresión encerrada entre paréntesis se evalúa por completo antes de
usar su valor en el resto de la expresión.

Evaluación de expresiones
¿Qué son las expresiones?

Son el método fundamental que tiene el programador de expresar


computaciones. -Las expresiones están compuestas de operadores,
operandos, paréntesis y llamadas a funciones. Los operadores pueden
ser:

 Unarios: Cuando tan solo tienen un operando. Son operadores


prefijos.
 Binarios: 2 Operandos. Son operadores infijos.
 Ternarios: 3 operandos.

Orden de evaluación de los operadores.


El orden en que se evalúan los operandos viene dado por unas reglas:
 Reglas de precedencia
 Reglas de asociatividad
 Uso de paréntesis

Evaluación de expresiones
Toda expresión regresa un valor. Si hay más de un operador, se
evalúan primero operadores mayor precedencia, en caso de empate, se
aplica regla asociatividad

Para evaluar una expresión no hay que hacer nada del otro mundo,
pues es bien sencillo. Sólo hay que saber sumar, restar, si un número

~ 61 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

es mayor que otro Hay tres reglas de prioridad a seguir para evaluar
una expresión:

1. Primero, los paréntesis (si tiene)


2. Después, seguir el orden de prioridad de operadores
3. Por último, si aparecen dos o más operadores iguales, se evalúan
de izquierda a derecha.

Las expresiones son secuencias de constantes y/o variables separadas


por operadores válidos. Se puede construir una expresión válida por
medio de :

1. Una sola constante o variable, la cual puede estar precedida por


un signo + ó –.
2. Una secuencia de términos (constantes, variables, funciones)
separados por operadores.

Además, debe considerarse que:

Toda variable utilizada en una expresión debe tener un valor


almacenado para que la expresión, al ser evaluada, dé como resultado
un valor.

Cualquier constante o variable puede ser reemplazada por una llamada


a una función.

Como en las expresiones matemáticas, una expresión en Python se


evalúa de acuerdo a la precedencia de operadores.

Técnicas de desarrollo de algoritmos


Un algoritmo es un conjunto de operaciones ordenadas que pueden
resolver un problema, que tiene una entrada y genera una salida, para
que esto conjunto pueda ser considerado un algoritmo debe de ser

~ 62 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

eficiente, finito (Con un número determinado de pasos) y bien definido


(que se pueda llegar al mismo resultado si se sigue el mismo proceso
más de una vez), hay dos tipos de algoritmos.

1. Cualitativos: Son aquellos en los que se describen los pasos


utilizando palabras.
2. Cuantitativos: Son aquellos en los que se utilizan cálculos
numéricos para definir los pasos del proceso.

Al igual hay tipos de lenguajes de algoritmos

1. Lenguaje gráfico: es la representación gráfica de las operaciones


que realiza un algoritmo (Diagrama de flujo)

2. En forma descriptiva las operaciones que debe realizar un


algoritmo (pseudocódigo)

~ 63 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

Diseño descendente.
A este diseño también se le puede denominar técnica de refinamiento
sucesivo, es una forma de programación que consiste en empezar de
los más general a lo más particular.

Si tuviéramos que programar una agenda electrónica, al principio no se


trata de programar los detalles de todas las funciones, sino solo la
función de más alto nivel, algo como:

Cargar agenda
1. Buscar por nombre
2. Buscar por apellido
3. Salir

Y al verificar su funcionamiento una de las ventajas de este enfoque es


que, si se produce un error, sabemos en qué nivel centrar la búsqueda,
siempre que hayamos asegurado los niveles superiores

~ 64 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

Refinación progresiva de solución.


Esta técnica también se conoce como Top-Down y se basa en basa en
la división del problema principal en problemas más simples, al partir
de problemas simples se puede dar una solución más efectiva.

Básicamente Este diseño consiste en una serie de descomposiciones


sucesivas del problema inicial, para que obviamente sea más fácil la
creación u optimización de algún algoritmo.

¿Qué ventajas tiene?


1. Tiene la ventaja de que se puede abordar el problema de modo
independiente e incluso por diferentes personas
2. El programa final queda estructurado en forma de bloque o
módulos o que hace más sencilla su lectura y mantenimiento

Diagrama de flujo.
Un diagrama de flujo es la representación gráfica de un algoritmo.

También se puede decir que es la representación detallada en forma


gráfica de cómo deben realizarse los pasos en la computadora para
producir resultados. Esta representación gráfica se da cuando varios
símbolos (que indican diferentes procesos en la computadora), se
relacionan entre sí mediante líneas que indican el orden en que se
deben ejecutar los proceso.

Ventajas:
 Al ser visuales son muy sencillos de entender
Desventajas:
 Dificultad de mantenimiento y actualización, puesto que deben
utilizarse editores gráficos

~ 65 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

Pseudocódigo.
Se trata de un falso lenguaje (Como su nombre lo indica), ya que actúa
bajo las normas de estructura de un lenguaje de programación, pero se
encuentra desarrollado para que pueda ser leído por un ser humano y
no interpretado por una máquina. Puede ser considerado una
descripción de un algoritmo

Ventaja:
 Su facilidad de creación, evolución y mantenimiento, y la facilidad
para expresar el pseudocódigo en cualquier lenguaje de
programación.

Desventaja
 Su falta de estandarización y la dificultad para su lectura cuando
su tamaño crece.

Prueba de escritorio.
La prueba de escritorio no es más que efectuar un proceso de
simulación con algún algoritmo desarrollado para saber si:

~ 66 ~
UNIDAD III. METODOLOGÍA DE SOLUCIÓN DE PROBLEMAS

1) Si el programa hace lo que debería hacer


2) Si no hace lo que debería hacer, permitiéndonos detectar errores

Esta prueba se realiza asignando valores a las variables, como si


quisiéramos asignar un rango, si nuestro programa efectúa la órdenes
que le dimos, hemos hecho bien el trabajo

~ 67 ~
REFERENCIAS BIBLIOGRÁFICAS

Referencias

Ashby, W. (1977). Introducción a la cibernética. Buenos Aires: Nueva


Visión.
Jramoi, V. et al. (1971). Introducción e historia de la cibernética.
México. Grijalbo.
Sluckin, W. (1956). Cerebros y máquinas. Buenos Aires, Argentina:
Ediciones Galatea Nueva Visión.
Sluckin, W. (1971). La cibernética. Argentina: Ediciones Nueva
Visión.
Sistema de Control [en línea]. Recuperado el 20 de enero de 2016 en
<http://es.wikipedia.org/wiki/Sistema_de_control>.
Kasatkin, V. (1976). El abc de la cibernética. España: Paraninfo.
Circuitos eléctricos [en línea]. Recuperado el 27 de Enero de 2016 en
<http://www.profesorenlinea.com.mx/fisica/Tecnologia/
CIRCUITOS_ELECTRICOS.htm>.
Morris, M. Diseño digital [en línea]. Recuperado el 18 de mayo de
2016 en <https://urielectronics.files.wordpress.com/2010/11/
diseno-digital-morrismano-en-espanol.pdf>
UNAM, Álgebra de Boole [en línea]. Recuperado el 27 de enero de
2016 en <http://ecampus.fca.unam.mx/ebook/imprimibles/
informatica/arquitectura_computadoras/Unidad_4.pdf>.
YouTube, Compuertas lógicas [en línea]. Recuperado el 27 de enero
de 2016 en <https://www.youtube.com/watch?v=
jp7qXsGPE&list=PLDE67521563B57B11>.
Cairó, O. (2003). Metodología de la programación. Algoritmos,
diagramas de flujo y programas. México: Alfaomega.

~ 68 ~
REFERENCIAS BIBLIOGRÁFICAS

Joyanes, L. (2003). Fundamentos de la programación. Algoritmos,


estructura de datos y objetos, México: Mc. Graw–Hill.

Complementaria

Wiener, N. (1988). Cibernética y sociedad. Buenos Aires: Editorial


Sudamericana.
Quintanilla, S. Arturo Rosenblueth y Norbert Wiener: dos científicos
en la historiografía de la educación contemporánea [en línea].
Recuperado el 20 de enero de 2016 en
<http://www.infoamerica.org/documentos_pdf/wiener1.pdf>.
Shannon, C. Infoamérica [en línea]. Recuperado el 31 de octubre de
2016 en <http://www.infoamerica.org/teoria/shannon1.htm>. Teoría
de Sistemas [en línea]. Recuperado el 22 de febrero de 2016 en
<http://www.aprendizaje.com.mx/TeoriaSistemas
/Cibernetica/cibernetica.html>.
Wiener, N. Infoamérica [en línea]. Recuperado el 31 de octubre de
2016 en <http://www.infoamerica.org/teoria/wiener1.htm>.
Heim, K. (1973). Álgebra de los circuitos lógicos. España: DOSSAT.
Boole y compuertas [en línea]. Recuperado el 27 de Febrero de 2016
en <http://docentes.uaa.mx/guido/wpcontent/uploads/
sites/2/2014/10/Boole-y-compuertas.pdf>.
Circuitos eléctricos [en línea]. Recuperado el 27 de febrero de 2016 en
<http://www.profesorenlinea.com.mx/fisica/Tecnologia
/CIRCUITOS_ ELECTRICOS.htm>.
UNAM, Álgebra de Boole [en línea]. Recuperado el 27 de enero de
2016 en <http://ecampus.fca.unam.mx/ebook/imprimibles/
informatica/arquitectura_computadoras/Unidad_4.pdf>.

~ 69 ~

También podría gustarte