ESCUELA : Ciencias de la Computación NOMBRES METODOLOGIA Y TECNOLOGIA DE LA PROGRAMACION I FECHA : Ing. Danilo Jaramillo H OCTUBRE  – MARZO 2009
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 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
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.
A B 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 Procedimiento/función Llamada procedimiento Llamada procedimiento Llamada procedimiento Entero numero Presentar numero numero = 25 global
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 = 25 Llamada procedimiento local
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ó.
Cap. 5 PROGRAMACIÓN MODULAR Algoritmo Sumatoria Inicio Entero S S    0 Presentar suma(s) presentar s fin entero función suma (entero s) Leer numero1 Leer numero2 S    numero1 + numero2 Devolver S finfunc Parámetro por valor ¿Qué valor se presenta en la llamada a la función? ¿Cuál es el valor de S ? numero1    5 numero2    8
Cap. 5 PROGRAMACIÓN MODULAR Algoritmo suma Inicio Entero S S    0 Presentar suma(s) presentar s fin función suma (entero var s) entero Leer numero1 Leer numero2 S    numero1 + numero2 Devolver S finfunc parámetro por referencia numero1    5 numero2    8 ¿Qué valor se presenta en la llamada a la función? ¿Cuál es el valor de S ?
Ejercicios Algoritmo Factorial Inicio entero res entero numero leer numero res    factorial (numero) imprimir res fin entero función factorial (entero numero) entero f f    1 para (i    1 hasta numero) f    f * i finpara devolver f finfunc Cap. 5 PROGRAMACIÓN MODULAR
Ejercicios Algoritmo potencia Inicio entero bas entero exp entero res leer bas leer exp res    potencia (bas,exp) imprimir res fin entero función potencia (entero bas,   entero exp) entero p p    1 para (i    1 hasta exp) p    p * bas finpara devolver f finfunc Cap. 5. PROGRAMACIÓN MODULAR
Algoritmo transformacion Inicio entero num leer num bin    binario(num) oct    octal(num) presentar “numero en binario es”, bin presentar “numero en octal es”, oct fin Funcion binario (entero num) entero j    1 res    0 mientras (num > 0) d    residuo(num/2) res    res + (d*j) num    num / 2 j   j*10 finmientras devolver res finfunc Funcion octal (entero num) entero j    1 res    0 mientras (num > 0) d    residuo(num/8) res    res + (d*j) num    num / 8 j   j*10 finmientras devolver res finfunc
Algoritmo Transformacion Inicio entero num leer num bin     transformar(num,2) oct     transformar(num,8) presentar “numero en binario es”, bin presentar “numero en octal es”, oct fin Funcion transformar (entero num, entero base) entero j    1 res    0 mientras (num > 0) d    residuo(num/base) res    res + (d*j) num    num / base j   j*10 finmientras devolver 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 Cap. 6 INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS Mat MatRes filas filas y columnas 2 9 4 15 6 27 31 32 33 34 35 36 2 13 4 45 6 7 8 9 53 5 37 4 26 7 100 11 4 3 1 2 3 4 5 6
Arreglos unidimensionales o vectores Cap. 6 INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS Mat filas Mat[1] = 2 Mat[2] = 9 Mat[3] = 14 Mat[4] = 15 Mat[5] = 6 Mat[6] = 25 2 9 4 15 6 27 1 2 3 4 5 6
Definición: Inicio Arreglo Mat[10] ……… fin Lectura Arreglo Mat[10] … .. leer n_e // numero de elementos para (i    1 hasta n_e) leer Mat[i] finpara Presentar Arreglo Mat[10] … .. para (i    1 hasta n_e) presentar Mat[i] finpara Recorrer Arreglo Mat[10] … .. para (i    1 hasta n_e) Mat[i]    mat[i]*2 finpara … ..
inicio Arreglo Mat[10] // ingresar numero de elementos presentar “ingrese numero de elementos” leer n_e // llenar la matriz para (i    1 hasta n_e) leer Mat[i] finpara   // proceso para (i    1 hasta n_e) si residuo(mat[i]/2) =  0   presentar “el numero”,mat[i], es par finsi finpara   // presentar la matriz para (i    1 hasta n_e) presentar Mat[i] finpara fin
Arreglos multi-dimensionales Cap. 6 INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS MatRes filas y columnas MatRes[1,1] = 2 MatRes[2,4] = 5 MatRes[3,2] = 7 MatRes[1,6] = 7 MatRes[2,1] = 8  MatRes[3,5] = 4 31 32 33 34 35 36 2 13 4 45 6 7 8 9 53 5 37 4 26 7 100 11 4 3
Definición: Inicio Arreglo MatRes[10,10] …… fin Lectura Arreglo Mat[10,10] … .. leer n_f // numero de filas leer n_c // numero de columnas para (i    1 hasta n_f)   para (j    1 hasta n_c leer Mat[i,j]   finpara finpara Presentar Arreglo Mat[10,10] … .. para (i    1 hasta n_f)   para (j    1 hasta n_c presentar Mat[i,j]   finpara finpara Recorrer Arreglo Mat[10,10] … .. para (i    1 hasta n_f)   para (j    1 hasta n_c Mat[i,j]    0   finpara finpara … ..
inicio Arreglo Mat[10,10] // ingresar numero de elementos presentar “ingrese numero de filas” leer n_f presentar “ingrese numero de filas” leer n_c // llenar la matriz para (i    1 hasta n_f)   para (j    1 hasta n_c leer Mat[i,j]   finpara finpara   // proceso para (i    1 hasta n_f)   para (j    1 hasta n_c si primo(Mat[i,j])    presentar “numero es primo” finsi   finpara finpara   // presentar la matriz para (i    1 hasta n_f)   para (j    1 hasta n_c leer Mat[i,j]   finpara finpara inicio Funcion primo(entero num) logica d    2 lim    num / 2 p    verdadero mientras (d < num)   si residuo(num/d) = 0 p    falso d    lim   finsi   d    d + 1 finmientras devolver 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 matriz Arreglo Mat[10] // ingresar numero de elementos presentar “ingrese numero de elementos” leer n_e // llenar la matriz para (i    1 hasta n_e) leer Mat[i] finpara   // proceso de ordenacion para (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]    aux finsi finpara finpara   // presentar la matriz para (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
Directa Cuando una función se llama a si misma. Indirecta Cuando una función inicial (A) llama a una segunda función (B) y esta función (B) llama a la función inicial (A) Infinita cuando 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
Segundo Bimestre

Segundo Bimestre

  • 1.
    ESCUELA : Cienciasde la Computación NOMBRES METODOLOGIA Y TECNOLOGIA DE LA PROGRAMACION I FECHA : Ing. Danilo Jaramillo H OCTUBRE – MARZO 2009
  • 2.
    INDICACIONES Ingreso acampus 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
  • 3.
    INDICACIONES Uso desangrías. Utilizar comentarios para la documentación. Entender que es lo que se pide en los ejercicios de la evaluación presencial.
  • 4.
    INTRODUCCION Mayor claridadpara el desarrollo de algoritmos Desarrollo de programas mas complejos Nuevos enfoques … Programación orientada a objetos
  • 5.
    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
  • 6.
    CAP. 5 PROGRAMACIÓNMODULAR 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.
  • 7.
    Cap. 5 PROGRAMACIÓNMODULAR 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.
  • 8.
    A B CD E F G
  • 9.
    principal Procedimiento/función Procedimiento/funciónProcedimiento/función Llamada procedimiento Llamada procedimiento Llamada procedimiento Llamada procedimiento Llamada procedimiento
  • 10.
    Cap. 5 PROGRAMACIÓNMODULAR Conceptos Generales Funciones Procedimientos Variables locales y globales Parámetros por valor y por referencia Parámetros de entrada y salida
  • 11.
    Cap. 5 PROGRAMACIÓNMODULAR 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
  • 12.
    Funciones Definición Cap.5 PROGRAMACIÓN MODULAR Tipodedato Función nombre (parámetros) sentencias … .. devolver finfuncion
  • 13.
    Cap. 5 ProgramaciónModular Procedimientos Pueden o no devolver valores Ejecuta un proceso especifico Forma de Invocar un procedimiento Nombre_procedimiento()
  • 14.
    procedimientos Definición Cap.5 Programación Modular procedimiento nombre (parámetros) sentencias …… finfunc
  • 15.
    Cap. 5 PROGRAMACIÓNMODULAR Variables: locales y globales Locales Solo tiene valides dentro del modulo donde son declaradas Globales Se las puede utilizad en cualquier parte del programa
  • 16.
    Cáp. 5 PROGRAMACIÓNMODULAR principal Procedimiento/función Procedimiento/función Procedimiento/función Llamada procedimiento Llamada procedimiento Llamada procedimiento Entero numero Presentar numero numero = 25 global
  • 17.
    principal Procedimiento/función Procedimiento/funciónLlamada procedimiento Llamada procedimiento Llamada procedimiento Entero numero Presentar numero Procedimiento/función Numero = 25 Procedimiento/función numero = 25 Llamada procedimiento local
  • 18.
    Cap. 5 PROGRAMACIÓNMODULAR 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ó.
  • 19.
    Cap. 5 PROGRAMACIÓNMODULAR Algoritmo Sumatoria Inicio Entero S S  0 Presentar suma(s) presentar s fin entero función suma (entero s) Leer numero1 Leer numero2 S  numero1 + numero2 Devolver S finfunc Parámetro por valor ¿Qué valor se presenta en la llamada a la función? ¿Cuál es el valor de S ? numero1  5 numero2  8
  • 20.
    Cap. 5 PROGRAMACIÓNMODULAR Algoritmo suma Inicio Entero S S  0 Presentar suma(s) presentar s fin función suma (entero var s) entero Leer numero1 Leer numero2 S  numero1 + numero2 Devolver S finfunc parámetro por referencia numero1  5 numero2  8 ¿Qué valor se presenta en la llamada a la función? ¿Cuál es el valor de S ?
  • 21.
    Ejercicios Algoritmo FactorialInicio entero res entero numero leer numero res  factorial (numero) imprimir res fin entero función factorial (entero numero) entero f f  1 para (i  1 hasta numero) f  f * i finpara devolver f finfunc Cap. 5 PROGRAMACIÓN MODULAR
  • 22.
    Ejercicios Algoritmo potenciaInicio entero bas entero exp entero res leer bas leer exp res  potencia (bas,exp) imprimir res fin entero función potencia (entero bas, entero exp) entero p p  1 para (i  1 hasta exp) p  p * bas finpara devolver f finfunc Cap. 5. PROGRAMACIÓN MODULAR
  • 23.
    Algoritmo transformacion Inicioentero num leer num bin  binario(num) oct  octal(num) presentar “numero en binario es”, bin presentar “numero en octal es”, oct fin Funcion binario (entero num) entero j  1 res  0 mientras (num > 0) d  residuo(num/2) res  res + (d*j) num  num / 2 j  j*10 finmientras devolver res finfunc Funcion octal (entero num) entero j  1 res  0 mientras (num > 0) d  residuo(num/8) res  res + (d*j) num  num / 8 j  j*10 finmientras devolver res finfunc
  • 24.
    Algoritmo Transformacion Inicioentero num leer num bin  transformar(num,2) oct  transformar(num,8) presentar “numero en binario es”, bin presentar “numero en octal es”, oct fin Funcion transformar (entero num, entero base) entero j  1 res  0 mientras (num > 0) d  residuo(num/base) res  res + (d*j) num  num / base j  j*10 finmientras devolver res finfunc
  • 25.
    Fácil comprensión delproblema 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
  • 26.
    Cap. 6 INTRODUCCIÓNA LAS ESTRUCTURAS DE DATOS Propósito Conceptos Generales Propósito .
  • 27.
    Cap. 6 INTRODUCCIÓNA 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
  • 28.
    Arreglos Colección dedatos del mismo tipo Un nombre único Indicador de posición que los diferencia Cap. 6 INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS Mat MatRes filas filas y columnas 2 9 4 15 6 27 31 32 33 34 35 36 2 13 4 45 6 7 8 9 53 5 37 4 26 7 100 11 4 3 1 2 3 4 5 6
  • 29.
    Arreglos unidimensionales ovectores Cap. 6 INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS Mat filas Mat[1] = 2 Mat[2] = 9 Mat[3] = 14 Mat[4] = 15 Mat[5] = 6 Mat[6] = 25 2 9 4 15 6 27 1 2 3 4 5 6
  • 30.
    Definición: Inicio ArregloMat[10] ……… fin Lectura Arreglo Mat[10] … .. leer n_e // numero de elementos para (i  1 hasta n_e) leer Mat[i] finpara Presentar Arreglo Mat[10] … .. para (i  1 hasta n_e) presentar Mat[i] finpara Recorrer Arreglo Mat[10] … .. para (i  1 hasta n_e) Mat[i]  mat[i]*2 finpara … ..
  • 31.
    inicio Arreglo Mat[10]// ingresar numero de elementos presentar “ingrese numero de elementos” leer n_e // llenar la matriz para (i  1 hasta n_e) leer Mat[i] finpara // proceso para (i  1 hasta n_e) si residuo(mat[i]/2) = 0 presentar “el numero”,mat[i], es par finsi finpara // presentar la matriz para (i  1 hasta n_e) presentar Mat[i] finpara fin
  • 32.
    Arreglos multi-dimensionales Cap.6 INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS MatRes filas y columnas MatRes[1,1] = 2 MatRes[2,4] = 5 MatRes[3,2] = 7 MatRes[1,6] = 7 MatRes[2,1] = 8 MatRes[3,5] = 4 31 32 33 34 35 36 2 13 4 45 6 7 8 9 53 5 37 4 26 7 100 11 4 3
  • 33.
    Definición: Inicio ArregloMatRes[10,10] …… fin Lectura Arreglo Mat[10,10] … .. leer n_f // numero de filas leer n_c // numero de columnas para (i  1 hasta n_f) para (j  1 hasta n_c leer Mat[i,j] finpara finpara Presentar Arreglo Mat[10,10] … .. para (i  1 hasta n_f) para (j  1 hasta n_c presentar Mat[i,j] finpara finpara Recorrer Arreglo Mat[10,10] … .. para (i  1 hasta n_f) para (j  1 hasta n_c Mat[i,j]  0 finpara finpara … ..
  • 34.
    inicio Arreglo Mat[10,10]// ingresar numero de elementos presentar “ingrese numero de filas” leer n_f presentar “ingrese numero de filas” leer n_c // llenar la matriz para (i  1 hasta n_f) para (j  1 hasta n_c leer Mat[i,j] finpara finpara // proceso para (i  1 hasta n_f) para (j  1 hasta n_c si primo(Mat[i,j]) presentar “numero es primo” finsi finpara finpara // presentar la matriz para (i  1 hasta n_f) para (j  1 hasta n_c leer Mat[i,j] finpara finpara inicio Funcion primo(entero num) logica d  2 lim  num / 2 p  verdadero mientras (d < num) si residuo(num/d) = 0 p  falso d  lim finsi d  d + 1 finmientras devolver p finfunc
  • 35.
    EJERCICIOS Ordenar unvector Buscar elementos repetidos en un vector Ordenar una matriz de dos dimensiones Buscar elementos repetidos en una matriz dos dimensiones Multiplica dos matrices
  • 36.
    Inicio // ordenaruna matriz Arreglo Mat[10] // ingresar numero de elementos presentar “ingrese numero de elementos” leer n_e // llenar la matriz para (i  1 hasta n_e) leer Mat[i] finpara // proceso de ordenacion para (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]  aux finsi finpara finpara // presentar la matriz para (i  1 hasta n_e) presentar Mat[i] finpara fin
  • 37.
    Cap. 7 RECURSIVIDADPropósito Conceptos Generales Propósito. Demostrar una manera alternativa de solución de problemas
  • 38.
    Contenidos Recursividad Recursividaddirecta e indirecta Recursividad infinita Cap. 7 RECURSIVIDAD
  • 39.
    Directa Cuando unafunción se llama a si misma. Indirecta Cuando una función inicial (A) llama a una segunda función (B) y esta función (B) llama a la función inicial (A) Infinita cuando no se logra que termine la recursividad Cap. 7 RECURSIVIDAD
  • 40.
    Cap. 8 PROGRAMACIÓNORIENTADA 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
  • 41.
    Contenidos Objetos. Clases.Atributos y métodos. Herencia, polimorfismo, encapsulamiento. Cap. 8 PROGRAMACIÓN ORIENTADA A OBJETOS

Notas del editor