Video Segundo Bimestre Metodologia Abierta

Post on 06-Jul-2015

766 views 4 download

description

Video de la presentación de la Materia de Metodología y Tecnologia de la Programacion I

Transcript of Video Segundo Bimestre Metodologia Abierta

1

Metodología y Tecnología de la Programación I

Asesoría Virtual – Segundo Bimestre

Ing. Danilo Jaramillo Hdjaramillo@utpl.edu.ec

2570-275 ext. 2637

2

Indicaciones

• Uso de sangrías.

• Utilizar comentarios para la documentación.

• Entender que es lo que se pide en los ejercicios de la evaluación presencial.

3

Introducción

• Mayor claridad para el desarrollo de algoritmos

• Desarrollo de programas mas complejos• Utilización de herramientas adicionales

• Nuevos enfoques … Programación orientada a objetos

4

Plan de ContenidosSEGUNDO BIMESTRE

Capítulos de Texto Base Páginas Horas

Capítulo 6. Programación Modular 205 – 238 12

Capítulo 7. Una introducción a las estructuras de datos 247 - 269 10

Capítulo 8. Recursividad 537 - 567 8

Capítulo 9. Introducción a la Programación Orientada a Objetos

575 - 608 10

Total 40

5

Cáp. 5. Programación Modular

• Propósito• Conceptos Generales

Propósito .Facilitar la comprensión del diseño modular para lograr el desarrollo de programas complejos de manera sencilla permitiendo la reutilización de fragmentos de un programa.

6

Cáp. 5. Programación Modular

• Conceptos Generales– Técnica divide y vencerás– Dividirlo en subprogramas– Diseño descendente– Partes son independientes entre si– Programa principal sub-programas– Cuando se invoca a una

función/procedimiento los pasos que están definidos se ejecutan y luego vuelven al módulo donde fue llamado.

7

AB

C

D

E

F

G

8

principal Procedimiento/función

Procedimiento/función

Procedimiento/función

Llamada procedimiento

Llamada procedimiento

Llamada procedimiento

Llamada procedimiento

Llamada procedimiento

9

Cáp. 5. Programación Modular

• Conceptos Generales– Funciones– Procedimientos

– Variables locales y globales – Parámetros por valor y por referencia

10

Cáp.. 5. Programación Modular

• Cada lenguaje de programación tiene sus propias funciones

• Funciones– Funciones definidas por el programador

– Devuelve un valor– Forma de Invocar a una función

• Z name_funcion()

• Si (name_funcion() == ?)• Parte de una expresion

11

• Funciones– Definición

Cáp.. 5. Programación Modular

Función nombre (parámetros) tipodedatosentencias…..devolver

finfuncion

12

Cáp. 5. Programación Modular

• Procedimientos– Pueden o no devolver valores– Ejecuta un proceso especifico

– Forma de Invocar un procedimiento• Nombre_procedimiento()

13 – hojas

• procedimientos– Definición

Cáp.. 5. Programación Modular

procedimiento nombre (parámetros)sentencias……

finfunc

14

Cáp. 5. Programación Modular

• Variables locales y globales

• Locales– Solo tiene valides dentro del modulo donde

son declaradas

• Globales– Se las puede utilizad en cualquier parte del

programa

15

principal Procedimiento/función

Procedimiento/función

Procedimiento/función

Llamada procedimiento

Llamada procedimiento

Llamada procedimiento

Entero numero

Presentar numero

numero = 25

Cáp. 5. Programación Modular

16

principal Procedimiento/función

Procedimiento/función

Llamada procedimiento

Llamada procedimiento

Llamada procedimiento

Entero numero

Presentar numero

Procedimiento/función

Numero = 25

Procedimiento/función

numero = 25Llamada procedimiento

Cáp. 5. Programación Modular

17

Cáp. 5. Programación Modular

• Parámetros por valor y por referencia

• Por valor– Si un parámetro es modificado su contenido

dentro del subprograma, al terminar el mismo mantendrá el valor con el que llego.

• Por referencia– Si un parámetro es modificado su contenido

dentro del subprograma, al terminar el mismo mantendrá el valor con el que se modifico.

18

InicioEntero SS 0Presentar suma(s)presentar s

fin

Leer numero1Leer numero2S numero1 + numero2Devolver S

finfunc

principal función suma (entero s) entero

Cáp. 5. Programación Modular

¿Qué valor se presenta en la llamada a la funcion?

¿Cuál es el valor de S ?

numero1 5

numero2 8

19

InicioEntero SS 0Presentar suma(s)presentar s

fin

Leer numero1Leer numero2S numero1 + numero2Devolver S

finfunc

principal función suma (entero var s) entero

Cáp. 5. Programación Modular

numero1 5

numero2 8¿Qué valor se presenta en la llamada a la función?

¿Cuál es el valor de S ?

20

Ejercicios

Inicio entero res

leer numerores factorial (numero)

fin

Funcion factorial (entero numero) enterof 1para (i 1 hasta numero)

f f * ifinparadevolver f

finfunc

21

Ejercicios

Inicio entero bas

entero expleer basleer expres potencia (bas,exp)

fin

Funcion potencia (entero bas, entero exp) entero

p 1para (i 1 hasta exp)

p p * basfinparadevolver f

finfunc

22

EjerciciosInicio entero num

leer numbin binario(num)oct octal(num)presentar “numero en binario es”, binpresentar “numero en octal es”, oct

fin

Funcion binario (entero num) enteroj 1res 0mientras (num > 0)

d residuo(num/2)res res + (d*j)num num / 2j j*10

finmientrasdevolver res

finfunc

Funcion octal (entero num) enteroj 1res 0mientras (num > 0)

d residuo(num/8)res res + (d*j)num num / 8j j*10

finmientrasdevolver res

finfunc

23

EjerciciosInicio entero num

leer numbin transformar(num,2)oct transformar(num,8)presentar “numero en binario es”, binpresentar “numero en octal es”, oct

fin

Funcion transformar (entero num, entero base) enteroj 1res 0mientras (num > 0)

d residuo(num/base)res res + (d*j)num num / basej j*10

finmientrasdevolver res

finfunc

24

• Fácil comprensión del problema

• Fácil comprensión de errores, pues si existe alguno solo se trabajara en el modulo donde este se presente

• Reutilización de código, para procesos similares se pueden utilizar procedimientos que ya están realizados

Cáp. 5. Programación Modular

25

Cáp. 6. Introducción a las estructuras de datos

• Propósito• Conceptos Generales

Propósito.

26

Cáp. 6. Introducción a las estructuras de datos

• Contenidos– Arreglos o matrices– Arreglos de una

dimensión– Arreglos

multidimensionales

2 3 4 5 6 7

2 3 4 5 6 7

8 9 3 5 7 4

6 7 1 1 4 3

27

• Arreglos– Colección de datos del

mismo tipo– Un nombre único– Indicador de posición

que los diferencia 2 9 4 15 6 27

Cáp. 6. Introducción a las estructuras de datos

Mat

31 32 33 34 35 36

2 13 4 45 6 7

8 9 53 5 37 4

26 7 100 11 4 3

MatRes1 2 3 4 5 6

28

• Arreglos unidimensionales o vectores

Cáp. 6. Introducción a las estructuras de datos

2 9 4 15 6 27

Mat

1 2 3 4 5 6

Mat[1] = 2Mat[2] = 9Mat[3] = 14Mat[4] = 15Mat[5] = 6Mat[6] = 25

29

Definición:Inicio

Arreglo Mat[10]………

fin

LecturaArreglo Mat[10]…..leer n_e // numero de elementos

para (i 1 hasta n_e)leer Mat[i]

finpara

PresentarArreglo Mat[10]…..para (i 1 hasta n_e)

presentar Mat[i]finpara

RecorrerArreglo Mat[10]…..

para (i 1 hasta n_e)Mat[i] mat[i]*2

finpara…..

30

inicioArreglo Mat[10]// ingresar numero de elementospresentar “ingrese numero de elementos”leer n_e// llenar la matrizpara (i 1 hasta n_e)

leer Mat[i]finpara // procesopara (i 1 hasta n_e)

si residuo(mat[i]/2) = 0 presentar “el numero”,mat[i], es parfinsi

finpara // presentar la matrizpara (i 1 hasta n_e)

presentar Mat[i]finpara

fin

31

• Arreglos multi-dimensionales

Cáp.. 6. Introducción a las estructuras de datos

31 32 33 34 35 36

2 13 4 45 6 7

8 9 53 5 37 4

26 7 100 11 4 3

MatRes

MatRes[1,1] = 2MatRes[2,4] = 5MatRes[3,2] = 7MatRes[1,6] = 7MatRes[2,1] = 8 MatRes[3,5] = 4

32

Definición:Inicio

Arreglo MatRes[10,10]……

fin

LecturaArreglo Mat[10,10]…..leer n_f // numero de filasleer n_c // numero de columnas

para (i 1 hasta n_f) para (j 1 hasta n_c

leer Mat[i,j] finparafinpara

PresentarArreglo Mat[10,10]…..para (i 1 hasta n_f) para (j 1 hasta n_c

presentar Mat[i,j] finparafinpara

RecorrerArreglo Mat[10,10]…..

para (i 1 hasta n_f) para (j 1 hasta n_c

Mat[i,j] 0 finparafinpara…..

33

inicioArreglo Mat[10,10]// ingresar numero de elementospresentar “ingrese numero de filas”leer n_fpresentar “ingrese numero de filas”leer n_c// llenar la matrizpara (i 1 hasta n_f) para (j 1 hasta n_c

leer Mat[i,j] finparafinpara // procesopara (i 1 hasta n_f) para (j 1 hasta n_c

si primo(Mat[i,j]) presentar “numero es primo”finsi

finparafinpara // presentar la matrizpara (i 1 hasta n_f) para (j 1 hasta n_c

leer Mat[i,j] finparafinpara

inicio

Funcion primo(entero num) logicad 2lim num / 2p verdaderomientras (d < num) si residuo(num/d) = 0

p falsod lim

finsi d d + 1finmientrasdevolver p

finfunc

34

Ejercicios

• Ordenar un vector

• Buscar elementos repetidos en un vector

• Ordenar una matriz de dos dimensiones• Buscar elementos repetidos en una matriz

dos dimensiones

• Multiplica dos matrices

35

Inicio // ordenar una matrizArreglo Mat[10]// ingresar numero de elementospresentar “ingrese numero de elementos”leer n_e// llenar la matrizpara (i 1 hasta n_e)

leer Mat[i]finpara // proceso de ordenacionpara (i 1 hasta n_e)

para (j 1 hasta n_e)si mat[i] < mat[j] aux mat[i] mat[i] mat [j] mat[j] auxfinsi

finparafinpara // presentar la matrizpara (i 1 hasta n_e)

presentar Mat[i]finpara

fin

36

Cáp. 7. Recursividad

• Propósito• Conceptos Generales

Propósito. Demostrar una manera alternativa de solución de problemas

37

• Contenidos– Recursividad– Recursividad directa e indirecta

– Recursividad infinita

Cáp. 7. Recursividad

38

Directa.Cuando una función se llama a si misma.

IndirectaCuando una función inicial (A) llama a una segunda función (B) y esta función (B) llama a la función inicial (A)

Infinitacuando no se logra que termine la recursion

Cáp. 7. Recursividad

39

Cáp. 7. Recursividad

• Trabaja con estructuras selectivas• Se da a nivel de procedimientos o

funcionesFuncion factorial(entero n) :enteroInicio

if n = 1retornar 1

sinoretornar n * factorial(n-1)

finfuncion