Your SlideShare is downloading. ×
Metodologia Y Tecnologia De La Programacion I
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Metodologia Y Tecnologia De La Programacion I

2,398
views

Published on

Arreglos de una dimensión (vector) …

Arreglos de una dimensión (vector)
Arreglos de dos dimensiones o matrices
Arreglos multidimensionales

Published in: Education

1 Comment
2 Likes
Statistics
Notes
  • muy bueno sigan adelante gracias
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
2,398
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
105
Comments
1
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

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 1
  • 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 2
  • 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. 3
  • 4. QUE HAREMOS HOY  Mayor claridad para el desarrollo de algoritmos  Desarrollo de programas mas complejos  Nuevos enfoques … Programación orientada a objetos 4
  • 5. PLAN DE CONTENIDOS SEGUNDO BIMESTRE Capítulo 6. Estructuras de datos: Arreglos 163 - 192 12 Capítulo 7. Utilización de los Métodos 203 - 236 10 Capítulo 8. Programación Orientada a objetos aplicando 241 - 254 8 diagramas de clases Capítulo 9. Programación Orientada a objetos aplicando 257- 342 10 secuenciación, selección, repetición 40 5
  • 6. ESTRUCTURAS DE DATOS  Contenidos  Arreglos de una dimensión (vector) 2 3 4 5 6 7  Arreglos de dos dimensiones o matrices 2 3 4 5 6 7  Arreglos multidimensionales 8 9 3 5 7 4 6 7 1 1 4 3 6
  • 7. ESTRUCTURAS DE DATOS  Arreglos  Colección de datos del mismo tipo  Un nombre único  Indicador de posición que diferencia a cada elemento MatRes Mat 2 9 4 15 6 27 2 13 4 45 6 7 1 2 3 4 5 6 8 9 53 5 37 4 26 7 10 11 4 3 7 31 32 33 34 35 36
  • 8. ESTRUCTURAS DE DATOS  Arreglos unidimensionales o vectores Mat 2 9 4 15 6 27 1 2 3 4 5 6 Mat[1] = 2 Mat[2] = 9 Mat[3] = 14 Mat[4] = 15 Mat[5] = 6 Mat[6] = 25 8
  • 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 9
  • 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 10
  • 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 11 fin clase matriz
  • 12. ESTRUCTURAS DE DATOS  Arreglos multi-dimensionales MatRes 2 13 4 45 6 7 8 9 53 5 37 4 MatRes[1][1] = 2 MatRes[2][4] = 5 26 7 100 11 4 3 MatRes[3][2] = 7 31 32 33 34 35 36 MatRes[1][6] = 7 MatRes[2][1] = 8 MatRes[3][5] = 4 12
  • 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 13
  • 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 14
  • 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 15 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 16
  • 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 17
  • 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. 18
  • 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. 19
  • 20. B B A D F A D 20
  • 21. matriculación Sistema de Ingresar Ficha Gestión matriculación del estudiante Académica Registro de Notas y Asistencia Verificar cédula Registro de Notas y Ingresar Asistencia Notas 21
  • 22. Metodo principal Metodo xxxx Metodo Principal Llamada método Llamada método Método yyyy Llamada método Llamada al método sEjemeemp1 Llamada método Método zzzz Llamada método 22
  • 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 a. Declaraciones variables Suma, x , y: entero b. leer x, y c. Suma = x + y d. Return Suma 4. Fin Método suma Fin clase suma fin 23
  • 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 24
  • 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() 25
  • 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 26
  • 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 27
  • 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. return valor e. Fin Método 28
  • 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 29
  • 30. Métodos Algoritmo sumar Clase suma Variables 1. declaraciones variables de clase 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 a.Declaraciones Suma = x + y variables Suma, x: entero •x = 5 •Suma = x + y •Return Suma 5. Fin Método suma Fin clase suma fin 30
  • 31. Métodos Algoritmo sumar Clase suma 1. Método Principal a. declaraciones variables y : entero b. Leer y Variables c. imprimir “la suma es”, suma() d. imprimir x locales e. fin método principal 4. Metodo suma: entero a. Declaraciones variables Suma, x entero •x=5 • Suma = x + y • Return Suma e. Fin Método suma Fin clase suma 31 31 fin
  • 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ó. 32
  • 33. Métodos Algoritmo Sumatoria PARAMETROS POR VALOR Clase Suma 1.Metodo principal a. declaraciones …………. S : entero 2. método suma (val s: entero) : entero b. S = 0 a. Leer numero1 c. imprimir suma(s) b. Leer numero2 d. imprimir s c. s = numero1 + numero2 e. Fin método principal d. return S ……. e. Fin método suma Fin clase suma fin ¿Qué valor se presenta en la numero1  5 llamada a la función? numero2  8 33 ¿Cuál es el valor de S ?
  • 34. Métodos Algoritmo Sumatoria PARAMETROS POR REFERENCIA Clase Suma 1.Metodo principal a. declaraciones …………. S : entero 2. método suma (ref s: entero) : entero b. S = 0 a. Leer numero1 c. imprimir suma(s) b. Leer numero2 d. imprimir s c. s = numero1 + numero2 e. Fin método principal d. return S ……. e. Fin método suma Fin clase suma fin ¿Qué valor se presenta en la numero1  5 llamada a la función? numero2  8 34 ¿Cuál es el valor de S ?
  • 35. Ejercicios Métodos Algoritmo Factorial …………………. Clase factorial 2. método factorial (val s: entero) : entero 1. Metodo principal a. declaraciones a. declaraciones f : entero res, numero : entero b. leer numero b. f = 1 c. res = factorial (numero) c. for (i = 1; i<= numero; i++) d. imprimir res f=f*i e. Fin metodo principal d. endfor …………… e. return f Fin clase suma f. Fin metodo factorial fin 35
  • 36. Ejercicios Métodos Algoritmo Potencia Clase Potencia ……………. 1. Método principal 2. método potencia (entero bas, a. declaraciones entero exp) : entero bas, exp, res: entero a. declaraciones b. leer bas p : entero c. leer exp b. p = 1 d. res = potencia (bas,exp) c. for (i=1; i<=exp; i++) e. imprimir res p  p * bas Fin metodo principal d. endfor …………… f. return p Fin clase suma g. fin método potencia fin 36
  • 37. Algoritmo transformacion Clase transforma 1. Metodo principal 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 3. método octal (val num: entero) entero a. j = 1 a. j = 1 b. res = 0 b. res = 0 c. while (num > 0) do c. while (num > 0) do 1. d = residuo(num/2) 1. d = residuo(num/8) 2. res = res + (d*j) 2. res = res + (d*j) 3. num = num / 2 3. num = num / 8 4. j = j*10 4. j = j*10 d. endwhile d. endwhile e. return res e. return res 37 f. Fin metodo binario 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. return res 38 f. Fin Método Transformar
  • 39. Algortimo matrices Clase matriz …………………… 1. Método Principal 2. Método primo(entero num) boolean a. declaraciones a. declaraciones Variables variables Mat: Arreglo [30][10] Entero d, lim : real b. imprimir “ingrese numero de filas y columnas” p : boolean c. leer n_f,n_c b. d = 2 d. for (i=1; i<=n_f; i++) c. lim = num / 2 1. for (j  1 hasta n_c d. p  true i. leer Mat[i,j] e. while (d < num) 2. endfor 1. if(num modd) = 0 e. endfor p = falso f. for (i=1; i<=n_f; i++) d = lim 1. for (j  1 hasta n_c 2. Endif if primo(Mat[i,j]) 3. d  d + 1 imprimir “numero es primo” f. enddo endif g. return p 2. endfor h. Fin método primo g. endfor Fin clase h. fin método principal fin ……….. 39
  • 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 40
  • 41. PROGRAMACIÓN ORIENTADA A OBJETOS  Contenidos  Estudiar los conceptos básicos de la programación orientada a objetos.  Objetos.  Clases.  métodos.  encapsulamiento. 41
  • 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 42
  • 43. PROGRAMACIÓN ORIENTADA A OBJETOS  Objetos  Datos .. Atributos .. descripción  Métodos .. Comportamiento … manipulación de los datos Objeto Dato1 Dato2 dato3 Metodo1() Metodo2() Metodo3() 43
  • 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 Nombre apellidos Leernombre() 44 Leerapellido()
  • 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 45
  • 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) 46
  • 47. Instanciación Empleado Nombre apellidos Leernombre() Leerapellido() ObjetoEmpleado ObjetoEmpleado Nombre: Juan Nombre: Juan Apellidos: perez Apellidos: perez Leernombre() Leernombre() Leerapellido() Leerapellido() 47
  • 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 48
  • 49. ObjetoEmpleado ObjetoEmpleado ObjetoEmpleado Nombre: Juan Nombre: danilo Nombre: Juan Apellidos: perez Apellidos: jaramillo Apellidos: perez Horastrab: 30 Horastrab: 10 Horastrab: 40 Sueldo: 150 Sueldo: (50) = 100 Sueldo: 200 establecerombre() establecerombre() establecerombre() establecerapellido() establecerapellido() establecerapellido() Calcularsueldo() Calcularsueldo() Calcularsueldo() ObjetoEmpleado ObjetoEmpleado ObjetoEmpleado Nombre: Juan Nombre: Juan Nombre: Juan Apellidos: perez Apellidos: perez Apellidos: perez Horastrab: 45 Horastrab: 54 Horastrab: 65 Sueldo: 225+45=270 Sueldo: 270+81=351 Sueldo: 325+130=400 establecerombre() establecerombre() establecerombre() establecerapellido() establecerapellido() establecerapellido() Calcularsueldo() Calcularsueldo() Calcularsueldo() 49
  • 50. Empleado Nombre Apellidos Horastrab Sueldo Establecernombre() Establecerapellido() Establecerhoras() Calcularsueldo() obtenerDatosempleados() Obtenersueldo() 50
  • 51. Algoritmo sueldo 1. Método Establecernombre(nom :cadena) Clase empleado • NomEmp = nom a. Declaraciones • Fin Método establecernombre datos NomEmp: cadena 2. Método Establecerapellido (ape:cadena) ApeEmp: cadena • ApeEmp = nom NumHor: real • Fin Método establecerapellido sueldo: real constante costohora=5 3. Método Establecerhoras (hor:real) ……………… a. numhor = hor b. Fin Método Establecerhoras 51
  • 52. 4. Método Calcularsueldo () a. Sueldo = NumHor * costohora b. If (NumHor > 40) and (NumHor <=50) then Sueldo = sueldo + (sueldo*0.20) c. endif d. If (NumHor > 50) and (NumHor <=60) then Sueldo = sueldo + (sueldo*0.30) h. If (sueldo < 100) then e. endif sueldo = 100 f. If (NumHor > 60) then Sueldo = sueldo + (sueldo*0.40) i. Endif g. Endif j. If (sueldo > 300) then sueldo = 300 ………. k. Endif l. Fin Método 52 calcularrsueldo
  • 53. 5. Método obtenerDatosempleados() :cadena a. return (NomEmp+ “ “+ApeEmp) b. Fin Método obtenerDatosempleados 6. Método Obtenersueldo(): Real a. return sueldo b. Fin Método Obtenersueldo Finclase Empleado 53
  • 54. ……………… Clase Manipulaempleado Método Principal a. Declaraciones ……………… nombre: cadena f. Objemp.establecernombre(nombre) apellido: cadena g. Objemp.establecerapellido(apellido) horas: real h. Objemp.establecerhoras(horas) e. Declarar crear el objeto i. Objemp.calcularsueldo() f. empleado objemp = new j. Imprimir Objemp.obtenerempleado empleado() k. Imprimir objemp.obtenersueldo g. Imprimir “ingrese nombres y apellidos, y horas trabajadas” l. Fin Método Principal h. Leer nombre, apellido, horas Fin clase Manipulaempleado ……………………… Fin (algoritmo) 54
  • 55. contacto  Email: djaramillo@utpl.edu.ec  Skype: danilo.jaramillo.h  msn: djaramilloh@hotmail.com  Teléfono: 07-250275 ext 2637 55
  • 56. 56