La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I UNIDAD 1:Introducción al Diseño de Algoritmos Ing. Nelwi Báez Msc.

Presentaciones similares


Presentación del tema: "ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I UNIDAD 1:Introducción al Diseño de Algoritmos Ing. Nelwi Báez Msc."— Transcripción de la presentación:

1 ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I UNIDAD 1:Introducción al Diseño de Algoritmos 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

3 Características de un Algoritmo Un algoritmo debe: Estar bien definido. Ser preciso. Finito.

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

5 Metodología para Diseñar Algoritmos Los pasos para resolver un problema son: 1)Análisis del problema. 2)Diseño del algoritmo. 3)Verificación del algoritmo.

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.

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

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

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.

10 Definiciones Básicas Lenguaje de Máquina. Lenguaje de Bajo Nivel: Ensamblador. Lenguaje de Alto Nivel. Compilar. Base de Datos. Sistema Operativo. Almacenamiento.

11 Definiciones Básicas: 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. Lenguaje de Máquina :

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.

16 Pasos de un Programa de Computadora Editor Compilador Programa Ejecutable Programa Fuente Lista de Programas

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.

18 Funcionamiento del Compilador / Enlazador Programa fuente Compilador Enlazador Programa Ejecutable Librerías de Programas Objeto Programa objeto

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.

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.

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.

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.

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.

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.

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.

26 Tipos de Datos Tipo de Dato Descripción Número de bytes típico Rango short Entero corto a intEntero a long Entero largo a charCarácter1-128 a 127 Tipo de DatoDescripción Número de bytes típico Rango signed shortEntero corto a unsigned short Entero corto sin signo 20 a signed intEntero a unsigned intEntero sin signo40 a signed longEntero largo a unsigned long Entero largo sin signo 40 a signed charCarácter1-128 a 127 unsigned char Carácter sin signo10 a 255 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;

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 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 DatoDescripció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-4932 a 1.1E4932 Negativos: -3.4E a -1.1E4932 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 Constantes: -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. -Variables: -Acumuladoras -Contadoras

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.

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.

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.

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.

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

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.

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.

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: * 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) + 3 El resultado = 11

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: 1- ^ 2- *, /, div y mod 3- + 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.

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

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

41 Ejercicio sobre Expresiones Lógicas Ejercicio: 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

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: 1.Y (and, &&) 2.O (or, !!) 3.No (not, ~, !) 4.O exclusivo (xor, ^) El No es un operador unario todos los demás son operadores binarios.

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.

44 Uso de las Funciones Incorporadas Import java.io.*;importJava #include includeC y C++ use conio;usePascal EjemploSentenciaLenguaje

45 Operación de Asignación var = Math.sin(90.0);=Java var = 5 + 3;=C y C++ var := 5 + 3;:=Pascal EjemploOperadorLenguaje 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. 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

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.

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.


Descargar ppt "ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I UNIDAD 1:Introducción al Diseño de Algoritmos Ing. Nelwi Báez Msc."

Presentaciones similares


Anuncios Google