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