algoritmo, estructuras y programaciÓn i

Download ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I

If you can't read please download the document

Upload: keisha

Post on 09-Jan-2016

62 views

Category:

Documents


1 download

DESCRIPTION

ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I. UNIDAD 1:Introducción al D iseño de A lgoritmos. Ing. Nelwi Báez Msc. Algoritmo. El Algoritmo es un proceso para resolver problemas Fue desarrollado por el matemático persa Abu Jafar Mohammed Ibn Musa Al Khwarizmi. - PowerPoint PPT Presentation

TRANSCRIPT

Presentacin de PowerPoint

ALGORITMO, ESTRUCTURAS Y PROGRAMACIN IUNIDAD 1:Introduccin al Diseo de Algoritmos

Ing. Nelwi Bez Msc.1Instructor:NombreExperiencia en el rea de ProgramacinObjetivos que espera alcanzar

AlgoritmoEl Algoritmo es un proceso para resolver problemasFue desarrollado por el matemtico persa Abu Jafar Mohammed Ibn Musa Al Khwarizmi.Un algoritmo es una frmula para resolver un problema. Un algoritmo es un conjunto de acciones o secuencia de operaciones que ejecutadas en un determinado orden resuelven el problema planteado.Un algoritmo es un proceso metdico que define una serie finita de pasos sencillos y sin ambigedades para la solucin de un problema La programacin consiste en adaptar el algoritmo al ordenadorEl algoritmo es independiente de la implementacin en algn lenguaje de programacin2Notas del Instructor:Lea cuidadosamente cada uno de los tpicos presentes en la lmina. Seale que los algoritmos son un conjunto de pasos finitos para la resolucin de problema. Palabras de enlace: Continuemos con ms detalles de los Algoritmos.

Caractersticas de un AlgoritmoUn algoritmo debe:Estar bien definido.Ser preciso.Finito.3Notas del Instructor:Lea cuidadosamente cada uno de las caractersticas presentes en la lmina. Palabras de enlace: Estudiaremos a continuacin la metodologa para disear algoritmos.

Metodologa para Disear AlgoritmosUn algoritmo es una formula para obtener la solucin de un problema.La solucin puede ser planteada de diferentes formas.El diseo de un algoritmo es un proceso creativo.No existe un conjunto de reglas que indiquen expresamente cmo escribir un algoritmo en forma correcta4Notas del Instructor:Lea cuidadosamente los tpicos presentes en la lmina.Resalte que un algoritmo es una solucin a un problema. Dicho algoritmo es producto de un proceso creativo, no existen reglas que indiquen expresamente como se escriben algoritmos, pero si existen pasos para resolver los problemas que proporcionan una gua adecuada a seguir.Palabras de enlace: Estudiaremos a continuacin: los pasos para resolver problemas.Metodologa para Disear AlgoritmosLos pasos para resolver un problema son:Anlisis del problema.Diseo del algoritmo.Verificacin del algoritmo.

5Notas del Instructor:Lea cuidadosamente los tpicos presentes en la lmina.A continuacin se presentar un grfico con la secuencia de los pasos, luego se explicar cada tem. Si desea dar una breve explicacin, puede hacerlo. Palabras de enlace: Veamos de manera grfica los pasos para resolver problemas.

Metodologa para Disear AlgoritmosEn la Fase de Anlisis del Problema se:Identifica el problema. Se determina la informacin que se debe producir como salida.Se identifica la informacin necesaria para resolver el problema. Se identifican los elementos que se tienen y los elementos que se deben solicitar para resolver el problema.Se establece el camino a seguir o la solucin que se va implementar.6Notas del Instructor:Lea cuidadosamente los tpicos presentes en la lmina.Motive a los estudiantes en analizar el porque es importante analizar el problema. Si ve que no se lleg a una respuesta clara, intervenga y aclare las dudas, de ser posible ejemplifique.Palabras de enlace: Continuaremos con el diseo del algoritmo.

Metodologa para Disear AlgoritmosEn la Fase de Diseo del Algoritmo se:Se busca la manera ms fcil para simplificar la propuesta. Se identifican los procesos ms importantes y se colocan en orden ascendente segn su importancia y precedencia (esto sirve como un algoritmo inicial).El algoritmo inicial se va refinando sucesivamente hasta obtener una solucin ms detallada y fcil de traducir a un lenguaje de programacin7Notas del Instructor:Lea cuidadosamente los tpicos presentes en la lmina.Sugiera que busquen la manera ms sencilla de resolver un problema. El algoritmo para resolver un problema debe ser, en lo posible, la propuesta ms fcil para obtener el resultado deseado. Este algoritmo inicial puede ser refinado sucesivas veces si se necesita adaptarlo a cambios en el problema planteado.Motive a los estudiantes a intervenir. Formule preguntas sobre los tems presentados en esta lmina. Si ve que no se lleg a una respuesta clara, intervenga y aclare, de ser posible ejemplifique. Palabras de enlace: Estudiaremos los detalles de la verificacin de los algoritmos.

Metodologa para Disear AlgoritmosEn la Fase de Verificacin del Algoritmo: Se verifica que el algoritmo cumpla con los procesos diseados y produzca el resultado esperado. Se realiza una prueba del algoritmo mediante su ejecucin manual con datos significativos y se comprueba si se obtienen los resultados esperados para la salida 8Notas del Instructor:Lea cuidadosamente los tpicos presentes en la lmina.Destaque como idea principal que para usar un algoritmo, este debe ser probado antes de su implementacin en algn lenguaje de programacin. Es importante asegurarse que la solucin planteada soluciona al problema. Un mtodo que se utiliza para ello es una corrida en fro, por ejemplo.Palabras de enlace: Estudiaremos los programas de computadora a continuacin.

Programas de ComputadoraUn programa es un conjunto de instrucciones que, ejecutadas ordenadamente, resuelven un problema. En otras palabras, es la implementacin del algoritmo.Un programa de computadora es una secuencia de instrucciones que le indican al computador que realice las operaciones especficas para lograr el resultado deseado.Consiste de uno o ms mdulos o rutinas cada uno de los cuales puede estar compuesto de varios subprogramas. 9Notas del Instructor:Lea cuidadosamente cada uno de los tems de la lmina.Enlace los contenidos de esta lmina con los conceptos antes mencionados. Discuta con los estudiantes como la interrelacin de los conceptos hasta el momento presentados. Palabras de enlace: Veamos que no es un programa de computadora.

Definiciones BsicasLenguaje de Mquina.Lenguaje de Bajo Nivel: Ensamblador. Lenguaje de Alto Nivel.Compilar.Base de Datos.Sistema Operativo.Almacenamiento. 10Notas del Instructor:Lea cada uno de los tems.Con la ayuda de los estudiantes y el manual del estudiante, defina cado uno de los tems. Pdale a cada estudiante que lea uno de los tems.Palabras de enlace: Continuaremos con los pasos para escribir un programa de computadora.

Definiciones Bsicas: Es un lenguaje que puede ser interpretado directamente por los circuitos internos de la mquina.

Est basado en instrucciones compuestas por secuencias de ceros (0) y unos (1).

Ventajas:- No requiere traduccin, la mquina lo interpreta.- Opera directamente con la mquina.- Puede ser eficiente en el manejo de los recursos.

Desventajas:- Difcil de aprender, implementar y mantener.- Es nico y particular para cada procesador.Lenguaje de Mquina:11Definiciones Bsicas: Lenguaje de Bajo NivelEnsamblador.Es un lenguaje fuente para codificar sentencias simblicas.Hace uso de nemotcnicos para representar instrucciones de mquina.Un ensamblador convierte cada instruccin en instrucciones de lenguaje de mquina.Ventajas:No es tan complicado como el lenguaje de mquina.Eficiente en el manejo de recursos.Desventajas:Cada procesador tiene su propio juego de instrucciones en ensambladorDebe ser traducido ensamblado.

12Definiciones Bsicas: Lenguaje de Alto NivelEs un lenguaje orientado al problema o procedimiento.Son los ms cercanos al lenguaje humano.Ejemplo: COBOL, PL/I, FORTRAN, etc.Otros son los lenguajes de Programacin Orientado a Objetos (OOPL) : C++, Smalltalk, Java, etc.Ventajas:Son independientes del procesador.Son ms fciles de aprender, implementar y mantener.Tiene un carcter genrico.Desventajas:Menos eficiente en el manejo de recursos.Requiere un proceso de traduccin compilacin.13Otras Definiciones BsicasCompilarEs traducir un programa escrito en un lenguaje de alto nivel a lenguaje de mquina, que es la forma en que la computadora puede ejecutar las acciones o instrucciones.

Base de Datos Es una coleccin de datos completa e integrada para evitar duplicados, que permite recuperar informacin para satisfacer a una amplia variedad de usuarios.

Sistema Operativo Es una coleccin organizada de software que se usa para ayudar y controlar las operaciones de una computadora.

AlmacenamientoSe refiere a los dispositivos en que los datos se almacenan para posteriormente ser recuperados.14Desarrollar un Programa de Computadora El programador debe escribir las sentencias o instrucciones del cdigo fuente, en un editor.El conjunto de sentencias fuente se denomina programa fuente. El programa fuente es la entrada para el compilador.El compilador convierte el programa fuente en un conjunto de comandos entendibles por el computador llamado programa ejecutable. Si se encuentra algn error en la sintaxis de los comandos en el programa fuente, el compilador listar cada uno de ellos y no produce el programa ejecutable. 15Notas del Instructor:Lea detenidamente junto a los estudiantes cada uno de los tems.Con la ayuda del grfico siguiente, explique el proceso general para crear un programa.Palabras de enlace: Veamos un grfico del proceso de creacin de un programa de computadora.

Pasos de un Programa de Computadora EditorCompiladorPrograma EjecutablePrograma FuenteLista deProgramas16Notas del Instructor:Seale los pasos para crear un programa. Explique las relaciones entre los diferentes pasos.Palabras de enlace: Estudiemos el funcionamiento de un compilador.

Funcionamiento del Compilador/Enlazador El compilador crea un programa objeto y un listado del programa objeto.El programa objeto se usa como la entrada al enlazador para realizar lo que se llama el paso de edicin de enlace. El enlazador combina el programa objeto recin creado, con otros archivos objetos ya existentes para producir un programa ejecutable. Los otros archivos objeto generalmente residen en un archivo en disco llamado Librera de Enlace. 17Notas del Instructor:Lea cuidadosamente cada tpico presente en la lmina.Con la ayuda de la ilustracin de la prxima lmina, explique el funcionamiento del compilador/Enlazador.Palabras de enlace: Veamos a continuacin un grfico donde se muestra el funcionamiento del Compilador/Enlazador.

Funcionamiento del Compilador / EnlazadorPrograma fuente

Compilador

EnlazadorPrograma EjecutableLibreras de Programas ObjetoPrograma objeto18Notas del Instructor:Explique cada uno de los elementos del grfico.Recuerde: La estructura de un compilador, esta dividida en cuatro grandes mdulos, cada uno independiente del otro, se podra decir que un compilador esta formado por cuatros mdulos mas a su vez. El primero de ellos es el preprocesador, es el encargado de transformar el cdigo fuente de entrada original en el cdigo fuente puro. Es decir en expandir las macros, incluir las libreras, realizar un preprocesado racional (capacidad de enriquecer a un lenguaje antiguo con recursos ms modernos), extender el lenguaje y todo aquello que en el cdigo de entrada sea representativo de una abreviatura para facilitar la escritura del mismo.El segundo modulo es el de compilacin que recibe el cdigo fuente puro, este es l modulo principal de un compilador, pues si ocurriera algn error en esta etapa el compilador no podra avanzar. En esta etapa se somete al cdigo fuente puro de entrada a un anlisis lxico grfico, a un anlisis sintctico, a un anlisis semntico, que construyen la tabla de smbolos, se genera un cdigo intermedio al cual se optimiza para as poder producir un cdigo de salida generalmente en algn lenguaje ensamblador.El tercer modulo es el llamado modulo de ensamblado, este modulo no es ni ms mi menos que otro compilador pues recibe un cdigo fuente de entrada escrito en ensamblador, y produce otro cdigo de salida, llamado cdigo binario no enlazado. Si por un momento viramos a este modulo como un programa independiente, veramos que en este caso los trminos programa compilador y proceso de compilacin son los mismos. Pues este modulo no es mas que un compilador, que en su interior realiza como su antecesor un anlisis lxico grfico, un anlisis sintctico, un anlisis semntico, crea una tabla de smbolos, genera un cdigo intermedio lo optimiza y produce un cdigo de salida llamado cdigo binario no enlazado, y a todo este conjunto de tares se los denomina proceso de compilacin. Como se puede ver este compilador (llamado ensamblador) a diferencia de los dems compiladores no realiza una expansin del cdigo fuente original (cdigo fuente de entrada), tiene solamente un proceso de compilacin y por supuesto no enlaza el cdigo fuente. Es un compilador que carece de los mdulos de preprocesado y enlazado, y donde los mdulos de compilacin y ensamblado son los mismos.El cuarto y ultimo modulo es el encargado de realizar el enlazado del cdigo de fuente de entrada (cdigo maquina relocalizable) con las libreras que necesita, como as tambin de proveer al cdigo de las rutinas necesarias para poder ejecutarse y cargarse a la hora de llamarlo para su ejecucin, modifica las direcciones relocalizables y ubica los datos en las posiciones apropiadas de la memoria. Este ultimo modulo es el que produce como salida el cdigo binario enlazado. Ya sea dinmico o esttico, al decir dinmico se refiere a que el cdigo producido utiliza libreras dinmicas (libreras ya cargadas en el sistema), esto implica que se obtendr un cdigo ms corto y que se actualizara automticamente si aparece alguna nueva versin de las libreras, mientras que el esttico se refiere al echo que no se realiza enlace con ninguna librera y por lo tanto se obtendr un cdigo mas largo con una copia de las rutinas de librera que necesita.Palabras de enlace: Veamos a continuacin que son los Datos, los Tipos de Datos y las Operaciones incorporadas.

Datos e InstruccionesUn programa de computadora, para que pueda ser ejecutado debe ser cargado en memoria. La unidad de procesamiento del ordenador slo puede trabajar con los datos e instrucciones que residen en la memoria.

19Notas del Instructor:Lea cuidadosamente y discuta cada tpico de la lmina.Palabras de enlace: Continuemos ampliando el concepto de Dato.

DatoEl dato es cualquier objeto o elemento de informacin que se usa a travs de las diversas operaciones dentro de un programa. Son los elementos sobre los que se opera cuando se efecta una instruccin.Un dato tiene un nombre que lo identifica y distingue de los dems elementos del programa. El nombre no es ms que una forma de referenciar la direccin de memoria que ocupa el dato.

20Notas del Instructor:La lmina es auto explicativa.Lea y discuta cada tpico.Destaque que un dato tiene un nombre que lo identifica y ese nombre no es ms que una forma de referenciar la direccin de memoria que ocupa el dato.Recuerde mencionar que un Dato es un objeto o elemento que tratamos a lo largo de diversas operaciones. Tienen 3 caractersticas:Un nombre que los diferencia del resto.Un tipo que nos determina las operaciones que podemos hacer con ese dato.Un valor que puede variar o no a lo largo de la operacin.Palabras de enlace: Estudiaremos a continuacin los diferentes tipos de datos.

Tipo de Dato El tipo de dato es una definicin que identifica los valores vlidos para un conjunto de datos y las operaciones que sobre ellos se pueden realizar.Normalmente se puede establecer una relacin de orden sobre los datos de naturaleza escalar o con valores determinsticos.Cada tipo de dato tiene una representacin en el computador. Para cada tipo de dato el computador reserva una cantidad de memoria para almacenarloTodo, absolutamente todo, en la memoria de un computador se representa por medio de cdigo binario.

21Notas del Instructor:La lmina es auto explicativa.Lea cuidadosamente cada tem y disctalo con los estudiantes.Palabras de enlace: Veamos a la clasificacin de los tipos de datos.

Clasificacin de los Tipo de Dato Los tipos de datos se clasifican en:

Primitivos: tipos bsicos o simples predefinidos en el sistema. Pueden ser numrico, lgico o carcter.

Definidos por el usuario: tipos de datos complejos definidos por el programador.

22Notas del Instructor:La lmina es auto explicativa.Lea cada tem y contine a la prxima lmina.Palabras de enlace: Veamos a continuacin los tipos de datos primitivos.

Tipo de Dato Primitivo Numrico Los tipos primitivos numricos ms importantes son:

Entero: es un subconjunto finito del conjunto matemtico de los nmeros enteros. No tiene parte decimal.

Real: es un subconjunto finito del conjunto matemtico de los nmeros reales, tienen signo y parte decimal.

23Notas del Instructor:La lmina es auto explicativa.Explique cada uno de los tems. Pdale a los estudiantes ejemplos sobre los tipos de datos primitivos numricos.Palabras de enlace: Estudiemos a continuacin los tipos de datos primitivos lgicos o booleanos.

Tipo de Dato Primitivo Lgico o BooleanoEl tipo primitivo lgico o booleno:

Es aquel que slo puede tomar uno de los dos valores, verdadero o falso (1 0).Las operaciones lgicas retornan un valor lgico.24Notas del Instructor:La lmina es auto explicativa.Explique cada uno de los tems. Pdale a los estudiantes ejemplos sobre los tipos de datos primitivos lgicos.Palabras de enlace: Estudiemos a continuacin los tipos de datos primitivos carcter.Tipo de Dato Caracter El tipo de dato primitivo carcter:Es el conjunto finito y ordenado de caracteres que reconoce la computadora: letras, dgitos, caracteres especiales, cdigo ASCII y UNICODE. Los valores usualmente se representan dentro de un par de comillas simples.Se puede usar el cdigo del carcter o su posicin dentro del conjunto de caracteres vlidos que se est usando.25Notas del Instructor:Notas del Instructor:La lmina es auto explicativa.Explique cada uno de los tems. Pdale a los estudiantes ejemplos sobre los tipos de datos primitivos carcter.Palabras de enlace: Estudiemos a continuacin las Constantes y Variables.Tipos de DatosTipo de DatoDescripcinNmero de bytes tpicoRangoshortEntero corto2-32768 a32767intEntero4-2147483648 a+2147483647longEntero largo4-2147483648 a+2147483647charCarcter1-128 a127Tipo de DatoDescripcinNmero de bytes tpicoRangosigned shortEntero corto2-32768 a32767unsigned shortEntero corto sin signo20 a65535signed intEntero4-2147483648 a+2147483647unsigned intEntero sin signo40 a4294967295signed longEntero largo4-2147483648 a+2147483647unsigned longEntero largo sin signo40 a4294967295signed charCarcter1-128 a127unsigned charCarcter sin signo10 a255El tipo de dato numrico entero es un subconjunto finito de los nmeros enteros del mundo real. Pueden ser positivos o negativosCon los tipos enteros pueden utilizarse loscalificadoressignedyunsigned. Estos calificadores indican si el nmero tiene signo o no. Si se usan solos, sin indicar el tipo de dato se asume int. Por ejemplo, las siguientes declaraciones son equivalentes: unsigned int x;equivale a:unsigned x;

Tipo de datos Lgicos o bolanos

Ejemplo:Nacionalidad = Venezo- lano (S/N)? Carcter o Char Su valor lo comprenden todos los caracteres alfab- ticos, maysculas y minsculas (A Z), numricos (0 9) y smbolos especiales (#,@,%,&). Carcter String o cadena Su valor esta representado por un conjunto de ca- racteres. Abril Reporte Anual de Fallas Tcnicas 1 de mayo, Da Son aquellos datos cuyos nicos valores slo pue- den ser: Verdadero (V) o Falso (F), puede encon- trarse, Verdadero (True) o Falso (False). Se utiliza para representar las opciones (si/no) a determina- das condiciones.

Tipos de datos numricos realesTipo de DatoDescripcinNmero de bytes tpicoRangofloatReal (Nmero en coma flotante)4Positivos: 3.4E-38 a 3.4E38Negativos: -3.4E-38 a -3.4E38doubleReal doble(Nmero en coma flotante de doble precisin)8Positivos: 1.7E-308 a 1.7E308Negativos: -1.7E-308 a -1.7E308long doubleReal doble largo10Positivos: 3.4E-4932 a 1.1E4932Negativos: -3.4E-4932 a -1.1E4932El tipo de dato numrico real es un subconjunto finito de los nmeros reales. Pueden ser positivos o negativos.

Constantes y VariablesConstantes: Son instancias de un tipo de dato que tienen un valor fijo que se le da cuando se define la constante.No puede ser modificado durante la ejecucin del programa o corrida del algoritmo.Variables: Son instancias de un tipo de dato, cuyo valor puede cambiar durante la ejecucin del programa o corrida del algoritmo.No vara su nombre y su tipo.Variables:AcumuladorasContadoras29Notas del Instructor:La lmina es auto explicativa.Lea cada tem de la lmina. Resalte cada la diferencia de cada uno. Ejemplifique el uso de las constantes y de las variables.Palabras de enlace: Profundizaremos a continuacin el concepto de variables.

VariablesLas variables deben ser definidas o declaradas antes de usarlas.Una variable se declara dando un nombre significativo y tipo. El nombre o identificador, es una palabra que no es propia del lenguaje, la construye y usa el programador basndose en ciertas reglasEl nombre, por lo general, tiene que empezar por una letra, el tamao y caracteres permitidos para formar el identificador dependen del lenguaje.En algunos lenguajes, a la variable al declararla se le asigna un valor por defecto, si no se le asigna un valor inicial.30Notas del Instructor:Lea cuidadosamente cada tpico y disctalo.Resalte que cada lenguaje de programacin tienen sus propias reglas para la declaracin de las variables.Palabras de enlace: Estudiaremos las constantes.

ConstantesLas constantes pueden llevar asociados un nombre, si no lo tienen se llaman literales. El valor de la constante se debe suministrar al definir la constante y no puede cambiar a lo largo de la ejecucin del programa.El tipo de dato de la constante se especifica o no en la declaracin dependiendo del lenguaje.Ejemplo de definicin de una constante: Const PI=3,1416La ventaja de las constantes con nombre, es que se puede usar el nombre en cualquier lugar del programa y luego el compilador lo sustituye por su valor.31Notas del Instructor:Lea cuidadosamente cada tpico y disctalo con los estudiantes.Resalte que el valor de la constante no puede ser cambiado en la ejecucin del programa. En la gran mayora de los lenguajes de programacin se debe inicializa las constantes al momento de su declaracin.Palabras de enlace: Estudiaremos la relacin entre variables y constantes en memoria.

Variables y Constantes en la Memoria Cuando el compilador consigue una declaracin de una variable o una constante con nombre, automticamente reserva en memoria espacio para guardarla.El espacio reservado en memoria depende del tipo de dato de la variable o constante.En esa ubicacin de memoria se guarda el valor asociado a la variable o constante Cuando el programa se ejecuta busca el valor de la variable o constante en esa ubicacin de memoria. 32Notas del Instructor:Lea cuidadosamente cada tpico y disctalo con los estudiantes.Resalte que el valor, tanto de una variable como una constante, es guardado en memoria. El espacio reservado en la memoria para el almacenamiento depender del tipo de dato al que pertenece la variable o constante.Palabras de enlace: Estudiaremos a continuacin las expresiones.

Expresiones: Tipos y Operadores Una expresin es una combinacin de constantes, variables, signos de operacin, parntesis y nombres especiales de funciones estndares, con un sentido unvoco y definido. La evaluacin de una expresin da como resultado un nico valor.Toda expresin tiene asociado un tipo que se corresponde con el tipo del valor que devuelve la expresin cuando se evala. Existen dos tipos de expresiones:Numricas.Lgicas.33Notas del Instructor:Lea cuidadosamente cada tpico y disctalo con los estudiantes.Palabras de enlace: A continuacin estudiaremos las expresiones numricas y operadores aritmticos.

Expresiones Numricas: Operadores AritmticosLas expresiones numricas son una combinacin de variables y constantes numricas con operadores aritmticos, que al evaluarse devuelven un valor numrico.Los operadores aritmticos se utilizan en las expresiones numricas.Algunos de los operadores aritmticos ms usados son:+ Suma - Resta*Multiplicacin/Divisin34Notas del Instructor:Lea cuidadosamente cada tpico y disctalo con los estudiantes.Ejemplifique el uso de los operadores aritmticos ms comunes.Palabras de enlace: A continuacin veremos otros operadores aritmticos.

Otros Operadores AritmticosOtros operadores aritmticos soportados en algunos lenguajes de programacin son:Resto: devuelve el resto de una divisin entera.Divisin entera: devuelve el cociente de una divisin en la que no se consideran los decimales.Potencia: devuelve el valor de una base elevada a una potencia dada.Todos los operadores estudiados son binarios, utilizan dos operandos y el operador se sita en medio de ambos operandos.35Notas del Instructor:Lea cuidadosamente cada tpico y disctalo con los estudiantes.Ejemplifique los diferentes tipos de operadores.Resalte que los operadores vistos hasta el momento son Binarios, los cuales requieren de dos operadores. Aclare que el la prxima lmina se estudiarn los operadores unarios, los cuales solo requieren de un operador.Palabras de enlace: A continuacin veremos los operadores unarios.

Operadores UnariosLos operadores unarios son un tipo de operador que slo necesitan de un operando. Algunos de los operadores unarios ms comunes son:Signo negativo: devuelve el valor actual del operando multiplicado por menos uno (-1).Decremento: devuelve el valor actual del operador decrementado en una unidad.Incremento: devuelve el valor actual del operador incrementado en una unidad.36Notas del Instructor:Lea cuidadosamente cada tpico y disctalo con los estudiantes.Ejemplifique cada tem con la ayuda del manual del estudiante.Palabras de enlace: A continuacin veremos las reglas de precedencia.

Evaluacin de Expresiones El resultado que retorna de la evaluacin de una expresin depende del orden en que se evalen los operadores.

Ejemplo:Sea la siguiente expresin aritmtica: 2 + 3 * 2 + 3Si se evala en el orden de aparicin de los operadores : (((2 + 3) * 2) + 3) El resultado = 13Si se evala primero la suma (+) y luego la multiplicacin (*): (2 + 3) * (2 + 3) El resultado = 25Si se evala primero la multiplicacin y luego la suma: 2 + (3 * 2) + 3 El resultado = 11

37Notas del Instructor:Explique a travs de los ejemplos planteados que el orden de precedencia nos permite evaluar los operadores aritmticos en un orden predeterminado resolviendo la problemtica planteada en los ejemplos.Palabras de enlace: continuemos viendo ms ejemplos sobre las reglas de precedencia .

Reglas de Precedencia en las Expresiones Para evaluar las expresiones, cada operador tiene una prioridad o regla de precedencia para su evaluacin dentro de la expresin.Cada lenguaje puede establecer sus propias reglas de prioridad o precedencia de operadores.El orden de precedencia ms usado para los operadores aritmticos bsicos, es: 1- ^2- *, /, div y mod3- + y Se evala primero el operador con mayor prioridad. Entre dos operadores que tienen la misma precedencia se usa la regla de la asociatividad por la izquierda.Se pueden utilizar los parntesis () para cambiar el orden en que se evalan los operadores de una expresin aritmtica.38Notas del Instructor:Lea cuidadosamente cada uno de los tems de esta lmina.Explique la funcin de los parntesis en las reglas de precedencia. El uso de los parntesis fuerza la realizacin de la operacin contenida dentro de ellos, pudiendo alterar el resultado. Ej.3+5*4=23(3+5)*4=32Como vemos en el primer caso, la multiplicacin tiene precedencia sobre la suma, por lo tanto primero se multiplica y luego se suma, el resultado es 23. Con la aplicacin de parntesis se fuerza la suma y su resultado luego es multiplicado, dando como resultado 32.

Lea cuidadosamente cada tem de la lmina. Resalte que cuando se presenta dos operaciones con la misma precedencia se utiliza la regla de la asociatividad por la izquierda, es decir, se evala primero la operacin ms a la izquierdaPalabras de enlace: Abordaremos a continuacin las expresiones lgicas.

Expresiones Lgicas: Operadores Relacionales y Lgicos Una expresin lgica es aquella que slo puede devolver uno de dos valores: Verdadero o Falso.Los operadores que pueden aparecer en una expresin lgica son de dos tipos: lgicos o relacionales. Los operadores lgicos slo trabajan sobre expresiones o datos que retornan valores booleanos. Los operadores relacionales trabajan con expresiones numricas para realizar comparaciones que retornan un valor booleano. Las expresiones combinan tanto los operadores lgicos como relacionales, se evala ms de una condicin o relacin por medio los de operadores lgicos

39Notas del Instructor:Lea cuidadosamente cada tem de la lmina.Resalte que las expresiones lgicas son aquellas que devuelven valores verdadero / falso.Palabras de enlace: A continuacin los operadores relacionales y lgicos.

Operadores RelacionalesLos operadores relacionales ms utilizados son: < menor que > mayor que = igualdad (en C/C++: ==) diferente (en C/C++: !=) menor o igual que mayor o igual que40Notas del Instructor:La lmina es auto explicativa.Lea cuidadosamente cada tpico y disctalo.Destaque que la simbologa utilizada en la lmina puede variar de acuerdo con el lenguaje de programacin. Esta simbologa es referencial.Palabras de enlace: A continuacin un ejercicio prctico de operadores relacionales.

Ejercicio sobre Expresiones LgicasEjercicio:

Evale las siguientes expresiones si se le asigna a:la variable x el valor de 2la variable y el valor de 4

1. x == y2. x y 3. y > x4. x >= y41Notas del Instructor:La lmina es auto explicativa.Con la ayuda de los estudiantes, resuelva los ejercicios planteados.Palabras de enlace: A continuacin estudiaremos los operadores lgicos.

Operadores Lgicos Los operadores lgicos se utilizan para evaluar ms de una condicin al mismo tiempo. Los operadores lgicos ms utilizados son:Y (and, &&)O (or, !!)No (not, ~, !)O exclusivo (xor, ^)El No es un operador unario todos los dems son operadores binarios.42Notas del Instructor:La lmina es auto explicativa.Lea cuidadosamente cada tpico y disctalo.Resalte que los operadores Y, O y O Exclusivo son Binarios. El No es unario.Palabras de enlace: A continuacin veremos la Tabla de la Verdad.

Funciones IncorporadasLas funciones incorporadas son funciones que se incorporan al lenguaje y que son diferentes de las operaciones bsicas.Se consideran estndar en la mayora de herramientas y lenguajes de programacin.Son dependientes del lenguaje y normalmente se encuentran en libreras externas que se pueden incluir en un programa.Las libreras ms comunes son las libreras de soporte matemtico y las de entrada / salida.La sintaxis y el nombre de las funciones puede variar de un lenguaje a otro, pero la funcionalidad suele mantenerse entre las diversas herramientas de programacin.43Notas del Instructor:La lmina es auto explicativa.Lea cuidadosamente cada tpico y disctalo junto a los estudiantes.Aclare que cada lenguaje de programacin tiene sus propias libreras de funciones que le dan al lenguaje flexibilidad y poder.Palabras de enlace: A continuacin un ejemplo de las funciones incorporadas en diferentes lenguajes de programacin

Uso de las Funciones IncorporadasImport java.io.*;importJava#include includeC y C++use conio;usePascalEjemploSentenciaLenguaje44Notas del Instructor:Explique el ejemplo suministrado, haciendo la analoga entre los diferentes lenguajes de programacin mostrado. Recuerde que lo importante es destacar que cada lenguaje de programacin tiene su propia forma de usar las funciones incorporadas.Palabras de enlace: A continuacin estudiaremos los operadores de asignacin.

Operacin de Asignacinvar = Math.sin(90.0); =Javavar = 5 + 3; =C y C++var := 5 + 3; :=PascalEjemploOperadorLenguajeVar: representa la variable a la que se le asigna el valor dado en la expresin a la derecha del operador de asignacin.La operacin de asignacin consiste en atribuir un valor a una variable. El valor asignado es una expresin, una constante u otra variable 45Notas del Instructor:La lmina es auto explicativa.Explique a los estudiantes como cada lenguaje de programacin tiene su propia sintaxis para la operacin de asignacin. Apyese en la lmina actual.Palabras de enlace: A continuacin profundizaremos en las operaciones de asignacin.

Fases de la Operacin de AsignacinLa operacin de asignacin se realiza en 2 fases:Se evala la expresin de la parte derecha de la asignacin y se obtiene un nico valor.Se asigna ese valor a la variable de la parte izquierda.En la parte izquierda de la operacin de asignacin slo puede haber una variable y al asignarle el valor pierde el valor anterior.Si la variable de la parte izquierda participa en la expresin, se evala primero la expresin antes de realizar la asignacin. Ejemplo x = x + 1.El tipo de dato resultante despus de evaluar la expresin (parte derecha), tiene que ser del mismo tipo de dato o un tipo compatible con el de la variable a la cual se le va a asignar el resultado de la operacin.

46Notas del Instructor:Lea cuidadosamente cada tpico y disctalo con los estudiantes.Lea cuidadosamente cada tpico y disctalo con los estudiantes.Explique como se realiza proceso de asignacin cuando la misma variable que recibe el valor de la operacin, participa en la expresin. Deje claro que primero se evala la expresin y luego se asigna el valor a la variable.Palabras de enlace: Veamos a continuacin unas recomendaciones para programar..

Recomendaciones al ProgramarPara minimizar la ocurrencia de errores al programar se recomienda:Reutilizar cdigo bueno. No asumir los datos de entrada como vlidos. No asumir que los datos de entrada estn en la secuencia correcta. Disear los tamaos de los campos de datos de modo que puedan contener en el campo el valor actual ms grande. Usar comentarios en los programas. Desarrollar programas legibles y fciles de entender. 47Notas del Instructor:La lmina es auto explicativa.Lea cuidadosamente cada tpico y disctalo con los estudiantes.Desarrolle el contenido de cada tem de acuerdo a lo siguiente:Reutilizacin de cdigo bueno. - Puede existir un cdigo ya desarrollado y probado para resolver totalmente o parte del problema que pueda utilizarse. Esto facilita la solucin del problema y minimiza el tiempo de desarrollo. - Al reutilizar cdigo no se desperdicia tiempo depurando una parte de la lgica que se sabe que funciona. No asuma los datos de entrada como vlidos. - Si no se tiene ningn control sobre la fuente de los datos, no se tiene ningn control sobre la calidad de los datos. Nunca asuma que los datos de entrada estn en la secuencia correcta. - Siempre verifique la secuencia. - Es muy fcil para alguien proporcionar un archivo errneo. Siempre disee los tamaos de los campos de datos de modo que puedan contener en el campo el valor actual ms grande.Esto evita tener que redisear archivos o segmentos de la base de datos. Use comentarios libremente. Explique cualquier cosa que pueda confundir a un futuro lector. Tambin seale cualquier rea que pueda estar sujeta a cambios. En general, haga los programas legibles y fciles de entender. Use nombres adecuados para las variables y que sean auto descriptivos. Use sangras y alineacin y suficientes espacios donde sean necesarios (lneas blancas y columnas).Palabras de enlace: A continuacin un Resumen de la Unidad.