560 likes | 667 Views
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
E N D
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 • 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. • Poner encabezados • Resolver en pseudo-código • Entender que es lo que se pide en los ejercicios de la evaluación presencial.
QUE HAREMOS HOY • Mayor claridad para el desarrollo de algoritmos • Desarrollo de programas mas complejos • Nuevos enfoques … Programación orientada a objetos
ESTRUCTURAS DE DATOS • Contenidos • Arreglos de una dimensión (vector) • Arreglos de dos dimensiones o matrices • Arreglos multidimensionales
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
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
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
ESTRUCTURAS DE DATOS TIPOS Algoritmo matrices Clase matriz 1. Método Principal a. declaraciones Tipos Vector : Arreglo [30] Entero Variables A, B. C : Vector
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
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
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
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
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
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
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
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.
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.
B B D A F A D
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
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
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
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
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()
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
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
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
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
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
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
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ó.
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
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
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
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
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
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
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
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
PROGRAMACIÓN ORIENTADA A OBJETOS • Contenidos • Estudiar los conceptos básicos de la programación orientada a objetos. • Objetos. • Clases. • métodos. • encapsulamiento.
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
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
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
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
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)
Instanciación Empleado Leernombre() Leerapellido() Nombre apellidos ObjetoEmpleado Leernombre() Leerapellido() ObjetoEmpleado Leernombre() Leerapellido() Nombre: Juan Apellidos: perez Nombre: Juan Apellidos: perez
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
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
Empleado Establecernombre() Establecerapellido() Establecerhoras() Calcularsueldo() obtenerDatosempleados() Obtenersueldo() Nombre Apellidos Horastrab Sueldo