La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Metodología de la Programación

Presentaciones similares


Presentación del tema: "Metodología de la Programación"— Transcripción de la presentación:

1 Metodología de la Programación
Elementos Básicos M. en C. José Andrés Vázquez Flores

2 Definiciones Sistema: Conjunto de Unidades que colaboran entre si para realizar una función general y donde cada unidad efectúa un trabajo específico. Computadora: Sistema de Procesamiento de Información que recibe datos como entrada, los modifica (procesa) y produce resultados como salida.

3 Arquitectura básica El diseño básico operacional de un sistema de cómputo se conoce como arquitectura A. John Von Neumann (NVA), un pionero del diseño de la computadora. Un sistema típico de NVA tiene tres componentes: memoria, una unidad central de procesamiento (CPU) y dispositivos de entrada/salida (I/O).

4 Arquitectura básica Dispositivos de E/S Registros ALU
Memoria Programa Buses del Sistema Dispositivos de E/S Área de Datos Área de Código Registros ALU Unidad de Control

5 Datos El ser humano realiza los razonamientos a partir de información adquirida que está almacenada en su cerebro. La computadora tiene que almacenar en su interior toda la información necesaria para realizar el proceso automático que le pedimos que ejecute. La parte de la computadora que realiza esta función es la Memoria principal, interna o central. Es la denominada memoria R.A.M. (memoria de acceso directo).

6 Tipos de datos Los tipos de datos se agrupan en tipos simples o bien en tipos estructurados, nosotros vamos a empezar viendo los tipos simples de datos. Los valores que se pueden almacenar en memoria vamos a dividirlos en los siguientes tipos: Numéricos (enteros y reales). Lógicos. Carácter. Cadenas.

7 Constantes y variables
En una computadora se pueden distinguir ciertos valores que no cambian durante la ejecución de un proceso, a estos valores se les denominan constantes. De la misma forma existen valores que van cambiando durante el proceso y a estos se les denominan variables. Las variables se identifican por un nombre que se le asigna y el tipo que indica los valores que puede contener para un uso correcto de la variable.

8 Constantes y variables
Área de almacenamiento, de tamaño fijo y que sirve para guardar un tipo de dato específico. Las variables tiene dos elementos: El Nombre de la variable y el Contenido de la variable. El nombre de la variable sirve para distinguirla de otras variables y el contenido se refiere al dato que es guardado en ese lugar. La variable puede almacenar un sólo tipo de dato como puede ser datos enteros, reales, booleanos, caracteres, etc.

9 Operadores y expresiones
Son los elementos que permiten indicar la realización de una operación entre determinados valores. La sintaxis de estas expresiones con operadores será siempre de la siguiente forma:  Expresión1 operador Expresión2 Cada expresión puede ser un solo valor, constante o variable, o una expresión como conjunto de valores relacionados mediante operadores, por lo que es necesario que existan unas reglas que indiquen en que orden deben efectuarse las operaciones.

10 Prioridad Operadores aritméticos:
Esta relación de operadores aritméticos es la más usual, pero siempre es conveniente consultar el manual del lenguaje de programación que se utilice en cada momento. Operador Significado ^ Exponenciación * Multiplicación / División Div División entera Mod Resto + Suma - Resta

11 Prioridad Operadores relacionales:
Estos operadores actúan sobre valores numéricos y sobre valores tipo cadenas. El resultado es un valor lógico. Significado Símbolo Igual que = Menor que < Mayor que > Menor o igual que <= Mayor o igual que >= Diferente <>, 

12 Prioridad Operadores Lógicos:
Estos operadores actúan sobre valores lógicos, es decir, entre el valor verdadero y el valor falso. A not A T F A B A and B A or B A xor B T F

13 Prioridad Nivel de prioridad de los operadores.
Las dos reglas principales para evaluar expresiones son: Se empieza a evaluar por la izquierda. Los paréntesis siempre tienen la mayor prioridad, teniendo en cuenta que pueden estar anidados, en cuyo caso se evaluará primero el más interno.

14 Asignación de variables
Es una de las acciones básicas que se puede ejecutar en la computadora. Una variable está relacionada con posiciones de memoria que van a contener valores que pueden cambiar durante la ejecución del proceso. Por tanto es necesario tener una acción que permita dar valores adecuados a cada variable para obtener al final del proceso los resultados correctos.

15 Asignación de variables
Se debe tener en cuenta el tipo de variable para no cometer errores a la hora de la asignación. La asignación de un valor a una variable supone una escritura en memoria y por tanto una operación destructiva del valor que tuviera la variable anteriormente. El símbolo utilizado para indicar esta acción de asignación será “”, de forma que la operación se señalará de la siguiente manera: variable  valor o expresión.

16 Expresiones Una expresión es una combinación de operandos (variables), constantes y operadores. La expresión debe estar bien escrita, es decir, siguiendo las reglas de los operadores. Las expresiones se pueden dividir en expresiones aritméticas o expresiones lógicas. Ejemplos de expresiones aritméticas: 25 (50 * 2) + 10 Salario * 0.15

17 Expresiones Ejemplos de proposiciones con expresiones aritméticas:
Base  (500 * 2) + 100 Salario  DiasTrabajados * SalarioDiario Impuesto  Salario * 0.15  Ejemplos de proposiciones con expresiones lógicas: Mayor  a > b Menor  ( a < b ) and ( b < c )

18 Ejercicio 1) Obtener los resultados de las siguientes expresiones:
c) (“abc” + “de”) > “abcde” d) 7>6 AND 5=5 OR 4<0 e) 2^3+6/3-4^2 f) (2^(3+6/3)-4)^2 g) NOT (5<6 OR 7=0) AND Falso h) / * 7.25

19 Herramientas de Representación de Algoritmos para la
“Resolución de Problemas”

20  Ingeniero en computación
Desarrollo Conectividad Diseño Soporte Consultoría Otros… Ingeniero en computación Persona que resuelve problemas computacionales

21 Proceso de programar Fase de RESOLUCIÓN de PROBLEMAS
Fase de IMPLEMENTACIÓN Tomado de: Programming and Problem Solving with Java. Nell Dale Chap 1 Fase de MANTENIMIENTO

22 ¿Qué es un problema?

23 ¿Qué es un problema? Un es una en la cual un utilizando una
situación en la cual un individuo actúa meta utilizando una estrategia para alcanzar una desea hacer algo curso de acción para alcanzar la pero desconoce el Tomado de Libro 5: Estrategías de resolución de problemas – Lissete Poggioli

24 Solución Cuando hablamos de un problema y nos referimos a la meta o a lograr lo que se quiere, nos estamos refiriendo a la solución de dicho problema. Una solución esta asociada con: Estado inicial Solución o meta Problema

25 Componentes de los problemas
tienen componentes alcanzar metas analizar son lo que se las desea datos los elementos son para situación problema la camino restricciones factores que limitan solución el para alcanzar resolver operaciones procedimientos problema Tomado de Libro 5: Estrategías de resolución de problemas – Lissete Poggioli

26 Ejemplo Consideremos el siguiente ejemplo:
“Anita tiene una muñeca y quiere vestirla con pantalón y blusa. Tiene cuatro pantalones: rojo, blanco, azul y negro y tiene tres blusas: verde, amarillo y rosado. Ella quiere hacer diferentes combinaciones con todos los pantalones y las blusas verde y rosada. ¿Cuántas combinaciones diferentes puede hacer?” ¿Cúal es la Meta(s)? Consiste en saber cuántas combinaciones diferentes puede hacer Anita con los pantalones y las blusas ¿Cuáles son los datos? 4 pantalones y 3 blusas Las restricciones ? Anita solo quiere utilizar 2 de las 3 blusas: la verde y rosada. En consecuencia no todas las blusas van a ser consideradas para las combinaciones Operaciones o métodos ? Utilizar las operaciones requeridas para obtener el número de combinaciones

27 ¿ Qué es la Resolución de problemas?

28 Resolución de problemas
Diariamente resolvemos problemas, la mayoría de las veces, sin darnos cuenta del proceso que realizamos. Algunos problemas están claramente definidos -como los que mencionamos anteriormente- pero en la vida real, los procesos no son tan simples. La mayoría de las veces, tendremos que definir el problema nosotros mismos y decidir con que información vamos a trabajar y que resultados debemos obtener.

29 ¿Qué es la resolución de problemas?
Según Dijkstra (1991), la resolución de problemas es un proceso cognoscitivo complejo que involucra conocimiento almacenado en la memoria a corto y a largo plazo.

30 Resolución de problemas
Polya (1965) señala que un problema puede resolverse correctamente si se realizan las siguientes fases o etapas: Comprender el problema (análisis y especificación) Concebir un plan para llegar a la solución (estrategia) Ejecutar el plan Verificar el procedimiento y comprobar los resultados

31 Técnicas para resolución de problemas
Hacer preguntas Dividir y Vencer Por analogía Buscar cosas que son familiares Análisis de medios y fines Bloques de construcción Combinar soluciones

32 Actividad Colaborativa
En equipos de 8 integrantes, tienen 10 minutos para resolver el siguiente problema Descripción: Obtener un lista de los integrantes del equipo y los diferentes lugares de procedencia de sus compañeros y el promedio de edad. Criterios para el éxito: Cada equipo deberá haber obtenido la información solicitada Responsabilidad Individual: Cualquier integrante del equipo podrá ser seleccionado al azar para explicar la solución al frente

33 Actividad grupal (plenaria)
Compartiendo la solución con todos Explicar el proceso que siguieron para resolver el problema

34 Resolución de problemas
Fases de Resolución del Problema: Análisis del problema. Consiste en la definición concisa a fin de que sea analizado en todo detalle. Diseño o desarrollo del algoritmo. Es el procedimiento, paso a paso, para la solucionar el problema dado. Resolución del algoritmo por computadora. Es la codificación del algoritmo en algún lenguaje de programación.

35 Diseño de un algoritmo Las Fases para el Diseño del Algoritmo son:
Diseño Descendente (Algoritmo Narrado). Refinamiento por pasos (Algoritmo detallado). Herramientas de Programación (Representación del Algoritmo en una herramienta). Diseño de un Algoritmo Diseño Descendente Refinamiento por pasos Herramientas de programación: Diagramas de Flujo Pseudocódigo Pruebas de escritorio

36 Descripción Narrada Esta forma de describir un algoritmo es caracterizada porque sigue un proceso de ejecución común y lógico, describiendo textualmente paso a paso cada una de las actividades a realizar dentro de una actividad determinada. Ejemplo: Algoritmo para cambiar un foco fundido INICIO Situar escalera bajo el foco quemado. Elegir un foco de reemplazo (de la misma potencia que el anterior). Subir por la escalera hasta alcanzar el foco. Girar el foco contra las manecillas del reloj hasta que esté suelto. Ubicar el foco nuevo en el mismo lugar que el anterior. Enroscar en el sentido de las manecillas del reloj hasta que quede apretado. Bajar de la escalera. FIN

37 Refinamiento por pasos
En esta fase consiste en descomponer en pasos más simples cada uno de los pasos del algoritmo narrado, donde se deberá especificar las acciones en forma detalladas y sus datos de forma precisa. Características del Refinamiento de pasos Se detallan acciones de selección, de repetición. Otra característica es el uso de indentación (sangrado o justificación del texto) para escribir los pasos del algoritmo. Además se pueden establecer la identificación de las entradas, salidas, constantes y variables previamente definidas.

38 Refinamiento por pasos
Algoritmo para determinar los números menores que 90 y múltiplos de 9. Inicio Inicializar Num9 Mientras Num<90 3.1 Escribir Num. 3.2 Num Num+9 Fin

39 Herramientas de programación
Para representar un algoritmo se debe utilizar algún método que permita independizar dicho algoritmo del lenguaje de programación elegido. Permitiendo su representación y su transformación a un programa para su codificación: Lenguaje de especificación de algoritmos: Pseudocódigo. Su representación gráfica puede ser utilizando: Diagramas de flujo.

40 Pseudocódigo Es una herramienta de programación en la que las instrucciones se escriben en palabras similares al inglés o español, que facilitan tanto la escritura como la lectura de programas. Las palabras reservadas comúnmente utilizadas en pseudocódigo son: Inicio, Fin, Leer, Escribir, Si, Entonces, Sino, FinSi, Según, FinSegun, Mientras, Hacer, FinMientras, Repetir, HastaQue, Para, FinPara, Desde, entre otras.

41 Pseudocódigo Características del pseudocódigo:
Mantiene una indentación o sangría adecuada para facilitar la identificación de los elementos que lo componen. Permite la declaración de los datos (constantes y/o variables) manipulados por el algoritmo. Dispone de un conjunto pequeño de palabras reservadas para expresar las acciones del algoritmo. Supera las dos principales desventajas del diagrama de flujo: lento de crear y difícil de modificar. Permite el seguimiento de la lógica de un algoritmo.

42 Tipos de Estructuras (Sentencias)
Secuenciales Decisión (Control) Condicional Simple Condicional Doble Condicional Múltiple Repetición Ciclo Para (con contador) Ciclos condicionales mientras hacer mientras

43 Sentencias Secuenciales
Las estructuras de secuencia también son conocidas como sentencias o proposiciones. Una sentencia o proposición es una unidad completa, ejecutable en sí misma. La ejecución de estas sentencias se realiza de manera secuencial, es decir, cada una a continuación de la anterior, empezando por la primera y terminando con la última. R X+Y Z Z+Y Escribe R Lee Y

44 Sentencias de Control Las estructuras de control, también conocidas como estructuras de decisión, controlan el flujo de ejecución de un programa. Permiten seleccionar la próxima proposición a ejecutarse dependiendo del valor de una condición (cierta o falsa). Para construir esta condición se usarán las expresiones lógicas o relacionales. Si (X+4)<=10 Si Y and X entonces

45 Condicional Se evalúa la condición, si la condición es cierta se realiza la proposición, y si es falsa entonces no se realiza la proposición o se realiza otro bloque dependiendo si es simple o doble.

46 Condicional simple Si (X=10) entonces Si (X=10) entonces X X+10
Se evalúa la condición, si la condición es cierta se realiza proposición, y si es falsa entonces no se realiza la proposición. Si (X=10) entonces X X+10 Escribe X Fin Si Si (X=10) entonces X X+10 Fin si Con dos sentencias Con una sentencia

47 Condicional doble Si (X=10) entonces X X+10 Si no X X+1 Fin Si
Se evalúa la condición, si la condición es cierta se realizará proposición1 y si condición es falsa se realizará la proposición 2. Si (X=10) entonces X X+10 Si no X X+1 Fin Si

48 Condicional múltiple Si op igual a Según sea op 1: X X+1
Permite realizar una ramificación múltiple, ejecutando una entre varias partes del programa, según se cumpla una entre n condiciones. Selector es una variable que puede tomar solamente alguno de los valores: valor 1, valor 2, valor 3,...valor n. Dependiendo del valor que tome selector, se ejecutará alguna de las proposiciones. Pero si selector NO toma alguno de los valores, valor 1 hasta valor n, entonces ejecutará la proposición por omisión que es la proposición x. Si op igual a 1: X X+1 2: X X+10 3: X X*3 4: XX+100 otro: Escribe “opción no válida” FinSi Según sea op caso 1: X X+1 caso 2: X X+10 caso 3: X X*3 caso 4: XX+100 otro : Escribe “opción no válida” FinSegun

49 Sentencias de Repetición

50 Sentencias de Repetición
Las estructuras de repetición, permiten la ejecución de una lista o secuencia de instrucciones en varias ocasiones. El número de veces que el bloque de instrucciones se ejecutará se puede especificar de manera explícita, o a través de una condición lógica que indica cuándo se ejecuta de nuevo y cuándo no. A cada ejecución del bloque de instrucciones se le conoce como una iteración.

51 Mecanismos de iteración
1. Para todos los valores de la serie. 2. Mientras se valida una condición. 3. Repetir- hasta que se satisfaga una condición.

52 PARA Es usado cuando se conoce de antemano, el número de veces que debe repetirse una instrucción o conjunto de ellas.

53 PARA Los valores de la serie deben ser asignados a una variable, la cual se denomina variable de control.

54 Variables contadoras Se usan para contar, por lo tanto deben ser de tipo entero. Ejemplo: Variable de control en un Ciclo Para.

55 Variables acumuladoras
La función de una variable acumuladora es almacenar valores numéricos que generalmente se suman (o multiplican) en cada iteración. La variable debe ser de tipo entero o real.

56 Variables bandera Utilizada dentro de la condición de un ciclo, para determinar cuándo un Ciclo se sigue iterando o cuando no. Debe ser de tipo booleano o entero.

57 Para Sintaxis Para <variable> ← <valor_inicial> hasta <valor_final> [ incremento <valor_incremento> ] hacer <bloque_de_instrucciones> fin_Para

58 Ejemplo: Imprime los primeros 10 números naturales
Nombre del algoritmo: Numeros_del_1_al_10 Variables: contador Tipo entero  inicio     para contador ← 1 hasta 10 incremento 1 hacer        escribir( contador )     fin_para  fin

59 Mientras Ejecuta un bloque de instrucciones, mientras una expresión lógica dada se cumpla.

60 Mientras Si la condición se cumple, el bloque se ejecuta, después, la condición se vuelve a evaluar. Si la condición se evalúa la primera vez como falsa, el bloque de instrucciones no será ejecutado.

61 Mientras mientras ( <expresión_lógica> )
<bloque_de_instrucciones> fin_mientras

62 Ejemplo: Escribe los primeros 10 números enteros
Nombre del algoritmo: Numeros_del_1_al_10 Variables: contador Tipo entero inicio contador ← 1 /* Inicialización del contador */ mientras ( contador <= 10 ) /* Condición */ escribir( contador ) /* Salida */ contador ← contador /* Incremento */ fin_mientras fin AREA PROGRAMACIÓN

63 Hacer..Mientras Se ejecuta el bloque de instrucciones y después se evalúa la condición. AREA PROGRAMACIÓN

64 Hacer..Mientras Si es verdadera, se vuelve a ejecutar el bloque de instrucciones. Y así sucesivamente, hasta que, la condición sea falsa. AREA PROGRAMACIÓN

65 Hacer Mientras Hacer <bloque_de_instrucciones>
Mientras ( <expresión_lógica> )

66 Ejemplo: Escribe los primeros 10 números enteros
Nombre del algoritmo: Números_del_1_al_10 Variables: contador Tipo entero inicio contador ← 1 /* Inicialización del contador */ hacer escribir ( contador ) /* Salida */ contador ← contador /* Incremento */ mientras ( contador <= 10 ) /* Condición */ fin


Descargar ppt "Metodología de la Programación"

Presentaciones similares


Anuncios Google