1 Parte: Elementos de un programa informático. JAVA.

1 Parte: Elementos de un programa informático. JAVA.

Contenido

Índice

  • 1 Programa y lenguajes de programación.
  • 2 P.O.O. El lenguaje JAVA.
  • 3 Estructura y bloques fundamentales de un programa.
  • 4 Entornos integrados de desarrollo.
  • 5 Entrada y salida elemental.
  • 6 Tipos de datos simples.
  • 7 Constantes y literales.
  • 8 Variables.
  • 9 Operadores y expresiones.
  • 10 Conversiones de tipos (CAST).
  • 11 Algunas funciones predefinidas.
  • 12 Bloques de instrucciones.
  • 13 Documentación JAVA.
  • 14 Consideraciones.

 

1 Parte: Elementos de un programa informático. JAVA.

1.1      Programa y lenguajes de programación.

  • ¿Qué es un programa? Es una serie de órdenes o instrucciones ordenadas con una finalidad concreta que realizan una función
  • ¿Qué es un lenguaje de programación?
    • Lenguaje: conjunto de símbolos y palabras (léxico) y conjunto de reglas (sintaxis y semántica) que permiten agrupar los símbolos para formar las frases del
    • De programación: Sirve para especificar algoritmos sobre un Un programa se escribe como una secuencia de frases del lenguaje.
    • Tipos:
      • Lenguajes de bajo
      • Lenguajes de alto

 

1.1      Programa y lenguajes de programación.

  • Lenguajes de Bajo Nivel:
    • Lenguaje muy cercano a la máquina.
    • Las instrucciones del lenguaje son las instrucciones del

microprocesador del ordenador.

  • Difícil y costoso de
  • Cada máquina tiene su propio
  • Tipos:
    • Lenguaje Máquina: Único que entiende el ordenador, el
    • Lenguaje Ensamblador: Códigos mnemotécnicos. Cada instrucción ensamblador equivale a una sola instrucción en lenguaje máquina.
  • Ejemplo:
    • Ensamblador Código Máquina (Hex)
    • Mov ax, 003 B8 03 00

 

1.1      Programa y lenguajes de programación.

  • Lenguajes de Alto Nivel:
    • Lenguaje próximos al lenguaje
    • Mayor independencia de la máquina. Mismo programa en distintas máquinas.
    • Programación más fácil y menos
    • Instrucciones más flexibles y
  • Ejemplos:
    • Java, C, C++, C#…

 

  • Programa y lenguajes de programación.
    • ¿Qué es el código fuente? Es el que escribe el programador en un lenguaje de programación que luego lo compila a código máquina.
    • ¿Qué es el compilar? Consiste en transformar el lenguaje inteligible por la máquina a lenguaje inteligible por el
    • El código fuente está escrito en un lenguaje de programación y el compilador es un programa que se encarga de transformar el código fuente en código máquina.
    • Cada lenguaje tiene su propio

 

1.1      Programa y lenguajes de programación.

  • JAVA genera un lenguaje máquina intermedio interpretable por una máquina virtual instalada en el ordenador donde se va a
  • Una máquina virtual es una máquina ficticia que traduce las instrucciones máquina ficticias en instrucciones para la máquina

 

  • Compiladores: convierten lenguajes de alto nivel a código máquina. Realizan primero la traducción completa, y si no hay errores se genera el código máquina.
  • Intérpretes: convierten de lenguajes de alto nivel a código máquina. Se traduce y ejecuta instrucción a instrucción.

 

1.2       P.O.O. El lenguaje JAVA.

  • Modelo de programación más utilizado
  • La clase es el elemento central de un programa OO. Determina el comportamiento y características propias de sus
  • Al caso particular de una clase se le denomina objeto.
  • Un programa se entiende como un conjunto de objetos que interactúan entre sí.
  • Principal ventaja POO -> facilita el reúso del código ya

 

1.2       P.O.O. El lenguaje JAVA.

  • JAVA es un lenguaje (año 1991).
  • JAVA es    multiplataforma              (independencia            de            la máquina donde se va a ejecutar).
  • JAVA hace uso de una Máquina Virtual Java (JVM).
  • Procedimiento necesario  para   la                           ejecución  de      un programa en JAVA:
  • JAVA es un compilador (compila a bytecode (código intermedio más abstracto que el código máquina), código JVM) y a la vez un intérprete (se encarga de ejecutar ese código intermedio en la máquina real).

 

1.2       P.O.O. El lenguaje JAVA.

  • JDK(Java Development Kit): contiene aplicaciones de consola y herramientas de compilación, documentación y depuración. Incluye el JRE (Java Runtime Enviroment) consta de los mínimos necesarios para ejecutar una aplicación JAVA (JVM y librerías de clases).
  • Herramientas del JDK:
    • java: es la máquina virtual de
    • javac: es el compilador de
    • javadoc: es el generador de documentación.
    • Ejemplo: java –version
  • Actividad: Busca información sobre el comando

 

1.2       P.O.O. El lenguaje JAVA.

  • IMPORTANTE: Una vez instalado el JDK, hay que modificar los valores de dos variables de entorno:
    • Variable PATH. Apunta donde está situado el directorio bin del
    • Variable CLASSPATH. Apunta donde están situadas las

clases del JDK.

  • $ echo $CLASSPATH
  • /etc/enviroment y .bashrc y /usr/bin/java (donde

está instalado JAVA).

 

1.3      Estructura elemental de un programa

  • El programa más sencillo en JAVA: un único bloque principal llamado main que contiene, entre llaves, la secuencia de instrucciones a
  • Ejemplo:
  • class holamundo
  • {
    • public static void main (String args [])
    • {
      • out.println (“Hola a todos”);
    • }
  • }

 

 

1.3      Estructura elemental de un programa

  • Particularidades del bloque principal main:
    • Es público (public).
    • Es estático (static).
    • No devuelve ningún valor (void).
    • Admite una serie de parámetros (String args []).

 

1.4      Entornos integrados de desarrollo.

  • Entorno Integrado de Desarrollo (IDE) es una herramienta con la cual poder desarrollar y probar proyectos en un lenguaje
  • Importante: para un uso correcto del IDE hay que configurar la ruta del JDK, las rutas de las bibliotecas y demás recursos, sino el IDE nunca podrá ejecutar ni compilar
    • $ sudo apt-get install sun-java7-jdk
    • Otra forma:
    • $ sudo aptitude install java7-jdk

 

1.4      Entornos integrados de desarrollo.

  • Para empezar a programar en JAVA vamos a usar el IDE

Geany (muy liviano e intuitivo, e instalación sencilla).

  • $ sudo apt-get install geany
  • Existen mas IDEs para trabajar con JAVA, y más potentes:
      • Desarrollado por primeramente por IBM, aunque actualmente es libre mantenido por la Fundación Eclipse (www.eclipse.org).
      • Puede ser usado para otros lenguajes de programación instalando unos
      • Para proyectos más
      • Es
      • Para proyectos más
    • Cuestión: ¿Es necesario un IDE para compilar y ejecutar JAVA?

 

1.5       Entrada y salida elemental.

  • Aunque en un tema posterior se estudiarán los detalles sobre cómo se realiza la entrada de datos y la salida de resultados en Java, por el momento se efectuará utilizando una interfaz desarrollada por los profesores de la asignatura denominada nsIO.
  • Esta interfaz permite utilizar ficheros de texto para realizar la entrada y la salida de una manera muy sencilla, para ello define dos clases:
    • La clase output que permite preparar un fichero para escritura, en particular la pantalla (output), escribir valores numéricos, lógicos, caracteres y secuencias o cadenas de caracteres (write y writeln), y cerrar el fichero cuando ya no se vaya a escribir más (close).
    • La clase input que permite preparar un fichero para lectura, en particular desde el teclado (input), leer un carácter (read), un entero (readint), un real (readdouble), y otros valores numéricos, así como leer una palabra (readword), una línea (readline), cerrar un fichero cuando termina la lectura (close), y

 

1.5       Entrada y salida elemental.

  • Vamos a usar la clase Scanner que deriva del paquete util, la cual sirve para recuperar datos del teclado. Se inicializa así:
    • Scanner entrada = new Scanner(System.in); o
    • Scanner entrada = new Scanner(String);
  • Los métodos más interesantes y que vamos a usar son:
    • nextByte(): Lee un tipo de dato Byte y lo devuelve para ser almacenado en alguna
    • nextDouble(): Lee un tipo de dato Double y lo devuelve para ser almacenado en

alguna variable.

  • nextFloat(): Lee un tipo de dato Byte y lo devuelve para ser almacenado en alguna
  • nextInt(): Lee un tipo de dato Int y lo devuelve para ser almacenado en alguna
  • next(): Lee un tipo de dato String y lo devuelve para ser almacenado en alguna Sólo lee un token o palabra. Lee hasta que encuentra el delimitador espacio en blanco.
  • nextLine(): Lee un tipo de dato String y lo devuelve para ser almacenado en alguna Lee una línea entera.
  • hasNext(): Devuelve true si hay elementos por leer en la entrada estándar.
  • useDelimitier(): Por defecto considera cada palabra hasta que encuentra el delimitador espacio en Con esta función podemos cambiar dicho delimitador por cualquier otro.

 

1.5       Entrada y salida elemental.

  • Para poder utilizar la clase Scanner se pondrá al principio

del paquete esta instrucción especial:

  • import util.*;

 

1.5       Entrada y salida elemental.

  • Para poder utilizarlo, el nsIO, se pondrá al principio del

paquete esta instrucción especial:

  • import *;
import nsIO.*; class Hola {

public static void main (String args[])

{

output pantalla = new output(); pantalla.writeln (“Hola a todos”); pantalla.close();

}

}

import nsIO.*; class Adivinanza {

public static void main (String args[]) { output pantalla = new output();

input teclado = new input(); int resultado;

pantalla.writeln (“Piensa un n¶umero…”); teclado.readln();

pantalla.writeln (“Multipl¶³calo por 5…”); teclado.readln();

pantalla.writeln (“S¶umale 6…”); teclado.readln();

pantalla.writeln (“Multipl¶³calo por 4…”); teclado.readln();

pantalla.writeln (“S¶umale 9…”); teclado.readln();

pantalla.writeln (“Multipl¶³calo por 5…”);

teclado.readln();

pantalla.writeln (“Escribe el resultado…”);

pantalla.close();

teclado.close();

}

}

 

  • Ejemplos:

 

1.6       Variables y asignación.

  • Variable: Es una zona de memoria donde se puede almacenar información del tipo que desee el
  • Declaración de una variable: contiene el identificador de la variable y el tipo al que
    • Tipo de datos Identificador válido ;
  • Tipo al que pertenece una variable:
    • Define el conjunto de valores que puede adquirir dicha
    • Y las operaciones que se pueden realizar con
  • Asignación: da valores a las variables o los reemplaza por
    • Identificador = Expresión
  • Una expresión está formada por operandos, que pueden ser constantes, variables o subexpresiones, y operadores, y tiene un tipo asignado. En una instrucción de asignación, los tipos de la variable y la expresión deben de ser Ejemplos:
    • int var1, var2;
    • char ch3, ch2=’u’;
    • float f1=2.0; f2=3.0+f1;

 

1.6       Variables y asignación.

  • Las variables miembros de una clase se inicializan por defecto, mientras las variables locales no se inicializan por Las numéricas a 0, los caracteres a ‘\0’ y las referencias a objetos y cadenas a null.
  • En Java las variables no pueden declararse fuera de una
  • class suma {
    • static int n1=50; //variable miembro de la clase
    • public static void main (String args[]){
    • int n2=30; //variables locales
    • }
  • }
  • Visibilidad de las variables: por regla general, en Java, todas las variables que están dentro de un bloque (entre { y

}) son visibles y existen dentro de dicho bloque.

 

1.7       Algunas cuestiones sintácticas

  • Las palabras que se usan en un programa son identificadores y palabras
  • Identificadores: son nombres que el programador da a variables, métodos y clases. Debe comenzar por una letra y a continuación cualquier combinación de letras, números, el carácter subrayado _, y el signo de dólar $.
  • Las palabras reservadas tienen un significado fijo en el lenguaje de programación y no se pueden usar como

 

1.7       Algunas cuestiones sintácticas

  • La documentación necesaria para explicar las diferentes partes que componen un programa se puede incluir en el mismo a través de comentarios. Hay distintas maneras diferentes de poner comentarios en Java,
    • se pueden utilizar los símbolos /* para abrir comentario y */ para
    • También se puede utilizar //, que hace que el compilador interprete todo lo que resta de la línea como
  • Por ejemplo:

 

  • class Hola {
  • public static void main (String args[]) {
  • /* Ahora va el saludo */
  • out.println (“Hola a todos”);
  • }
  • }
  • O bien:

 

  • class Hola {
  • public static void main (String args[]) {
  • // Ahora va el saludo
  • out.println (“Hola a todos”);
  • }
  • }

 

1.7       Algunas cuestiones sintácticas

  • En Java existen caracteres especiales que tienen un papel de

separadores. Son los siguientes:

  • Paréntesis () : Contiene listas de parámetros en la definición y llamada a un método.
  • Llaves {} : Sirven para englobar bloques de código y para valores iniciales de
  • Corchetes [ ]: Sirven para la declaración de vectores y para hacer referencias a elementos de los
  • Punto y coma ; : Separador de
  • Coma , : Separador de identificadores del mismo tipo en una declaración de variables, separación de argumentos en definición de métodos.
  • Punto . : Separador de nombres de paquetes de subpaquetes y clases y para referenciar elementos de un

 

1.8       Tipos de datos simples

  • String: cadena de Ej: String nombre=“Néstor Martínez”;

 

1.8       Tipos de datos simples

  • Actividad: Investiga sobre el juego de caracteres Unicode y
  • Utilización de tipos de datos:

 

1.9

Operadores y expresiones

 

1.9 Operadores y expresiones

1.9 Operadores y expresiones

1.9 Operadores y expresiones

 

1.9       Operadores y expresiones

  • Precedencia de
    • Utiliza los paréntesis para controlar las operaciones sin tener que

depender de la precedencia y para dejar los programas más legibles.

 

1.10       Conversiones de tipos (CAST)

  • En una asignación (identificador=expresion), tanto la variable como la expresión deben ser del mismo tipo o de tipos
  • Conversiones implícitas: Se realiza de forma automática entre dos tipos de datos diferentes. Requiere que la variable destino (izquierda) tenga más precisión que la variable origen (derecha).
    • Ejemplo:

 

1.10       Conversiones de tipos (CAST)

  • Conversiones explícitas: El programador fuerza la conversión

mediante una operación llamada casting con el formato:

  • (tipo) expresion
  • Ejemplo:
    • int idato=5;
    • byte bdato;
    • bdato = (byte)idato;
    • out.println(bdato); //sacará 5 por pantalla

 

  • NO se pueden realizar conversiones entre números y booleanos o

reales y booleanos.

1.11 Algunas funciones predefinidas.

  • La clase    Math    define    métodos    para        calcular            funciones

trigonométricas, redondear valores reales y otros cálculos.

  • Uso: NombreMetodo(…);
  • Algunas constantes y métodos útiles son:

 

1.11 Algunas funciones predefinidas.

  • Algunas constantes y métodos útiles son:

 

1.11       Algunas funciones predefinidas.

  • Algunas constantes y métodos útiles son (continuación):

 

1.12       Bloques de instrucciones.

  • Un bloque es una parte de un programa en Java englobada entre llaves y formada por declaraciones iniciales y una secuencia de instrucciones (posterior a las declaraciones). SIEMPRE SE DECLARAN ANTES LAS VARIABLES Y LUEGO SE

1.12 Bloques de instrucciones.

  • Los bloques pueden declararse o anidarse unos dentro de

otros.

  • Bloques externos (porque contienen a otros).
  • Bloques internos (cuando están contenidos dentro de otros).
  • Las declaraciones efectuadas al comienzo de un bloque tienen sólo validez en el interior del mismo (incluso en bloques internos), fuera del bloque no surten efecto.
  • Dentro de un bloque se pueden utilizar tanto los identificadores definidos en el mismo como en cualquier otro bloque externo que lo
  • En distintos bloques anidados no se pueden definir identificadores con el mismo nombre, en caso de hacerse así se generará un error durante la compilación.

1.12 Bloques de instrucciones.

  • Se denomina ámbito de una variable a la parte del programa en la que dicha variable es conocida y puede ser
  • Una variable se dice que es local en el bloque en el que se define y global para para los bloques internos a éste.

 

1.12       Bloques de instrucciones.

  • Las siguientes reglas están relacionadas con el concepto de

bloque y el uso de variables:

  • Todas las variables definidas en el mismo bloque deben tener nombres
  • Una variable definida en un bloque es conocida desde esta definición hasta el final del Como caso particular, una variable definida en un bloque es conocida en todos los bloques internos a éste.
  • Las variables se deben definir al comienzo del bloque más interno en el que se utilizan.

 

1.13       Documentación JAVA.

  • Todos los   paquetes,   librerías,   clases   y             funciones           los

podemos consultar en el API de JAVA:

 

1.14       Consideraciones.

  • Sólo se puede definir una clase pública por fichero
  • Si el fichero .java contiene una clase pública entonces debe tomar el mismo nombre de la
  • La compilación correcta de un fichero .java genera en el mismo directorio un fichero llamado de la misma forma con extensión .class