metodologia y tecnologia de la programacion i

42
ESCUELA: Ciencias de la Computación NOMBRES METODOLOGIA Y TECNOLOGIA DE LA PROGRAMACION I FECHA: Ing. Danilo Jaramillo H OCTUBRE 2008 – MARZO 2009 1

Upload: videoconferencias-utpl

Post on 20-Jul-2015

2.186 views

Category:

Education


0 download

TRANSCRIPT

ESCUELA: Ciencias de la Computación

NOMBRES

METODOLOGIA Y TECNOLOGIA DE LA PROGRAMACION I

FECHA:

Ing. Danilo Jaramillo H

OCTUBRE 2008 – MARZO 2009

1

INDICACIONES

Ingreso a campus y contestar los foros, revisar ejercicios.

Importancia de realizar las evaluaciones a distancia Foros (EVA) 2 puntos Parte objetiva 2 puntos Parte de ensayo 2 puntos

Evaluación Presencial parte objetiva 8 puntos parte ensayo 6 puntos

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.

INTRODUCCION

Mayor claridad para el desarrollo de algoritmos

Desarrollo de programas mas complejos Nuevos enfoques … Programación

orientada a objetos

PLAN DE CONTENIDOS

SEGUNDO BIMESTRECapí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

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

Cap. 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 O

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

AB

C

D

E

F

G

principal Procedimiento/función

Procedimiento/función

Procedimiento/función

Llamada procedimiento

Llamada procedimiento

Llamada procedimiento

Llamada procedimiento

Llamada procedimiento

Cap. 5 PROGRAMACIÓN MODULAR

Conceptos Generales Funciones Procedimientos Variables locales y globales Parámetros por valor y por referencia Parámetros de entrada y salida

Cap. 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 expresión

Funciones Definición

Cap. 5 PROGRAMACIÓN MODULAR

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

finfuncion

Cap. 5 Programación Modular

Procedimientos Pueden o no devolver valores Ejecuta un proceso especifico Forma de Invocar un procedimiento

Nombre_procedimiento()

procedimientos Definición

Cap. 5 Programación Modular

procedimiento nombre (parámetros)sentencias……

finfunc

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

Cáp. 5 PROGRAMACIÓN MODULAR

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

Cap. 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 mantiene el valor

Por referencia Si un parámetro es modificado su

contenido dentro del subprograma, al terminar el mismo mantendrá el valor con el que se modificó.

Algoritmo SumatoriaInicio

Entero SS 0Presentar suma(s)presentar s

fin

entero función suma (entero s)Leer numero1Leer numero2S numero1 + numero2Devolver S

finfunc

Cap. 5 PROGRAMACIÓN MODULAR

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

¿Cuál es el valor de S ?

numero1 5

numero2 8

Algoritmo sumaInicio

Entero SS 0Presentar suma(s)presentar s

fin

función suma (entero var s) enteroLeer numero1Leer numero2S numero1 + numero2Devolver S

finfunc

Cap. 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 ?

Ejercicios

Algoritmo FactorialInicio entero res

entero numeroleer numerores factorial (numero)imprimir res

fin

entero función factorial (entero numero)entero ff 1para (i 1 hasta numero)

f f * ifinparadevolver f

finfunc

Cap. 5 PROGRAMACIÓN MODULAR

Ejercicios

Algoritmo potenciaInicio entero bas

entero expentero resleer basleer expres potencia (bas,exp)imprimir res

fin

entero función potencia (entero bas, entero exp)

entero pp 1para (i 1 hasta exp)

p p * basfinparadevolver f

finfunc

Cap. 5. PROGRAMACIÓN MODULAR

23

Algoritmo transformacionInicio 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

Algoritmo TransformacionInicio 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

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

Cap. 5 PROGRAMACIÓN MODULAR

Cap. 6 INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS

Propósito Conceptos Generales

Propósito.

Cap. 6 INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS

Contenidos Arreglos o matrices Arreglos de una

dimensión (vector) 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

Arreglos Colección de datos del mismo tipo Un nombre único Indicador de posición que los diferencia

2 9 4 15 6 27

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

Arreglos unidimensionales o vectores

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

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

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

Arreglos multi-dimensionales

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

Definición:Inicio

Arreglo MatRes[10,10]……

finLectura

Arreglo 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…..

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

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

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

Cap. 7 RECURSIVIDAD

Propósito Conceptos Generales

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

Contenidos Recursividad Recursividad directa e indirecta Recursividad infinita

Cap. 7 RECURSIVIDAD

DirectaCuando 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 recursividad

Cap. 7 RECURSIVIDAD

Cap. 8 PROGRAMACIÓN ORIENTADA A OBJETOS

Propósito Conceptos Generales

Propósito. Introducir en el estudiante los conceptos de una nueva manera de realizar la programación, basado en la metodología de orientación a objetos

Contenidos Objetos. Clases. Atributos y métodos. Herencia, polimorfismo,

encapsulamiento.

Cap. 8 PROGRAMACIÓN ORIENTADA A OBJETOS