Universidad Autónoma de Occidente                 UNIVERSIDAD AUTÓNOMA DE OCCIDENTE                   FACULTAD DE INGENIER...
Universidad Autónoma de Occidente        ASIGNATURA:                             INFORMÁTICA 1        CODIGO:             ...
Universidad Autónoma de Occidente           3.1 Breve historia de los estilos de Programación           3.2 Origen del par...
Universidad Autónoma de OccidenteMETODOLOGÍAEl profesor dedicará 180 minutos semanales (dos bloques de 90 minutos) a las a...
Universidad Autónoma de OccidenteFUENTES DE DONDE SE RECOPILÓ EL MATERIAL PARA LA ELABORACIÓN DEESTE MÓDULO DE INFORMÁTICA...
Universidad Autónoma de OccidenteInformática I. Versión 1.0 Agosto de 2004                                            6
Universidad Autónoma de OccidenteUNIDAD 1. SISTEMAS NUMÉRICOSARITMÉTICA Y REPRESENTACIÓN DE LAINFORMACIÓN EN EL COMPUTADOR...
Universidad Autónoma de OccidenteGeneralizando, se tiene que la representación de un número en una base b:           N = ....
Universidad Autónoma de OccidenteObservando el Ejemplo 1 se deduce que se puede transformar de binario a decimal sencillam...
Universidad Autónoma de Occidente1.1.3 Códigos IntemediosComo acabamos de comprobar, el código binario produce números con...
Universidad Autónoma de OccidenteAl ser b=16=24, de modo similar al caso octal, cada símbolo hexadecimal se corresponde co...
Universidad Autónoma de OccidenteEjemplo 5:                                     (minuendo) 0 1 1 1 (7)                    ...
Universidad Autónoma de Occidente                                                        EjerciciosLlene todas las casilla...
Universidad Autónoma de Occidente                                            Tabla 1.4.- Operaciones lógicas              ...
Universidad Autónoma de OccidenteUNIDAD 2. SISTEMAS LÓGICOSLOGICA, TABLAS DE VERDAD2.1 Introducción.Un computador puede se...
Universidad Autónoma de OccidenteEjemplo 2: Considere los cuatro enunciados siguientes:       (i) Paris esta en Francia y ...
Universidad Autónoma de OccidenteLa tabla de verdad de ~ p esta dada por la siguiente tabla:                              ...
Universidad Autónoma de Occidente    Observación: La tabla de verdad de la proposición, anterior consiste precisamente en ...
Universidad Autónoma de Occidentellama tautologías. Análogamente, una proposición P(p,q,…)se llama contradicción si contie...
Universidad Autónoma de OccidenteEjemplo 6: Considere el enunciado        “ Es falso que las rosas son rojas y las violeta...
Universidad Autónoma de OccidenteObserve que el condicional p→ q es falso solamente cuando la primera parte p es verdadera...
Universidad Autónoma de Occidente           tambien es par. Como la contrarreciproca ~ q→ ~ p es verdadera, el enunciado c...
Universidad Autónoma de Occidente                                     p→ q. q → r + p→ r (ley del silogismo)Este hecho se ...
Universidad Autónoma de Occidente                                                  p q pν q                               ...
Universidad Autónoma de OccidenteProposiciones y sus Tablas de Verdad.2.3 Encuentre la tabla de verdad de ~ p ^ q.        ...
Universidad Autónoma de Occidente     Como la tabla de verdad de p ν ~ (p ^ q) es verdadera para todos los valores de verd...
Universidad Autónoma de Occidente2.10 Simplifique cada proporción usando la tabla 2-1: (a) p ν (p ^ q), (b) ~( pν q) ν (~ ...
Universidad Autónoma de Occidente     (a) Sea p “Su madre es inglesa” y sea q “Su padre es Francés”. Entonces el enunciado...
Universidad Autónoma de OccidenteUNIDAD 3. HERRAMIENTA DE PROGRAMACIÓN.3.1 IntroducciónAunque el concepto de orientado a o...
Universidad Autónoma de Occidente3.3 Breve historia de los estilos de ProgramaciónDesde el principio de la programación se...
Universidad Autónoma de Occidente•    Encapsulamiento•    Modularidad•    JerarquíaIgualmente incluye otros elementos que,...
Universidad Autónoma de Occidentepartición de un programa es útil por esto, una justificación más poderosa para partir un ...
Universidad Autónoma de Occidente3.4.2 Definiciones de Orientación a ObjetosCuando nos referimos específicamente a la prog...
Universidad Autónoma de Occidente3.4.2.4 IdentidadLos objetos deben ser creados y durante su creación deben recibir un nom...
Universidad Autónoma de OccidenteAgregaciónCuando un objeto o clase se encuentra compuesta por otros, se dice que existe u...
Universidad Autónoma de Occidente                                               Ejercicios1. Indique si cada uno de los en...
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
trabajo1
Upcoming SlideShare
Loading in …5
×

trabajo1

507 views
402 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
507
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

trabajo1

  1. 1. Universidad Autónoma de Occidente UNIVERSIDAD AUTÓNOMA DE OCCIDENTE FACULTAD DE INGENIERÍAS DEPARTAMENTO DE CIENCIAS DE LA INFORMACIÓN PROGRAMA DE INGENIERÍA INFORMÁTICA INFORMÁTICA 1 (Algoritmos con Java) MATERIAL RECOPILADO POR LOS PROFESORES J. ANTONIO LEMOS B. Y EDUARDO VICTORIA Z. SANTIAGO DE CALI, AGOSTO DE 2004Informática I. Versión 1.0 Agosto de 2004 1
  2. 2. Universidad Autónoma de Occidente ASIGNATURA: INFORMÁTICA 1 CODIGO: 532219 CREDITOS: 3 PRERREQUISITOS: 22 créditos aprobados CARACTERÍSTICAS: HOMOLOGABLE, VALIDABLE FACULTAD: INGENIERÍA PROGRAMA: INGENIERÎAS DEPARTAMENTO QUE FRECE: CIENCIAS DE LA INFORMACIÓN AREA: INFORMÂTICA PERIODO ACADÉMICO: Agosto – Diciembre de 2004OBJETIVO GENERALCapacitar al estudiante en el diseño e implementación de algoritmos computacionales, utilizando losconceptos básicos de la algoritmia, e introduciéndolo en el estudio de la programación orientada aobjetos.OBJETIVOS ESPECÍFICOS identificar los sistemas básicos de numeración y sus operaciones fundamentales. Comprender las operaciones básicas de la lógica booleana. Modelar procesos mediante técnicas algorítmicas. Reconocer y aplicar correctamente las diferentes estructuras de decisión y de repetición en programación de computadores. Conocer y apropiar el paradigma Orientado a Objetos y su aplicación en la programación.CONTENIDO PROGRAMÁTICO UNIDAD 1 - Sistemas numéricos Pág. 7 1.1 Sistema binario 1.2 Sistema octal 1.3 Sistema hexadecimal 1.4 Sistema decimal 1.5 Conversión entre sistemas 1.6 Suma y resta binaria 1.7 Código ASCII y UNICODE 1.8 Clase práctica UNIDAD 2 - Sistemas lógicos Pág. 15 2.1 Conectivos relacionales y lógicos 2.2 Proposiciones lógicas simples y compuestas 2.3 Tablas de verdad para las operaciones lógicas básicas 2.4 Clase práctica UNIDAD 3 - Herramienta de Programación Pág. 29Informática I. Versión 1.0 Agosto de 2004 2
  3. 3. Universidad Autónoma de Occidente 3.1 Breve historia de los estilos de Programación 3.2 Origen del paradigma Orientado a Objetos 3.3 Definiciones de clases y objetos 3.4 Características básicas del lenguaje Java 3.5 Construcción básica de una aplicación 3.6 Entrada de datos estándar 3.7 Salida de datos estándar 3.8 Descarga e instalación del lenguaje 3.9 Compilación y ejecución de una aplicación 3.10 Clase práctica UNIDAD 4 - Tipos de datos, variables y Operadores (Java) Pág. 61 4.1 Variables 4.2 Palabras reservadas 4.3 Tipos de datos 4.4 Promoción de datos (Casting) 4.5 Operadores aritméticos 4.6 Operador módulo ( % ) 4.7 Operadores de asignación 4.8 Operadores de incremento y decremento 4.9 Operadores relacionales 4.10 Operadores lógicos boléanos 4.11 Precedencia y asociatividad de los operadores 4.12 Clase práctica UNIDAD 5 – Algoritmos Pág. 69 5.1 Historia de la programación 5.2 Tipos de Algoritmos 5.3 Representación de los Algoritmos 5.4 Propiedades de los Algoritmos 5.5 Clase práctica UNIDAD 6 - Sentencias de control en Java Pág. 113 6.1 Sentencias de decisión o selección 6.1.2 Selección simple ( if ) 6.1.3 Selección doble ( if – else ; if – else - if ) 6.1.4 Selección múltiple ( switch ) 6.2 Sentencias de Repetición ( ciclos o bucles): 6.2.1 Ciclo para ( for ) 6.2.2 Ciclo mientras ( while ) 6.2.3 Ciclo haga mientras ( do – while ) 6.3 Clase práctica UNIDAD 7 – Arreglos 7.1 Definición de Arreglos 7.2 Arreglos UnidimensionalesInformática I. Versión 1.0 Agosto de 2004 3
  4. 4. Universidad Autónoma de OccidenteMETODOLOGÍAEl profesor dedicará 180 minutos semanales (dos bloques de 90 minutos) a las actividadespresenciales, las cuales estarán compuestas por: 1) Clases teórico-prácticas en las cuales el profesor expondrá cada uno de los nuevos temas con ejemplos descriptivos y asignará las lecturas y prácticas necesarias. 2) Talleres (Prácticas Dirigidas) en los cuales, por grupo de estudio, se resolverán ejercicios. El profesor asesorará a los grupos. Al final todos los estudiantes deberán tener resueltos los ejercicios y cada grupo avanzará en el proceso de conocimiento según su particular interés y necesidad de saber. Estos ejercicios realizados en clase deberán ser implementados en computador en las prácticas de laboratorio. 3) Prácticas Independientes: para ser realizadas en las macro-salas de PC’s de la UAO en el tiempo libre del estudiante. 4) Se efectuarán 3 evaluaciones parciales de la asignatura con la ponderación que se muestra en el numeral V. De esta forma, para obtener resultados satisfactorios, el estudiante deberá ir construyendo el conocimiento a través de aproximaciones sucesivas y durante: las clases, talleres, trabajo personal y trabajo en grupo de estudio.EVALUACIÓN Mínimo: 3 talleres, 3 quices y 3 trabajos Primer Parcial 15% independientes. Se sugieren grupos de 2 Segundo Parcial 25% o de 3 estudiantes. Tercer Parcial 25% Talleres y Quices 15% (Algunos talleres como trabajo independiente) Trabajos Adicionales 20% (Trabajo independiente)REFERENCIAS BIBLIOGRÁFICAS 1. Área de Informática UAO, Módulo de Informática 1, Publicaciones UAO. 2. CEBALLOS, Francisco J., JAVA 2 Curso de Programación. Ed. Alfaomega. Ra–Ma. 2000. 3. Joyanes Aguilar Luis & Zahonero Martínez Ignacio, “Programación en Java 2 – Algoritmos, Estructuras de Datos y Programación orientada a Objetos”, Ed. McGrawHill, 2002. 4. DEITEL, H.M., DEITEL, P. J. How to program Java. 3ª Edición. Ed. Prentice Hall. 2000. 5. FROUFE, Augustín. JAVA2 Manual de Usuario y Tutorial. 2ª Edición Ed. Alfa Omega 2000. 6. WU, Thomas C. Introducción a la programación orientada a objetos con Java. Ed. Mc Graw Hill. España. 2000. 7. ARNOW, David. WEISS, Gerald, Introducción a la programación con Java. Un enfoque orientado a objetos. Ed. Addison Wesley. España.2001ELECTRÓNICAS 1. Descargar el software – J2SE 1.4, del sitio web: http://java.sun.com/downloads 2. Descargar el editor – JCreator 3.0, del sitio web: http://www.jcreator.com 3. Documentación de JAVA (JDK 1.4) http://java.sun.com/j2se/1.4/download.html 4. Tutorial de Java (JDK1.4) http://java.sun.com/docs/books/tutorial/ 5. Free Electronic Books in Java and C++: http://www.ibiblio.org/pub/docs/books/eckel/ 6. FTP: ftp://turing.cuao.edu.co/Informática I. Versión 1.0 Agosto de 2004 4
  5. 5. Universidad Autónoma de OccidenteFUENTES DE DONDE SE RECOPILÓ EL MATERIAL PARA LA ELABORACIÓN DEESTE MÓDULO DE INFORMÁTICA I.- Universidad de Valencia, España, Depto. de Informática http://informatica.uv.es/docencia/fguia/TI/Libro/PDFs/CAPI4.pdf- Universidad de Oviedo,España, Depto. de Informática Profesor Daniel Gayo. http://di002.edv.uniovi.es/~dani/asignaturas/- Aprenda Java como si estuviera en primero, Escuela Superior de Ingenieros Industriales de San Sebastián. http://mat21.etsii.upm.es/ayudainf/aprendainf/Java/Java2.pdf- Matemáticas para Computación, Seymour Lipschutz, McGraw – Hill, 1992- Informática III, Programación Orientada a Objetos (Java), Recopilación: Lyda Peña PazInformática I. Versión 1.0 Agosto de 2004 5
  6. 6. Universidad Autónoma de OccidenteInformática I. Versión 1.0 Agosto de 2004 6
  7. 7. Universidad Autónoma de OccidenteUNIDAD 1. SISTEMAS NUMÉRICOSARITMÉTICA Y REPRESENTACIÓN DE LAINFORMACIÓN EN EL COMPUTADORDos de los aspectos básicos que se presentan en el tratamiento de la información, son cómorepresentarla (de lo cual dependerá sus posibilidades de manipulación) y cómo almacenarlafísicamente. La primera se resuelve recurriendo a un código adecuado a las posibilidades internas delcomputador, que abordaremos en el presente capítulo. La segunda tiene que ver con los llamadossoportes de información y es una cuestión que pertenece al ámbito del soporte físico del computador.En la raíz de los desarrollos informáticos está el hecho de que todo dato puede ser representado porun conjunto de bits (Los dígitos de un número binario se conocen como bits -Binary digit – digitobinario- por su nombre en inglés), circunstancia que permite a la ALU (Unidad Aritmético-Lógica)realizar un gran número de operaciones básicas utilizando su representación binaria. El paso acódigos binarios es una misión que el computador lleva a cabo automáticamente, por lo que elusuario puede despreocuparse de este proceso. Sin embargo es conveniente tener algunas ideasacerca de la forma como el computador codifica y opera internamente, cuestión indispensable paracomprender determinados comportamientos de la máquina. Para ello empezaremos recordandoalgunos conceptos relativos al sistema de numeración binario y a las transformaciones entre éste y elsistema decimal.1.1 Sistemas de numeración en informática Llamaremos sistema de numeración en base b, a la representación de números mediante unalfabeto compuesto por b símbolos o cifras. Así todo número se expresa por un conjunto de cifras,contribuyendo cada una de ellas con un valor que depende: a) de la cifra en sí, b) de la posición que ocupa dentro del número.En el sistema de numeración decimal, se utiliza, b = 10 y el alfabeto está constituido por diezsímbolos, denominados también cifras decimales: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} (1.1)y, por ejemplo, el número decimal 278.5 puede obtenerse como suma de: 200 70 8 0.5 278 .5es decir, se verifica que: 278.5 = 2×102 + 7×101 + 8×100 + 5×10-1Cada posición, por tanto, tiene un peso específico (en el sistema decimal, cada posición además tieneun nombre): Valor en el ejemplo Nombreposición 0 peso b0 8 unidades 1posición 1 peso b 7 decenasposición 2 peso b2 2 centenasposición -1 peso b-1 5 décimasInformática I. Versión 1.0 Agosto de 2004 7
  8. 8. Universidad Autónoma de OccidenteGeneralizando, se tiene que la representación de un número en una base b: N = ... n4 n3 n2 n1 n0 . n-1 n-2 n-3 ... (1.2)es una forma abreviada de expresar su valor, que es: N = ... n4b4 + n3b3 + n2b2 + n1b1 + n0b0 + n-1b-1 ... (1.3)donde el punto separa los exponentes negativos de los positivos.Nótese que el valor que tome b determina la longitud de la representación; así, por un lado, resultamás cómodo que los símbolos (cifras) del alfabeto sean los menos posibles, pero, por otra parte,cuanto menor es la base, mayor es el número de cifras que se necesitan para representar una cantidaddada. Como ejemplo veamos cual es el número decimal correspondiente de 175372, en base 8, (cuyoalfabeto es {0, 1, 2, 3, 4, 5, 6, 7} y recibe el nombre de sistema octal). 175372)8 = 1×85 + 7×84 + 5×83 + 3×82 + 7×81 + 2×80 = = 6×104 + 4×103 + 2×102 + 5×101 + 0×100 = 64250)101.1.1 Definición del Sistema BinarioEn el sistema de numeración binario b es 2, y se necesita tan sólo un alfabeto de dos elementos pararepresentar cualquier número: {0,1}. Los elementos de este alfabeto se denominan cifras binarias obits. En la Tabla 1.1 se muestran los números enteros binarios que se pueden formar con 3 bits, quecorresponden a los decimales de 0 a 7. Tabla 1.1.- Números binarios del 0 al 7 binario 000 001 010 011 100 101 110 111 decimal 0 1 2 3 4 5 6 7Estos números son generados así: el primer dígito de derecha a izquierda se multiplica por 20, elsegundo por 21 y el tercero por 22; por lo tanto el binario 1012 sería 1x22 + 0x21 + 1x20 = 1x4 + 0x2 + 1x1 = 5.1.1.2 Transformaciones entre bases binaria y decimalPara transformar un número binario a decimal:Basta tener en cuenta las expresiones (1.2) y (1.3), en las que b = 2.Ejemplo 1:Transformar a decimal los siguientes números binarios: 110100; 0.10100; 10100.001 110100)2 = (1×25) + (1×24) + (1×22) = 25 + 24 + 22 = 32 + 16 +4 = 52)10 0.10100)2 = 2-1 + 2-3 = (1/2) + (1/8) = 0.625)10 10100.001)2 = 24 + 22 + 2-3 = 16+4+(1/8) = 20125)10Informática I. Versión 1.0 Agosto de 2004 8
  9. 9. Universidad Autónoma de OccidenteObservando el Ejemplo 1 se deduce que se puede transformar de binario a decimal sencillamentesumando los pesos de las posiciones en las que hay un 1, como se pone de manifiesto en el siguienteejemplo.Ejemplo 2:Transformar a decimal los números: 1001.001)2 y 1001101)21001.001)2 1 0 0 1 0 0 1 = 8 + 1 + 1/8 = 9.125)10pesos 8 4 2 1 ½ ¼ 1/81001101)2 1 0 0 1 1 0 1 = 64 + 8 + 4 + 1 = 77)10pesos 64 32 16 8 4 2 1Para transformar un número decimal a binario:a) La parte entera del nuevo número (binario) se obtiene dividiendo la parte entera del númerodecimal por la base, 2, (sin obtener decimales en el cociente) de partida, y de los cocientes quesucesivamente se vayan obteniendo. Los residuos de estas divisiones y el último cociente (que seránsiempre menores que la base, esto es, 1 o 0), en orden inverso al que han sido obtenidos, son lascifras binarias.Ejemplo 3:Pasar a binario el decimal 26 26 2 26)10 = 11010)2 0 13 2 1 6 2 0 3 2 1 1 2 1 0b) La parte fraccionaria del número binario se obtiene multiplicando por 2 sucesivamente laparte fraccionaria del número decimal de partida y las partes fraccionarias que se van obteniendo enlos productos sucesivos. El número binario se forma con las partes enteras (que serán ceros o unos)de los productos obtenidos, como se hace en el siguiente ejemplo.Ejemplo 4:Para pasar a binario el decimal 26.1875 separamos la parte fraccionaria: 0.1875 y la parte entera: 26(ya transformada en el Ejemplo anterior). 0.1875 0.3750 0.7500 0.5000 ×2 ×2 ×2 x2 0.3750 0.7500 1.5000 1.0000Por tanto, habiéndonos detenido cuando la parte decimal es nula, el número decimal 26.1875 enbinario es: 26.1875)10 = 11010.0011)2NOTA: un número real no entero presentará siempre cifras después del punto decimal, pudiendo sernecesario un número finito o infinito de éstas, dependiendo de la base en que se represente; porejemplo el número 1.6)10 representado en binario sería 1.100110011001...)2, requiriendo infinitascifras para ser exacto, como también ocurre con muchos números representados en decimal.Informática I. Versión 1.0 Agosto de 2004 9
  10. 10. Universidad Autónoma de Occidente1.1.3 Códigos IntemediosComo acabamos de comprobar, el código binario produce números con muchas cifras, y para evitarloutilizamos códigos intermedios que son bases mayores, que no se alejen de la binaria. Estos sefundamentan en la facilidad de transformar un número en base 2, a otra base que sea una potencia de2 (22=4; 23=8; 24=16, etc.), y viceversa. Usualmente se utilizan como códigos intermedios lossistemas de numeración en base 8 (u octal) y en base 16 (o hexadecimal).1.1.3.1 Base Octal Un número octal puede pasarse a binario aplicando los algoritmos ya vistos en seccionesanteriores. No obstante, al ser b=8=23, el proceso es más simple puesto que, como puede verse n525 + n424 + n323 + n222 + n121 + n020 + n-12-1 + n-22-2 + n-32-3 = (n522 + n421 + n320)× 23 + (n222 + n121 + n020)× 20 + (n-122 + n-221 + n-320)× 2-3 = (m1)× 81 + (m0)× 80 + (m-1)× 8-1Cada 3 símbolos binarios (3 bits) se agrupan para formar una cifra de la representación en octal, portanto en general puede hacerse la conversión fácilmente, de la forma siguiente:Para transformar un número binario a octal se forman grupos de tres cifras binarias a partir delpunto decimal hacia la izquierda y hacia la derecha (añadiendo ceros no significativos cuando seanecesario para completar grupos de 3). Posteriormente se efectúa directamente la conversión a octalde cada grupo individual de 3 cifras, y basta con recordar como se generaron los números en la tabla1.1 para poder realizar rápidamente la conversión.Así por ejemplo 10001101100.1101)2 = 010 001 101 100 . 110 100 2 1 5 4 . 6 4 = 2154.64)8De octal a binario se pasa sin más que convertir individualmente a binario (tres bits) cada cifraoctal, manteniendo el orden del número original. Por ejemplo: 537.24)8 = 5 3 7 . 2 4 101 011 111 . 010 100 = 101011111.0101)2Para transformar un número de octal a decimal se aplica la expresión (1.3) con b=8.Para transformar un número de decimal a octal se procede de forma análoga a como se hizo parapasar de decimal a binario dividiendo o multiplicando por 8 en lugar de por 2.Así se puede comprobar que 1367.25)8 = 759.328125)10 ó que 760.33)10 =1370.2507...)81.1.3.2 Base Hexadecimal Para representar un número en base hexadecimal (esto es, b=16) es necesario disponer de unalfabeto de 16 símbolos: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} Tabla 1.2.- Números binarios del 0 al 7Hexadec 0 1 2 3 4 5 6 7 8 9 A B C D E FDécimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15Binario 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111Informática I. Versión 1.0 Agosto de 2004 10
  11. 11. Universidad Autónoma de OccidenteAl ser b=16=24, de modo similar al caso octal, cada símbolo hexadecimal se corresponde con 4símbolos binarios (4 bits) y las conversiones a binario se realizan agrupando o expandiendo engrupos de 4 bits. Se pueden comprobar las transformaciones siguientes: 10111011111.1011011)2 = 0101 1101 1111 . 1011 0110 5 D F . B 6 = 5DF.B6)H 1A7.C4 )H = 1 A 7 . C 4 0001 1010 0111 . 1100 0100 = 110100111.110001)2De la misma forma que manualmente es muy fácil convertir números de binario a octal, y viceversa,y de binario a hexadecimal, y viceversa, también resulta sencillo efectuar esta operaciónelectrónicamente o por programa, por lo que a veces el computador utiliza este tipo de notacionesintermedias como código interno o de entrada/salida, y también para visualizar el contenido de lamemoria o de los registros.Para transformar un número de hexadecimal a decimal se aplica la expresión (1.3) con b=16.Para pasar un número de decimal a hexadecimal se hace de forma análoga a los casos binario yoctal: la parte entera se divide por 16, así como los cocientes enteros sucesivos, y la partefraccionaria se multiplica por 16, así como las partes fraccionarias de los productos sucesivos.Así se puede comprobar que 12A5.7C)H = 4773.484375)10 ó que 16237.25)10 = 3F6D.4)H1.2 Operaciones Aritméticas y Lógicas El procesamiento de la información incluye realizar una serie de operaciones con los datos;estas operaciones y las particularidades de las mismas en su realización por el computador son elobjeto de los próximos apartados.Operaciones Aritméticas con Números BinariosLas operaciones aritméticas básicas (suma, resta, multiplicación y división) en sistema binario serealizan en forma análoga a la decimal aunque, por la sencillez de su sistema de representación, lastablas son realmente simples: Tabla 1.3.- Operaciones básicas en binario Suma aritmética Resta aritmética Producto aritmético 0+0=0 0-0=0 0.0=0 0+1=1 0 - 1 = 1 y debo 1 (*) 0.1=0 1+0=1 1-0=1 1.0=0 1 + 1 = 0 y llevo 1(*) 1-1=0 1.1=1(*) Llamado normalmente acarreo. En binario 1+1=10 (es 0 y me llevo 1), igual que en decimal6+6=12 (es 2 y me llevo 1)Resta en un SC2 Se toma el sustraendo y se le hace complemento a uno (negación de cada bit). Posteriormente aeste número se le suma uno, dando como resultado el complemento a dos. Este último resultado (queequivale al sustraendo negativo) se le suma al minuendo y obtendremos la respuesta. Si el número detérminos excede al minuendo, se debe realizar desbordamiento de extremos. (No se toma el bit deextrema izquierda en el resultado ).Informática I. Versión 1.0 Agosto de 2004 11
  12. 12. Universidad Autónoma de OccidenteEjemplo 5: (minuendo) 0 1 1 1 (7) (sustraendo) -0 1 0 1 (5)Complemento a uno del sustraendo 1 0 1 0Se suma uno + 1Complemento a dos 1 0 1 1 (-5)Minuendo 0 1 1 1 (7)Complemento a dos + 1 0 1 1 (-5) Como se presenta acarreo se omite el bit de extrema izquierda.Respuesta 0 0 1 0 (2)Ejemplo 6: Minuendo 0 1 0 0 1 0 1 1 ( 75) Sustraendo 0 1 1 0 1 0 0 1 (105)Complemento a uno del sustraendo 1 0 0 1 0 1 1 0Se suma uno + _______ 1Complemento a dos 1 0 0 1 0 1 1 1 (-105)Complemento a dos 0 1 0 0 1 0 1 1 ( 75)Suma minuendo + 1 0 0 1 0 1 1 1 (-105)Respuesta 1 1 1 0 0 0 1 0 (- 30)Ejemplo 7:Efectuar las siguientes operaciones aritméticas binarias: 1110101 1101010 1101010 1010011 110.01 10 +1110110 -1010111 ×11 ×10 10 11.001 11101011 0010011 1101010 0000000 010 1101010_ 1010011_ 10 100111110 10100110 00010 10 00A partir del ejemplo anterior, se observa que multiplicar por 10)2 (es decir, por 2 en decimal)equivale a añadir un cero a la derecha, o desplazar el punto decimal a la derecha, siendo esto similara multiplicar por 10)10 un número decimal. De la misma forma dividir por 10)2 = 2)10 equivale aeliminar un cero a la derecha, o desplazar el punto decimal a la izquierda.Por ejemplo: 1010011)2 × 2 = 10100110)2 1010100)2 / 2 = 101010)2 10101.01)2 × 2 = 101010.1)2 110.01)2 / 2 = 11.001)2 1.101101)2 × 25 = 110110.1)2 10101.101)2 / 26 = 0.010101101)2Informática I. Versión 1.0 Agosto de 2004 12
  13. 13. Universidad Autónoma de Occidente EjerciciosLlene todas las casillas en blanco, sabiendo que las columnas agrupan el sistema numérico y elnúmero a convertir lo da la fila que tenga el dato. DECIMAL BINARIO OCTAL HEXA 230 1101001 326 BC3 A48D 1543 100100101 1872 255 Realice las siguientes operaciones : Operando 1 Operando 2 Suma Resta 11000011 10000 1001110010 11100101 1101 1100111 1101001111 101101111 1111111111111 1111 1010101011 10100001 11111100000 1010101010 101000001100 11000110010 11001010000010 10001111100011 11001010 1011111 101100110101 1110000001 10101110110 10101 11111111111 1111111111 100100000010 1011111 1001111101111110000 11111110000000000001.2.2 Valores Booleanos y Operaciones LógicasUn dígito binario, además de representar una cifra en base dos, también puede interpretarse como unvalor booleano o dato lógico (en honor a George Boole), entendiendo como tal una cantidad quesolamente puede tener dos estados (Verdadero/Falso, SI/NO, 1/0, etc.) y por tanto con capacidadpara modelizar el comportamiento de un conmutador. Así, además de las operaciones aritméticas convalores binarios, se pueden llevar a cabo operaciones booleanas o lógicas en las que estos valores seconsideran señales generadas por conmutadores. Las operaciones booleanas más importantes son: OR lógico (también denominado unión, suma lógica (+) o función O), AND lógico (también intersección, producto lógico ( . ) o función Y) la complementación ( - ) (o inversión, negación, o función NOT o NO).Nótese que las dos primeras son operaciones de dos operandos o binarios mientras que lacomplementación es unaria. Estas operaciones se rigen según la Tabla 4.4.Informática I. Versión 1.0 Agosto de 2004 13
  14. 14. Universidad Autónoma de Occidente Tabla 1.4.- Operaciones lógicas OR __ AND ______ NOT 0+0=0 0.0=0 0=1 0+1=1 0.1=0 1=0 1+0=1 1.0=0 1+1=1 1.1=1Como puede observarse, el AND y OR lógicos se corresponden parcialmente con el producto y sumabinarios, y lo más significativo, es la posibilidad de implementar estas operaciones lógicas, y portanto las aritméticas binarias, en forma de circuitos. En la siguiente unidad se revisa másampliamente las operaciones lógicas.Informática I. Versión 1.0 Agosto de 2004 14
  15. 15. Universidad Autónoma de OccidenteUNIDAD 2. SISTEMAS LÓGICOSLOGICA, TABLAS DE VERDAD2.1 Introducción.Un computador puede ser programado para tomar decisiones basadas en si ciertos enunciados –porejemplo, “El numero que se ha computado es mayor que 100”-son verdaderos o falsos. A la verdad ofalsedad de un enunciado se le llama valor de verdad; un enunciado es verdadero o falso, pero noambas cosas. Algunos enunciados son enunciados compuestos, es decir, están integrados porsubenunciados y varias conectivas.Ejemplo 1: (a) “Las rosas son rojas y las violetas azules” es un enunciado compuesto por los subenunciados “las rosas son rojas” y “las violetas son azules”. (b) “El es inteligente o estudia todas las noches” es, implícitamente, un enunciado compuesto por los subenunciados “El es inteligente” y “estudia todas las noches”. (c) “¿Para donde va?” no es un enunciado ya que no es ni verdadero ni falso. La propiedad fundamental de un enunciado compuesto es que su valor de verdad esta completamente determinado por los valores de verdad de sus subenunciados junto con la manera como estan conectados para formar el enunciado compuesto. Comenzamos con un estudio de algunas de estas conectivas. En este capitulo usaremos las letras p, q, r (en minúsculas o mayúsculas, con o sin subíndices) para denotar enunciados.2.2 Conjunción, p ^ qDos enunciados cualesquiera se pueden combinar con la palabra “y” para formar un enunciadocompuesto llamado la conjunción de los enunciados originales. Simbólicamente, p ^ q.Denota la conjunción de los enunciados p y q, que se lee “p ^ q”.La tabla de verdad del enunciado compuesto p ^ q esta dada por la siguiente tabla: p q p^q V V V V F F F V F F F FEn este caso, la primera línea es una manera abreviada de decir que si p es verdadero y q esverdadero, entonces p ^ q es verdadero. Las otras líneas tienen significados análogos. Consideramosque esta tabla define precisamente el valor de verdad del enunciado compuesto p ^ q como unafunción de los valores de verdad de p y de q. Observe que p ^ q es verdadero solamente en el caso enque ambos subenunciados sean verdaderos.Informática I. Versión 1.0 Agosto de 2004 15
  16. 16. Universidad Autónoma de OccidenteEjemplo 2: Considere los cuatro enunciados siguientes: (i) Paris esta en Francia y 2+2=4. (iii) Paris esta en Inglaterra y 2+2=4. (ii) Paris esta en Francia y 2+2=5 (iv) Paris esta en Inglaterra y 2+2=5.Solamente el primer enunciado es verdadero. Cada uno de los otros enunciados es falso ya que por lomenos uno de sus subenunciados es falso.2.3 Disyunción, p ν qDos enunciados pueden combinarse con la palabra “o” (en el sentido de “y/o”) para formar un nuevoenunciado que se llama la disyunción de los dos enunciados originales. Simbólicamente, p ν q.Denota la disyunción de los enunciados p y q y se lee “p o q”.El valor de verdad de p ν q esta dado por la siguiente tabla de verdad, que consideramos define ap ν q: p q pνq V V V V F V F V V F F FObserve que p ^ q es falso solamente cuando ambos enunciados son falsos.Ejemplo 3: Considere los cuatro enunciados: (i) Paris esta en Francia o 2 + 2 = 4. (ii) Paris esta en Francia o 2 + 2 = 5. (iii) Paris esta en Inglaterra o 2 + 2 = 4. (iv) Paris esta en Inglaterra o 2 + 2 = 5.Solamente (iv) es falso. Cada uno de los otros enunciados es verdadero ya que por lo menos uno desus subenunciados es verdadero. Observación: La palabra española “o” se usa comúnmente de dos maneras. Algunas veces se usaen el sentido de “p o q o ambos”, mejor dicho, por lo menos una de las dos alternativas ocurre, comoantes se señaló y algunas veces se usa en el sentido de “ p o q pero no ambos”, mejor dicho,exactamente una de las dos alternativas ocurre. Por ejemplo, la frase “ El estudiara en la UniversidadNacional o en la Universidad Católica” usa el “o” en el segundo sentido llamado disyunción exclusiva.A no ser que se diga otra cosa, la “o” se usara en el primer sentido. Esta observación hace sobresalirla precisión que ganamos con nuestro lenguaje simbólico: pν q esta definido por su tabla de verdad ysiempre significa “p y / o q”.2.4 Negación, ~ pDado cualquier enunciado p, se puede formar otro enunciado, llamado la negación de p, escribiendo “Es falso que...” antes de p o, si es posible insertando en p la palabra “no”. Simbólicamente, ~ p,denota la negación de p (se lee “no p”).Informática I. Versión 1.0 Agosto de 2004 16
  17. 17. Universidad Autónoma de OccidenteLa tabla de verdad de ~ p esta dada por la siguiente tabla: p ~p V F F VEn otras palabras, si p es verdadero entonces ~ p es falso entonces ~ p es verdadero. Así, el valor deverdad de la negación de cualquier enunciado es siempre el opuesto del valor de verdad del enunciadooriginal.Ejemplo 4: Considere los siguientes enunciados (a) Paris esta en Francia. (d) 2 + 2= 5 (b) Es falso que Paris esta en Francia. (e) Es falso que 2 + 2=5. (c) Paris no esta en Francia. (f ) 2 + 2 ≠ 5.Entonces (b) y (c) son cada una de la negación de (a); y (e) y (f) son cada uno la negación de (d. Yaque (a) es verdadero, los enunciados (b) y (c) son falsos; y como (d) es falso, los enunciados (e) y (f)son verdaderos.Observación: La notación lógica para las conectivas “y”, “o” y “no” no es estándar. Por ejemplo,algunos textos usan: p & q. p . q o pq para p ^ q p+q para pν q p’ . p o ┐p para ~ p2.5 Proposiciones y Tablas de VerdadCon su uso repetido de las conectivas lógicas (^, ν, ~ y otras que se discutirán adelante), podemosconstruir enunciados compuestos que son mas elaborados. En el caso en que los subenunciados p, q,... de un enunciado compuesto P (p,q,...) sean variables, llamamos al enunciado compuesto unaproposición. Ahora el valor de verdad de una proposición depende exclusivamente de los valores de verdad desus variables, mejor dicho, el valor de verdad de una proposición se conoce una vez que se conozcanlos valores de verdad de sus variables. La tabla de verdad de la proposición ~ (p ^ ~ q), por ejemplo,se construye como sigue: p q ~q p^~q ~(p^~q) V V F F V V F V V F F V F F V F F V F VObserve que las primeras columnas de la tabla son paralas variables p,q,...y que hay suficientes líneas en la tabla para permitir todas las posiblescombinaciones de V y F para estas variables. (Para 2 variables, como en el caso anterior, se necesitan4 líneas; para 3 variables se necesitan 8 líneas; y, en general, para n variables se necesitan 2n líneas.)Hay pues una columna para cada etapa “elemental” de la construcción del enunciado el valor deverdad de cada paso es determinado por las etapas anteriores con las definiciones de las conectivas ^,ν, ~. Finalmente, obtenemos la tabla de verdad de la proposición, que aparece en la ultima columna.Informática I. Versión 1.0 Agosto de 2004 17
  18. 18. Universidad Autónoma de Occidente Observación: La tabla de verdad de la proposición, anterior consiste precisamente en lascolumnas bajo las variables y la columna bajo la proposición: p q ~(p^~q) V V V V F F F V V F F VLas otras columnas se usaron solamente en la construcción de la tabla de verdad.Otra manera de construir la tabla de verdad anterior para ~ (p ^ ~ q) es la siguiente. Primero seconstruye la siguiente tabla: p q ~ (p ^ ~ q) V V V F F V F F PasoObserve que la proposición se escribe en la línea superior a la derecha de sus variables, y que hay unacolumna bajo cada variable o conectiva de la proposición. Los valores de verdad se colocan entoncesen la tabla de verdad en varios pasos como sigue: P q ~ (p ^ ~ q) p q ~ (p ^ ~ q) V V V V V V V F V V F V F V F V V F F V F V F V F F V F F F F F F F V F Paso 1 1 Paso 1 2 1 (a) (b) P q ~ (p ^ ~ q) p q ~ (p ^ ~ q) V V V F F V V V V V F F V V F V V V F F V F V V V F F V F F F V F F V F F F V F F F F V F F F V F F V F Paso 1 3 2 1 Paso 4 1 3 2 1(c ) (d)La tabla de verdad de la proposición está formada, pues, por las columnas originales bajo las variablesy la última columna colocada en la tabla, mejor dicho, el último paso.2.6 Tautologías y ContradiccionesAlgunas proposiciones P(p, q,…) contienen solamente V en la última columna de sus tablas de verdad,es decir, son verdaderas para cualquier valor de verdad de sus variables. A tales proposiciones se lesInformática I. Versión 1.0 Agosto de 2004 18
  19. 19. Universidad Autónoma de Occidentellama tautologías. Análogamente, una proposición P(p,q,…)se llama contradicción si contienesolamente F en la última columna de su tabla de verdad, o sea, es falso para cualquier valor de verdadde sus variables. Por ejemplo, la proposición “p o no p”, es decir, p ν ~ p, es una tautología y laproposición “p y no p”, es decir, p ^ ~ p, es una contradicción. Esto se verifica construyendo sustablas de verdad. p ~p pν~p p ~ p p ^~ p V F V V F F F V V F V FObservemos que la negación de una tautología es una contradicción ya que siempre es falsa, y lanegación de una contradicción es una tautología ya que siempre es verdadera. Ahora, sea P(p, q, ...) una tautología, y sean P (p, q, ...), P (p,q,...),...proposicionescualesquiera. Como el valor de verdad de P(p,q,...) no depende de los valores de verdad particularesde sus variables p, q, ... podemos reemplazar P , q por P , ...en la tautología P(p, q, …) y tenemosaún una tautología. En otras palabras: Principio de substitución: Si P (p, q, ...) es una tautología, entonces P(P1, P2,...) es una tautología para proposiciones cualesquiera P1, P2,...Ejemplo 5: Por la anterior tabla de verdad, pν ~ p es una tautología. Reemplazando p por q ^ robtenemos la proposición ( q ^ r ) ν ~ ( q ^ r ) que, por el principio de substitución también debieraser una tautología.Esto se verifica con la siguiente tabla de verdad. q r q^r ~ (q^r) (q^r)ν ~(q^r) . V V V F V V F F V V F V F V V F F F V V2.7 Equivalencia Lógica: Álgebra de ProposicionesSe dice que dos proposiciones P ( p, q, ...) y Q (p, q, ...) son lógicamente equivalentes, o sencillamenteequivalentes o iguales, denotado por P (p, q, ...) ≡ Q (p, q, …)Si tienen identicas tablas de verdad. Por ejemplo, considere las tablas de verdad de ~ ( p^q) y ~ pν q: p q p^q ~ (p^q) p Q ~p ~q ~pν~q V V V F V V F F F V F F V V F F V V F V F V F V V F V F F F V F F V V VComo las tables de verdad son las mismas, mejor dicho, ambas proposiciones son falsas en el primercaso y verdaderas en los otros tres casos, las proposiciones ~ ( p ^ q) y ~ p ν ~ q son lógicamenteequivalentes y podemos escribir: ~ ( p^q) ≡ ~ p ν ~ qInformática I. Versión 1.0 Agosto de 2004 19
  20. 20. Universidad Autónoma de OccidenteEjemplo 6: Considere el enunciado “ Es falso que las rosas son rojas y las violetas son azules”.Este enunciado se puede escribir en la forma ~ ( p ^ q) en donde p es “ las rosas son rojas” y q es “lasvioletas son azules”. Sin embargo, por las tablas de verdad anteriores, ~ ( pν q) es lógicamenteequivalente con ~ p ν ~ q.Asi, el enunciado dado tiene el mismo significado que el ennunciado. “Las rosas no son rojas, o las violetas no son azules”. Las proposiciones satisfacen muchas equivalencias logicas, o leyes, fuera de las descritasanteriormente. Algunas de las leyes mas importantes, con sus nombres se dan en la tabla 2.1. en latabla, t denota una tautología y f denota una contradicción.2.8 Enunciados Condicional y BicondicionalMuchos enunciados, particularmente en la matemática, son de la forma “Si p entonces q”. Talesenunciados se llaman enunciados condicionales y se denotan por p → qEl condicional p → q frecuentemente se lee “ p implica q” o “p sólo si q”.Otro enunciado común es la forma “p si y solo si q”. Tales enunciados denotados por p ↔ q sellaman enunciados bicondicionales.Los valores de verdad de p→ q y p ↔ q se dan en las siguientes tablas: p q p→ q p q p↔q V V V V V V V F F V F F F V V F V F F F V F F V Leyes de idempotencia 1a. pν p ≡ p 1b. p ^ p ≡ p Leyes Asociativas 2a (pν q) ν r≡ pν (qν r) 2b. (p ^ q) ^ r ≡ p ^ ( q ^ r) Leyes conmutativas 3a pν q≡ qν p 3b. p ^ q ≡ q ^ p Leyes distributivas 4a pν ( q ^ r) ≡ (pν q) ^ (pν r) 4b. p ^ (q ν r) ≡ (p ^ q) ν (p ^ r) Leyes de identidad 5a pν f ≡ p 5b. p ^ t ≡ p 6a pν t≡ t 6b. p ^ f ≡ f Leyes de complementos 7a pν ~ p ≡ t 7b. p ^ ~ p ≡ f 8a ~ t ≡ f 8b. ~ f ≡ t Ley de involución 9 ~ ~ p≡p Leyes de DeMorgan 10a. ~ (p ν q) ≡ ~ p ^ ~ q 10b. ~ (p ^ q) ≡ ~ p ν ~ q Tabla 2.1. Leyes del Álgebra de ProposicionesInformática I. Versión 1.0 Agosto de 2004 20
  21. 21. Universidad Autónoma de OccidenteObserve que el condicional p→ q es falso solamente cuando la primera parte p es verdadera y lasegunda parte q es falsa. En caso de que p sea falso, el condicional p→ q es verdadero sin importarel valor de verdad de q. Observe tambien que p ↔ q es verdadero cuando p y q tienen los mismosvalores de verdad y falso en los demas casos. Ahora considere la tabla de verdad de la proposicion ~ pν q: p q ~p ~pνq V V F V V F F F F V V V F F V VObserve que la anterior tabla de verdad es idéntica a la tabla de verdad de p → q. Así que p→ q eslógicamente equivalente a la proposición ~ p ν q: p→q≡~pνqEn otras palabras, el enunciado condicional “Si p entonces q” es lógicamente equivalente al enunciado“No p o q”, que solamente usa las conectivas ν y ~ y, por lo tanto, ya era parte de nuestro lenguaje. Considere la proposicion condicional p → q y las otras proposiciones condicionales simples quecontienen p y q: q → p, ~ p → ~ q y ~ q → ~ pEstas proposiciones se llaman respectivamente la reciproca, inversa, y contrarreciproca de laproposicion p → q. En seguida presentamos las tablas de verdad de las cuatro proposiciones. Condicional Recíproca Inversa Contrarecíproca p q p→q q→ p ~p→~q ~q→ ~p V V V V V V V F F V V F F V V F F V F F V V V VObserve que un enunciado condicional y su reciproco o inverso no son lógicamente equivalentes. Porotra parte, se puede ver que un enunciado condicional y su contrarreciproco son lógicamenteequivalentes. Enunciamos este resultado formalmente:Teorema 2.1: Un enunciado condicional p→ q y su contrarreciproca ~ q→ ~ p son lógicamenteequivalentes.Ejemplo 7: (a) Considere los siguientes enunciados sobre un triangulo A: p→ q: Si A es equilatero, entonces A es isoseles. q→ p: Si A es Isoseles, entonces A es equilatero. En este caso p→ q es verdadero, pero su reciproco q→ p es falso. (b) Sea x un entero. Demuestre: (p→ q). Si x² es impar entonces x es impar. Demostramos que la contrarreciproca ~ q→ ~ p, “Si x es par, entonces x² es par” es verdadera. Sea x par; entonces, x = 2n en donde n es un entero. Por lo tanto, x² = (2n)(2n) = 2(2n² )Informática I. Versión 1.0 Agosto de 2004 21
  22. 22. Universidad Autónoma de Occidente tambien es par. Como la contrarreciproca ~ q→ ~ p es verdadera, el enunciado condicional original p→ q es tambien verdadero.2.9 Argumentos Un argumento es una relacion entre un conjunto de proposiciones P1,P2,..., Pn, llamadaspremisas, y otra proposicion Q, llamada la conclusión; denotamos un argumento por P1,P2,..., Pn + QSe dice que un argumento es valido si las premisas dan (como consecuencia) la conclusión; masformalmente, damos la siguiente Definición: Un argumento P1,P2,,...., Pn + Q es válido si Q es verdadero cada vez que las premisas P1,P2,..., Pn sean verdaderas.Un argumento que no es válido se llama falacia.Ejemplo 8: (a) El siguiente argumento es válido: p.p → q + q (Ley de independencia, modus poniendo ponens.) la demostración de esta regla se sigue de la siguiente tabla de verdad. p q p→q V V V V F F F V V F F VYa que p es verdadero en los casos (lineas) 1 y 2, y p → q es verdadero en los casos 1, 3 y 4; se sigueque p y q → q son verdaderos simultáneamente en el caso 1. como en este caso q es verdadero, elargumento es valido.(b) El siguiente argumento es una falacia: p → q, q + p. Ya que p → q y q son ambos verdaderos enel caso (linea) 3 en la anterior tabla de verdad, pero en este caso p es falso. Ahora las proposiciones P1,P2,..., Pn son verdaderas simultáneamente si y solo si la proposicion(P1 ^ P2 ^...^ Pn) es verdadera. Asi el argumento P1,P2,..., Pn + Q es valido si y solo si Q es verdaderocada vez que P1 ^ P2 ^...^ Pn sea verdadero o, equivalentemente, si y solo si la proposicion (P1 ^ P2 ^...^ Pn) → QEs una tautologia. Establecemos este resultado formalmente.Teorema 2.2: El argumento P1,P2,..., Pn + Q es valido si y solo si (P1 ^ P2 ^...^ Pn) → Q es unatautologia.En el siguiente ejemplo aplicamos este teorema.Ejemplo 9: Un principio fundamental del racionamiento logico dice: “Si p implica q y q implica r, entonces p implica r”O sea, el siguiente argumento es valido:Informática I. Versión 1.0 Agosto de 2004 22
  23. 23. Universidad Autónoma de Occidente p→ q. q → r + p→ r (ley del silogismo)Este hecho se verifica con la siguiente tabla de verdad que muestra que la proposicion [(p→ q) ^ (q → r)] → (p→ r)Es una tautologia: p q r [(p → q) ^ (q → r)] → (p → r) VV V V V V V V V V V V V V VV F V V V F V F F V V F F VF V V F F F F V V V V V V VF F V F F F F V F V V F F FV V F V V V V V V V F V V FV F F V V F V F F V F V F FF V F V F V F V V V F V V FF F F V F V F V F V F V F Paso 1 2 1 3 1 2 1 4 1 2 1Equivalentemente, el argumento es valido ya que las premisas p→ q y q→ r son verdaderassimultáneamente solo en los casos (lineas) 1, 5, 7 y 8, y en estos casos la conclusión p→ r tambien esverdadera. (observe que la tabla de verdad requiere 2³ = 8 lineas, ya que hay tres variables p, q y r.)Es necesario destacar que la validez del argumento no depende de los valores de verdad o delcontenido de los enunciados que aparecen en el argumento, sino solamente de la estructura formal delargumento. Esto se ilustra con el siguiente ejemplo.Ejemplo 10: Considere el siguiente argumento: S1: Si un hombre es soltero, es infeliz. S2: Si un hombre es infeliz, muere joven. ................................................................. S: Los solteros mueren jóvenes.En este caso el enunciado S debajo de la línea denota la conclusión del argumento, y los enunciadosS1 y S2 por encima de la línea denotan las premisas. Afirmamos que el argumento es de la forma p→ q , q→ r + p → rEs donde p es “El es soltero”, q es “El es infeliz” y r es “El muere joven”; y por el ejemplo 4.9 esteargumento (Ley de silogismo) es válido.2.10 Implicación Lógica. Se dice que una proposición P (p,q,...) implica lógicamente una proposición Q (p,q,...), escrito P (p,q,...)⇒ Q (p, q, ...)Si Q (p, q, ...) es verdadera cada vez que P (p,q,...) sea verdadera.Ejemplo 11: Afirmamos que P implica lógicamente p ν q. Considere las tablas de verdad de p y dep ν q en la tabla de abajo. Observe que p es verdadera en los casos (líneas) 1 y 2, y en estos casospν q también es verdadera. En otras palabras , p implica lógicamente p ν q.Informática I. Versión 1.0 Agosto de 2004 23
  24. 24. Universidad Autónoma de Occidente p q pν q V V V V F V F V V F F F Ahora si Q (p, q, ...) es verdadera cada vez que P (p,q,...) sea verdadera, entonces el argumento P (p,q,...) + Q (p, q, ...)es válido, y recíprocamente. Aún más, el argumento P + Q es válido si y solo si el enunciadocondicional P → Q es siempre verdadero, o sea, si es una tautología. Establecemos este resultadoformalmente.Teorema 3: Para proposiciones cualesquiera P (p,q,...) y Q (p, q, ...) los tres enunciados siguientesson equivalentes: (i) P (p,q,...) implica lógicamente a Q (p, q, ...). (ii) El argumento P (p,q,...) + Q (p, q, ...) es válido. (iii) La proposición P (p,q,...) → Q (p, q, ...) es una tautología.Si P ⇒ Q y Q ⇒ P entonces P y Q deben tener la misma tabla de verdad, y por lo tanto P ≡ Q. Elreciproco también es cierto. Así, la noción de implicación lógica está intimamente ligada a la de laequivalencia lógica. PROBLEMAS RESUELTOSEnunciados y Enunciados Compuestos.2.1 Sea p “Hace frió” y sea q “Está lloviendo”. Dé una frase verbal sencilla que describa cada uno de los siguientes enunciados: (1) ~ p, (2) p ^ q, (3) p ν q, (4) qν ~p, (5) ~p ^ ~q, (6) ~ ~ q En cada caso, traduzca ^, ν y ~ para que se lea “y”, “o” y “Es falso que” o “No”, respectivamente, y luego simplifique la frase en español. (1) No hace frió. (4) Está lloviendo o no está haciendo frío. (2) Está haciendo frío y está lloviendo. (5) Ni está haciendo frío ni está lloviendo. (3) Está haciendo frío o está lloviendo (6) No es verdad que esté lloviendo.2.2 Sea p “El es alto” y sea q “El es buen mozo”. Escriba cada uno de los siguientes enunciados en forma simbólica usando p y q. (Suponga que “El es bajo” significa “El no es alto”, o sea ~ p.). (1) El es alto y buen mozo. (4) El no es ni alto ni buen mozo. (2) El es alto pero no buen mozo. (5) El es alto, o es bajo y buen mozo. (3) Es falso que el sea bajo o buen mozo. (6) No es cierto que él sea bajo o no buen mozo. (1) p ^ q (3) ~ (~p ν q) (5) p ν (~p ^ q) (2) p ^ ~q (4) ~p ^ ~q (6) ~ (~ p ν ~q)Informática I. Versión 1.0 Agosto de 2004 24
  25. 25. Universidad Autónoma de OccidenteProposiciones y sus Tablas de Verdad.2.3 Encuentre la tabla de verdad de ~ p ^ q. p q ~ p ^ q V V F V F V V F F V F F F V V F V V F F V F F F p q ~p ~p^q V V F F V F F F F V V V F F V F Paso 2 1 3 1Método 1 Método 22.4 Encuentre la tabla de verdad de ~ (p ν q). p q ~ (p ν q)p q p ν q ~ (p ν q) V V F V V VV V V F V F F V V FV F V F F V F F V VF V V F F F V F F FF F F V Paso 3 1 2 1 Método 1 Método 22.5 Encuentre la tabla de verdad de ~ (p ν ~ q).p q ~ q p ν ~ q ~ (p ν ~ q) p q ~ (p ν ~ q)V V F V F V V F V V F VV F V V F V F F V V V FF V F F V F V V F F F VF F V V F F F F F V V F Paso 4 1 3 2 1 Método1 Método 2(observe que esta tabla de verdad es idéntica a la del problema 2.3)Tautologías y Contradicciones.2.6 Verifique que la proposición p ν ~ (p ^ q) es una tautología. Construya la tabla de verdad de p ν ~ (p ^ q): p q p^ q ~ (p ^ q) p ν ~ (p ^ q) V V V F V V F F V V F V F V V F F F V VInformática I. Versión 1.0 Agosto de 2004 25
  26. 26. Universidad Autónoma de Occidente Como la tabla de verdad de p ν ~ (p ^ q) es verdadera para todos los valores de verdad de p y de q, entonces es una tautología.2.7 Verifique que la proposición (p ^ q) ^ ~ (p ν q) es una contradicción. Construya la tabla de verdad de (p ^ q) ^ ~ (p ν q): P q p ^ q p ν q ~ (p ν q) (p ^ q) ^ ~ (p ν q) V V V V F F V F F V F F F V F V F F F F F F V F Como la tabla de verdad de (p ^ q) ^ ~ (p ν q) es F para todos los valores de verdad de p y de q, entonces es una contradicción.Equivalencia Lógica.2.8 Demuestre que la disyunción distribuye sobre la conjunción, o sea, demuestre la ley distributiva p ν (q ^ r) ≡ ( p ν q) ^ (p ν r). Construya las tablas de verdad requeridas. p q r q^r p ν (q ^ r) pνq pν r ( p ν q) ^ (p ν r) V V V V V V V V V V F F V V V V V F V F V V V V V F F F V V V V F V V V V V V V F V F F F V F F F F V F F F V F F F F F F F F F Como las tablas de verdad son idénticas, las proposiciones son equivalentes.2.9 Demuestre que la operación de disyunción se puede escribir en términos de las operaciones conjunción y negación. Específicamente, p ν q≡ ~ (~ p ^ ~ q). Construya las tablas de verdad requeridas p q pνq ~p ~q ~p^~q ~ (~ p ^ ~ q) V V V F F F V V F V F V F V F V V V F F V F F F V V V F Como las tablas de verdad son idénticas, las proposiciones son equivalentes.Informática I. Versión 1.0 Agosto de 2004 26
  27. 27. Universidad Autónoma de Occidente2.10 Simplifique cada proporción usando la tabla 2-1: (a) p ν (p ^ q), (b) ~( pν q) ν (~ p ^ q).(a) Equivalencia Razón (1) p ν (p ^ q) ≡ (p ^ t) ν (p ^ q) (1) Ley de Identidad (2) ≡ p ^ ( t ν q) (2) Ley distributiva (3) ≡p^t (3) Ley de Identidad (4) ≡p (4) Ley de Identidad(b) Equivalencia Razón (1) ~ (p ν q)ν (~ p ^ q) ≡ (~ p ^ ~ q) ν (~ p ^ q) (1) Ley de DeMorgan (2) ≡ ~ p ^ (~ p ν q) (2) Ley distributiva (3) ≡ ~p^t (3) Ley de complemento (4) ≡ ~p (4) Ley de IdentidadNegación.2.11 Demuestre las leyes de DeMorgan: (a) ~( p ^ q) ≡ ~ p ν ~ q; (b) ~( pν q) ≡ ~ p ^ ~ q. En cada caso construya las tablas de verdad requeridas. (a) p q p ^ q ~ (p ^ q) ~ p ~ q ~ p ν ~ q V V V F F F F V F F V F V V F V F V V F V F F F V V V V (b) p q pν q ~( pν q) ~p ~q ~p^~q V V V F F F F V F V F F V F F V V F V F F F F F V V V V2.12 Verifique ~ ~ p≡ p p ~q ~~p V F V F V F2.13 Use los resultados de los problemas 2.11 y 2.12 para simplificar los siguientes enunciados. (a) No es cierto que su madre sea inglesa o que su padre sea francés. (b) No es cierto que él estudie física pero no matemática. (c) No es cierto que las ventas estén bajando y los precios subiendo. (d) No es cierto que no esté haciendo frió o que esté lloviendo.Informática I. Versión 1.0 Agosto de 2004 27
  28. 28. Universidad Autónoma de Occidente (a) Sea p “Su madre es inglesa” y sea q “Su padre es Francés”. Entonces el enunciado dado es ~ ( pν q ). Pero ~ ( pν q ) ≡ ~ p ^ ~ q. Por lo tanto, el enunciado dado es lógicamente equivalente con el enunciado “Su madre no es inglesa y su padre no es francés”. (b) Sea p “El estudia fisica” y q “El estudia matemáticas”. Entonces el enunciado dado es ~ ( p ^ ~ q).pero ~ (p ^ ~ q) ≡ ~ pν ~ ~ q ≡ ~ p ν q. Así que el enunciado dado es lógicamente equivalente al enunciado “El no estudia fisica o estudia matemáticas”. (c) Como ~ (p ^ q) ≡ ~ p ν ~ q, el enunciado dado es lógicamente equivalente al enunciado “Las ventas estan subiendo o los precios estan bajando”. (d) Como ~ (~ p ν q) ≡ p ^ ~ q, el enunciado dado es lógicamente equivalente al enunciado “Esta haciendo frió y no esta lloviendo”.Condicionales y Bicondicionales.2.14 Escriba de nuevo los siguientes enunciados sin usar la condicional. (a) Si hace frió, él se pone sombrero. (b) Si la productividad sube, los sueldos suben. Recuerde que “Si p entonces q” es equivalente con “No p o q”; o sea, p → q ≡ ~ p ν q. (a) No está haciendo frío o él se pone el sombrero. (b) La productividad no sube o los sueldos suben.2.15 (a) Demuestre que “p implica q y q implica p” es lógicamente equivalente con la bicondicional “p si y sólo si q”; o sea, (p → q) ^ ( q → p) ≡ p ↔ q (c) Demuestre que la bicondicional p ↔ q se puede escribir en términos de las tres conectivas originales ν, ^ y ~. (a) p q p↔q p→q q →p (p → q) ^ ( q → p) V V V V V V V F F F V F F V F V F F F F V V V V (c) Ahora p → q ≡ ~ p ν q y q → p ≡ ~ qν p; por lo tanto por (a) p ↔ q ≡ ( p → q) ^ ( q → p)≡ (~ q ν q) ^ (~ q ν p)Informática I. Versión 1.0 Agosto de 2004 28
  29. 29. Universidad Autónoma de OccidenteUNIDAD 3. HERRAMIENTA DE PROGRAMACIÓN.3.1 IntroducciónAunque el concepto de orientado a objetos, se ha asociado al desarrollo de software, realmente, este esuna forma de concebir el mundo, de manejar conceptos y de entender el funcionamiento de sistemas,sin embargo, para el objetivo del presente módulo, se tratará solamente la acepción de orientado aobjetos como paradigma de programación.El paradigma orientado a objetos se asoció durante mucho tiempo con los lenguajes y la programaciónorientada a objetos, sin embargo, en la actualidad, el uso de objetos debería incluir tanto el análisiscomo el diseño orientados a objetos, el uso de bases de datos y en general, la ingeniería de softwareorientada a objetos.Aunque no intencionalmente, la programación orientada a objetos implica un mayor grado de análisis,ya que de alguna forma deben estar definidas las clases, atributos y métodos que se van aimplementar. Por ende, al aumentar el tiempo dedicado al análisis y concepción del software, eltiempo de las otras etapas se reduce.3.2 Origen del paradigma Orientado a ObjetosOrientado a Objetos es un término que empezó a acuñarse a finales de los 80s, cuando laprogramación requería nuevos paradigmas, nuevas formas de interpretarse. Durante los 90s tomó granfuerza, pero indiscutiblemente son las dos últimas décadas las que han empezado a recoger los frutos;en otros países ya la programación orientada a objetos es un hecho y algunos programadores nopodrían pensar en otra forma de desarrollar software.Autores de gran reconocimiento empezaron a trabajar de manera aislada explorando este nuevoparadigma, logrando avances tanto en lenguajes de programación como en técnicas apropiadas deanálisis y diseño. Ejemplo de ello son los métodos propuestos por Grady Booch, Ivar Jacobson oJames Rumbaugh entre otros.3.2.1 Definición de Orientado a ObjetosEl concepto de orientado a objetos está relacionado con otros múltiples conceptos: la programación,las interfaces de usuario y la representación jerárquica de hechos, tienen todos orientación a objetos.Entonces, ¿cómo podría definirse este término?.Una definición bastante general de objeto es: todo aquello que tiene limites definidos. En ese orden,los libros, las sillas, las personas, los animales, las empresas, son todos objetos.Algunas personas afirman que la orientación a objetos es la forma natural de nuestro aprendizaje.Cuando estamos pequeños se nos enseña a distinguir y agrupar objetos acorde a sus características y/ocomportamientos y es por ello que logramos distinguir una silla de un caballo aunque ambos tenganpatas.La programación orientada a objetos es un "estilo" de programación bajo el cual se divide el problemaa solucionar en los objetos que lo componen. Luego se verá que cada objeto de estos contieneatributos y métodos que permiten su interacción y la ejecución de diversas tareas para cumplir elpropósito del programa.Existen muchos lenguajes que permiten realizar la programación orientada a objetos, entre ellos sedestacan Smalltalk, Java, C++, Object Pascal, Eiffel.Informática I. Versión 1.0 Agosto de 2004 29
  30. 30. Universidad Autónoma de Occidente3.3 Breve historia de los estilos de ProgramaciónDesde el principio de la programación se han intentado muchos métodos y procedimientos para lograruna programación fácil y eficiente.El primer enfoque, si se puede llamar así, es la programación no estructurada o "programaciónespagueti", bajo la cual el programador se sienta frente al computador y empieza a escribir líneas decódigo (instrucciones) sin estructura alguna, resultando en un programa largo, difícil de entender yaun más difícil de modificar.El primer enfoque formal que se formalizó fue el enfoque procedural (o procedimental), que sepodría resumir como "Usted decide qué procedimiento quiere, y usa el mejor algoritmo que puedaencontrar". Aunque este enfoque resultaba muy práctico para resolver problemas particulares, no asícuando se quería reutilizar parte del código o emplear ciertas funciones en otros programas. Enresumen, el enfoque procedural no permitía mejorar la productividad de la construcción del softwarepor sus características particulares.Surge entonces un segundo enfoque o paradigma, la programación modular (o funcional). Para estaépoca ya se ha incrementado visiblemente el tamaño de los programas desarrollados, lo cual generaproblemas adicionales de productividad. El enfoque de programación modular es algo como "Decidelos módulos que quieres, de forma que las partes del programa y los datos queden ocultos tras losmódulos". La intención primordial de este enfoque es dividir el problema (programa necesario) enpartes independientes pero relacionadas, que se puedan solucionar de manera separada.La programación modular propicia la reutilización de código, ya que existen partes (módulos) quepodrían ser empleadas en otros programas, siempre que se requiera la misma utilidad. Esta idea,aunque en apariencia buena, no surtió mucho efecto ya que los programadores normalmente sepreocupaban por el código pero no por los datos y, normalmente, los módulos requerían de datos queestaban fuera de ellos.En un intento por mejorar la concepción modular surgen los llamados tipos abstractos de datos oTADs, los cuales intentan agrupar, en la misma estructura, los datos necesarios y las operacionesrequeridas para su manejo.Sigiuendo el concepto de TADs pronto se encontró otro mecanismo para lograr que se crearanunidades independientes, que permitieran la reutilización de código, y la programación porcomponentes; ahora se podría "armar" un programa, tal como se arma un computador o una nevera,bastaría conseguir las piezas adecuadas y establecer los enlaces necesarios. A este novedoso enfoquese le conoce como programación orientada a objetos.La programación orientada a objetos presenta múltiples ventajas. Empecemos por decir que losprogramas ahora estarán compuestos por objetos. Cada objeto, a su vez, está compuesto por los datoso características que lo distinguen y los métodos o procedimientos necesarios para su manipulación.3.4 Definiciones de clases y objetosTodos los estilos o enfoques de programación se encuentran basados en un marco referente, de lamisma forma todas las técnicas orientadas a objetos se basan en un marco, que Grady Booch hallamado el Modelo de Objetos.3.4.1 El Modelo de ObjetosEl modelo de Objetos, según Booch, se compone de cuatro elementos esenciales, sin los cualesperdería la propiedad de orientación a objetos. Estos son:• AbstracciónInformática I. Versión 1.0 Agosto de 2004 30
  31. 31. Universidad Autónoma de Occidente• Encapsulamiento• Modularidad• JerarquíaIgualmente incluye otros elementos que, sin ser esenciales, resultan bastante útiles dentro de esteestilo de programación:• Tipos• ConcurrenciaLa adecuada comprensión de estos conceptos no es ni exclusiva ni elemental para programarorientado a objetos. Sin embargo, si no se toman en cuenta estos elementos, la programación orientadaa objetos dejaría de emplear todo el poder que otorgan los objetos.3.4.1.1 AbstracciónEl primer concepto fundamental del paradigma orientado a objetos es la abstracción. Una definiciónbastante apropiada del término abstracción es la dictada por Booch:"Una abstracción denota las características esenciales de un objeto, que lo distingue de todas lasotras clases de objetos y lo provee de conceptos definidos, relativos a la perspectiva del usuario".Dos cosas importantes deben resaltarse aquí. La primera es que lo que aprendemos, realmente sonabstracciones de la realidad: la idea que tenemos de una mesa, por ejemplo, releva las característicasbásicas de ésta, permitiéndonos diferenciarla de una silla o de un sofá aunque puedan ser parecidos.La segunda idea importante, es que las abstracciones dependen de la perspectiva del usuario:diferentes personas tienen diferentes abstracciones de los objetos, dependiendo de su experiencia einterés particular.Actividad #1: Describa las abstracciones que usted posee de computador, mesa, cama, gato.3.4.1.2 EncapsulamientoUna característica esencial de los objetos es el encapsulamiento, por la cual, cada objeto mantieneoculto su interior. Al tratar un objeto como una “caja negra”, los otros objetos que interactúan con élno requieren conocimiento alguno sobre la forma como opera internamente, requiriendo sólo elconocimiento de los parámetros necesarios para dicha interacción.Si los objetos no mantienen el encapsulamiento, se estaría violando uno de los principios básicos de laorientación a objetos.La definición original de Booch plantea: "Encapsulamiento es el proceso de compartimentalizar loselementos de una abstracción, que constituyen su estructura y comportamiento”.Una ventaja adicional del encapsulamiento se refiere a que el interior de los objetos puede cambiarse(mejorarse) sin que se requieran cambios en la interfaz que éstos mantienen con otros objetos.Actividad #2: Enumere 10 elementos que usted emplea normalmente sin conocer realmente cómorealizan su funcionamiento, pues ellos están encapsulados.3.4.1.3 ModularidadLa modularidad es un concepto muy antiguo. Aunque es válido para la orientación a objetos no esexclusivo de ésta. Meyers mencionó la ventaja de la modularidad como: "La acción de partir unprograma en componentes individuales puede reducir su complejidad en algún grado.... aunque laInformática I. Versión 1.0 Agosto de 2004 31
  32. 32. Universidad Autónoma de Occidentepartición de un programa es útil por esto, una justificación más poderosa para partir un programa esque él sea un número de límites bien definidos y documentados. Estos límites o interfaces soninvaluables en la comprensión del programa".La modularidad es básicamente la división en partes de un programa de software (para nuestro caso),considerando que estos módulos deben mantener la cohesión y el acoplamiento adecuado.Actividad #3: Normalmente las cosas que nosotros empleamos se encuentran compuestas de partes(al menos eso dice la Teoría General de Sistemas). Intenta determinar las partes que componen: unabicicleta, un computador, una casa.3.4.1.4 JerarquíaLa jerarquía se puede entender como la clasificación u ordenamiento de las abstracciones, estopermite asociar unos objetos con otros.Existen dos clases básicas de jerarquías (o clasificaciones), la que corresponde a es parte de, llamadatambién jerarquía de partes. Por ejemplo, el manubrio es parte de la bicicleta, o la RAM es parte delcomputador. La otra jerarquía es la que corresponde a es un, llamada también jerarquía de tipos. Porejemplo, La vaca es un mamífero, la silla es un mueble.Actividad #4: Intente establecer la jerarquía entre estos elementos:Impresora, Bandeja, Epson Stylus, Cartucho, Impresora de Burbuja, Impresora Laser, Toner, Panel deMando, Conector, HP LaserJet.Motor, Puerta, Mazda 323, Daewo Lanus, Automóvil, Llantas, Bujías, Tanque de Gasolina.3.4.1.5 TiposLos tipos son la representación de las jerarquías de tipos. Cuando varios elementos se agrupan deacuerdo a ciertas características específicas que ellos guardan en común, se dice que corresponden aun mismo tipo.Los tipos, definidos por Booch, son "la parte fundamental de la clase de un objeto, de forma que losobjetos de tipos diferentes no pueden ser intercambiados, o a lo más pueden ser intercambiados sóloen forma muy restringida".Actividad #5: Es normal que cada cosa que conocemos la caractericemos como perteneciente a untipo particular. En qué tipo caracterizaría usted los siguientes objetos: casa, computador, vaca, perro,silla, cuaderno, libro, universidad.3.4.1.6 ConcurrenciaNormalmente los objetos deben realizar tareas simultáneas, sin que unas afecten a otras. A estosrequerimientos de ejecución de varias tareas se les conoce como concurrencia.Booch la define como "La propiedad que distingue un objeto activo de uno que no está activo",entendiendo un objeto activo como una abstracción del mundo real que puede representar un hilo decontrol separado (una ruta diferente de ejecución).Actividad #6: Muchos de los sistemas (computacionales o no) que encontramos en la vida diariapueden realizar procesos concurrentes (varias cosas al tiempo), intente clasificar los siguientessistemas como concurrentes o no: un computador con windows, un computador con linux, unapersona, un cajero electrónico, una máquina de hacer café, un microondas.Informática I. Versión 1.0 Agosto de 2004 32
  33. 33. Universidad Autónoma de Occidente3.4.2 Definiciones de Orientación a ObjetosCuando nos referimos específicamente a la programación orientada a objetos, se emplean losconceptos vistos a través de términos que hacen referencia al programa y las partes con las que seestablece.3.4.2.1 Clases y ObjetosEl concepto de objetos es para muchos la forma "normal" de asociar las cosas de la vida con nombres.Cuando iniciamos nuestra educación, empleamos procesos difíciles de asociación de características ymodelos a nombres determinados.Una clase es un concepto que incluye características o atributos (datos), y procedimientos de unaentidad del mundo real. Ejemplos de clases son: Mueble, Auto, Medio de Transporte, Edificación, etc.De otra parte, se entiende que las clases son generalizaciones de los objetos, o lo que es lo mismo, losobjetos son instancias de clase. Ejemplos de objetos son: La silla del rector, el carro de Pedro, Elasiento rojo, etc.Los objetos poseen ciertas características que los hacen particulares. Tales características son:• Tiene un estado (atributos o características)• Tiene un comportamiento (métodos asociados)• Tiene una identidad (ocupa un lugar en memoria)• Tiene un ciclo de vida• Tiene una visibilidad• Se relaciona y colabora con otros objetos3.4.2.2 AtributosLos atributos de una clase (y por ende, de un objetos) son las características relevantes de esta. Comose puede suponer, los atributos de la clase se determinan de acuerdo al problema o situación que sedesea tratar; es decir, dependen de la abstracción que se haga del objeto.Por ser los objetos instancias de las clases, contienen todos los atributos de éstas.Por ejemplo:• La clase silla: tiene como atributos la clase, el número de patas, el tipo de tapizado, el estilo, el material, la fecha en que fue fabricada.• La clase carro: tiene como atributos el número de puertas, la marca, el modelo, el precio.3.4.2.3 Operaciones, métodos y serviciosLas clases, además de atributos, contienen los procedimientos que pueden manipular o procesar estosdatos. A estos procedimientos se les conoce como operaciones, métodos o servicios.Estos métodos exhiben el comportamiento posible del objeto. Este comportamiento ocasionará que elobjeto mismo cambie de un estado a otro.Por ejemplo:• La clase auto: tiene como métodos o servicios, arrancar, parar, frenar, aumentar velocidad, disminuir velocidad.• La clase computador: tiene como métodos o servicios, encender, iniciar, arrancar programa.Informática I. Versión 1.0 Agosto de 2004 33
  34. 34. Universidad Autónoma de Occidente3.4.2.4 IdentidadLos objetos deben ser creados y durante su creación deben recibir un nombre y una asignación deespacio en memoria. En este sentido, los objetos, a diferencia de las clases, existen dentro delcomputador por un tiempo que determinará el programador.3.4.2.5 Ciclo de VidaComo se dijo anteriormente, los objetos cambian de estado dependiendo del comportamiento quedesarrollen. A todos estos cambios de estado por los que pasa (o puede pasar) un objeto desde que escreado hasta que muere, se le denomina ciclo de vida.Actividad #7: Establezca atributos y métodos para cada uno de los conceptos mencionados acontinuación, y especifique si son clases u objetos. Si es un objeto, indique a qué clase pertenecería:árbol, manzana, casa, Corporación Universitaria Autónoma de Occidente, Secretaría de Gobierno,Amigo, Estudiante, Perro, Ferrari.3.4.2.6 Relaciones con otros objetosLos objetos han sido determinados como partes de la solución de un problema y ello implica quetengan que relacionarse para cumplir su cometido. Las relaciones entre los objetos pueden ser demuchas clases:MensajesLos mensajes activan las operaciones y métodos de cada objeto. Un objeto envía a otro un mensaje, enel cual se indica el destino, la operación requerida y los parámetros que debe incluir.Los mensajes son el corazón del comportamiento del sistema, ya que le indica a los objetoscomunicarse entre ellos para ejecutar sus operaciones.Normalmente la clase de relaciones que se establecen a través de los mensajes se les denominarelaciones de uso, ya que un objeto usa a otro.HerenciaLas clases pueden heredar de otras clases sus atributos y métodos. La herencia responde a la necesidadde hacer clases nuevas que contienen características similares (o iguales) a las de otra clase yaexistente.Parte (mucho) del arte de programar orientado a objetos es determinar la mejor forma de estructurar elprograma “economizando” clases. Conviene aclarar que al emplear herencia, se reduce el número delíneas a implementar.Algunos lenguajes como Java resultan ser muy estrictos en términos de herencia, ya que todas lasclases deben heredar de alguna. por lo anterior, JAVA tiene una "superclase" llamada Object, de lacual se derivan todas las restantes.Cuando una clase hereda de otra, puede variar los atributos y métodos que ha heredado, logrando supropia identidad respecto a la clase de la cual se originó.Algunos Lenguajes Orientados a Objetos, permiten que una clase hereda de dos o más, lo cual seconoce como herencia múltiple.Del concepto de herencia, se deriva el concepto de jerarquía de clases, que presenta esquemáticamentela herencia entre las clases.Informática I. Versión 1.0 Agosto de 2004 34
  35. 35. Universidad Autónoma de OccidenteAgregaciónCuando un objeto o clase se encuentra compuesta por otros, se dice que existe una relación deagregación entre ellos.Actividad #8: Indique que clase de relación existe entre cada conjunto de elementos (considerandoque todos son objetos y que guardan alguna relación).Procesador, memoria, unidad de disco, diskette, computador, usuario.Casa, sala, Edificación, Biblioteca pública, sillas, mesas, mesa de comedor.PolimorfismoEl Polimorfismo es una característica propia de los objetos, que permite que operaciones diferentesposean el mismo nombreSobrecargaLa sobrecarga es una clase de polimorfismo, en la cual los métodos se diferencian básicamente por laclase de parámetros que reciben. Al recibir el mensaje el objeto, mediante los parámetros identificaautomáticamente la operación que se desea ejecutar; esto se conoce como sobrecarga de métodos. Porejemplo: imprimir(factura), imprimir(reporte), imprimir(paz y salvo); aunque la función (método) esla misma, dependiendo el tipo de argumento que recibe se realizarán diferentes labores.Algunos lenguajes, como C++, permiten además lo que se llama sobrecarga de operadores (operatoroverloading) gracias a la cual se pueden redefinir los operadores aritméticos básicos ( +, - , * , / ). Porejemplo: 3 + 5 sumará enteros, mientras "Hola" + " amigos", concatenará cadenas.SobreescrituraLa sobreescritura corresponde a la otra clase de polimorfismo, llamado también polimorfismo degeneralización. En éste, los métodos heredados de una superclase pueden ser sobrescritos paraelaborar funciones diferentes. Sin embargo, NO se puede variar la signatura (ó firma) del método; esdecir; NO se puede cambiar el nombre, el tipo de los parámetros, el número de parámetros que recibey el tipo de dato que devuelve.Informática I. Versión 1.0 Agosto de 2004 35
  36. 36. Universidad Autónoma de Occidente Ejercicios1. Indique si cada uno de los enunciado presentados a continuación es verdadero o falso y justifique su respuesta: a. Al programar orientado a objetos, lo que se definen son clases. b. Debido al encapsulamiento, los métodos de un objeto no pueden ser usados por otro. c. La programación orientada a objetos facilita la reutilización de código. d. La relación de herencia indica que un objeto es parte de otro. e. Un objeto sólo puede pertenecer a una clase. f. El polimorfismo permite que varios métodos tengan igual nombre. g. La programación “espagueti” se puede considerar modular. h. La programación procedural admite la herencia. i. Los métodos de una clase se implementan siguiendo las directrices de la programación estructurada j. La herencia especifica que una clase posee los mismos métodos y atributos de la clase de la cual hereda. k. Auto es una instanciación de Medio de Transporte. l. Pedro es un objeto de la clase Persona. m. Pedro es una clase. n. Atributos de auto son rojo, grande y mazda. o. Métodos de Teléfono son establecer comunicación y timbrar. p. Manzano hereda de Árbol. q. Manzana hereda de Manzano. r. Tablero es parte de Profesor. s. Otoño es una clase de Estación. t. Windows hereda de Sistemas Operativos.2. Complete las siguientes frases con la palabra adecuada a. La sobrecarga es la implementación de _____________________________________. b. Un objeto es una _________________de una clase. c. La programación __________________________________se basa en partes, cada una con características y funciones específicas. d. Cuando una clase redefine un método con la misma signatura que tenía en la clase de la cual heredó se denomina __________________. e. La herencia puede ser _________________________o múltiple. f. Las características esenciales que distinguen a un objeto se conocen como ____________________del objeto. g. La primera técnica formal de programación conocida fue la programación _______________________________________. h. Si un sistema puede realizar varias tareas al tiempo, se dice que tiene procesamiento ________________. i. Los __________ son estructuras de datos que dieron origen a los objetos. j. Memoria ___________________ de Computador. k. IBM NetVista es ____________________ de Computador. l. Fuente de Poder es ______________ de Computador. m. Maria Isabel ____________ de clase Estudiante n. La clase persona usa la clase _________________ o. La clase perro _______________ la clase animal. p. Matemáticas es un objeto de la clase _________________. q. _____________ es un objeto de clase pescado. r. Arroz con pollo ______________ comida.Informática I. Versión 1.0 Agosto de 2004 36

×