1 / 56

ESCUELA : Ciencias de la Computación

METODOLOGIA Y TECNOLOGIA DE LA PROGRAMACION I. ESCUELA : Ciencias de la Computación. NOMBRES. Ing. Danilo Jaramillo H. PERíODO :. Abril – Agosto 2009. INDICACIONES. Ingreso a campus y contestar los foros, revisar ejercicios. Importancia de realizar las evaluaciones a distancia

Download Presentation

ESCUELA : Ciencias de la Computación

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. METODOLOGIA Y TECNOLOGIA DE LA PROGRAMACION I ESCUELA: Ciencias de la Computación NOMBRES Ing. Danilo Jaramillo H PERíODO: Abril – Agosto 2009

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

  3. INDICACIONES • Uso de sangrías. • Poner encabezados • Resolver en pseudo-código • Entender que es lo que se pide en los ejercicios de la evaluación presencial.

  4. QUE HAREMOS HOY • Mayor claridad para el desarrollo de algoritmos • Desarrollo de programas mas complejos • Nuevos enfoques … Programación orientada a objetos

  5. PLAN DE CONTENIDOS

  6. ESTRUCTURAS DE DATOS • Contenidos • Arreglos de una dimensión (vector) • Arreglos de dos dimensiones o matrices • Arreglos multidimensionales

  7. ESTRUCTURAS DE DATOS • Arreglos • Colección de datos del mismo tipo • Un nombre único • Indicador de posición que diferencia a cada elemento filas Mat MatRes filas y columnas

  8. ESTRUCTURAS DE DATOS • Arreglos unidimensionales o vectores Mat filas Mat[1] = 2 Mat[2] = 9 Mat[3] = 14 Mat[4] = 15 Mat[5] = 6 Mat[6] = 25

  9. ESTRUCTURAS DE DATOS Declar nombrevariable : Arreglo[tamaño] tipo de dato Algoritmo matrices Clase matriz 1. Método Principal a. declaraciones Variables Mat: Arreglo [30] Entero

  10. ESTRUCTURAS DE DATOS TIPOS Algoritmo matrices Clase matriz 1. Método Principal a. declaraciones Tipos Vector : Arreglo [30] Entero Variables A, B. C : Vector

  11. Algoritmo matrices Clase matriz 1. Método Principal a. declaraciones Variables Mat: Arreglo [30] Entero b. imprimir “ingrese numero de elementos” c. leer n_e d. for (i = 1; i <= n_e; i++) 1. leer Mat[i] e. endfor f. for (i = 1; i <= n_e; i++) 1. if (mat[i] mod 2) = 0 then imprimir “el numero”,mat[i], es par 2. endif g. endfor h. for (i = 1; i <= n_e; i++) imprimir Mat[i] e. endfor h. fin método principal fin clase matriz

  12. ESTRUCTURAS DE DATOS • Arreglos multi-dimensionales 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

  13. ESTRUCTURAS DE DATOS Declaracion nombrevariable: Arreglo[tamaño_f][tamaño_c] tipo de dato Algoritmo matrices Clase matriz 1. Método Principal a. declaraciones Variables Mat: Arreglo [30][10] Entero

  14. ESTRUCTURAS DE DATOS TIPOS Algoritmo matrices Clase matriz 1. Método Principal a. declaraciones Constantes L = 30 Tipos Matrices : Arreglo [L][L] Entero Variables A, B. C : Matrices

  15. Algoritmo matrices Clase matriz 1. Método Principal a. declaraciones Variables Mat: Arreglo [30][10] Entero b. imprimir “ingrese numero de filas y columnas” c. leer n_f,n_c d. for (i=1; i<=n_f; i++) 1. for (j=1:j<=n_c;j++) i. leer Mat[i][j] 2. endfor e. endfor f. for (i=1; i<=n_f; i++) 1. for (j=1:j<=n_c;j++) if(Mat[i][j] mod 2 = 0) then imprimir “numero es par” endif 2. endfor g. endfor 2. fin método principal

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

  17. Método Principal • a. Declaraciones • Mat[10] : Arreglo[10] entero • b. imprimir “ingrese numero de elementos” • c. leer n_e • d. for(i=1; i<=n_e; i++) • 1. leer Mat[i] • e. endfor • f. for(i=1; i<=n_e; i++) • 1. for(j=1; j<=n_e; j++) • if (mat[i] < mat[j]) then • aux  mat[i] • mat[i]  mat [j] • mat[j]  aux • endif • 2.endfor • g. endfor • h. for(i=1; i<=n_e; i++) • 1. imprimir Mat[i] • i. endfor • j. fin método principal

  18. METODOS Conceptos Generales Propósito .como utilizar mas de un método dentro de una clase. Comprender el trabajo con variables de clase, variables locales y paso de parámetros entre métodos.

  19. METODOS • Conceptos Generales • Técnica divide y vencerás • Ejecutar una tarea especifica • Cada método es independientes • método principal  sub-rutinas (función, rutina, sub-algoritmo) • Cuando se invoca a un método las instrucciones que están definidas se ejecutan y luego vuelven al método donde fue invocado.

  20. B B D A F A D

  21. Sistema de Gestión Académica matriculación Ingresar Ficha del estudiante matriculación Registro de Notas y Asistencia Verificar cédula Registro de Notas y Asistencia Ingresar Notas

  22. Metodo xxxx Metodo principal sEjemeemp1 Metodo Principal Llamada método Llamada método Método yyyy Llamada método Llamada al método Llamada método Método zzzz Llamada método

  23. Métodos • Algoritmo sumar • Clase suma • 1. Método Principal • a. imprimir “la suma es”, suma() • 2. fin método principal • 3. Método suma: entero • Declaraciones • variables • Suma, x , y: entero • leer x, y • Suma = x + y • ReturnSuma • 4. Fin Método suma • Fin clase suma • fin

  24. Métodos • Conceptos • Métodos que no retornan valor • Métodos que retornar valor • Variables de clase y locales • Parámetros por valor y por referencia

  25. Métodos • Métodos que no retornan valor • Pueden o no devolver valores • Ejecuta un proceso especifico • Forma de Invocar a estos métodos • NombredelMetodo()

  26. Métodos • Métodos que no retornan valor • Definición • Método nombre (parámetros) • a. Declaraciones • Variables • Constantes • b. Acción • c. Acción • d. Acción • e. Fin Método

  27. Métodos • Métodos que retornan valor • Devuelve un valor • Forma de Invocar a un Metodo No Retorna Valor • Z  nombremetodo() • Si (nombremetodo() == ?) • Imprimir nombremetodo • Parte de una expresión

  28. Métodos • Metodos que retornan Valor • Definición • Método nombre (parámetros): tipo de dato • a. Declaraciones • Variables • Constantes • b. Acción • c. Acción • d. returnvalor • e. Fin Método

  29. Métodos • Variables: locales y clase • Locales • Solo tiene valides dentro del método donde son declaradas • De clase • Se las puede utilizad en cualquier parte de la clase

  30. Métodos • Algoritmo sumar • Clase suma • 1. declaraciones • variables • y : entero • 2. Método Principal • a. Leer y • b. imprimir “la suma es”, suma() • 3. fin método principal • 4. Método suma: entero • Declaraciones • variables • Suma, x: entero • x = 5 • Suma = x + y • Return Suma • 5. Fin Método suma • Fin clase suma • fin Variables de clase Suma = x + y

  31. Métodos • Algoritmo sumar • Clase suma • 1. Método Principal • a. declaraciones • variables • y : entero • b. Leer y • c. imprimir “la suma es”, suma() • d. imprimir x • e. fin método principal • 4. Metodo suma: entero • Declaraciones • variables • Suma, x entero • x = 5 • Suma = x + y • Return Suma • e. Fin Método suma • Fin clase suma • fin Variables locales 31

  32. Métodos • Parámetros por valor y por referencia.. Enlazar variables entre métodos • 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ó.

  33. Métodos PARAMETROS POR VALOR Algoritmo Sumatoria Clase Suma 1.Metodo principal a. declaraciones S : entero b. S = 0 c. imprimir suma(s) d. imprimir s e. Fin método principal ……. Fin clase suma fin …………. 2. método suma (val s: entero) : entero a. Leer numero1 b. Leer numero2 c. s =numero1 + numero2 d. returnS e. Fin método suma ¿Qué valor se presenta en la llamada a la función? ¿Cuál es el valor de S ? numero1  5 numero2  8

  34. Métodos PARAMETROS POR REFERENCIA Algoritmo Sumatoria Clase Suma 1.Metodo principal a. declaraciones S : entero b. S = 0 c. imprimir suma(s) d. imprimir s e. Fin método principal ……. Fin clase suma fin …………. 2. método suma (refs: entero) : entero a. Leer numero1 b. Leer numero2 c. s =numero1 + numero2 d. returnS e. Fin método suma ¿Qué valor se presenta en la llamada a la función? ¿Cuál es el valor de S ? numero1  5 numero2  8

  35. Ejercicios Métodos Algoritmo Factorial Clase factorial 1. Metodoprincipal a. declaraciones res, numero : entero b. leer numero c. res =factorial (numero) d. imprimir res e. Fin metodo principal …………… Fin clase suma fin …………………. 2. método factorial (val s: entero) : entero a. declaraciones f : entero b. f =1 c. for(i = 1; i<= numero; i++) f = f * i d. endfor e. returnf f. Fin metodo factorial

  36. Ejercicios Métodos Algoritmo Potencia Clase Potencia 1. Método principal a. declaraciones bas, exp, res: entero b. leer bas c. leer exp d. res = potencia (bas,exp) e. imprimir res Fin metodo principal …………… Fin clase suma fin ……………. 2. método potencia (entero bas, entero exp) : entero a. declaraciones p : entero b. p =1 c. for(i=1; i<=exp; i++) p  p * bas d. endfor f. returnp g. fin método potencia

  37. Algoritmo transformacion Clase transforma 1. Metodoprincipal a. leer num b. bin=binario(num) c. oct=octal(num) d. imprimir “numero en binario es”, bin e. imprimir “numero en octal es”, oct f. fin metodo principal fin 2. método binario (val num:entero) entero a. j = 1 b. res = 0 c. while(num > 0) do 1. d = residuo(num/2) 2. res = res + (d*j) 3. num = num / 2 4. j = j*10 d. endwhile e. returnres f. Fin metodo binario 3. método octal (val num: entero) entero a. j = 1 b. res = 0 c. while(num > 0) do 1. d =residuo(num/8) 2. res = res + (d*j) 3. num=num / 8 4. j = j*10 d. endwhile e. returnres f. Fin metodo octal

  38. Algoritmo transformación Clase transforma 1. Método principal a. leer num b. bin transformar(num,2) c. oct transformar(num,8) d. presentar “numero en binario es”, bin e. presentar “numero en octal es”, oct f. Fin Método Principal fin 2. Método transformar (num: entero, base:entero): entero a. j =1 b. res =0 c. while(num > 0) do 1. d =residuo(num/base) 2. res =res + (d*j) 3. num=num / base 4. j = j*10 d. endwhile e. returnres f. Fin Método Transformar

  39. Algortimo matrices Clase matriz 1. Método Principal a. declaraciones Variables Mat: Arreglo [30][10] Entero b. imprimir “ingrese numero de filas y columnas” c. leer n_f,n_c d. for (i=1; i<=n_f; i++) 1. for (j  1 hasta n_c i. leer Mat[i,j] 2. endfor e. endfor f. for (i=1; i<=n_f; i++) 1. for (j  1 hasta n_c if primo(Mat[i,j]) imprimir “numero es primo” endif 2. endfor g. endfor h. fin método principal ……….. …………………… 2. Método primo(entero num) boolean a. declaraciones variables d, lim : real p : boolean b. d = 2 c. lim = num / 2 d. p  true e. while (d < num) 1. if(nummodd) = 0 p = falso d = lim 2. Endif 3. d  d + 1 f. enddo g. return p h. Fin método primo Fin clase fin

  40. METODOS - resumen • 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

  41. PROGRAMACIÓN ORIENTADA A OBJETOS • Contenidos • Estudiar los conceptos básicos de la programación orientada a objetos. • Objetos. • Clases. • métodos. • encapsulamiento.

  42. PROGRAMACIÓN ORIENTADA A OBJETOS • Innovación en los lenguajes de programación • Es mas estructurada que las que se han estudiado • Mas modular y abstracta que lo que se ha hecho con respecto a abstracción y ocultamiento • La POO, está formada por una colección de objetos interaccionando conjuntamente para representar y solucionar un problema

  43. PROGRAMACIÓN ORIENTADA A OBJETOS • Objetos • Datos .. Atributos .. descripción • Métodos .. Comportamiento … manipulación de los datos Objeto Metodo1() Metodo2() Metodo3() Dato1 Dato2 dato3

  44. PROGRAMACIÓN ORIENTADA A OBJETOS • Clase • Representación abstracta que describen un conjunto de objetos • Representa un {} de objetos que tienen los mismos métodos y los mismos datos • Plantilla o molde para crear todos los objetos Empleado Leernombre() Leerapellido() Nombre apellidos

  45. PROGRAMACIÓN ORIENTADA A OBJETOS • Métodos y encapsulación • Acciones que se implementan el comportamiento de un objeto, manipular los datos • Encapsulación colocar juntos los datos y los métodos dentro de un objeto • El programador debe pensar en el código y los datos juntos durante el diseño del programa • No hay vacio entre datos y métodos

  46. Modificadores de acceso • Visibilidad que tendran los datos o los metodos, desde que parte seran visibles para ser utilizados • -privado (datos,metodos) • #protegido (datos,metodos) • +publico (datos,metodos) • _estatico (datos,metodos) • *abstracto (metodos)

  47. Instanciación Empleado Leernombre() Leerapellido() Nombre apellidos ObjetoEmpleado Leernombre() Leerapellido() ObjetoEmpleado Leernombre() Leerapellido() Nombre: Juan Apellidos: perez Nombre: Juan Apellidos: perez

  48. ejercicio • Se desea calcular el sueldo de un empleado, teniendo su nombre, apellido, horas trabajadas, costo por hora de 5 dólares y bajo las siguientes condiciones: • Horas trabajadas <=40 no tiene bonificacion • Horas trabajadas <=50, 20% de bonificacion • Horas trabajadas <=60, 30% de bonificacion • Horas trabajadas >=60, 40% • Nadie puede ganar menos de 100 y mas de 400 dólares

  49. ObjetoEmpleado establecerombre() establecerapellido() Calcularsueldo() ObjetoEmpleado establecerombre() establecerapellido() Calcularsueldo() ObjetoEmpleado establecerombre() establecerapellido() Calcularsueldo() Nombre: Juan Apellidos: perez Horastrab: 30 Sueldo: 150 Nombre: danilo Apellidos: jaramillo Horastrab: 10 Sueldo: (50) = 100 Nombre: Juan Apellidos: perez Horastrab: 40 Sueldo: 200 ObjetoEmpleado establecerombre() establecerapellido() Calcularsueldo() ObjetoEmpleado establecerombre() establecerapellido() Calcularsueldo() ObjetoEmpleado establecerombre() establecerapellido() Calcularsueldo() Nombre: Juan Apellidos: perez Horastrab: 45 Sueldo: 225+45=270 Nombre: Juan Apellidos: perez Horastrab: 54 Sueldo: 270+81=351 Nombre: Juan Apellidos: perez Horastrab: 65 Sueldo: 325+130=400

  50. Empleado Establecernombre() Establecerapellido() Establecerhoras() Calcularsueldo() obtenerDatosempleados() Obtenersueldo() Nombre Apellidos Horastrab Sueldo

More Related