conceptos computacion

13
 Taller No 0.Conceptos generales Daniel Marino Vásquez Martínez. Programación 1. Universidad Tecnológica de Pereira Facultad de Ingeniería de Sistemas y Computación Jornada Especial 2015

Upload: daniel-vasquez-martinez

Post on 07-Oct-2015

13 views

Category:

Documents


1 download

DESCRIPTION

conceptos

TRANSCRIPT

  • Taller No 0.Conceptos generales

    Daniel Marino Vsquez Martnez.

    Programacin 1.

    Universidad Tecnolgica de Pereira

    Facultad de Ingeniera de Sistemas y Computacin Jornada Especial

    2015

  • 1. Cules son las principales partes fsicas (hardware) de la computadora?

    Monitor.

    Torre.

    Mouse.

    Teclado.

    Parlantes.

    2. Como se puede clasificar el software y que es un programa de computadora?

    El software se clasifica en dos partes:

    La primera parte es software de sistemas: son aquellos programas que permiten la

    administracin de la parte fsica o los recursos de la computadora, es la que interacta

    entre el usuario y los componentes de hardware del ordenador.

    La segunda partes es el software de aplicacin: son aquellos programas que nos

    ayudan a tareas especficas como edicin de textos, imgenes, clculos, etc. Tambin

    conocidos como aplicaciones.

    Programa de computadora: son un conjunto de instrucciones en forma secuencial, llamado

    cdigo, que a travs de su interpretacin por el sistema operativo o hardware, le permiten

    desarrollar una accin especfica a una computadora.

    http://www.masadelante.com/faqs/software-hardware

    3. Que es un paradigma de programacin. Diga que paradigmas de programacin

    existen y en qu consisten?

    Un paradigma de programacin: es una propuesta tecnolgica que es adoptada por

    una comunidad de programadores cuyo nucleo central es incuestionable en cuanto a

    que nicamente trata de resolver uno o varios problemas claramente delimitados.

    Paradigma Imperativo: describe la programacin como una secuencia instrucciones

    comandos que cambian el estado de un programa. El cdigo mquina en general est

    basado en el paradigma imperativo. Su contrario es el paradigma declarativo. En este

    paradigma se incluye el paradigma procedimental (procedural) entre otros.

    Paradigma Declarativo: No se basa en el cmo se hace algo (cmo se logra un

    objetivo paso a paso), sino que describe (declara) cmo es algo. En otras palabras, se

    enfoca en describir las propiedades de la solucin buscada, dejando indeterminado el

    algoritmo (conjunto de instrucciones) usado para encontrar esa solucin. Es ms

    complicado de implementar que el paradigma imperativo, tiene desventajas en la

    eficiencia, pero ventajas en la solucin de determinados problemas.

    Paradigma Estructurado: la programacin se divide en bloques (procedimientos y

    funciones) que pueden o no comunicarse entre s. Adems la programacin se

    controla con secuencia, seleccin e iteracin. Permite reutilizar cdigo programado y

    otorga una mejor compresin de la programacin. Es contrario al paradigma

    inestructurado, de poco uso, que no tiene ninguna estructura, es simplemente un

    bloque, como por ejemplo, los archivos batch (.bat).

  • Paradigma Orientado a Objetos: est basado en la idea de encapsular estado y

    operaciones en objetos. En general, la programacin se resuelve comunicando dichos

    objetos a travs de mensajes (programacin orientada a mensajes). Se puede incluir -

    aunque no formalmente- dentro de este paradigma, el paradigma basado en objetos,

    que adems posee herencia y subtipos entre objetos. Ej.: Simula, Smalltalk, C++,

    Java, Visual Basic .NET, etc. Su principal ventaja es la reutilizacin de cdigos y su

    facilidad para pensar

    Soluciones a determinados problemas.

    Paradigma Funcional: este paradigma concibe a la computacin como la evaluacin

    de funciones matemticas y evita declarar y cambiar datos. En otras palabras, hace

    hincapi en la aplicacin de las funciones y composicin entre ellas, ms que en los

    cambios estados y la ejecucin secuencial de comandos (como lo hace el paradigma

    procedimental). Permite resolver ciertos problemas de forma elegante y los lenguajes

    puramente funcionales evitan los efectos secundarios comunes en otro tipo de

    programaciones.

    Paradigma lgico: se basa en la definicin de reglas lgicas para luego, a travs de

    un motor de inferencias lgicas, responder preguntas planteadas al sistema y as

    resolver los problemas.

    https://docs.google.com/document/d/...HhkKC50v8jp3AI3TGc/edit?hl

    4. Describa una breve historia de la programacin.

    En sus inicios las computadoras interpretaban slo instrucciones en un lenguaje

    especfico, del ms bajo nivel, conocido como cdigo mquina, siendo ste

    excesivamente complicado para programar. De hecho slo consiste en cadenas de

    nmeros 1 y 0 (sistema binario). Para facilitar el trabajo de programacin, los primeros

    cientficos que trabajaban en el rea decidieron reemplazar las instrucciones,

    secuencias de unos y ceros, por palabras o letras provenientes del ingls; las

    codificaron y crearon as un lenguaje de mayor nivel, que se conoce como Assembly

    olenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra

    inglesa add (sumar). En realidad escribir en lenguaje ensamblador es bsicamente lo

    mismo que hacerlo en lenguaje mquina, pero las letras y palabras son bastante ms

    fciles de recordar y entender que secuencias de nmeros binarios. A medida que la

    complejidad de las tareas que realizaban las computadoras aumentaba, se hizo

    necesario disponer de un mtodo sencillo para programar. Entonces, se crearon

    los lenguajes de alto nivel. Mientras que una tarea tan trivial como multiplicar dos

    nmeros puede necesitar un conjunto de instrucciones en lenguaje ensamblador, en

    un lenguaje de alto nivel bastar con solo una. Una vez que se termina de escribir un

    programa, sea en ensamblador o en un lenguaje de alto nivel, es

    necesario compilarlo, es decir, traducirlo a lenguaje mquina.

    http://es.wikipedia.org/wiki/Programaci%C3%B3n

  • 5. Que es un lenguaje de programacin?. Nombre 10 lenguajes de programacin e

    indique en que paradigmas y tipos de aplicaciones se utilizan.

    Un lenguaje de programacin es un lenguaje artificial que puede ser usado para

    controlar el comportamiento de una mquina, especialmente una computadora. Estos

    se componen de un conjunto de reglas sintcticas y semnticas que permiten

    expresar instrucciones que luego sern interpretadas.

    ADA

    Es un lenguaje estructurado parecido al Pascal destinado a controlar mecanismos en

    "tiempo real (o sea una velocidad compatible con las necesidades reales), pero de gran

    complejidad. Admite una programacin "orientada a objetos" y un sistema de alta

    modularidad de tipo HyperTexto. Fue elaborado a pedido del departamento de defensa de

    los Estados Unidos y establecido como norma para todos los fabricantes que participaban

    en el programa de la Iniciativa de Defensa Estratgica (IDE,tambien llamado "Guerra de las

    Galaxias".

    ASSEMBLER (ENSAMBLADOR)

    Como sealado a propsito del "Primer Nivel" de los lenguajes, el Assembler es

    directamente dependiente de los circuitos electrnicos de los procesadores (que

    constituyen el ncleo de los computadores), por lo cual escribir en Ensamblador sigue

    siendo una tarea muy compleja, a lo cual hay que sumar que el cdigo varia de un

    procesador a otro aunque existe ya una jerga comn para ciertas operaciones como las

    aritmticas y lgicas, por ejemplo:

    ALGOL

    El ALGOL ("ALGOrithmic Lenguage" es el primer lenguaje que fue creado por un comit

    internacional. En 1960 se reunieron representantes de varios pases Europeos y de

    Estados Unidos para crear un lenguaje destinado a "describir procesos" mediante

    instrucciones de control (iteraciones y alteraciones) de nivel ms elevado que la existentes

    en las versiones existentes de su predecesor, el FORTRAN.

    BASIC

    El BASIC ("Beginner's All-purpose Simbolic Instruction Code" naci con los

    microcomputadores, como un lenguaje simplificado y multipropsito destinado a los

    usuarios no-especialistas. Permite resolver problemas numricos o comerciales as como

    crear y mantener archivos, realizar grficos lineales, etc. Es por esencia un lenguaje

    interpretado y no-estructurado.

    C y C++

    El lenguaje "C" es bastante reciente y est especialmente orientado hacia el desarrollo de

    software de sistemas operativos y utilitarios que anteriormente se escriban en Assembler.

    Se usa hoy como base para crear el software que funciona con el sistema operativo

    "UNIX", logrando un alto grado de portabilidad, es decir de independencia respecto de los

    procesadores (con lo cual es fcil lograr que un mismo programa pueda ser ejecutado en

    diferentes modelos de computadores). El "C++" es un lenguaje desarrollado a partir del "C"

    pero con una estructura "orientada a objetos", lo cual facilita el mejor manejo d los datos.

  • COBOL

    El COBOL ("COmmon Business-Oriented Language" es uno de los primeros lenguajes de

    programacin creados. Fue desarrollado en 1960 por CODASYL (Conference on Data

    Systems Languages", un comit en que participaron fabricantes y usuarios, a pedido de la

    Marina de los Estados Unidos. Este comit estuvo dirigido por la Dra. Grace Hopper, una

    de las primeras programadoras de la computadora ENIAC. Es uno de los pocos lenguajes

    reconocidos como forma internacional (americana por el ANSI -American Nacional

    Standars Institute- y europea por el ISO -Internacional Organization for Standardization-).

    FORTRAN

    El FORTRAN ("FORmula TRANslator" fue desarrollado entre los aos 1954 y 1957 por un

    equipo dirigido por James Backus, fue el primer lenguaje compilado e inclusive hoy en da

    es usado ampliamente en la solucion de problemas numricos. Aunque fue el ms comn

    hasta 1970, sigue siendo de primera importancia en aplicaciones cientficas por cuanto se

    adapta muy bien a la forma tradicional de escribir formulas matemticas. Al contrario, no se

    presta con facilidad al manejo de archivos y produccin de tablas de resultados.

    HYPERTALK

    "HyperTalk" es el lenguaje desarrollado por Dan Winkler pra Bill Atkinson, el creador de

    "HyperCard" para AppleMacintosh. Est orientado a la creacin de aplicaciones conforme

    al sistema de "hiperarchivos" (sistemas de fichas interrelacionadas donde se facilita el

    "navegar" de un archivo a otro).

    HyperTalk es un buen ejemplo de lenguaje orientado a objetos. Este tipo de lenguaje

    combina la lgica declarativa con los algoritmos. Un programa ya no es una secuencia de

    instrucciones sino un conjunto de objetos agrupados en conjuntos, definidos mediante

    atributos y a los cuales pueden asociarse instrucciones.

    HTML

    El HTML o "HyperText Marking Language" es el lenguaje que se utiliza para crear pginas

    -como la presente- en World Wide Web.

    El HTML se basa en los mismos principios que el HyperTalk, permitiendo definir segmentos

    (de texto o ilustraciones) que remiten a otros, facilitando una "navegacin" por mltiples

    vas, a gusto del usuario. As es como el botn "Home" tiene asociadas las instrucciones

    que indican al procesador que busque la primera ficha o pgina del archivo llamado

    "Home" o "index" en el archivo del computador que presta el servicio de conexin

    (servidor). Y si se hace un clic en una palabra subrayada, se pasa a ver otra seccin del

    mismo documento o algn otro documento (otro "objeto".

    JAVA

    JAVA es un lenguaje de programacin basado en el C++ (con cambios en la sintaxis y

    nuevas restricciones de codificacin). Permite agregar animaciones y puntos sensibles en

    pginas de texto. Aunque se lo pretende presentar como "EL" lenguaje destinado a

    desarrollos para World Wide Web, es mucho ms complejo que el HTML e incluso que

    otros lenguajes utilizables por los browsers (navegadores) de la Web.

    Una versin muy reducida es el "JavaScript", que se puede combinar con el lenguaje

    HTML, dentro de una pgina web.

    http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n

  • 6. Que es el cdigo binario y su relacin con la computadora?

    Cuando se trabaja en una computadora, los datos son convertidos en nmeros dgitos que, a su vez, son representados como pulsaciones o pulsos electrnicos.

    En la actualidad para comunicarnos, expresarnos y guardar nuestra informacin, usamos el

    sistema de numeracin decimal y el alfabeto, segn se trate de valores numricos o de

    texto. Una computadora como funciona con electricidad, reconoce dos clases de mensajes:

    cuando hay corriente elctrica el mensaje es s y cuando no hay corriente, el mensaje es

    no. Para representar un valor dentro de una computadora se usa el sistema de numeracin

    binario, que utiliza slo dos dgitos: el cero (0) y el uno (1).

    La computadora utiliza un conjunto de ocho (8) dgitos binarios (0 y 1) para representar un

    carcter, sea nmero o letra. Cada conjunto de 8 dgitos binarios se denomina byte y cada

    uno de los ocho dgitos del byte se llama bit, como contraccin de su nombre en ingls

    Binary Digit. (formulado por Claude Elwood Shanon en 1948, que significa dgito binario).

    El bit es la unidad de medida de informacin mnima por excelencia. Un bit puede brindar

    slo dos clases de informacin: prendido apagado, si no, uno cero. Digitalizar

    consiste en traducir toda la realidad a unos y ceros. La transicin digital se produce en

    tanto todos los aspectos de la realidad se convierten en un conjunto de bits, de manera que

    puedan ser preservados, manipulados y distribuidos a travs de una herramienta comn: la

    computadora.

    Una vez convertidos en bits, la informacin puede ser procesada y manipulada con gran

    rapidez por las computadoras, puede reproducirse infinitamente sin prdidas de calidad

    respecto del original y puede ser transportada y distribuida a la velocidad de la luz. En el Sistema Binario slo se emplean dos dgitos, con dos posibles valores 0 1, equivalente a encendido apagado, si no, etc. En la siguiente tabla se muestra la comparacin entre sistema binario y decimal: binario decimal binario decimal binario decimal

    binario decimal binario decimal binario decimal

    0 0 101 5 1010 10

    1 1 110 6 1011 11

    10 2 111 7 1100 12

    11 3 1000 8 1101 13

    100 4 1001 9 1110 14

    Patricia Dip - http://latecnologiavirtual.blogspot.com/2010/05/sistema-binario.html

  • 7. Que es el lgebra booleana y las tablas de valor?

    lgebra booleana.

    Un sistema de elementos B y dos operaciones binarias cerradas () y (+) se denomina

    ALGEBRA de BOOLE siempre y cuando se cumplan las siguientes propiedades:

    1. Propiedad conmutativa: A + B = B + A A B = B A

    2. Propiedad distributiva: A(B+C) = AB + AC A + BC = (A+B)(A+C)

    3. Elementos neutros diferentes A + 0 = A A 1 = A

    4. Siempre existe el complemento de A, denominado A A + A = 1 A A = 0

    Tablas de verdad

    Son un medio para describir la manera en que la salida de un circuito lgico depende de

    los niveles lgicos que haya en la entrada del circuito.

    En una tabla se muestra que ocurre al estado de salida con cualquier grupo de condiciones

    de entrada, los verdaderos valores de salida dependern del tipo de circuito lgico.

    El nmero de combinaciones de entrada ser igual a 2 para una tabla de verdad con "n"

    entradas.

    Dos de los teoremas ms importantes del lgebra booleana fueron enunciados por el

    matemtico De Morgan. Los Teoremas de De Morgan son de gran utilidad en la

    simplificacin de expresiones en las cuales se invierte un producto o suma de variables.

    Los dos teoremas son:

    http://www.uhu.es/rafael.lopezahumada/Cursos_anteriores/fund01_02/tema3.pdf -

    http://www.monografias.com/trabajos14/algebraboleana/algebraboleana.shtml

    8. Que son las compuertas lgicas y para qu sirven? Nombre las bsicas.

    Compuertas Logicas.

    Las computadoras digitales utilizan el sistema de nmeros binarios, que tiene dos dgitos 0 y 1. Un dgito binario se denomina un bit. La informacin est representada en las computadoras digitales en grupos de bits. Utilizando diversas tcnicas de codificacin los grupos de bits pueden hacerse que representen no solamente nmeros binarios sino tambin otros smbolos discretos cualesquiera, tales como dgitos decimales o letras de alfabeto. Utilizando arreglos binarios y diversas tcnicas de codificacin, los dgitos binarios o grupos de bits pueden utilizarse para desarrollar conjuntos completos de instrucciones para realizar diversos tipos de clculos.

  • La informacin binaria se representa en un sistema digital por cantidades fsicas denominadas seales, Las seales elctricas tales como voltajes existen a travs del sistema digital en cualquiera de dos valores reconocibles y representan una variable binaria igual a 1 o 0. Por ejemplo, un sistema digital particular puede emplear una seal de 3 volts para representar el binario "1" y 0.5 volts para el binario "0". La siguiente ilustracin muestra un ejemplo de una seal binaria.

    Como se muestra en la figura, cada valor binario tiene una desviacin aceptable del valor nominal. La regin intermedia entre las dos regiones permitidas se cruza solamente durante la transicin de estado. Los terminales de entrada de un circuito digital aceptan seales binarias dentro de las tolerancias permitidas y los circuitos responden en los terminales de salida con seales binarias que caen dentro de las tolerancias permitidas.

    La lgica binaria tiene que ver con variables binarias y con operaciones que toman un sentido lgico. La manipulacin de informacin binaria se hace por circuitos lgicos que se denominan Compuertas.

    Las compuertas son bloques del hardware que producen seales en binario 1 0 cuando se satisfacen los requisitos de entrada lgica. Las diversas compuertas lgicas se encuentran comnmente en sistemas de computadoras digitales. Cada compuerta tiene un smbolo grfico diferente y su operacin puede describirse por medio de una funcin algebraica. Las relaciones entrada - salida de las variables binarias para cada compuerta pueden representarse en forma tabular en una tabla de verdad.

    Compuerta AND:

    Cada compuerta tiene dos variables de entrada designadas por A y B y una salida binaria designada por x. La compuerta AND produce la multiplicacin lgica AND: esto es: la salida es 1 si la entrada A y la entrada B estn ambas en el binario 1: de otra manera, la salida es 0. Estas condiciones tambin son especificadas en la tabla de verdad para la compuerta AND. La tabla muestra que la salida x es 1 solamente cuando ambas entradas A y B estn en 1. El smbolo de operacin algebraico de la funcin AND es el mismo que el smbolo de la multiplicacin de la aritmtica ordinaria (*). Las compuertas AND pueden tener ms de dos entradas y por definicin, la salida es 1 si todas las entradas son 1.

  • http://www.profesormolina.com.ar/electronica/componentes/int/comp_log.htm

    Compuerta OR:

    La compuerta OR produce la funcin sumadora, esto es, la salida es 1 si la entrada A o la entrada B o ambas entradas son 1; de otra manera, la salida es 0. El smbolo algebraico de la funcin OR (+), es igual a la operacin de aritmtica de suma. Las compuertas OR pueden tener ms de dos entradas y por definicin la salida es 1 si cualquier entrada es 1.

    Compuerta NOT:

    El circuito NOT es un inversor que invierte el nivel lgico de una seal binaria. Produce el NOT, o funcin complementaria. El smbolo algebraico utilizado para el complemento es una barra sobra el smbolo de la variable binaria. Si la variable binaria posee un valor 0, la compuerta NOT cambia su estado al valor 1 y viceversa. El crculo pequeo en la salida de un smbolo grfico de un inversor designa un inversor lgico. Es decir cambia los valores binarios 1 a 0 y viceversa.

    Compuerta Separador (yes):

    Un smbolo tringulo por s mismo designa un circuito separador, el cual no produce ninguna funcin lgica particular puesto que el valor binario de la salida es el mismo de la entrada. Este circuito se utiliza simplemente para amplificacin de la seal. Por ejemplo, un separador que utiliza 5 volt para el binario 1, producir una salida de 5 volt cuando la entrada es 5 volt. Sin embargo, la corriente producida a la salida es muy superior a la corriente suministrada a la entrada de la misma. De sta manera, un separador puede excitar muchas otras compuertas que requieren una cantidad mayor de corriente que de otra manera no se encontrara en la pequea cantidad de corriente aplicada a la entrada del separador.

    Compuerta NAND:

    Es el complemento de la funcin AND, como se indica por el smbolo grfico, que consiste en una compuerta AND seguida por un pequeo crculo (quiere decir que invierte la seal). La designacin NAND se deriva de la abreviacin NOT - AND. Una designacin ms adecuada habra sido AND invertido puesto que es la funcin AND la que se ha invertido. Las compuertas NAND pueden tener ms de dos entradas, y la salida es siempre el complemento de la funcin AND.

  • 9. Que tipos de datos simples se usan en los programas computacionales?

    Datos De Tipo Numrico

    Tipo entero: Un tipo entero es la representacin del conjunto de los nmeros enteros. Su

    rango es un subconjunto de los nmeros enteros. La representacion es posible para un

    subrango de magnitudes de enteros centrado en el origen: nmeros entre 2^(n-1)-1 y -

    2^(n-1), siendo n el numero de bits usados para la representacin.

    Sus operadores son: +, -, *, /, div,mod, abs, sqr, ln, exp, sin, cos, tan, ^.

    Tipo real: Un tipo real es la representacin del conjunto de los nmeros reales. Su rango

    es un subconjunto de R.

    Sus operadores son los mismos que los enteros y, adems, trunc, round, ent.

    Relacionales: =,, =.

    Datos De Tipo Carcter

    Su rango es un conjunto finito y ordenado de caracteres. El tipo carcter contiene un solo

    carcter. Los caracteres que reconocen los computadores no son estndar, pero la

    mayora reconoce:

    cdigo ASCII de 0 a 127.

    *Alfanumericos (A,...,Z)

    *Numericos (0,...,9)

    *Especiales (+,-,*,/,,...,&)

    *Operadores: ord,chr...

    Datos de tipo lgico

    Su rango puede tomar dos valores, verdadero o falso * operadores: Son los clsicos de la lgica. AND, OR, NOT, XOR, NAND.

    Datos de tipo enumerado

    Se definen explcitamente dando un conjunto finito de valores. El tipo de dato enumerado

    no es un tipo normalizado.

    TYPE color=(rojo, azul...etc)

    dias= (lunes, martes,...etc)

    VAR pintura:colo;

    Datos de tipo subrango

    Se define a partir de tipo entero, carcter o de un tipo enumerado. Se define el tipo

    subrango a parte del tipo original entre un mnimo y un mximo:

    TYPE digito = 0..7;

    letra = 'a'..'p';

    dia=(lunes, martes,...,etc)laborable=(lunes,...,viernes; VAR numero: digito das de trabajo: laborable.

    http://jhonatanclaseestructuras.blogspot.com/2009/02/datos-simples.html

  • 10. Que es una expresin aritmtica?

    Son expresiones analticas que no contienen ms funciones que aquellas que pueden

    calcularse con las operaciones del lgebra, a saber:

    Suma

    Resta

    Multiplicacin

    Divisin

    Las expresiones Aritmticas se utilizan en sentencias con el siguiente formato: variable =

    expresin; variable: localidad de memoria referenciada por un nombre bien definido

    expresin: expresin aritmtica.

    http://webdelprofesor.ula.ve/ingenieria/gilberto/pr1/06_ExpresionesAritmeticas.pdf

    11. En qu consisten las notaciones infijo, prefijo y postfijo?

    Las notaciones son una forma especial en la que se pueden expresar una expresin

    matemtica y puedan ser de 3 formas: infija, prefija y posfija. Los prefijos, Pre - Pos - In se

    refieren a la posicin relativa del operador con respecto a los dos operandos.

    Notacin infija

    Es la notacin comn de frmulas aritmticas y lgicas, en la cual se escriben los

    operadores entre los operandos en que estn actuando (ej. 2 + 2). No es tan simple de

    analizar por las computadoras, como la notacin prefija o la notacin postfija , aunque

    muchos lenguajes de programacin la utilizan debido a su familiaridad.

    Notacin postfija o polaca inversa

    Como su nombre lo indica se refiere a que el operador ocupa la posicin despus de los

    operandos sus caractersticas principales son: el orden de los operandos se conserva igual

    que la expresin infija equivalente no utiliza parntesis ya que no es una operacin

    ambigua.

    Su principio es el de evaluar los datos directamente cuando se introducen y

    manejarlos dentro de una estructura LIFO (Last In First Out), lo que optimiza los procesos a

    la hora de programar.

    Bsicamente la diferencias con el mtodo algebraico o notacin de infijo es que, al evaluar

    los datos directamente al introducirlos, no es necesario ordenar la evaluacin de los

    mismos, y que para ejecutar un comando, primero se deben introducir todos sus

    argumentos, as, para hacer una suma 'a+b=c' el RPN lo manejara a b +, dejando el

    resultado 'c' directamente.

    -La operacin posfija no es exactamente lo inverso a la operacin prefija equivalente:

    (A+B)*C AB+C*

    Notacin prefija o polaca

    Es una forma de notacin para la lgica, la aritmtica, y el lgebra. Su caracterstica

    distintiva es que coloca los operadores a la izquierda de sus operandos sus caractersticas

    principales son:

    -Los operandos conservan el mismo orden que la notacin infija equivalente.

  • -No requiere de parntesis para indicar el orden de precedencia de operadores ya que l

    es una operacin.

    -Se evala de izquierda a derecha hasta que encontrmosle primer operador seguido

    inmediatamente de un par de operandos.

    -Se evala la expresin binaria y el resultado se cambia como un nuevo operando. Se

    repite este hasta que nos quede un solo resultado.

    +A B C (A+B)*C

    Ejemplo de notacin infija prefija y postfija.

    (2+(3*4)) = x ((2+3)*4) = x

    Notacin prefija = + 2 * 3 4 x = * + 2 3 4 x

    Notacin infija 2+3*4 = x (2+3)*4 = x

    Notacin postfija 2 3 4 * + x = 2 3 + 4 * x =

    http://compilador.wikispaces.com/Notacion+Infija,+Postfija,Perfija+y+Polaca

    12. Que son los rboles de sintaxis o de expresiones aritmticas?

    Un rbol de sintaxis es una estructura de datos recursiva que permite representar y

    manejar la informacin semntica de un cdigo. El rbol de sintaxis presentado

    en Cupi2 representa expresiones aritmticas que incluyen operadores, nmeros y

    variables.

    El rbol de sintaxis debe cumplir las siguientes condiciones:

    La raz del rbol es una expresin

    Una expresin est compuesta por un trmino o por un trmino, un operador y otro trmino

    Un trmino puede ser un factor, o un factor, un operador y otro factor

    Un factor puede ser un nmero, una variable o una expresin entre parntesis

    Para el manejo variable y sus valores se us la estructura de datos Tabla de Hashing

    Dinmica y para la construccin del rbol se us descenso recursivo sobre la expresin.

  • Ejemplo:

    En el ejemplo del rbol de sintaxis de expresiones aritmticas se representa la expresin

    4 * 3 + 8. Podemos ver que la raz es una Expresin, la cual que consiste en la suma de

    dos Trminos. El trmino de derecha consiste en un Factor, el cual contiene el nmero

    8. Por su parte, el trmino de la izquierda consiste en la multiplicacin de dos factores, los

    cuales contienen un nmero cada uno.

    Esta representacin de la expresin nos permite obtener fcilmente el valor de la misma

    teniendo en cuenta la precedencia de los operadores.

    Representaciones y recorridos

    Las expresiones aritmticas pueden ser representadas en 3 notaciones diferentes, infija,

    prefija y posfija. Cada una de estas notaciones se obtiene al recorrer el rbol en inorden,

    preorden y posorden respectivamente.

    Notacin Infija (Recorrido Inorden)

    Notacin Prefija (Recorrido Preorden)

    Notacin Posfija (Recorrido Posorden)

    http://cupi2.uniandes.edu.co/sitio/index.php/cursos/estructuras-de-

    datos/cupi2collections/estructuras-de-datos/arbol-sintaxis