La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I

Presentaciones similares


Presentación del tema: "ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I"— Transcripción de la presentación:

1 ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I
UNIDAD 1:Introducción al Diseño de Algoritmos Instructor: Nombre Experiencia en el área de Programación Objetivos que espera alcanzar Ing. Nelwi Báez Msc.

2 Algoritmo El Algoritmo es un proceso para resolver problemas
Fue desarrollado por el matemático persa Abu Jafar Mohammed Ibn Musa Al Khwarizmi. Un algoritmo es una fórmula 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 metódico que define una serie finita de pasos sencillos y sin ambigüedades para la solución de un problema La programación consiste en adaptar el algoritmo al ordenador El algoritmo es independiente de la implementación en algún lenguaje de programación Notas del Instructor: Lea cuidadosamente cada uno de los tópicos presentes en la lámina. Señale que los algoritmos son un conjunto de pasos finitos para la resolución de problema. Palabras de enlace: Continuemos con más detalles de los Algoritmos.

3 Características de un Algoritmo
Un algoritmo debe: Estar bien definido. Ser preciso. Finito. Notas del Instructor: Lea cuidadosamente cada uno de las características presentes en la lámina. Palabras de enlace: Estudiaremos a continuación la metodología para diseñar algoritmos.

4 Metodología para Diseñar Algoritmos
Un algoritmo es una formula para obtener la solución de un problema. La solución puede ser planteada de diferentes formas. El diseño de un algoritmo es un proceso creativo. No existe un conjunto de reglas que indiquen expresamente cómo escribir un algoritmo en forma correcta Notas del Instructor: Lea cuidadosamente los tópicos presentes en la lámina. Resalte que un algoritmo es una solución 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 guía adecuada a seguir. Palabras de enlace: Estudiaremos a continuación: los pasos para resolver problemas.

5 Metodología para Diseñar Algoritmos
Los pasos para resolver un problema son: Análisis del problema. Diseño del algoritmo. Verificación del algoritmo. Notas del Instructor: Lea cuidadosamente los tópicos presentes en la lámina. A continuación se presentará un gráfico con la secuencia de los pasos, luego se explicará cada ítem. Si desea dar una breve explicación, puede hacerlo. Palabras de enlace: Veamos de manera gráfica los pasos para resolver problemas.

6 Metodología para Diseñar Algoritmos
En la Fase de Análisis del Problema se: Identifica el problema. Se determina la información que se debe producir como salida. Se identifica la información 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 solución que se va implementar. Notas del Instructor: Lea cuidadosamente los tópicos presentes en la lámina. 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 diseño del algoritmo.

7 Metodología para Diseñar Algoritmos
En la Fase de Diseño del Algoritmo se: Se busca la manera más fácil para simplificar la propuesta. Se identifican los procesos más importantes y se colocan en orden ascendente según su importancia y precedencia (esto sirve como un algoritmo inicial). El algoritmo inicial se va refinando sucesivamente hasta obtener una solución más detallada y fácil de traducir a un lenguaje de programación Notas del Instructor: Lea cuidadosamente los tópicos presentes en la lámina. Sugiera que busquen la manera más sencilla de resolver un problema. El algoritmo para resolver un problema debe ser, en lo posible, la propuesta más fácil 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 lámina. 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 verificación de los algoritmos.

8 Metodología para Diseñar Algoritmos
En la Fase de Verificación del Algoritmo: Se verifica que el algoritmo cumpla con los procesos diseñados y produzca el resultado esperado. Se realiza una prueba del algoritmo mediante su ejecución manual con datos significativos y se comprueba si se obtienen los resultados esperados para la salida Notas del Instructor: Lea cuidadosamente los tópicos presentes en la lámina. Destaque como idea principal que para usar un algoritmo, este debe ser probado antes de su implementación en algún lenguaje de programación. Es importante asegurarse que la solución planteada soluciona al problema. Un método que se utiliza para ello es una corrida en frío, por ejemplo. Palabras de enlace: Estudiaremos los programas de computadora a continuación.

9 Programas de Computadora
Un programa es un conjunto de instrucciones que, ejecutadas ordenadamente, resuelven un problema. En otras palabras, es la implementación del algoritmo. Un programa de computadora es una secuencia de instrucciones que le indican al computador que realice las operaciones específicas para lograr el resultado deseado. Consiste de uno o más módulos o rutinas cada uno de los cuales puede estar compuesto de varios subprogramas. Notas del Instructor: Lea cuidadosamente cada uno de los ítems de la lámina. Enlace los contenidos de esta lámina con los conceptos antes mencionados. Discuta con los estudiantes como la interrelación de los conceptos hasta el momento presentados. Palabras de enlace: Veamos que no es un programa de computadora.

10 Definiciones Básicas Lenguaje de Máquina.
Lenguaje de Bajo Nivel: Ensamblador. Lenguaje de Alto Nivel. Compilar. Base de Datos. Sistema Operativo. Almacenamiento. Notas 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. Pídale a cada estudiante que lea uno de los ítems. Palabras de enlace: Continuaremos con los pasos para escribir un programa de computadora.

11 Definiciones Básicas:
Lenguaje de Máquina: Es un lenguaje que puede ser interpretado directamente por los circuitos internos de la máquina. Está basado en instrucciones compuestas por secuencias de ceros (0) y unos (1). Ventajas: - No requiere traducción, la máquina lo interpreta. - Opera directamente con la máquina. - Puede ser eficiente en el manejo de los recursos. Desventajas: - Difícil de aprender, implementar y mantener. - Es único y particular para cada procesador.

12 Definiciones Básicas: Lenguaje de Bajo Nivel
Ensamblador. Es un lenguaje fuente para codificar sentencias simbólicas. Hace uso de nemotécnicos para representar instrucciones de máquina. Un ensamblador convierte cada instrucción en instrucciones de lenguaje de máquina. Ventajas: No es tan complicado como el lenguaje de máquina. Eficiente en el manejo de recursos. Desventajas: Cada procesador tiene su propio juego de instrucciones en ensamblador Debe ser traducido – ensamblado.

13 Definiciones Básicas: Lenguaje de Alto Nivel
Es un lenguaje orientado al problema o procedimiento. Son los más cercanos al lenguaje humano. Ejemplo: COBOL, PL/I, FORTRAN, etc. Otros son los lenguajes de Programación Orientado a Objetos (OOPL) : C++, Smalltalk, Java, etc. Ventajas: Son independientes del procesador. Son más fáciles de aprender, implementar y mantener. Tiene un carácter genérico. Desventajas: Menos eficiente en el manejo de recursos. Requiere un proceso de traducción – compilación.

14 Otras Definiciones Básicas
Compilar Es traducir un programa escrito en un lenguaje de alto nivel a lenguaje de máquina, que es la forma en que la computadora puede ejecutar las acciones o instrucciones. Base de Datos Es una colección de datos completa e integrada para evitar duplicados, que permite recuperar información para satisfacer a una amplia variedad de usuarios. Sistema Operativo Es una colección organizada de software que se usa para ayudar y controlar las operaciones de una computadora. Almacenamiento Se refiere a los dispositivos en que los datos se almacenan para posteriormente ser recuperados.

15 Desarrollar un Programa de Computadora
El programador debe escribir las sentencias o instrucciones del código 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 algún error en la sintaxis de los comandos en el programa fuente, el compilador listará cada uno de ellos y no produce el programa ejecutable. Notas del Instructor: Lea detenidamente junto a los estudiantes cada uno de los ítems. Con la ayuda del gráfico siguiente, explique el proceso general para crear un programa. Palabras de enlace: Veamos un gráfico del proceso de creación de un programa de computadora.

16 Pasos de un Programa de Computadora
Editor Compilador Programa Ejecutable Programa Fuente Lista de Programas Notas del Instructor: Señale los pasos para crear un programa. Explique las relaciones entre los diferentes pasos. Palabras de enlace: Estudiemos el funcionamiento de un compilador.

17 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 “edición de enlace”. El enlazador combina el programa objeto recién creado, con otros archivos objetos ya existentes para producir un programa ejecutable. Los otros archivos objeto generalmente residen en un archivo en disco llamado “Librería de Enlace”. Notas del Instructor: Lea cuidadosamente cada tópico presente en la lámina. Con la ayuda de la ilustración de la próxima lámina, explique el funcionamiento del compilador/Enlazador. Palabras de enlace: Veamos a continuación un gráfico donde se muestra el funcionamiento del Compilador/Enlazador.

18 Funcionamiento del Compilador / Enlazador
Programa fuente Compilador Enlazador Programa Ejecutable Librerías de Programas Objeto Programa objeto Notas del Instructor: Explique cada uno de los elementos del gráfico. Recuerde: La estructura de un compilador, esta dividida en cuatro grandes módulos, cada uno independiente del otro, se podría decir que un compilador esta formado por cuatros módulos mas a su vez. El primero de ellos es el preprocesador, es el encargado de transformar el código fuente de entrada original en el código fuente puro. Es decir en expandir las macros, incluir las librerías, realizar un preprocesado racional (capacidad de enriquecer a un lenguaje antiguo con recursos más modernos), extender el lenguaje y todo aquello que en el código de entrada sea representativo de una abreviatura para facilitar la escritura del mismo. El segundo modulo es el de compilación que recibe el código fuente puro, este es él modulo principal de un compilador, pues si ocurriera algún error en esta etapa el compilador no podría avanzar. En esta etapa se somete al código fuente puro de entrada a un análisis léxico gráfico, a un análisis sintáctico, a un análisis semántico, que construyen la tabla de símbolos, se genera un código intermedio al cual se optimiza para así poder producir un código de salida generalmente en algún lenguaje ensamblador. El tercer modulo es el llamado modulo de ensamblado, este modulo no es ni más mi menos que otro compilador pues recibe un código fuente de entrada escrito en ensamblador, y produce otro código de salida, llamado código binario no enlazado. Si por un momento viéramos a este modulo como un programa independiente, veríamos que en este caso los términos programa compilador y proceso de compilación son los mismos. Pues este modulo no es mas que un compilador, que en su interior realiza como su antecesor un análisis léxico gráfico, un análisis sintáctico, un análisis semántico, crea una tabla de símbolos, genera un código intermedio lo optimiza y produce un código de salida llamado código binario no enlazado, y a todo este conjunto de tares se los denomina proceso de compilación. Como se puede ver este compilador (llamado ensamblador) a diferencia de los demás compiladores no realiza una expansión del código fuente original (código fuente de entrada), tiene solamente un proceso de compilación y por supuesto no enlaza el código fuente. Es un compilador que carece de los módulos de preprocesado y enlazado, y donde los módulos de compilación y ensamblado son los mismos. El cuarto y ultimo modulo es el encargado de realizar el enlazado del código de fuente de entrada (código maquina relocalizable) con las librerías que necesita, como así también de proveer al código de las rutinas necesarias para poder ejecutarse y cargarse a la hora de llamarlo para su ejecución, 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 código binario enlazado. Ya sea dinámico o estático, al decir dinámico se refiere a que el código producido utiliza librerías dinámicas (librerías ya cargadas en el sistema), esto implica que se obtendrá un código más corto y que se actualizara automáticamente si aparece alguna nueva versión de las librerías, mientras que el estático se refiere al echo que no se realiza enlace con ninguna librería y por lo tanto se obtendrá un código mas largo con una copia de las rutinas de librería que necesita. Palabras de enlace: Veamos a continuación que son los Datos, los Tipos de Datos y las Operaciones incorporadas.

19 Datos e Instrucciones Un programa de computadora, para que pueda ser ejecutado debe ser cargado en memoria. La unidad de procesamiento del ordenador sólo puede trabajar con los datos e instrucciones que residen en la memoria. Notas del Instructor: Lea cuidadosamente y discuta cada tópico de la lámina. Palabras de enlace: Continuemos ampliando el concepto de Dato.

20 Dato El dato es cualquier objeto o elemento de información que se usa a través de las diversas operaciones dentro de un programa. Son los elementos sobre los que se opera cuando se efectúa una instrucción. Un dato tiene un nombre que lo identifica y distingue de los demás elementos del programa. El nombre no es más que una forma de referenciar la dirección de memoria que ocupa el dato. Notas del Instructor: La lámina es auto explicativa. Lea y discuta cada tópico. Destaque que un dato tiene un nombre que lo identifica y ese nombre no es más que una forma de referenciar la dirección 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 características: 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 operación. Palabras de enlace: Estudiaremos a continuación los diferentes tipos de datos.

21 Tipo de Dato El tipo de dato es una definición que identifica los valores válidos para un conjunto de datos y las operaciones que sobre ellos se pueden realizar. Normalmente se puede establecer una relación de orden sobre los datos de naturaleza escalar o con valores determinísticos. Cada tipo de dato tiene una representación en el computador. Para cada tipo de dato el computador reserva una cantidad de memoria para almacenarlo Todo, absolutamente todo, en la memoria de un computador se representa por medio de código binario. Notas del Instructor: La lámina es auto explicativa. Lea cuidadosamente cada ítem y discútalo con los estudiantes. Palabras de enlace: Veamos a la clasificación de los tipos de datos.

22 Clasificación de los Tipo de Dato
Los tipos de datos se clasifican en: Primitivos: tipos básicos o simples predefinidos en el sistema. Pueden ser numérico, lógico o carácter. Definidos por el usuario: tipos de datos complejos definidos por el programador. Notas del Instructor: La lámina es auto explicativa. Lea cada ítem y continúe a la próxima lámina. Palabras de enlace: Veamos a continuación los tipos de datos primitivos.

23 Tipo de Dato Primitivo Numérico
Los tipos primitivos numéricos más importantes son: Entero: es un subconjunto finito del conjunto matemático de los números enteros. No tiene parte decimal. Real: es un subconjunto finito del conjunto matemático de los números reales, tienen signo y parte decimal. Notas del Instructor: La lámina es auto explicativa. Explique cada uno de los ítems. Pídale a los estudiantes ejemplos sobre los tipos de datos primitivos numéricos. Palabras de enlace: Estudiemos a continuación los tipos de datos primitivos lógicos o booleanos.

24 Tipo de Dato Primitivo Lógico o Booleano
El tipo primitivo lógico o booleno: Es aquel que sólo puede tomar uno de los dos valores, verdadero o falso (1 ó 0). Las operaciones lógicas retornan un valor lógico. Notas del Instructor: La lámina es auto explicativa. Explique cada uno de los ítems. Pídale a los estudiantes ejemplos sobre los tipos de datos primitivos lógicos. Palabras de enlace: Estudiemos a continuación los tipos de datos primitivos carácter.

25 Tipo de Dato Caracter El tipo de dato primitivo carácter:
Es el conjunto finito y ordenado de caracteres que reconoce la computadora: letras, dígitos, caracteres especiales, código ASCII y UNICODE. Los valores usualmente se representan dentro de un par de comillas simples. Se puede usar el código del carácter o su posición dentro del conjunto de caracteres válidos que se esté usando. Notas del Instructor: La lámina es auto explicativa. Explique cada uno de los ítems. Pídale a los estudiantes ejemplos sobre los tipos de datos primitivos carácter. Palabras de enlace: Estudiemos a continuación las Constantes y Variables.

26 Tipos de Datos El tipo de dato numérico entero es un subconjunto finito de los números enteros del mundo real. Pueden ser positivos o negativos Con los tipos enteros pueden utilizarse los calificadores signed y unsigned. Estos calificadores indican si el número 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 Dato Descripción Número de bytes típico Rango signed short Entero corto 2 a 32767 unsigned short Entero corto sin signo 0 a 65535 signed int Entero 4 unsigned int Entero sin signo 0 a  signed long Entero largo unsigned long Entero largo sin signo signed char Carácter 1 -128 a 127 unsigned char Carácter sin signo 0 a 255 Tipo de Dato Descripción Número de bytes típico Rango short Entero corto 2 a 32767 int Entero 4 long Entero largo char Carácter 1 -128 a 127

27 Tipo de datos Lógicos o boléanos
Ejemplo: Nacionalidad = “Venezo- lano” (S/N)? Carácter o Char Su valor lo comprenden todos los caracteres alfabé- ticos, mayúsculas y minúsculas (A – Z), numéricos (0 – 9) y símbolos especiales Carácter String o cadena Su valor esta representado por un conjunto de ca- racteres. “Abril” “Reporte Anual de Fallas Técnicas” “1º de mayo, Día Tipo de datos Lógicos o boléanos Son aquellos datos cuyos únicos valores sólo 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.

28 Tipos de datos numéricos reales
Tipo de Dato Descripción Númer o de bytes típico Rango float Real (Número en coma flotante) 4 Positivos: 3.4E-38 a 3.4E38 Negativos: -3.4E-38 a -3.4E38 double Real doble(Núme ro en coma flotante de doble precisión) 8 Positivos: 1.7E-308 a 1.7E308 Negativos: -1.7E- 308 a -1.7E308 long double Real doble largo 10 Positivos: 3.4E a 1.1E4932 Negativos: -3.4E a -1.1E4932 Tipos de datos numéricos reales El tipo de dato numérico real es un subconjunto finito de los números reales. Pueden ser positivos o negativos.

29 Constantes y Variables
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 ejecución del programa o corrida del algoritmo. Variables: Son instancias de un tipo de dato, cuyo valor puede cambiar durante la ejecución del programa o corrida del algoritmo. No varía su nombre y su tipo. Acumuladoras Contadoras Notas del Instructor: La lámina es auto explicativa. Lea cada ítem de la lámina. Resalte cada la diferencia de cada uno. Ejemplifique el uso de las constantes y de las variables. Palabras de enlace: Profundizaremos a continuación el concepto de variables.

30 Variables Las 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 basándose en ciertas reglas El nombre, por lo general, tiene que empezar por una letra, el tamaño 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. Notas del Instructor: Lea cuidadosamente cada tópico y discútalo. Resalte que cada lenguaje de programación tienen sus propias reglas para la declaración de las variables. Palabras de enlace: Estudiaremos las constantes.

31 Constantes Las 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 ejecución del programa. El tipo de dato de la constante se especifica o no en la declaración dependiendo del lenguaje. Ejemplo de definición de una constante: Const PI=3,1416 La 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. Notas del Instructor: Lea cuidadosamente cada tópico y discútalo con los estudiantes. Resalte que el valor de la constante no puede ser cambiado en la ejecución del programa. En la gran mayoría de los lenguajes de programación se debe inicializa las constantes al momento de su declaración. Palabras de enlace: Estudiaremos la relación entre variables y constantes en memoria.

32 Variables y Constantes en la Memoria
Cuando el compilador consigue una declaración de una variable o una constante con nombre, automáticamente reserva en memoria espacio para guardarla. El espacio reservado en memoria depende del tipo de dato de la variable o constante. En esa ubicación 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 ubicación de memoria. Notas del Instructor: Lea cuidadosamente cada tópico y discútalo 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 continuación las expresiones.

33 Expresiones: Tipos y Operadores
Una expresión es una combinación de constantes, variables, signos de operación, paréntesis y nombres especiales de funciones estándares, con un sentido unívoco y definido. La evaluación de una expresión da como resultado un único valor. Toda expresión tiene asociado un tipo que se corresponde con el tipo del valor que devuelve la expresión cuando se evalúa. Existen dos tipos de expresiones: Numéricas. Lógicas. Notas del Instructor: Lea cuidadosamente cada tópico y discútalo con los estudiantes. Palabras de enlace: A continuación estudiaremos las expresiones numéricas y operadores aritméticos.

34 Expresiones Numéricas: Operadores Aritméticos
Las expresiones numéricas son una combinación de variables y constantes numéricas con operadores aritméticos, que al evaluarse devuelven un valor numérico. Los operadores aritméticos se utilizan en las expresiones numéricas. Algunos de los operadores aritméticos más usados son: + Suma - Resta * Multiplicación / División Notas del Instructor: Lea cuidadosamente cada tópico y discútalo con los estudiantes. Ejemplifique el uso de los operadores aritméticos más comunes. Palabras de enlace: A continuación veremos otros operadores aritméticos.

35 Otros Operadores Aritméticos
Otros operadores aritméticos soportados en algunos lenguajes de programación son: Resto: devuelve el resto de una división entera. División entera: devuelve el cociente de una división 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 sitúa en medio de ambos operandos. Notas del Instructor: Lea cuidadosamente cada tópico y discútalo 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 próxima lámina se estudiarán los operadores unarios, los cuales solo requieren de un operador. Palabras de enlace: A continuación veremos los operadores unarios.

36 Operadores Unarios Los operadores unarios son un tipo de operador que sólo necesitan de un operando. Algunos de los operadores unarios más 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. Notas del Instructor: Lea cuidadosamente cada tópico y discútalo con los estudiantes. Ejemplifique cada ítem con la ayuda del manual del estudiante. Palabras de enlace: A continuación veremos las reglas de precedencia.

37 Evaluación de Expresiones
El resultado que retorna de la evaluación de una expresión depende del orden en que se evalúen los operadores. Ejemplo: Sea la siguiente expresión aritmética: * 2 + 3 Si se evalúa en el orden de aparición de los operadores : (((2 + 3) * 2) + 3) El resultado = 13 Si se evalúa primero la suma (+) y luego la multiplicación (*): (2 + 3) * (2 + 3) El resultado = 25 Si se evalúa primero la multiplicación y luego la suma: 2 + (3 * 2) El resultado = 11 Notas del Instructor: Explique a través de los ejemplos planteados que el orden de precedencia nos permite evaluar los operadores aritméticos en un orden predeterminado resolviendo la problemática planteada en los ejemplos. Palabras de enlace: continuemos viendo más ejemplos sobre las reglas de precedencia .

38 Reglas de Precedencia en las Expresiones
Para evaluar las expresiones, cada operador tiene una prioridad o regla de precedencia para su evaluación dentro de la expresión. Cada lenguaje puede establecer sus propias reglas de prioridad o precedencia de operadores. El orden de precedencia más usado para los operadores aritméticos básicos, es: ^ 2- *, /, div y mod y – Se evalúa 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 paréntesis () para cambiar el orden en que se evalúan los operadores de una expresión aritmética. Notas del Instructor: Lea cuidadosamente cada uno de los ítems de esta lámina. Explique la función de los paréntesis en las reglas de precedencia. El uso de los paréntesis fuerza la realización de la operación contenida dentro de ellos, pudiendo alterar el resultado. Ej. 3+5*4=23 (3+5)*4=32 Como vemos en el primer caso, la multiplicación tiene precedencia sobre la suma, por lo tanto primero se multiplica y luego se suma, el resultado es 23. Con la aplicación de paréntesis se fuerza la suma y su resultado luego es multiplicado, dando como resultado 32. Lea cuidadosamente cada ítem de la lámina. Resalte que cuando se presenta dos operaciones con la misma precedencia se utiliza la regla de la asociatividad por la izquierda, es decir, se evalúa primero la operación más a la izquierda Palabras de enlace: Abordaremos a continuación las expresiones lógicas.

39 Expresiones Lógicas: Operadores Relacionales y Lógicos
Una expresión lógica es aquella que sólo puede devolver uno de dos valores: Verdadero o Falso. Los operadores que pueden aparecer en una expresión lógica son de dos tipos: lógicos o relacionales. Los operadores lógicos sólo trabajan sobre expresiones o datos que retornan valores booleanos. Los operadores relacionales trabajan con expresiones numéricas para realizar comparaciones que retornan un valor booleano. Las expresiones combinan tanto los operadores lógicos como relacionales, se evalúa más de una condición o relación por medio los de operadores lógicos Notas del Instructor: Lea cuidadosamente cada ítem de la lámina. Resalte que las expresiones lógicas son aquellas que devuelven valores verdadero / falso. Palabras de enlace: A continuación los operadores relacionales y lógicos.

40 Operadores Relacionales
Los operadores relacionales más utilizados son: < menor que > mayor que = igualdad (en C/C++: ==) <> diferente (en C/C++: !=)  menor o igual que  mayor o igual que Notas del Instructor: La lámina es auto explicativa. Lea cuidadosamente cada tópico y discútalo. Destaque que la simbología utilizada en la lámina puede variar de acuerdo con el lenguaje de programación. Esta simbología es referencial. Palabras de enlace: A continuación un ejercicio práctico de operadores relacionales.

41 Ejercicio sobre Expresiones Lógicas
Evalúe las siguientes expresiones si se le asigna a: la variable x el valor de 2 la variable y el valor de 4 1. x == y 2. x <> y 3. y > x 4. x >= y Notas del Instructor: La lámina es auto explicativa. Con la ayuda de los estudiantes, resuelva los ejercicios planteados. Palabras de enlace: A continuación estudiaremos los operadores lógicos.

42 Operadores Lógicos Los operadores lógicos se utilizan para evaluar más de una condición al mismo tiempo. Los operadores lógicos más utilizados son: Y (and, &&) O (or, !!) No (not, ~, !) O exclusivo (xor, ^) El “No” es un operador unario todos los demás son operadores binarios. Notas del Instructor: La lámina es auto explicativa. Lea cuidadosamente cada tópico y discútalo. Resalte que los operadores Y, O y O Exclusivo son Binarios. El No es unario. Palabras de enlace: A continuación veremos la Tabla de la Verdad.

43 Funciones Incorporadas
Las funciones incorporadas son funciones que se incorporan al lenguaje y que son diferentes de las operaciones básicas. Se consideran estándar en la mayoría de herramientas y lenguajes de programación. Son dependientes del lenguaje y normalmente se encuentran en librerías externas que se pueden incluir en un programa. Las librerías más comunes son las librerías de soporte matemático 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 programación. Notas del Instructor: La lámina es auto explicativa. Lea cuidadosamente cada tópico y discútalo junto a los estudiantes. Aclare que cada lenguaje de programación tiene sus propias librerías de funciones que le dan al lenguaje flexibilidad y poder. Palabras de enlace: A continuación un ejemplo de las funciones incorporadas en diferentes lenguajes de programación

44 Uso de las Funciones Incorporadas
Import java.io.*; import Java #include <iostream> include C y C++ use conio; use Pascal Ejemplo Sentencia Lenguaje Notas del Instructor: Explique el ejemplo suministrado, haciendo la analogía entre los diferentes lenguajes de programación mostrado. Recuerde que lo importante es destacar que cada lenguaje de programación tiene su propia forma de usar las funciones incorporadas. Palabras de enlace: A continuación estudiaremos los operadores de asignación.

45 Operación de Asignación
La operación de asignación consiste en atribuir un valor a una variable. El valor asignado es una expresión, una constante u otra variable var = Math.sin(90.0); = Java var = 5 + 3; C y C++ var := 5 + 3; := Pascal Ejemplo Operador Lenguaje Notas del Instructor: La lámina es auto explicativa. Explique a los estudiantes como cada lenguaje de programación tiene su propia sintaxis para la operación de asignación. Apóyese en la lámina actual. Palabras de enlace: A continuación profundizaremos en las operaciones de asignación. Var: representa la variable a la que se le asigna el valor dado en la expresión a la derecha del operador de asignación.

46 Fases de la Operación de Asignación
La operación de asignación se realiza en 2 fases: Se evalúa la expresión de la parte derecha de la asignación y se obtiene un único valor. Se asigna ese valor a la variable de la parte izquierda. En la parte izquierda de la operación de asignación sólo puede haber una variable y al asignarle el valor pierde el valor anterior. Si la variable de la parte izquierda participa en la expresión, se evalúa primero la expresión antes de realizar la asignación. Ejemplo x = x + 1. El tipo de dato resultante después de evaluar la expresión (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 operación. Notas del Instructor: Lea cuidadosamente cada tópico y discútalo con los estudiantes. Explique como se realiza proceso de asignación cuando la misma variable que recibe el valor de la operación, participa en la expresión. Deje claro que primero se evalúa la expresión y luego se asigna el valor a la variable. Palabras de enlace: Veamos a continuación unas recomendaciones para programar. .

47 Recomendaciones al Programar
Para minimizar la ocurrencia de errores al programar se recomienda: Reutilizar código bueno. No asumir los datos de entrada como válidos. No asumir que los datos de entrada están en la secuencia correcta. Diseñar los tamaños de los campos de datos de modo que puedan contener en el campo el valor actual más grande. Usar comentarios en los programas. Desarrollar programas legibles y fáciles de entender. Notas del Instructor: La lámina es auto explicativa. Lea cuidadosamente cada tópico y discútalo con los estudiantes. Desarrolle el contenido de cada ítem de acuerdo a lo siguiente: Reutilización de código bueno. - Puede existir un código ya desarrollado y probado para resolver totalmente o parte del problema que pueda utilizarse. Esto facilita la solución del problema y minimiza el tiempo de desarrollo. - Al reutilizar código no se desperdicia tiempo depurando una parte de la lógica que se sabe que funciona. No asuma los datos de entrada como válidos. - Si no se tiene ningún control sobre la fuente de los datos, no se tiene ningún control sobre la calidad de los datos. Nunca asuma que los datos de entrada están en la secuencia correcta. - Siempre verifique la secuencia. - Es muy fácil para alguien proporcionar un archivo erróneo. Siempre diseñe los tamaños de los campos de datos de modo que puedan contener en el campo el valor actual más grande. Esto evita tener que rediseñar archivos o segmentos de la base de datos. Use comentarios libremente. Explique cualquier cosa que pueda confundir a un futuro lector. También señale cualquier área que pueda estar sujeta a cambios. En general, haga los programas legibles y fáciles de entender. Use nombres adecuados para las variables y que sean auto descriptivos. Use sangrías y alineación y suficientes espacios donde sean necesarios (líneas blancas y columnas). Palabras de enlace: A continuación un Resumen de la Unidad.


Descargar ppt "ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I"

Presentaciones similares


Anuncios Google