Documente Academic
Documente Profesional
Documente Cultură
INTRODUCCION
Para el desarrollo del curso Fundamentos de Programacin, se debe conocer el
concepto de algoritmo, adicional el concepto de programa estos dos conceptos bsicos
I. OBJETIVOS
Al trmino de esta experiencia, el estudiante ser capaz de:
1.
Conocer el Java.
2.
Traducir a cdigo Java los ejercicios resueltos en pseudocdigos.
3.
Identificar los diversos errores de compilacin y corregirlos
adecuadamente.
4.
Plantear correctamente las estructuras secuenciales en cdigo Java.
5.
Usar correctamente el programa NetBeans 6.9.1.
Computadora personal
Programa NetBeans 6.9.1 instalado
Cuaderno de clases, donde estn
pseudocdigos.
los
ejercicios
resueltos
en
Homero Simpson
Fresa
Perro
Curso de java
Girasol
Ferrari
Tal como se puede apreciar en los ejemplos, tenemos objetos que son parte del
mundo real, pero tambin tenemos objetos que son abstractos es decir, no son
elementos fsicos y que los podamos identificar con nuestros sentidos, si son
ms que todo la idea de algo que conocemos.
Si
juntamos
Matemtica,
Comunicaciones
e
Ingls, podemos formar
la clase Curso
CURSO ?
Cuando un objeto es instanciado de una clase, este objeto pasa a tener las
mismas propiedades y mtodos que los que contiene la clase. Es por eso que
las clases son los moldes a partir de los cuales se generan los objetos.
Curso
Pizarra
Propiedades
Nombre
Color de Cabello
Fecha de Nacimiento
Peso
Nmero de Crditos
Color
Forma
Ejm:
Objeto_juan_perez.color_ojos = Azul
Objeto_pizarra.forma = Rectangular
<valor a
Objeto_carro.numero_puertas = 4
En estos ejemplos, lo que se est haciendo es asignarlos los valores a los
objetos respectivos. Es decir, el objeto Juan Prez ahora en su propiedad
Color_ojos tendr el valor Azul; el objeto Pizarra, tendr ahora en su
propiedad Forma el valor Rectangular y el objeto Carro, tendr el
valor 4 en su propiedad Numero_puertas.
2. Lectura de Datos del Objeto. Mediante esta funcin las propiedades
permiten que se puedan ver o leer los datos que contiene un objeto, de esa
manera el objeto revela sus caractersticas a travs de las propiedades.
Para leer los datos de un objeto se utiliza la siguiente sintaxis:
<nombre de variable> =
propiedad>
Ejm:
Color = Objeto_juan_perez.color_ojos
Forma = Objeto_pizarra.forma
Numero = Objeto_carro.numero_puertas
Si asumimos los valores que hemos ingresado a cada uno de estos objetos
en el ejemplo anterior, podemos decir que:
objeto>.<nombre
de
Caractersticas de un Objeto.
Un objeto se caracteriza por las siguientes particularidades:
1. Identidad. Un identificador inequvoco, que permite identificar al objeto de
los dems objetos que son iguales a l.
2. Estado. Conjunto de valores presentes en las propiedades o atributos de un
objeto en un momento y entorno determinado.
3. Comportamiento. Conjunto de operaciones o acciones que realiza el objeto
para cumplir con rol.
FUNDAMENTOS DE JAVA
Introduccin a Java.
Java surgi en 1991 cuando un grupo de ingenieros de SUN Microsystems
trataron de disear un nuevo lenguaje de programacin destinado a
electrodomsticos. La reducida potencia de clculo y memoria de los
electrodomsticos llev a desarrollar un lenguaje sencillo capaz de generar
cdigo de tamao muy reducido.
Debido a la existencia de distintos tipos de CPUs y a los continuos cambios, era
importante
conseguir una herramienta independiente del tipo de CPU utilizada.
Desarrollaron un cdigo neutro que no dependa del tipo de electrodomstico,
el cual se ejecutaba sobre una mquina hipottica o virtual denominada Java
Virtual Machine (JVM).
Era la JVM quien interpretaba el cdigo neutro convirtindolo a cdigo
particular de la CPU utilizada. Esto permita lo que luego se ha convertido en el
principal lema del lenguaje: Write Once, Run Everywhere. A pesar de los
esfuerzos realizados por sus creadores, ninguna empresa de electrodomsticos
se interes por el nuevo lenguaje.
Como lenguaje de programacin para computadores, Java se introdujo a finales
de 1995. La clave fue la incorporacin de un intrprete Java en la versin 2.0
del programa Netscape Navigator, produciendo una verdadera revolucin en
Internet. Java 1.1 apareci a principios de 1997, mejorando sustancialmente la
primera versin del lenguaje. Java 1.2, ms tarde rebautizado como Java 2,
naci a finales de 1998.
Al programar en Java no se parte de cero. Cualquier aplicacin que se
desarrolle cuelga (o se apoya, segn como se quiera ver) en un gran nmero
de clases preexistentes. Algunas de ellas las ha podido hacer el propio usuario,
otras pueden ser comerciales, pero siempre hay un nmero muy importante de
clases que forman parte del propio lenguaje (el API o Application Programming
Interface de Java).
Java incorpora en el propio lenguaje muchos aspectos que en cualquier otro
lenguaje son extensiones propiedad de empresas de software o fabricantes de
ordenadores (threads, ejecucin remota, componentes, seguridad, acceso a
bases de datos, etc.). Por eso muchos expertos opinan que Java es el lenguaje
ideal para aprender la informtica moderna, porque incorpora todos estos
conceptos de un modo estndar, mucho ms sencillo y claro que con las
citadas extensiones de otros lenguajes. Esto es consecuencia de haber sido
diseado ms recientemente y por un nico equipo.
El principal objetivo del lenguaje Java es llegar a ser el nexo universal que
conecte a los usuarios con la informacin, est sta situada en el ordenador
local, en un servidor de Web, en una base de datos o en cualquier otro lugar.
Java es un lenguaje muy completo (de hecho se est convirtiendo en un macrolenguaje: Java 1.0 tena 12 packages; Java 1.1 tena 23 y Java 1.2 tiene 59). En
cierta forma casi todo depende de casi todo. Por ello, conviene aprenderlo de
modo iterativo: primero una visin muy general, que se va refinando en
sucesivas iteraciones. Una forma de hacerlo es empezar con un ejemplo
completo en el que ya aparecen algunas de las caractersticas ms
importantes.
La compaa SUN describe el lenguaje Java como simple, orientado a objetos,
distribuido,
interpretado, robusto, seguro, de arquitectura neutra, portable, de altas
prestaciones, multitarea y dinmico.
Qu es Java 2?
Java 2 (antes llamado Java 1.2 o JDK 1.2) es la tercera versin importante del
lenguaje
de
programacin Java.
No hay cambios conceptuales importantes respecto a Java 1.1 (en Java 1.1 s
los hubo respecto a Java 1.0), sino extensiones y ampliaciones, lo cual hace
que a muchos efectos. Por ejemplo, para esta introduccin sea casi lo mismo
trabajar con Java 1.1 o con Java 1.2.
Los programas desarrollados en Java presentan diversas ventajas frente a los
desarrollados en otros lenguajes como C/C++. La ejecucin de programas en
Java tiene muchas posibilidades: ejecucin como aplicacin independiente
(Stand-alone Application), ejecucin como applet, ejecucin como servlet, etc.
El compilador de Java.
Se trata de una de las herramientas de desarrollo incluidas en el JDK. Realiza
un anlisis de sintaxis del cdigo escrito en los ficheros fuente de Java (con
extensin *.java). Si no encuentra errores en el cdigo genera los ficheros
compilados (con extensin *.class). En otro caso muestra la lnea o lneas
errneas.
En el JDK de SUN dicho compilador se llama javac.exe. Tiene numerosas
opciones, algunas de las cuales varan de una versin a otra. Se aconseja
consultar la documentacin de la versin del JDK utilizada para obtener una
informacin detallada de las distintas posibilidades.
Multiplataforma
Multihilo
Orientado a objetos
Simple
Import
Los paquetes de clases se cargan con la palabra clave import,
especificando el nombre del paquete como ruta y nombre de clase (es lo
mismo que #include de C/C++). Se pueden cargar varias clases
utilizando un asterisco.
import java.Date;
import java.awt.*;
Si un fichero fuente Java no contiene ningn package, se coloca en el
paquete por defecto sin nombre. Es decir, en el mismo directorio que el
fichero fuente, y la clase puede ser cargada con la sentencia import:
import MiClase;
Paquetes de Java
El lenguaje Java proporciona una serie de paquetes que incluyen
ventanas, utilidades, un sistema de entrada/salida general, herramientas
y comunicaciones. En la versin actual del JDK, los paquetes Java que se
incluyen son:
java.applet. Este paquete contiene clases diseadas para usar con
applets. Hay una clase Applet y tres interfaces: AppletContext,
AppletStub y AudioClip.
java.lang. Este paquete incluye las clases del lenguaje Java propiamente
dicho: Object, Thread, Exception, System, Integer, Float, Math, String,
etc.
java.net. Este paquete da soporte a las conexiones del protocolo TCP/IP
y, adems, incluye las clases Socket, URL y URLConnection.
java.util. Este paquete es una miscelnea de clases tiles para muchas
cosas en programacin. Se incluyen, entre otras, Date (fecha), Dictionary
(diccionario), Random (nmeros aleatorios) y Stack (pila FIFO).
CLASES. Las clases son lo ms simple de Java. Todo en Java forma parte de
una clase, es una clase o describe cmo funciona una clase. El conocimiento de
las clases es fundamental para poder entender los programas Java.
Todas las acciones de los programas Java se colocan dentro del bloque de una
clase o un objeto. Todos los mtodos se definen dentro del bloque de la clase,
Java no soporta funciones o variables globales.
Esto puede despistar a los programadores de C++, que pueden definir
mtodos fuera del bloque de la clase, pero esta posibilidad es ms un intento
de no separarse mucho y ser compatible con C, que un buen diseo orientado
a objetos. As pues, el esqueleto de cualquier aplicacin Java se basa en la
definicin de una clase.
Todos los datos bsicos, como los enteros, se deben declarar en las clases
antes de hacer uso de ellos. En C la unidad fundamental son los ficheros con
cdigo fuente, en Java son las clases. De hecho son pocas las sentencias que
se pueden colocar fuera del bloque de una clase. La palabra clave import
(equivalente al #include) puede colocarse al principio de un fichero, fuera del
bloque de la clase. Sin embargo, el compilador reemplazar esa sentencia con
el contenido del fichero que se indique, que consistir, como es de suponer, en
ms clases.
Tipos de Clases
Hasta ahora slo se ha utilizado la palabra clave public para calificar el
nombre de las clases que hemos visto, pero hay tres modificadores ms.
Los tipos de clases que podemos definir son:
1. Abstract. Una clase abstract tiene al menos un mtodo abstracto. Una
clase abstracta no se instancia, sino que se utiliza como clase base
para la herencia.
2. Final. Una clase final se declara como la clase que termina una
cadena de herencia. No se puede heredar de una clase final. Por
ejemplo, la clase Math es una clase final.
3. Public. Las clases public son accesibles desde otras clases, bien sea
directamente o por herencia. Son accesibles dentro del mismo
paquete en el que se han declarado. Para acceder desde otros
paquetes, primero tienen que ser importadas.
4. Synchronizable. Este modificador especifica que todos los mtodos
definidos en la clase son sincronizados, es decir, que no se puede
acceder al mismo tiempo a ellos desde distintos threads; el sistema
se encarga de colocar los flags necesarios para evitarlo. Este
mecanismo hace que desde threads diferentes se puedan modificar
las mismas variables sin que haya problemas de que se
sobreescriban.
5. Private. Las clases privadas solo pueden ser utilizadas dentro de las
clases donde son creadas, mas no pueden ser accedidas desde otras
clases.
6. Protected. Las clases protegidas pueden ser accedidas por sub clases
de la clase donde son declaradas o por otras clases dentro del mismo
paquete.
Sintaxis de un Mtodo
<Tipo de Acceso> <tipo_devuelto> <nombre_de_mtodo> (<listaformal-de-parmetros>)
{
cuerpo_del_mtodo;
}
Por ejemplo el siguiente mtodo devuelve la suma de dos enteros:
int metodoSuma( int paramX, int paramY )
{
return ( paramX + paramY );
}
En el caso de que no se desee devolver ningn valor se deber indicar
como tipo la palabra reservada void. As mismo, si no se desean
parmetros, la declaracin del mtodo debera incluir un par de
parntesis vacos (sin void):
void metodoVacio( ) { };
Los mtodos son llamados indicando una instancia individual de la clase,
que tendr su propio conjunto nico de variables de instancia, por lo que
los mtodos se pueden referir directamente a ellas.
El mtodo inicia() para establecer valores a las dos variables de instancia
sera el siguiente:
void inicia( int paramX, int paramY )
{
x = paramX;
y = paramY;
}
LOS OBJETOS
Referencias a Objeto e Instancias
Los tipos simples de Java describan el tamao y los valores de las
variables. Cada vez que se crea una clase se aade otro tipo de dato que
se puede utilizar igual que uno de los tipos simples. Por ello al declarar
una nueva variable, se puede utilizar un nombre de clase como tipo. A
estas variables se las conoce como referencias a objeto.
Todas las referencias a objeto son compatibles tambin con las
instancias de subclases de su tipo. Del mismo modo que es correcto
asignar un byte a una variable declarada como int, se puede declarar
que una variable es del tipo MiClase y guardar una referencia a una
instancia de este tipo de clase:
MiPunto p;
Esta es una declaracin de una variable p que es una referencia a un
objeto de la clase MiPunto, de momento con un valor por defecto de null.
La referencia null es una referencia a un objeto de la clase Object, y se
podr convertir a una referencia a cualquier otro objeto porque todos los
objetos son hijos de la clase Object.
El operador new
El operador new crea una instancia de una clase (objetos) y devuelve
una referencia a ese objeto. Por ejemplo:
MiPunto p2 = new MiPunto();
Este es un ejemplo de la creacin de una instancia de MiPunto, que es
controlador por la referencia a objeto p2.
Hay una distincin crtica entre la forma de manipular los tipos simples y
las clases en Java: Las referencias a objetos realmente no contienen a los
objetos a los que referencian. De esta forma se pueden crear mltiples
referencias al mismo objeto, como por ejemplo:
MiPunto p3 =p2;
Aunque tan slo se cre un objeto MiPunto, hay dos variables (p2 y p3)
que lo referencian. Cualquier cambio realizado en el objeto referenciado
por p2 afectar al objeto referenciado por p3. La asignacin de p2 a p3
no reserva memoria ni modifica el objeto.
Acceso al objeto
El operador punto (.) se utiliza para acceder a las variables de instancia y
los mtodos contenidos en un objeto, mediante su referencia a objeto:
referencia_a_objeto.nombre_de_variable_de_instancia
referencia_a_objeto.nombre_de_mtodo( lista-de-parmetros );
Hemos creado un ejemplo completo que combina los operadores new y
punto para crear un objeto MiPunto, almacenar algunos valores en l e
imprimir sus valores finales:
MiPunto pg = new MiPunto();
pg.dibujapunto()
pg.radio = 123.69
Este es uno de los aspectos ms importantes de la diferencia entre la
programacin orientada a objetos y la programacin estructurada.
Cuando se llama al mtodo pg.dibujapunto(), lo primero que se hace en
el mtodo es sustituir los nombres de los atributos de la clase por las
correspondientes variables de instancia del objeto con que se ha
llamado.
Si otros objetos llaman a pg.dibujapunto(), incluso si lo hacen de una
manera concurrente, no se producen efectos laterales, ya que las
variables de instancia sobre las que trabajan son distintas.
La referencia this
Java incluye un valor de referencia especial llamado this, que se utiliza
dentro de cualquier mtodo para referirse al objeto actual. El valor this
se refiere al objeto sobre el que ha sido llamado el mtodo actual.
Se puede utilizar this siempre que se requiera una referencia a un objeto
del tipo de una clase actual. Si hay dos objetos que utilicen el mismo
cdigo, seleccionados a travs de otras instancias, cada uno tiene su
propio valor nico de this.
En Java se permite declarar variables locales, incluyendo parmetros
formales de mtodos, que se solapen con los nombres de las variables
de instancia.
Ejemplo.
Public class Nombre_Clase
{
Public void accion01 ()
{
<cdigo>
}
Public int accion02 (double radio, string tipo)
{
<cdigo>
this.accion01();
}
}
TIPOS DE DATOS EN JAVA
VARIABLES. Una variable es un nombre simblico que se utiliza para
identificar el contenido de una direccin en memoria.
tipoVariable nombre;
tipoVariable nombre = <valor inicial>;
Ejm.
int midato;
int midato = 32;
int midatoA= 3, midatoB = 6, midatoC = 5;
Diferentes tipos de variables.
Las variables en Java deben tener un tipo de dato asociado. El tipo de
dato de esa variable indicara los valores que la variable puede contener
y las operaciones que se pueden realizar con ella. Podemos diferenciar
los datos en Java en dos categoras de datos principales: los tipos
primitivos y los tipos referenciados.
Los tipos primitivos contienen un slo valor e incluyen los tipos como los
enteros, coma flotante, los caracteres, de tipo booleano etc...
Los tipos referenciados se llaman as porque el valor de una variable de
referencia es una referencia (un puntero) hacia el valor real. En Java
tenemos los arrays, las clases y los interfaces como tipos de datos
referenciados.
1. Enteros. Estos tipos son byte, short, int y long, que guardan el signo
valor, estos representan un nmero y no pueden representar
elementos fraccionarios. Esto puede ser un buen ejemplo de
declaracin de tipos de datos enteros.
Nombres de Variables
Un programa se refiere al valor de una variable por su nombre. Por
convencin, en Java, los nombres de las variables empiezan con una
letra minscula (los nombres de las clases empiezan con una letra
mayscula).
Todos los nombres de variables de instancia o de clase deben estar
constituidos por palabras con la primera letra de la primera palabra en
minscula y la primera letra de las palabras internas en mayscula.
Los nombres de variables deben ser cortos y significativos. La eleccin
de un nombre de variable debe ser mnemotcnico, es decir, pensado
para que un lector casual al verla comprenda su uso. Se deben evitar las
variables de una sola letra, excepto en variables temporales de corto
uso.
Nombres comunes para este tipo de variables son: i, j, k, m y n para
enteros; c, d, y e para caracteres.
char Nombre;
Double myMedida;
int x,y;
2. OPERADORES.
a) Matemticos.
b) Comparacin.
c) Lgicos.
d) Incrementales.
VI.PROCEDIMIENTO
a) Encender el computador.
b) Crear carpeta donde guardar sus programas.
Primero debe ingresar al explorador de Windows (Puede hacerlo por
medio del botn inicio programas accesorios - explorador de
Windows
Selecciona la
unidad donde
crearas tu
carpeta
Clic en barra de
men Archivo
Proyecto Nuevo
Una vez que se dio clic en proyecto nuevo, nos aparece la siguiente ventana
en donde procederemos a colocar el tipo de proyecto que vamos a generar
en este caso se selecciona la carpeta Java y el proyecto es una aplicacin
Java.
Seleccionar la
categora del
proyecto
Seleccionar el
tipo de
proyecto
Clic en el botn
siguiente
carpeta dedicada para almacenar las bibliotecas. Para terminar dar clic en
terminar.
Seleccione la carpeta
donde se guardar
nuestros proyectos
Activar
casilla
Enunciado 01
Ahora procederemos a codificar nuestro primer programa, basados en el
algoritmo generado para dar solucin al primer problema planteado en la gua
prctica: Algoritmo para calcular le peso total de 5 sacos de arroz.
Analizando el problema
Como podemos observar en este caso es necesario saber los valores de
algunos datos que se presentan a manera de incgnitas para nosotros.
razonar
fcilmente
que
para
saber
cunto
pesan
tiene.
Entonces hemos podido identificar dos datos que son necesarios para
realizar el calculo que nos ha sido solicitado, estos datos son: el peso
del saco de arroz en kilos el cual no conocemos, por lo tanto pasa a
ser para nosotros un dato de entrada, es decir, un dato que nos va a
ser dado por el usuario por lo cual puede ser variable; el siguiente
dato es la cantidad de sacos que se tiene, dato que nos ha sido
entregado en el enunciado del problema y es un valor constante (5
sacos). De esta parte de nuestro anlisis podemos identificado un
dato de entrada para nuestro problema que es el peso del saco de
arroz en kilos.
Una vez definidas las variables de entrada veamos cual es el clculo
o proceso necesario para poder llegar a la solucin o respuesta que
nos ha sido solicitada.
Peso total de sacos= cantidad de sacos * peso de cada saco
Como ya sabemos el nmero de sacos que se tiene nuestra formula o
proceso de clculo puede quedar de la siguiente manera
Peso total de sacos=5 * peso de cada saco
Desarrollando el algoritmo
Para la solucin de problemas siempre hemos tenido en cuenta un proceso que
es la definicin de los datos de entrada, proceso de clculo y la salida o
entrega de la respuesta. En el caso de los algoritmos sigue siendo el mismo
trabajo ya que el algoritmo es la representacin de la solucin de problemas.
ENTRADA
PROCESO
SALIDA
Entrada. Para este primer paso del proceso como hemos observado en la
solucin del problema tratamos de identificar cules son los datos necesarios
para llegar a la solucin del problema. Pudimos identificar en este ejemplo
como dato de entrada el peso en kilos de un saco de arroz, dato para el cual
vamos a usar un identificador, por ejemplo X o Y, para este caso nuestro dato
quedar identificado como peso.
Bien podemos observar entonces que hemos identificado una variable o dato
de entrada llamada peso, ahora es necesario determinar con qu tipo de dato
va a trabajar dicha variable (nmeros enteros, decimales, texto, etc). Para el
presente caso se determina que el peso va a ser un nmero entero.
Proceso. En esta fase se define la operacin u operaciones (clculos o tareas)
necesarias para llegar a la respuesta o solucin que nos ha sido solicitada. Para
el ejemplo actual quedara establecido de la siguiente manera:
PesoTotal = Peso *5
PesoTotal = El peso de los 5 sacos de arroz
Cantidad de sacos = 5
Peso = Peso establecido para un saco de arroz
Salida. La salida est identificada como la respuesta o respuesta que nos han
sido solicitadas, para el presente ejemplo nuestra salida es el peso total de los
5 sacos de arroz y su identificador definido es PesoTotal.
Luego de tener claras las tres etapas de solucin del problema pasamos a la
definicin del algoritmo, en este caso mediante el uso de Pseudocdigo.
Para finalizar nuestro algoritmo en pseudocdigo queda establecido de la
siguiente manera
Procedimiento Principal
Inicio
Entero Peso, PesoTotal // Definiendo las variables que usaremos
Escribir (Ingrese el peso del saco de arroz) // Enviar un mensaje
Leer(peso) // Capturar el dato ingresado por el usuario
PesoTotal = Peso * 5 // Realizar la siguiente ecuacin
Salida(PesoTotal) // Lamada al procedimiento Salida
Fin
Procedimiento Salida(entero PesoTotal)
Inicio
Escribir(El peso total de los sacos de arroz es: , PesoTotal)
Fin
Codificando en Java.
Para finalizar el algoritmo debe quedar traducido a un lenguaje de
programacin, en este caso el lenguaje con el que trabajamos en Java, para lo
cual ser necesario que creemos nuestro proyecto a travs de NetBeans.
}
Nuestro reto es desarrollar el siguiente problema y llevarlo a Pseudocdigo y
cdigo Java:
Realizar un programa que permita calcular el peso total de los sacos de papa
que llegan a una tienda.
Enunciado 02
El siguiente enunciado nos pide: Algoritmo para calcular el 15% del sueldo de
un empleado.
Analizando el problema
Como podemos observar para el presente ejercicio es necesario
conocer el sueldo del trabajador y el porcentaje que debemos
calcular para llegar a nuestra respuesta. Sin embargo el porcentaje
que nos solicitan ya lo conocemos, es 15% un valor constante, por lo
cual dejamos identificado una variable de entrada que sera el sueldo
del trabajador.
El proceso de clculo para llegar a la respuesta queda definido de la
siguiente manera:
Porcentaje de sueldo = Sueldo de trabajador * 0.015
Finalmente la salida identificada es el porcentaje del sueldo que
debemos hallar
Codificando en Java
package sueldoporc;
import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
double sueldo;
double porc;
sueldo=Double.parseDouble(JOptionPane.showInputDialog("Ingrese el
sueldo: "));
porc=sueldo*0.15;
salida(sueldo,porc);
}
public static void salida(double sueldo, double porc)
{
JOptionPane.showMessageDialog(null,"El 15 % de " + sueldo + " es: " +
porc);
}
}