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

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

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

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

Metodología de la Programación

Elementos Básicos

M. en C. José Andrés Vázquez Flores

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

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.

Definiciones

2

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

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).

Arquitectura básica

3

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

Arquitectura básica

4

Memoria

Programa

Área de Datos10101010101010101010101100011010

1010110101Área de Código

0101101010101010110001101011

Dispositivos de E/S

Registros

ALU Unidad de Control

Buses del Sistema

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

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).

Datos

5

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

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.

Tipos de datos

6

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

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.

Constantes y variables

7

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

Á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.

8

Constantes y variables

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

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.

Operadores y expresiones

9

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

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.

Prioridad

10

Operador Significado

^ Exponenciación

* Multiplicación

/ División

Div División entera

Mod Resto

+ Suma

- Resta

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

Operadores relacionales:– Estos operadores actúan sobre valores

numéricos y sobre valores tipo cadenas. El resultado es un valor lógico.

Prioridad

11

Significado Símbolo

Igual que =

Menor que <

Mayor que >

Menor o igual que <=

Mayor o igual que >=

Diferente <>,

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

Operadores Lógicos:– Estos operadores actúan sobre valores

lógicos, es decir, entre el valor verdadero y el valor falso.

Prioridad

12

A B A and B A or B A xor B

T T T T F

T F F T T

F T F T T

F F F F F

A not A

T F

F T

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

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.

Prioridad

13

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

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.

Asignación de variables

14

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

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.

15

Asignación de variables

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

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

Expresiones

16

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

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 )

Expresiones

17

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

1) Obtener los resultados de las siguientes expresiones:

a) 7*(8-4)/2*5+4

b) 7*8-4/2*(5+4)

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) 5.25 + 8.5 / 5 - 3.2 * 7.25

Ejercicio

18

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

Herramientas de Representación de Algoritmos para la

“Resolución de Problemas”

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

20

Ingeniero en computación

Persona que resuelve problemas computacionales

DesarrolloConectividad

Soporte

Diseño

Consultoría

Otros…

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

21

Proceso de programarFase de RESOLUCIÓN de PROBLEMAS Fase de IMPLEMENTACIÓN

Fase de MANTENIMIENTO Tom

ad

o d

e:

Pro

gra

mm

ing

an

d P

rob

lem

Solv

ing

wit

h Java.

Nell

Dale

Ch

ap

1

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

22

¿Qué es un problema?

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

23

¿Qué es un problema?Un

Problema

es 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

meta

pero desconoce el

Tom

ad

o d

e L

ibro

5:

Est

rate

gía

s d

e r

eso

luci

ón

de p

rob

lem

as

– Li

ssete

Pog

gio

li

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

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:

24

Solución

Estado inicial

Solución o meta

Problema

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

Componentes de los problemas

25

Losproblemas

tienen

componentes

alcanzar

metas

analizar

son lo que se

las

desea

datos

los

elementos

son

para

situación problema

la

camino

restricciones

las

factores

son

que limita

n

solución

la

el

para alcanzar

resolver

operaciones

las

procedimientos

son

para

problema

el

Tom

ad

o d

e L

ibro

5:

Est

rate

gía

s d

e r

eso

luci

ón

de p

rob

lem

as

– Li

ssete

Pog

gio

li

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

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 blusasLas 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

Ejemplo

26

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

¿ Qué es la Resolución de problemas?

27

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

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.

28

Resolución de problemas

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

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.

29

¿Qué es la resolución de problemas?

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

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

30

Resolución de problemas

Polya (1965) señala que un problema puede resolverse correctamente si se realizan las siguientes fases o etapas:

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

31

Técnicas para resolución de problemas

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

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

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

32

Actividad Colaborativa

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

Compartiendo la solución con todos

Explicar el proceso que siguieron para resolver el problema

33

Actividad grupal (plenaria)

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

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.

Resolución de problemas

34

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

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

35

Diseño de un Algoritmo

Diseño Descendente

Refinamiento por pasos

Herramientas de programación:

Diagramas de FlujoPseudocódigo

Pruebas de escritorio

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

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

1. INICIO

2. Situar escalera bajo el foco quemado.

3. Elegir un foco de reemplazo (de la misma potencia que el anterior).

4. Subir por la escalera hasta alcanzar el foco.

5. Girar el foco contra las manecillas del reloj hasta que esté suelto.

6. Ubicar el foco nuevo en el mismo lugar que el anterior.

7. Enroscar en el sentido de las manecillas del reloj hasta que quede apretado.

8. Bajar de la escalera.

9. FIN

Descripción Narrada

36

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

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.

Refinamiento por pasos

37

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

Algoritmo para determinar los números menores que 90 y múltiplos de 9.1. Inicio

2. Inicializar Num9

3. Mientras Num<903.1 Escribir Num.

3.2 Num Num+9

4. Fin

38

Refinamiento por pasos

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

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.

Herramientas de programación

39

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

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.

Pseudocódigo

40

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

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.

41

Pseudocódigo

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

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

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

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

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

Sentencias de ControlLas 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 Y and X entonces

Si (X+4)<=10

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

CondicionalSe 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.

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

Condicional simpleSe 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+10Fin si

Si (X=10) entonces X X+10

Escribe XFin Si

Con una sentencia Con dos sentencias

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

Condicional dobleSe 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+1Fin Si

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

Condicional múltiplePermite 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: XX+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: XX+100 otro : Escribe “opción no válida” FinSegun

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

Sentencias de Repetición

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

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.

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

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.

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

57

Para

Sintaxis

Para <variable> ← <valor_inicial> hasta <valor_final> [ incremento <valor_incremento> ] hacer

<bloque_de_instrucciones>

fin_Para

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

58

Ejemplo: Imprime los primeros 10 números naturales

Nombre del algoritmo: Numeros_del_1_al_10Variables: contador Tipo entero inicio    para contador ← 1 hasta 10 incremento 1 hacer       escribir( contador )    fin_para fin

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

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.

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

61

Mientras

mientras ( <expresión_lógica> )

<bloque_de_instrucciones>

fin_mientras

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

AREA PROGRAMACIÓN 62

Ejemplo: Escribe los primeros 10 números enteros

Nombre del algoritmo: Numeros_del_1_al_10Variables: contador Tipo entero inicio contador ← 1 /* Inicialización del contador */ mientras ( contador <= 10 ) /* Condición */ escribir( contador ) /* Salida */ contador ← contador + 1 /* Incremento */ fin_mientras fin

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

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.

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

65

Hacer Mientras

Hacer <bloque_de_instrucciones>

Mientras ( <expresión_lógica> )

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

66

Ejemplo: Escribe los primeros 10 números enteros

Nombre del algoritmo: Números_del_1_al_10Variables: contador Tipo entero inicio contador ← 1 /* Inicialización del contador */ hacer escribir ( contador ) /* Salida */ contador ← contador + 1 /* Incremento */ mientras ( contador <= 10 ) /* Condición */ fin