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