Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual Fundamentos de Programación 1.1
Manual Fundamentos de Programación 1.1
Agradecimientos.
Villarroel,
Santolaya,
Hugo
Manuel
Herrera
Morales,
Valenzuela,
Roberto
Prez
Fernando
Fuentes,
Javier
Pedro
Miles
Avello,
Alfonso
Carolina
Fuentealba
Ehrmantraut
Martnez,
Jorge
ha
significado
mejorar
enormemente
la
Contenidos
Fundamentos del procesamiento de datos. ....................................................................................... 8
Conceptos bsicos. .......................................................................................................................... 8
Dato ........................................................................................................................................... 10
Proceso ...................................................................................................................................... 10
Informacin. .............................................................................................................................. 12
Entrada y Salida. ........................................................................................................................ 12
Proceso manual de datos. ......................................................................................................... 13
Proceso computacional de datos. ............................................................................................. 13
Estructura funcional de un computador. ...................................................................................... 14
Dispositivos de entrada y salida. ............................................................................................... 14
Unidades Internas. .................................................................................................................... 15
Unidades externas de almacenamiento secundario. ................................................................ 16
Elementos o componentes de un procesamiento computacional de datos. ............................... 18
Plantilla para prueba manual o seguimiento de ejecucin de una secuencia lgica.................... 22
Tcnicas de algoritmos para el diseo de procesos computacionales. ............................................ 26
Conceptos bsicos. ........................................................................................................................ 26
Algoritmo................................................................................................................................... 26
Programa. .................................................................................................................................. 32
Etapas en la creacin de programas. ....................................................................................... 32
Caractersticas de la programacin. .............................................................................................. 39
Estructura descendente. ........................................................................................................... 39
Modularidad. ............................................................................................................................. 40
Cohesin. ................................................................................................................................... 40
Acoplamiento. ........................................................................................................................... 41
Descomposicin. ....................................................................................................................... 42
Estructura de un algoritmo. .......................................................................................................... 43
Conceptos de variables y constantes. ........................................................................................... 44
Definicin de variables y constantes. ........................................................................................ 44
Representacin de sentencias en Instrucciones. .......................................................................... 60
5
Operadores Aritmticos. ........................................................................................................... 60
Operadores unarios y de auto asignacin................................................................................. 61
Operadores Lgicos ................................................................................................................... 62
Introduccin a lenguajes formales de Programacin. ...................................................................... 66
Estructura de un programa. .......................................................................................................... 66
Sentencia condicionales ................................................................................................................ 67
Anidada. .................................................................................................................................... 75
Mltiple ..................................................................................................................................... 77
Sentencias de ciclo iterativo.......................................................................................................... 79
While ......................................................................................................................................... 80
For ............................................................................................................................................. 81
Do While. ............................................................................................................................... 85
Concepto de funcin ..................................................................................................................... 86
Estructura de una funcin ............................................................................................................. 89
Procedimientos ......................................................................................................................... 89
Funcin .......................................................................................................................................... 95
Llamada a una funcin .................................................................................................................. 97
Arreglos ....................................................................................................................................... 108
Unidimensionales .................................................................................................................... 108
Arreglos de dos dimensiones. ..................................................................................................... 111
Arreglos de arreglos. ............................................................................................................... 113
Introduccin a la Programacin Orientada a Objeto. ..................................................................... 117
Caractersticas generales de la programacin orientada a objetos. ........................................... 117
Qu es la programacin orientada a objetos .............................................................................. 117
Atributos...................................................................................................................................... 119
Comportamientos ....................................................................................................................... 120
Estados ........................................................................................................................................ 121
Clase ............................................................................................................................................ 122
Abstraccin.............................................................................................................................. 126
Encapsulacin .......................................................................................................................... 127
Herencia .................................................................................................................................. 128
Asociacin. ................................................................................... Error! Marcador no definido.
UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES
6
Aplicaciones bsicas .................................................................................................................... 129
Seguridad en una clase................................................................................................................ 138
Get y Set. ..................................................................................................................................... 142
Fundamentos del
procesamiento de datos.
A continuacin vamos emprender un viaje slo de ida, no
te preocupes no se trata de un trgico final, es slo de
ida porque luego que conozcas todo lo que hay preparado
para t en las pginas venideras no querrs volver atrs.
Durante este manual nos encargaremos, con tu ayuda y
por supuesto la de tu profesor, de dar los primeros pasos
para convertirte en un desarrollador de proyectos de
tecnologas de la informacin, este manual es el primero
de varios y en cada uno iremos agregando ms dificultad,
mayores
novedades
elementos
cada
vez
ms
sorprendentes.
Conceptos bsicos.
Ahora
nos
referiremos
procesamiento
computacionales
de
datos,
tienen
el
los
todos
mismo
fundamentos
los
del
programas
objetivo,
primero
de
entrada,
luego
solicitas
una
operacin
10
informacin,
las
cuales
se
definen
continuacin.
Dato
Corresponde a un par ordenado de atributo con valor
(atributo, valor) que representan el registro de un hecho
importante
para
la
organizacin
en
un
momento
determinado.
Un dato esta compuesto de dos partes, un atributo y un
valor, el atributo define que es lo que deseo guardar y el
valor define el tipo de valor asociado, es decir el tipo de
datos y sus valores mximos y mnimos. Los datos
siempre estn formados por un par ordenado, ya que,
sus partes por separado carecen de sentido.
Proceso
Corresponde a la aplicacin de clculos aritmticos,
ordenamientos o algn otro tipo de manipulacin de los
datos y que a partir de ello genera informacin.
UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES
11
otro
camino
puede
ser
verificar
si
ellas
se
bsqueda
adicionalmente
ser
un
la
pelcula
buen
consejo
que
deseas
ser
ver,
considerar
12
Informacin.
Mensaje
vlido
para
un
receptor
resultante
del
procesamiento de datos.
Debes considerar que no todo lo resultante de un proceso
es informacin si esta no va dirigida a quien corresponde,
por ejemplo, si vas caminando por afuera del aeropuerto
y un mensaje que dice
y la velocidad
Entrada y Salida.
Como lo mencionamos al inicio los software llevan a cabo
principalmente cuatro acciones: recibir datos de entrada,
almacenarlos, procesarlos y entregar un resultado.
Muchas veces la palabra dato e informacin son utilizadas
indistintamente, pero sin embargo en este contexto son
muy distintas. Cuando un usuario interacta
con un
13
hacerse
con
lpiz
papel,
las
operaciones
14
Estructura funcional de un
computador.
Dispositivos de entrada y salida.
Si bien un software se basa en el procesamiento
computacional
informacin
de
no
datos
con
olvidemos
que
el
fin
estos
de
entregar
software
se
que
permiten
al
computador
emitir
15
Unidades Internas.
En un computador el encargado de procesar toda la
informacin es la Unidad Central de Proceso CPU (Central
Processing Unit). Esta unidad es la encargada del control
y de la ejecucin de las operaciones del sistema, tambin
lo conocemos como el microprocesador.
Las actividades que realiza la CPU son:
Ejecutar
las
instrucciones
de
los
programas
almacenados en la memoria.
Controlar la transferencia entre la CPU y la memoria.
Responder
las
peticiones
realizadas
por
algn
perifrico.
Unidad de control.
Coordina las actividades del computador y determina qu
operaciones se deben realizar y en qu orden; as mismo
controla todo el proceso del equipo.
16
Unidad Aritmtica-lgica
Realiza operaciones aritmticas y lgicas, entre las
operaciones aritmticas se encuentras las sumas o restas
y en las lgicas las comparaciones del tipo mayor, menor,
igual, etc.
la
informacin
alojada
ah
es
eliminada,
el
son
cargados
aqu
como
paso
previo
su
Unidades externas de
almacenamiento secundario.
Adicional a los datos que el computador almacena de
forma
temporal
para
su
procesamiento,
existen
17
simple
analoga.
Supongamos
que
eres
el
de
historia,
el
cual
contiene
informacin
volver
dejarlo
al
estante
para
luego
memoria
RAM
tengamos
mejor
rendimiento
18
escritorio
almacenan
informacin
slo
de
forma
ms
distante,
siendo
la
mano
la
unidad
de
Elementos o componentes de
un procesamiento
computacional de datos.
Cuando analices un proceso o un sistema, siempre debes
prestar atencin a las etapas o acciones que se ejecutan
en el sistema que ests analizando. Recuerda que los
sistemas estn compuestos de una serie de elementos
que interactan entre s para lograr un propsito. Para
lograr este propsito cada uno de los objetos detectados
en el proceso realizan un conjunto de acciones. Para
UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES
19
ser
procesados.
Veamos
un
ejemplo,
20
21
bsicamente
tres
planes,
prepago,
cuenta
22
Podremos
conocer
el
nuevo
saldo?,
la
anteriormente
pudiera
parecer
una
tarea
valores
que
nos
interesa
controlar
el
23
esos
valores
cambian
asocindolos
las
Acciones
Buscar los datos
del telfono
El telfono tiene
plan ilimitado?
Salida
Acciones
Buscar los datos
del telfono
El
telfono
tiene
plan
ilimitado?
Tiene
cuenta
controlada y su
saldo es 0?
Salida
Tipo Plan
Saldo
Ilimitado
Ilimitado
0
0
Datos de control
Nro
de Valor a cargar
telfono
84480965
3500
Acciones
Buscar los datos del
telfono
Tipo Plan
Saldo
Cuenta
Controlada
Cuenta
Controlada
Cuenta
Controlada
3500
3500
Datos de control
Nro
de Valor a cargar
telfono
84480965
3500
Tipo Plan
Saldo
Prepago
1000
24
El telfono tiene
plan ilimitado?
Tiene
cuenta
controlada y su
saldo es 0?
Tiene
cuenta
controlada y su
saldo es mayor a 0?
Es de prepago?
Salida
Prepago
1000
Prepago
1000
Prepago
1000
Prepago
4500
Acciones
Buscar los datos
del telfono
El telfono tiene
plan ilimitado?
Si tiene cuenta
controlada
su
saldo es 0?
Salida
Datos de control
Nro de telfono
84480965
Valor a cargar
3500
Tipo Plan
Cuenta
Controlada
Cuenta
Controlada
Cuenta
Controlada
Saldo
1000
1000
1000
1000
25
26
astrnomo
rabe
que
escribi
un
tratado
sobre
27
28
En informtica
el
algoritmo es
una de
las
piezas
responder
algoritmos
que
nosotros
los
cuales
irs
aprendiendo
durante
el
desarrollo de tu carrera.
Todo lo que ejecuta el computador son algoritmos, un
buen diseo de un algoritmo hace mejor y ms rpido a
un programa,
cmo
la
resuelve
las
operaciones
29
deseado,
el
cul
no
es
otra
cosa
que
el
mismo
problema,
una
de
las
cosas
Grficos:
Representa
en
forma
descriptiva
las
30
ser
definido,
no
debe
permitir
dobles
interpretaciones.
Debe ser general, es decir, soportar la mayora de las
variantes que se puedan presentar en la definicin del
problema.
Debe ser finito en tamao y tiempo de ejecucin. Es
decir, debe tener un fin.
Diagrama de flujo
Para el diseo de algoritmos se utilizan tcnicas de
representacin. Una de estas tcnicas son los Diagramas
de Flujo (DDF), que se definen como la representacin
grfica que mediante el uso de smbolos estndar unidos
mediante lneas de flujo, muestran la secuencia lgica de
las
operaciones
acciones
que
debe
realizar
un
Pseudocdigo.
El
escribir
aplicaciones
computacionales
se
necesita
los
cuales
el
programador
escribe
las
el
programador
escribe
estas
31
instrucciones
las
cuales
son
interpretadas
luego
cuales
permiten
generar
pseudocdigo.
El
ocuparemos
un
lenguaje
de
programacin
32
Programa.
Conjunto
de
rdenes
instrucciones
capaces
de
divididas
en
tres
grandes
bloques
claramente
Proceso:
Engloban
todas
aquellas
instrucciones
depositados nuevamente
en la
memoria
Etapas en la creacin de
programas.
Durante el desarrollo hay un conjunto de etapas que sin
importar el tipo de software que desee crearse siempre
se repiten, ya sea desde un programa muy simple como
una calculadora con las operaciones bsicas, hasta
completos sistemas de clculos en tiempo real. Estas
UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES
33
viene,
esto
suele
ser
til
para
comenzar
Requisitos.
Los requisitos de software son especificaciones claras y
puntuales sobre lo que debe contener un software para
cumplir con algn requerimiento.
Es habitual que las personas confundan requisito con
requerimiento, incluso una discusin de ello se encuentra
en el manual de anlisis y diseo orientado a objetos
dentro del capitulo de ingeniera de requerimientos, pues
bien, en ese captulo se habla de la necesidad de extraer
la informacin sobre los procesos que realizan los clientes
los cuales luego queremos construir como software ms
adelante, dichas necesidades son requerimientos y estn
asociados a las necesidades que tiene la empresa y que
luego resolveremos o apoyaremos con un software, un
requisito en cambio est ms bien asociado a lo que debe
UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES
34
lo
que
deseamos
construir,
vemoslo
con
un
sin
embargo,
cuando
dices
que
tu
Anlisis.
En la etapa de anlisis es en la que recopilamos todos los
requisitos necesarios para desarrollar el software, los
analizamos y buscamos restricciones que deban ser
aplicadas por el software. Este anlisis es recomendable
hacerlo en equipo, para ello los encargados cuentan con
un conjunto de diagramas que les permiten dibujar los
procesos que desean construir antes de comenzar a
desarrollar la aplicacin. Esta etapa es fundamental en el
ciclo de desarrollo de un software, un mal anlisis de los
requisitos podra tirar por la borda el esfuerzo de mucho
tiempo.
UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES
35
Diseo de la solucin.
En el diseo de la solucin es el momento en el que se
planifica la arquitectura de lo que se desea construir, el
diseo de una aplicacin abarca varios temas, algunos
mucho ms complejos que otros, donde todo depender
del tipo de aplicacin que deseamos construir.
Durante esta asignatura el diseo que abarcaremos
estar principalmente enfocado a cmo organizaremos el
cdigo dentro de una sola aplicacin, tal vez por ahora
sea complicado de comprender, pero pequeas rutinas de
cdigo con el tiempo las iremos organizando y agrupando
en
mtodos,
donde
cada
uno
de
estos
mtodos
crear
varios
procesos,
los
cuales
36
Codificacin.
Esta etapa se refiere a la construccin del software, es el
equivalente a comenzar a levantar los cimientos de una
casa luego de que ha sido diseada. La codificacin es un
proceso que no debiese generar problemas si el anlisis
de requisitos ha sido realizado correctamente y si los
programadores estn guindose por un diseo (diagrama
de clases) que ha sido discutido y aprobado por el equipo
responsable.
Durante esta etapa los programadores debern idear los
algoritmos que permitan solucionar cada uno de los
objetivos planteados en el diseo de la solucin y la
comunicacin entre las partes.
Durante la codificacin utilizaremos algn lenguaje de
programacin que nos permita comunicarnos con la
UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES
37
Prueba.
Las
pruebas
corresponden
la
etapa
de
la
post
muchas
pruebas
de
cada
mtodo
que
han
38
Mantencin.
La mantencin del software es un proceso que se realiza
post entrega y corresponde a modificaciones posteriores.
Las mantenciones siempre nacen a causa del cambio de
un proceso en la organizacin del cliente que lo ha
solicitado. Las mantenciones pueden ser una buena
fuente de ingreso posterior a la venta, ya que casi
siempre las mantenciones son realizadas por la misma
empresa desarrolladora, sin embargo en otras pueden
convertirse en un gran dolor de cabeza cuando el
software ha sido construido de forma poco modular
(divididos en sub programas), la mantencin se vuelve
muy dificultosa y los cambios en una parte comienzan a
provocar
errores
en
otros.
Algunos
paradigmas
de
39
Caractersticas de la
programacin.
Estructura descendente.
En la etapa de anlisis se determina que hace el
programa, en la etapa de diseo se determina cmo hace
el programa la tarea solicitada. Con el objetivo de hacer
el proceso de la resolucin de problemas ms eficaz es
que se utiliza el proceso de diseo conocido como divide
y vencers. Esto quiere decir que la resolucin de
problemas
complejos
se
realizan
dividiendo
dicho
se
realiza
con
subalgoritmos.
Los
algoritmos
con
el
proceso
de
romper
el
diseo
descendente,
TOP-DOWN
40
depurados
de
forma
individual
(hasta
por
Modularidad.
El
concepto
directamente
de
modularidad
asociado
al
en
divide
programacin
esta
Este
vencers.
Cohesin.
Este trmino tiene relacin con la capacidad de unir las
partes, la palabra cohesin es sinnimo de adhesin, por
lo tanto estamos hablando de la unin de partes. En la
UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES
41
que
ojal
fuesen
funcionales
de
forma
Acoplamiento.
El acoplamiento esta muy ligado a la cohesin, cuando un
software se encuentra dividido en partes y estas partes
son unidas de forma correcta estamos hablando de una
alta cohesin entre las partes, cuando esto esta presente
en un software de forma automtica decimos entonces
que
nuestro
programa
tiene
un
bajo
nivel
de
42
Descomposicin.
La descomposicin es una caracterstica que permite
desarmar un problema complejo en una serie de
subproblemas que por el hecho de ser partes reducidas
de un todo, pierden complejidad. Esta prdida de
complejidad nos permite concentrarnos en una parte
especfica del problema utilizando el concepto de divide
y vencers.
43
Estructura de un algoritmo.
Los algoritmos se definen como una serie de pasos bien
definidos y finitos que permiten solucionar un problema
para cualquier tipo de valores.
Bsicamente un algoritmo permite definir las acciones
que se deben realizar para solucionar un problema.
Existe una serie de acciones que acciones que se realizan
para dar solucin a un problema, por ejemplo declarar
variables, leer datos desde teclado, mostrar datos en una
pantalla, etc. Esta serie de acciones se ordenan
lgicamente para solucionar un problema. Un ejemplo de
la definicin de la estructura de un algoritmo es el
siguiente:
1.
2.
3.
4.
5.
Leer el pedido.
Examinar el historial de crdito del cliente.
Si el cliente es solvente, entregar el pedido.
En caso contrario, rechazarlo.
Fin.
44
Conceptos de variables y
constantes.
Definicin de variables y
constantes.
Cuando creamos software, los datos que van a ser
procesados, se deben guardar de forma
temporal para
de
programacin
definen
una
forma
de
nos
solicita
que
pidamos
un
espacio
45
java
los
tipos
de
datos
se
pueden
catalogar
Primitivos
Los tipos de datos primitivos son aquellos que pueden
utilizarse directamente en un programa sin necesidad de
utilizar POO, dado que no son objetos, los tipos de datos
primitivos
aportan
un
uso
ms
eficiente
en
el
los
booleanos
numricos,
los
cuales
se
46
escrita
despus
de
mi
lo
mismo
sucede
con
byte:
El byte es una variable que tiene una capacidad de 8 bits
y permite almacenar un valor de tipo entero (sin
decimales) entre el -128 y + 127. El siguiente ejemplo
declara la variable y luego le asigna el valor de cero,
cuando un valor es dado de forma inicial recibe el nombre
de inicializacin de la variable.
byte dia=0;
(Importante) las variables pueden ser inicializadas con un
valor (cero en este caso) o una expresin. Se entiende
por expresin un conjunto de operadores que dan un
resultado, pudiendo as declarar byte (o cualquier otro
tipo de dato) de la siguiente forma:
byte a = 1+1*2; tambin debes tener en cuenta que las
variables numricas no inicializadas comienzan en cero.
Short:
El short tiene una capacidad de 16 bits y permite
almacenar un valor entero entre -32768 y +32767 (al
igual que el entero en C). La siguiente lnea de cdigo
declara e inicializa dos variables.
47
Int:
El tipo de dato entero tiene una capacidad de 32 bits y
permite almacenar un valor entero entre -2147483648 y
+2147483647.
Long:
El tipo de dato long tiene una capacidad de 64 bits y
permite
almacenar
un
valor
entero
entre
9.223.372.036.854.775.808
+9.223.372.036.854.775.809
Float:
El tipo de dato float tiene una capacidad de 32 bits y
permite almacenar un valor real en coma flotante
(decimales) entre -3,4*10-38 hasta 3,4*1038 . Los valores
expresados en float deben ir acompaados de una letra f
minscula al final.
48
Double:
El tipo double tiene una capacidad de 64 bits y permite
almacenar un valor real entre -1,7*10-308 y +1,7*10308.
El double es el tipo de dato que asume Java al escribir un
real, por ello no va acompaado de ningn carcter como
en el caso del float.
Boolean:
El tipo de dato booleano es utilizado para conocer el
resultado de una evaluacin booleana, los dos posibles
valores son true y false (verdadero y falso).
Char:
El tipo char, es un tipo de datos que permite almacenar
un caracter, sin embargo el valor que en realidad
almacena es un entero equivalente entre los valores del 0
al 127 de la tabla de caracteres ASCII, la forma de
declarar un char es la siguiente:
49
Tipo de objetos.
Los tipos de objetos incluyen todos los objetos que
pueden
ser
instanciados
partir
de
las
clases
String
Un String (con su letra s mayscula) no es un tipo de
dato primitivo, sin embargo se trata en este apartado
debido a que su uso es muy habitual en los programas y
adicionalmente se puede utilizar de la misma forma en la
que se declaran los tipos primitivos. Un String es un tipo
de
dato
que
permite
almacenar
una
cantidad
de
50
declaracin
de
variables
bajo
el
paradigma
de
la
La
siguiente
imagen,
presenta
un
ejemplo
de
la
51
52
tienen
limitado
su
bloque.
Podemos
decir
53
caso
su
valor
al
correr
disminuyndola
descansar.
al
54
la
clase
persona,
pero
fuera
de
correr
55
56
57
58
59
60
Representacin de sentencias
en Instrucciones.
Operadores Aritmticos.
Los operadores aritmticos son aquellos que permiten
realizar operaciones matemticas y son:
61
tradicionales, por
Debes
prestar
especial
atencin
cuando
uses
los
62
Operadores Lgicos
Relacionales
Se usan para formar expresiones booleanas, es decir
expresiones que al ser evaluadas producen un valor
booleano: verdadero o falso. Se utilizan para establecer
una relacin entre dos
63
Booleanos:
Combinan sus operandos de acuerdo al lgebra de Boole
para producir un nuevo valor que se convierte en el valor
de la expresin.
64
65
66
Introduccin a lenguajes
formales de Programacin.
Estructura de un programa.
En JAVA al igual que en la mayora de los lenguajes de
programacin orientados a objetos, el cdigo se
estructura en clases, la forma bsica de estructurar una
clase es la siguiente:
Los Atributos que representarn un objeto, por ejemplo,
para una persona los atributos pueden ser, su edad y
peso entre otros, los atributos de una clase estn
representados por la declaracin de estructuras y tipo
primitivos, para este caso por ejemplo, la edad puede
estar representada por un tipo de dato int (entero) y un
float respetivamente.
Accesadores
y
mutadores,
los
cuales
son
comportamientos especiales dentro de una clase que
permiten conocer y cambiar el valor de un atributo.
Los comportamientos que un objeto tendr, por ejemplo,
para nuestra persona, algunos ejemplos son correr y
jugar.
67
Sentencia condicionales
Las sentencias condicionales representan un punto en
nuestro programa donde el flujo del proceso cambiar
dependiendo de alguna condicin. Si haces un anlisis
simple
vers
que
esto
no
es
tan
complicado
de
todas
aquellas
condiciones
la
que
nos
68
69
el primer caso
se cumple la condicin
y en el
ahora
que
si la
condicin se
cumple
70
71
72
como todo
73
74
deben
cumplirse
por
ende
deben
75
Anidada.
Las condiciones anidadas son condiciones que encuentras
de forma muy habitual en la vida diaria, en muchas
ocasiones una condicin depende de otra, continuemos
pensando
que
saldremos
de
paseo
an
nuestra
76
}
else
{
diversion--;}
77
Mltiple
En otras ocasiones no todo depende de una condicin con
un resultado verdadero o falso. Un buen ejemplo es
simular el comportamiento felicidad que un alumno tiene
segn la nota que ha obtenido, convengamos que la
felicidad es mayor mientras ms alta la nota que
obtenga, supondremos que las notas que un alumno
puede obtener son C, B, A siendo C la nota ms baja y A
la ms alta. Para calcular la felicidad diremos que si ha
sacado una C el valor de la felicidad se multiplicar por 1,
si es B por 3 y si es A por 5. Para lograr esto necesitamos
conocer la nota preguntando si es A, si no lo es habra
78
el
valor
programaremos
de
todas
una
las
variable,
acciones
de
que
esta
forma
deseemos
79
80
While
while(vuelta<10)
{
vuelta++;
}
tiempo++;
Aqu la ejecucin ocurrir de la siguiente forma, lo
primero que har while ser evaluar si el valor de la
variable vuelta es o no menor a 10, si el valor fuese por
ejemplo 11, la condicin no se cumplir y para este caso
se comportar muy similar al if dejando de ejecutar todo
lo que se encuentre entre el inicio y cierre de bloques de
manera que la variable vuelta no se incremente, sin
embargo si el valor es 8, la condicin ser verdadera lo
que provocar que si se ejecute todo lo que esta dentro
de los bloques haciendo entonces el incremento de la
variable. Cuando haya finalizado el incremento el while a
diferencia del if no pasar directo a incrementar el
tiempo, dado que cuando alcance el cierre de bloque
volver a preguntar por el valor de vuelta, el cual ser 9
y dado que 9 an es menor que 10 entonces while
volver a ejecutarse, incrementando el valor de vuelta en
uno, al llegar al final de bloque nuevamente se va a
UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES
81
For
Existen varias estructuras que permiten iterar una o ms
lneas de cdigo, el ciclo for es uno de ellos, pero antes
de continuar, es importante aclarar que si bien entre ellos
existen diferencias todos tienen el mismo objetivo, por
ende no existir nunca una limitante para uno u otro,
pudiendo utilizar cualquiera de ellos cuando necesites
iterar, sin embargo cada uno tiene una estructura y
sintaxis diferente, el criterio de seleccin estar dado
principalmente por el que te acomode ms y de las
necesidades que tengas.
Volvamos al ejemplo de las vueltas en una pista de
carreras presentada anteriormente. En aquel ejemplo el
while tiene por misin cerciorarse de que la variable
vuelta llegue a 10, pero no se preocupa del valor inicial
de la variable, supongamos que las condiciones cambian
y debes realizar el mismo algoritmo pero la variable
vuelta debe comenzar siempre en cero.
int vuelta=0;
while(vuelta<10)
{
vuelta++;
}
tiempo++;
82
83
84
As
podemos
entonces
obtener
un
for
cuyo
forma
indefinida.
Sobre
los
quiebres
de
ciclos
85
for(; ; ;)
{
}
En este extrao caso no hay ninguna de las partes, sin
embargo la forma en la que se ejecutar no es ningn
misterio, ya que la ausencia de una condicin da por
defecto falso, as que luego de comprobar que no hay
nada que inicializar, evaluar falso y omitir la ejecucin
del ciclo for.
Do While.
Si del ciclo do while traducimos la palabra
do veremos
hacer
obligatoria,
reconocimiento
de
la
pista
de
forma
86
Concepto de funcin
Una funcin representa una porcin de cdigo (un
conjunto de sentencias) que tienen por objetivo resolver
un problema especifico. La mayora de las veces este
conjunto de instrucciones
es parte de un algoritmo de
87
Cantidad de productos.
Precio.
Monto cancelado.
El valor del IVA
La salida:
Vuelto.
El proceso:
Multiplicar el precio por la cantidad de productos, sumar
el 19% para obtener el valor a pagar y luego al monto
cancelado restar el valor a pagar.
Este proceso puede ser dividido en partes ms pequeas
y
mucho
ms
fciles,
identifiquemos
algunos
sub
procesos.
1) Determinar el valor de los productos, este proceso es
sencillsimo, los datos de entrada son slo el precio y la
cantidad, el proceso es una multiplicacin y la salida el
producto de ambos (sub total).
88
encargado
de
realizar
distintos
clculos
cada
una
de
las
partes
reciben
nombres
89
ejemplo AreaCirculo
Procedimientos
Representa una porcin de cdigo agrupada con un
nombre
que
describa lo
que
veces
procedimiento
se
puede
quiera,
de
adicionalmente
forma
opcional
un
recibir
que
resultado,
se
por
ejecuta
ejemplo,
dentro
si
nunca
necesitas
retorna
un
hacer
un
90
Aclaremos
esto
un
poco
ms,
procedimiento
ser
utilizado
por
el
programa
saludar
siempre
imprimir
el
mismo
91
todos
los
parmetros
que
desees,
debes
92
void saludar()
{
//tu cdigo aqu
}
Como muestra el cdigo anterior el procedimiento saludar
se acompaa de parntesis vacos, lo que significa que
no recibe parmetro alguno.
93
embargo
el
procedimiento
como
requisito
para
segundo
parmetro
de
entrada
para
nuestro
procedimiento.
void saludar(String nombre, int edad)
{
System.out.println(Hola + nombre + , tengo + edad
+ aos);
}
A partir del segundo parmetro en adelante debemos
utilizar una coma para separarlos, de esta forma podrs
agregar cuantos parmetros consideres necesario como
requisito para ejecutar tu procedimiento.
Por otra parte el cuerpo de nuestro procedimiento llevar
todas las lneas de cdigo que desees, sin embargo debes
tener muy presente de que los inicios y cierres de bloque
definen el mbito (la frontera) de nuestra funcin, esto
significa que todas las variables que all se declaren
estarn disponibles slo dentro de la funcin esta regla
tambin es valida para los parmetros que recibe.
veamos un ejemplo:
94
+ codigo);
}
void despedir()
{
System.out.println(chao, recuerden que mi nombre es
+ nombre + y tengo + edad + aos y mi cdigo de
trabajador es:
+ codigo);
}
El procedimiento saludar tiene 3 variables declaradas en
su mbito, dos de ellas son nombre y edad, cuyas valores
vienen asignados desde otro lugar del cdigo y son
recibidos como una entrada. La variable cdigo en cambio
es declarada como una nueva variable e inicializada
dentro del mtodo, pero las tres tienen el mismo mbito
pudiendo usarse cualquiera de ellas dentro de los lmites
del procedimiento. Si miramos el procedimiento despedir
en cambio aseguraremos que existen 3 errores, los
cuales corresponden a la utilizacin de las variables
nombres, edad y cdigo, ya que ninguna de las tres
existe en este mbito. Si desean usarse hay que
recibirlas como
parmetro
mtodo,
alternativas
ambas
declararlas dentro
son
correctas,
pero
del
la
95
void saludar()
{
int var1 = 66;
}
void despedir()
{
int var1 = 66;
}
En el cdigo anterior la variable var1 ha sido declarada
en ambos procedimientos, esto no provocar un error ya
que ambas variables viven en un mbito diferente y el
cambio en el valor de alguna de ellas no afectar el
valor de la otra, ya que si bien comparten un mismo
identificador son variables totalmente distintas.
Funcin
Una funcin es muy similar a un procedimiento, con la
salvedad de que la funcin debe retornar algn valor, o
dicho de otra forma el proceso dentro de la funcin debe
generar algn resultado en algn tipo de datos conocido
UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES
96
pantalla, el resultado
generado
ser
97
la
programacin
estructurada
las
funciones
como
las
funciones
son
utilizadas
en
la
98
empresa.cl
System.out.println("Hola mi nombre es " + nombre
+ ", tengo " + edad + "aos y mi correo es " + correo);
}
}
Este pequeo programa presenta el nombre y la edad de
una persona, la cual se ha calculado slo considerando el
ao de nacimiento, por lo que en este simplificado
ejemplo es posible que la falta de la inclusin de los
meses produzca alguna diferencia, el clculo que se
almacena
en
una
variable
edad
que
es
despus
99
paso
siguiente
ser
determinar
cmo
debemos
100
problemitas,
analicemos
el
proceso
del
esperar
la respuesta de
la
funcin, la cual
el
valor
de
tipo
entero
que
aseguramos
101
+ empresa.cl;
return email;
}
En este caso el tipo de retorno ser un String y ello se
notifica a la izquierda del nombre de la funcin, tambin
recibe dos parmetros los cuales son el nombre y la
edad. Fjate que la edad se asume viene calculada, ya
que no es responsabilidad del mtodo generarCorreo
realizar este calculo, para ello hemos escrito otra funcin.
Luego de la concatenacin el mtodo retorna el valor de
la variable email hacia miEjemplo.
Finalmente el mdulo que realiza la impresin ser un
procedimiento, ya que no hay un valor que deseemos
retornar hacia mi Ejemplo, sin embargo para lograr la
impresin necesitaremos el nombre, la edad y el correo.
void imprimirDatos(String nombre, int edad, String
correo)
UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES
102
{
System.out.println("Hola mi nombre es " + nombre + ",
tengo " + edad + "aos y mi correo es " + correo);
}
En este caso la impresin no es un valor que vayamos a
devolver, por esto el procedimiento no lleva return y en
su firma informa que el tipo de retorno es void, vale decir
que no hay retorno.
Para unir todo el mtodo miejemplo ser el encargado
llamar a todas las funciones y dar el orden lgico de
ejecucin, luego de recodificar el cdigo el miejemplo
lucir as:
public class JavaApplication2 {
public void miEjemplo() {
int fechaNacimiento=1982;
String nombre = sebastian;
int fechaActual = 2012;
int edad =
calcularEdad(fechaNacimiento,fechaActual);
String correo =generarCorreo(nombre,edad);
imprimirDatos(nombre,edad,correo);
}
}
103
es
valido
entonces
solicitar
la
funcin
ambos
valores
son
recibidos
en
las
variables
104
(signo
igual)
dado
que
este
es
un
105
edad
correo
calcularEdad(1982,2012);
=generarCorreo(nombre,edad);
imprimirDatos(nombre,edad,correo);
}
void imprimirDatos(String nombre, int edad, String
correo)
{
System.out.println("Hola mi nombre es " + nombre + ",
tengo " + edad + "aos y mi correo es " + correo);
}
String generarCorreo(String nombre, int edad)
{
String email = nombre + edad + @
+ empresa.cl;
return email;
}
int calcularEdad(int fechaNacimiento, int FechaActual)
{
int edad = fechaActual- fechaNacimiento;
return edad;
}
}
106
+ empresa.cl;
return email;
}
int calcularEdad(int fechaNacimiento, int FechaActual)
{
int edad = fechaActual- fechaNacimiento;
107
return edad;
}
}
En este caso la lnea que asignaba el correo ha sido
eliminada, sin embargo para obtener el correo y luego
poder imprimirlo remplazamos la variable correo que ya
no est por la llamada al mtodo generarCorreo, esto es
posible ya que el mtodo lo que solicita es un string con
el correo y dado que el orden de ejecucin es desde
adentro hacia afuera, primero se ejecutar la funcin
generarCorreo la cual retornar un String y cuyo valor es
entregado a imprimir. De esta misma forma tambin
podrs llamar a funciones desde otras funciones y/o
procedimientos
como
muestra
el
siguiente
cambio
realizado a imprimir.
void
imprimirDatos(String
nombre,
int
edad,
String
correo)
{
System.out.println("Hola mi nombre es " + nombre + ",
tengo
"
edad
"aos
mi
correo
es
"
generarCorreo(nombre,edad);
}
En
este
caso
para
obtener
el
correo
le
pedimos
108
Arreglos
Un arreglo es un grupo de variables de un mismo tipo, las
cuales son referenciadas con un mismo nombre. Los
arreglos existen en ms de una dimensin, siendo los
arreglos de una dimensin (o slo arreglos) los ms
comunes
los
de
dos
dimensiones
(matrices),
Unidimensionales
Los arreglos de una dimensin, permiten almacenar una
cantidad N de variables de un tipo, la declaracin general
de un arreglo es la siguiente:
Tipo identificador [ ];
Por ejemplo:
109
110
cdigo
muestra
la forma
de
111
112
0
0
0
0
0
10
0
0
0
0
0
0
0
0
0
0
113
Arreglos de arreglos.
Es muy usual que cuando se trabaja con arreglos de dos
dimensiones,
muchos
asociamos
inmediatamente
la
114
muestra
como
luce
un
arreglo
de
dimensiones:
tres
115
116
117
Introduccin a la
Programacin Orientada a
Objeto.
Caractersticas generales de la
programacin orientada a
objetos.
Muchas personas al escuchar por primera vez la frase
programacin
orientada
objetos
la
asocian
Qu es la programacin
orientada a objetos
La programacin orientada a objetos es un conjunto de
normas, que se basan en la idea de construir un software
de forma mucho ms cercana a la vida real, simplificando
las tareas de desarrollo de software y entregando
importantes beneficios a los programadores, los cuales se
benefician principalmente de la reutilizacin de cdigo,
evitando as volver a realizar tareas comunes una y otra
vez.
(Importante) La POO no es aplicable slo a JAVA, la POO
es
una
norma
(una
forma
de
hacer
las
cosas)
118
ejercicio:
miremos a nuestro
alrededor
en
adelante
OO)
bsicamente
contiene
una
coleccin de objetos.
(Definicin) Un objeto es la instancia de una clase, la cual
contiene propiedades, comportamientos, estados y una
identidad que lo hace nico.
119
Atributos
Piensa en un televisor y trata de identificar qu atributos
este contiene, algunos de los ms visibles son:
Color
Marca
Modelo
Tamao
Peso
(Definicin)Podemos definir entonces un atributo como la
caracterstica de un objeto, la cual posee un valor.
Por ejemplo el atributo color puede tener los valores:
verde, caf, blanco, etc. As como la propiedad peso
puede ser: 3 kilos, 4 kilos, etc. No es vlido entonces
afirmar que 2 metros es un atributo, debido a que la
expresin 2 metros es en realidad el valor de un
atributo. Ahora si bien un objeto puede tener muchas
propiedades,
no
todas
son
tiles
al
momento
de
120
Comportamientos
(Definicin)Estos se refieren a todas aquellas actividades
que pueden llevarse a cabo con el objeto, los cuales se
ejecutan como respuesta a un mensaje proveniente
desde el usuario u otros objetos. Volvamos al ejemplo del
televisor y pensemos en los distintos comportamientos
que un televisor tiene, los cuales son por ejemplo:
Encender
Apagar
Cambiar canal
Cambiar el volumen.
Con estos comportamientos entramos a analizar una
caracterstica bsica de los sistemas de informacin en
general, y dice que cualquier proceso que estos realicen,
afecta al valor de un atributo, ahora los valores de dichos
atributos alguien los produce y el software los consume
para realizar un proceso. En el caso de los objetos, los
datos generalmente estn asociados a un atributo y el
comportamiento del objeto utiliza estos datos. As se da
una relacin directa entre el dato y el comportamiento, el
UNIVERSIDAD TECNOLGICA DE CHILE INACAP - REA INFORMTICA Y TELECOMUNICACIONES
121
Estados
(Definicin)Es informacin que posee el objeto, la cual
puede ser fija o variable. Por ejemplo, en el caso de
nuestro televisor algunos estados son:
Encendido
Apagado
En silencio (mute).
El estado permite definir los comportamiento que el
objeto puede o no realizar, por lo tanto no slo se trata
de los valores de las propiedades del objeto, sino de
como este se comporta con los valores que est
manejando.
122
Clase
A menudo en informtica se utiliza la palabra clase y
objeto como sinnimos, sin embargo dicha asociacin es
incorrecta.
(Definicin)Una clase es la definicin de un objeto, de sus
atributos,comportamientos y estados, es muy similar a lo
que para un arquitecto es el plano de una casa, en l se
definen la posicin de las puertas y las dimensiones que
estas tendrn. En informtica, por ejemplo, la clase que
permite crear objetos de tipo persona definir atributos
como el Rut, nombre y edad y comportamientos como
comer, jugar, cantar y estudiar.
Continuando con el ejemplo del televisor, pensemos en
qu sucede si ahora ponemos frente a nuestra vista 3
televisores, qu es lo que tienen en comn? La
respuesta
la
pregunta
sera,
atributos,
que
objeto?
123
cambia
es
su
valor,
as
mismo
comparten
los
124
125
Adicionalmente
podemos
agregar
algunos
comportamientos:
Verificar edad (el cual verifica que la edad sea mayor a
18 aos)
Una vez nuestra clase (definicin de cmo es un objeto)
est resuelta, debemos utilizar un lenguaje como JAVA
para crear la clase en nuestro computador y a partir de
ella podemos crear todos los objetos que deseemos con
distintos
valores
en
sus
propiedades
los
que
utilizando
complementar
lo
la
anterior
tecnologa
creando
Java
debemos
aplicaciones
que
126
Abstraccin
(Definicin)La abstraccin corresponde a la ignorancia
selectiva con la que enfrentamos un problema, el
concepto
de
abstraccin
nos
dice
que
debemos
sabes
que
algunas
propiedades
Peso,
Estatura,
gnero,
masa
muscular,
127
Encapsulacin
(Definicin)Es la caracterstica que tienen las clases de
ocultar la complejidad de sus comportamientos, mediante
la presentacin al usuario de una interfaz, la cual
responde a peticiones a travs de mtodos sin la
necesidad de exponer los medios utilizados para brindar
un resultado.
El encapsulamiento es un concepto con el que lidiamos a
menudo sin darnos cuenta, por ejemplo, si volvemos al
caso
del
televisor
citado
antes
recordamos
los
128
todos
Finalmente
el
los
mecanismos
usuario
recibe
para
como
encenderse.
recompensa
un
Herencia
La herencia es una de las ms interesantes bondades que
presenta
la
POO.
Gracias
ella
es
posible
una
nuevas
funciones
que
son
cada
vez
ms
especficas,
(Definicin)La herencia define una relacin entre clases,
en
la
cual
una
clase
comparte
su
estructura
129
Aplicaciones bsicas
Como habamos conversado anteriormente, Java es un
programa OO, lo que significa que slo se compone de
objetos y que ellos son instanciados (construidos) a partir
de una clase, la cual es la que define los atributos y
comportamientos que puede realizar. Afortunadamente
para nosotros, no todos los objetos que se necesitan
comnmente en un software debemos construirlos a
partir de una clase desarrollada con esfuerzo nuestro,
esto debido a que Java ya ha identificado muchos objetos
que los programadores necesitan y para cada uno de
ellos
ya
existe
una
clase
que
contiene
toda
su
130
ser
entonces:
Qu
datos
nos
permiten
131
promedio.
De
forma
tradicional
estas
variables
archivo,
CalculadorDeNota.Java.
el
Es
cual
muy
llamaremos
importante
que
el
132
definir
en
nuestra
clase,
que
atributos
atributos,
deben
ser
vistos
por
todos
los
133
consta
principalmente
de
mtodos
comportamientos:
Sumar nota: el cual nos permite agregar una nueva
nota, la que agregaremos a la sumatoria de las notas
anteriores, adicionalmente debe contar la cantidad de
notas sumadas al realizar la operacin.
Resultado: divide la sumatoria de las notas en la
cantidad de notas ingresadas.
Asignar asignatura: permite ingresar el cdigo de la
asignatura.
Comenzaremos por el ms sencillo, el comportamiento
que calcula el resultado.
134
135
probarla
ahora
desde
una
nuestro
pequea
mtodo
main,
demostracin,
es
136
La
explicacin
al
cdigo
anterior
es
la
siguiente:
137
calculador,
anteriormente.
es
Imprime
decir
el
el
valor
001
ingresado
resultante
de
la
sin
la
necesidad
de
volver
codificarlos
138
139
140
El
valor
68
son
asignados
las
variables
141
142
Get y Set.
La respuesta a este problema se encuentra en el get y
set de Java, los cuales no son otra cosa que dos
comportamientos que existen por cada atributo que
exista en la clase. Los get y set proveen un mecanismo
que permiten cambiar o conocer el valor de un atributo
desde fuera de la clase como si fuesen pblicas, sin
embargo agregan la posibilidad de llevar un mejor control
sobre los valores que se le asignan. El comportamiento
get (acceder) para el atributo asignatura lucir de la
siguiente forma:
143
asignaturas,
una
corresponde
al
atributo
144
145
que
la
variable
nuevaAsignatura
que
146
objeto
de
tipo
calculadorDeNota
que
existe,
147