Cuaderno Lenguaje de Programacion Johan Ortiz
Cuaderno Lenguaje de Programacion Johan Ortiz
Cuaderno Lenguaje de Programacion Johan Ortiz
QUITO METROPOLITANO
“LENGUAJE DE PROGRAMACION 2”
“ING. VIVIANA FLORES”
“JOHAN ORTIZ”
SEPTIEMBRE 2021 – ABRIL 2022
EJERCICIOS VECTORES
CLASE PADRE
public class AlgortimosOrdenamiento {
//métodos de ordenamiento
public void metodoBurbuja(int vector[]) { //8,4,6,2
int temp;
for (int i = 0; i < (vector.length - 1); i++) { //i=4
for (int j = i + 1; j < vector.length; j++) { //j=4
//i=3
//j=4
if (vector[j] < vector[i]) {
//6<8 -> v
temp = vector[i]; //8
vector[i] = vector[j];//6
vector[j] = temp;
}
}
}
}
//intercambio de valor
if (posicion!=i) {
//3!=3
temp = vector[i]; //50
vector[i] = menor; //27
vector[posicion] = temp;
}
}
//7,26,50,9,15,27
//7,9,50,26,15,27
//7,9,15,26,50,27
//7,9,15,26,27,50
}
CLASE EJECUTABLE
public class ClaseEjecutableAlgoritmos {
do {
System.out.println("");
System.out.println("ALGORITMOS DE ORDENAMIENTO");
System.out.println("1. Algoritmo Burbuja");
System.out.println("2. Algoritmo Shell");
System.out.println("3. Algoritmo Selección");
System.out.println("4. Salir");
System.out.println("Escoja una opción: ");
op = sc.nextInt();
//almacenar datos en el vector
System.out.println("");
for (int i = 0; i < vector.length; i++) {
System.out.println("Ingrese el dato para el vector: ");
vector[i] = sc.nextInt();
}
switch (op) {
case 1:
//Llamar al método de ordenamiento burbuja
ordenamiento.metodoBurbuja(vector);
ordenamiento.imprimir(vector);
break;
case 2:
ordenamiento.metodoShell(vector);
ordenamiento.imprimir(vector);
break;
case 3:
ordenamiento.metodoSeleccion(vector);
ordenamiento.imprimir(vector);
break;
case 4:
System.out.println("GRACIAS POR UTILIZAR NUESTRO PROGRAMA");
break;
default:
System.out.println("OPCIÓN INVÁLIDA");
}
} while (op != 4);
CONSTRUCTORES
CLASE PADRE
public class Empleado {
//atributos
String nombre;
String codigo;
int horasT;
double valorH;
//double sueldo; //variable de clase
//constructor: inicializa los atributos que van a ser manipulados por el objeto.
//Definir constructor: modificador de acceso - Nombre de la clase()
//constructor vacío
// public Empleado(){
// System.out.println("Constructor vacío");
// }
//construtor no vacío
// public Empleado(){
// nombre="Viviana";
// codigo="OA345";
// horasT=180;
// valorH=10;
// }
//constructor no vacío - argumentos
public Empleado(String nombreEmpleado, String codigoEmpleado, int horasTEmpleado, double
valorHEmpleado) {
nombre = nombreEmpleado;
codigo = codigoEmpleado;
horasT = horasTEmpleado;
valorH = valorHEmpleado;
}
//métodos
//calcular salario
// public void calcularSalario() {
// sueldo=horasT*valorH;
// System.out.println("Sueldo: "+sueldo);
//
// }
public double calcularSalario() {
double sueldo; //variable local
sueldo=horasT*valorH; //1040
return sueldo; //1040
}
CLASE EJECUTABLE
package com.desarrollo.constructores;
import java.util.Scanner;
public class ClaseEjecutableEmpleado {
public static void main(String[] args) {
String nombreEmpleado, codigoEmpleado;
int horasTEmpleado;
double valorHEmpleado;
Scanner sc = new Scanner(System.in);
//Ingreso datos
System.out.println("");
System.out.println("INFORMACIÓN EMPLEADO");
System.out.println("Nombre: ");
nombreEmpleado = sc.next();
System.out.println("Código: ");
codigoEmpleado = sc.next();
System.out.println("Horas Trabajadas: ");
horasTEmpleado = sc.nextInt();
System.out.println("Valor Hora: ");
valorHEmpleado = sc.nextDouble();
//Instanciar la clase
Empleado emp = new Empleado(nombreEmpleado, codigoEmpleado , horasTEmpleado,
valorHEmpleado);
emp.informacionEmpleado();
//emp.calcularSalario();
emp.descuentoSalario();
}
}
LIST
ARRAYLIST
Pilas – Colas
ING. VIVIANA FLORES
Pilas
• Es una lista ordinal o estructura de datos en la que el modo de acceso a sus
elementos es de tipo LIFO (del inglés Last In First Out, último en entrar,
primero en salir) que permite almacenar y recuperar datos. Se aplica en
multitud de ocasiones en informática debido a su simplicidad y ordenación
implícita en la propia estructura .
Operaciones
de una Pila
• Laclase Stack extiende a la clase Vector para
implementar una estructura de datos de tipo
pila.
push (apilar)
pop (desapilar)
peek (cima)
size
Colas
• Una cola es una estructura de datos, caracterizada por ser una secuencia de
elementos en la que la operación de inserción push se realiza por un extremo
y la operación de extracción pop por el otro. También se le llama estructura
FIFO (del inglés First In First Out), debido a que el primer elemento en
entrar será también el primero en salir .
Operaciones
Crear: se crea la cola vacía.
MEMORIA ESTÁTICA
• Es una clase de utilidad introducida en el JDK 1.2 que contiene
métodos static para ordenar, llenar, realizar búsquedas y
CLASE ARRAYS comparar los arrays clásicos del lenguaje.
Import.java.util.Arrays
sort
métodos fill
equals
ORDENAMIENTO DE VECTORES
BURBUJA
CLASES Y OBJETOS
ING. VIVIANA FLORES
INTRODUCCIÓN A LAS CLASES Y OBJETOS EN JAVA
• Sin inicializar valores (uso del constructor vacío) • Inicializar valores (uso del constructor NO
52
EJEMPLO DE CONSTRUCTOR
53
54
INSTITUTO
TECNOLÓGICO
SUPERIOR QUITO
METROPOLITANO
INTERFAZ LIST
ING. VIVIANA FLORES
COLLECTION
LIST
ARRAYLIST
https://docs.oracle.com/javase/7/docs/api/javax/s
wing/JFrame.html
COMPONENTES
COMPONENTES
INSTITUTO TECNOLÓGICO SUPERIOR
QUITO METROPOLITANO
Excepciones en java
EXCEPCIONES
TIPOS DE
EXCEPCIONES EN
EL API DE JAVA
SINTAXIS DEL
MANEJO DE
EXCEPCIONES
CREACION DE
NUESTRAS
PROPIAS
CLASES DE
EXCEPCIÓN
LA
CLÁUSULA
THROWS
Java y MySQL
JDBC: Java DataBase Connectivity
Cliente Servidor
Aplicación Java
MySQL
Conexión cliente-servidor
Driver JDBC MySQL
El driver implementa
las interfaces del
Java Runtime paquete JDBC estándar.
Base de Datos
Librerías JDBC
JVM
•0
Ciclo de ejecución
Establecer conexión a
Cargar Driver JDBC
la base de datos
Ejecutar sentencia
Consulta
Actualización
Armar SQL
Armar SQL
Crear sentencia
Crear sentencia
Ejecutar
Ejecutar
Iterar sobre el resultado
Cerrar conexión
Otra sentencia
•1
Clase DriverManager (Paquete java.sql)
DriverManager: clase estática (no requiere instanciación de objetos) que administra los
drivers jdbc disponibles para iniciar conexiones.
•2
Clase Connection (Paquete java.sql)
Connection: interfaz para implementar una sesión cliente-servidor con una base de datos.
Statement createStatement(): crea una nueva sentencia para ejecutar código SQL en
forma directa en el servidor a traves de la conexión.
boolean isValid(int timeout): verifica que la conexión está abierta y disponible para
ejecutar una operación. Es necesaria para determinar si la conexión de red aun
permanece activa desde la ejecución del último SQL.
•3
Conexión JDBC a MySQL
// Intento de conexión a una base de datos
String servidor = "localhost:3306";
String baseDatos = "batallas";
String usuario = "admin_batallas";
String clave = "pwbatallas";
String url = "jdbc:mysql://" + servidor + "/" +baseDatos+
"?serverTimezone=America/Argentina/Buenos_Aires";
java.sql.Connection cnx;
try
{
cnx = java.sql.DriverManager.getConnection(url, usuario, clave);
}
catch (java.sql.SQLException ex)
{
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
}
•4
Clase Statement (Paquete java.sql)
Statement: se utiliza para ejecutar una sentencia SQL en base a un string estático, ya sea
un comando o una consulta.
boolean execute(String sql): ejecuta cualquier tipo de SQL. Si es una consulta se debe
recuperar el resultado mediante el método ResultSet getResultSet();
•5
Clase ResultSet (Paquete java.sql)
ResultSet: contiene el conjunto resultado de una consulta SQL, estructurado en filas y
columnas, con el comportamiento de un iterador.
boolean next(): avanza el índice interno del iterador a la proxima fila. Retorna false si no hay
mas filas.
boolean previous(), boolean first(), boolean last(), boolean absolute(int row), boolean
relative(int rows): funciones para navegar en el conjunto resultado.
•6
Consultas SQL
try
{
// Se crea una sentencia jdbc para realizar la consulta
java.sql.Statement stmt = cnx.createStatement();
// Se recorre el resultado
while (rs.next())
{
String nombreBarco = rs.getString("nombre_barco");
int id = rs.getInt("id");
String capitan = rs.getString("capitan");
}
rs.close();
stmt.close();
}
catch (java.sql.SQLException ex) {} •7
Clase ResultSetMetaData (Paquete java.sql)
•8
Actualización de datos
Comandos o sentencias de manipulación de datos (insert,
update, delete) que no retornan un resultado.
try
{
// Se crea una sentencia jdbc para realizar la consulta
java.sql.Statement stmt = cnx.createStatement();
// Se prepara el string SQL de la inserción
String sql = "INSERT INTO barcos (nombre_barco, id, capitan) " +
"VALUES ('Bismark', 22, 'Ernst Lindeman')";
// Se ejecuta la inserción
stmt.execute(sql);
// Se retornan los recursos utilizados cerrando la sentencia
stmt.close();
}
catch (java.sql.SQLException ex)
{
System.out.println("Mensaje: " + ex.getMessage()); // Mensaje
retornado por MySQL
System.out.println("Código: " + ex.getErrorCode()); // Código de
error de MySQL System.out.println("SQLState: " +
ex.getSQLState()); // Código de error del SQL standart •9
}
Sentencias Preparadas
Se utilizan cuando una misma sentencia (consulta o actualización) debe
ejecutarse repetidamente con la misma estructura pero distintos valores.
Más comunmente usado en inserciones de registros en masa.
Cada tabla JTable usa un objeto TableModel para manejar y almacenar los datos.
Si no se especifica ningun modelo de tabla, JTable utiliza por defecto el modelo
DefaultTableModel que almacena los datos como vector de vectores.
Clase DBTable (paquete quick.dbtable) Esta construido sobre JTable ( comparte muchos
métodos y propiedades) y provee funciones específicas para bases de datos.
•11
(Ver ejemplos de su uso en proyecto Batallas)
Manejo de Fechas
Para convertir String a java.util.Date:
•12
Importar el proyecto ”Batallas” en Eclipse
•13
Instalación del Driver JDBC
de MySQL en Eclipse
•14
Selección de la librería externa
•15
Selección de la librería externa:
JDBC MySQL connector
•16
Selección de la librería externa:
quicktable (DBTable)
•17
Generar el archivo JAR de
un proyecto en Eclipse
•18
Generar el archivo JAR de
un proyecto en Eclipse (cont.)
•19
Generar el archivo JAR de
un proyecto en Eclipse (cont.)
•20
Referencias
Driver JDBC de MySQL: http://dev.mysql.com/downloads/connector/j/
Swing / JTable:
http://java.sun.com/docs/books/tutorial/uiswing
http://download.oracle.com/javase/tutorial/uiswing/components/table.html
Eclipse: http://www.eclipse.org/downloads
Window builder: http://www.eclipse.org/windowbuilder/download.php
JDK 8 SE: http://java.sun.com/javase/downloads/index.jsp
Java API:
http://java.sun.com/javase/7/docs
http://java.sun.com/javase/7/docs/technotes/guides/jdbc
•21