Laboratorio de Logica de Programacion v1
Laboratorio de Logica de Programacion v1
Laboratorio de Logica de Programacion v1
JORGE SUAZA
Información General
• Docente : Jorge Hernán Suaza Jiménez
Ingeniero de sistemas Politécnico Jaime Isaza Cadavid
Especialista en Ingeniería de Software Universidad de Medellín
Magister en Ingeniería de Software Universidad de Medellín
Pagina de Consulta
http://jorgesuaza76.wix.com/facultaddeingenieria
Definición
• JAVA es un lenguaje de programación orientado a
objetos desarrollado por Sun Microsystems a
principios de los años 90´s debido a la creciente
necesidad de interfaces mucho más cómodas e
intuitivas que los sistemas de ventanas que
proliferaban hasta el momento.
• PORQUE JAVA?
INDEPENDIENTE DE LA PLATAFORMA
Para establecer Java como parte integral de la red, el compilador Java compila su
código a un fichero objeto de formato independiente de la arquitectura de la
máquina en que se ejecutará.
JDeveloper (http://www.oracle.com/technology/products/jdev/index.html) de
Oracle.
Jcreator (http://www.jcreator.com/download.htm ) XINOX Software.
COMENTARIOS:
Para una sola línea (//)
// este es un comentario
La palabra import significa que vamos hacer uso de esa librería por lo tanto
necesitamos importarla después donde esta ubicada la librería (java o javax) a
continuación el nombre de la librería o paquete y por ultimo el nombre de la
clase o * si queremos importar todas las clases que pertenecen a esta librería
Ejemplo
Import javax.swing.*;
Esquema orientativo de la organización de
librerías en el API de Java
Estructura Básica de Java
} // cierro método
} //cierro clase
Como comenzamos a codificar?
otra forma
+ Suma 8+9
- Diferencia 8 -9
* Multiplicación 8*9
/ División 20 / 7
% Modulo 20 % 7
Hay otra forma de mostrar mensajes por
pantalla?
• String nombre;
• int edad;
• double salario;
• int numero1, numero2, numero3;
• Int num1,num2=0;
Asignar un valor a una variable
• Para que el usuario pueda ingresar una valor a una variable desde el teclado,
existen varias formas.
• Una de ellas es con la librería util, esta librería contiene la clase Scanner.
• Para utilizar el Scanner se debe crear un objeto instanciando la clase Scanner.
• Apartir de este momento se puede usar cualquier método dependiendo del
tipo de dato a obtener
• Ejemplo si el tipo de dato es entero
• Scanner dato = new Scanner (System.in);
• System.out.println("digite un valor ");
• int a= dato.nextInt(); o double a= dato.nextDouble() si es real
• Ejemplo si el tipo de dato es String
• Scanner dato = new Scanner (System.in);
• System.out.println("digite un nombre ");
• String nombre = dato.next(); o String nombre = dato.nextLine();
Ejemplo
Calcular el 5 % de un numero entrado por teclado
import java.util.Scanner;
public class ejem
{
public static void main(String[] args)
{
int numero;
double porcentaje;
Scanner dato = new Scanner (System.in);
System.out.print("digite un valor ");
numero= dato.nextInt();
porcentaje = numero * 0.05;
System.out.println("el porcentaje es " + porcentaje);
}
}
Otra forma
Otra forma de capturar un valor es usando la librería Swing y la clase JOptionPane.showInputDialog
Para esto se debe usar una conversión de tipo a numérico ya que esta clase solo acepta texto.
Esta conversión será con método parse
Double.parseDouble: convierte a numero real o double
Integer.parseInt: convierte a numero entero o integer
import javax.swing.*;
class sumar {
public static void main (String args[]) {
double n1, n2, resultado;//Estos son los numeros
String leer;//variable auxiliar con la cual leeremos los datos
leer=JOptionPane.showInputDialog("Escriba el primer Número");
//Esta es la forma para hacer el cambio de cadena a doble
n1=Double.parseDouble(leer);
leer=JOptionPane.showInputDialog("Escriba el segundo Número");
n2=Double.parseDouble(leer);
resultado=n1+n2;
JOptionPane.showMessageDialog(null, "El resultado de la suma es: "+resultado);
}
}
Tipos Básicos en Java
Operadores de Asignación
Expresión Significado
x+=y x=x + y
x-=y x=x - y
x*=y x=x*y
x/=y x=x/y
Tipos Básicos en Java
• LIBRERÍA MATH
• En ocasiones debemos realizar otro tipo de operaciones como exponente, raíz cuadrada o funciones
trigonométricas en este caso usamos la librería math que contiene varias funciones
int n, base;
System.out.println("Ingrese la base: ");
base = tec.nextInt();
System.out.println("Ingrese el exponente");
n = tec.nextInt();
int resultado = Math.pow(base, n); System.out.println(base + " elevado a
la " + n + " es igual a " + resultado);
Métodos
• Un método es un algoritmo diseñado para efectuar una tarea particular, bajo la dependencia de un algoritmo u
otro subprograma que lo utiliza. De esta manera el subprograma es diseñado para ser utilizado por otros procesos
más amplios, dentro de los cuales existe un flujo de entrega y de recibo de información.
• UTILIDADES O VENTAJAS
• Disminuye la complejidad del algoritmo
• Reutilización de Código
• Ahorro de tiempo de programación
• División de la programación entre un equipo de programadores
• Facilidad en la depuración: comprobación individual de los módulos
• Programas más fáciles de modificar
• CONCEPTOS
• PARAMETROS DE ENTRADA : Un método puede recibir o no parámetros, estos parámetros son los datos que el
método no conoce y que necesita para hacer su trabajo. Cuando un método recibe parámetros estos deben ser
recibidos en variables del mismo tipo de dato.
• PARAMETROS DE SALIDA: Son parámetros cuyos valores se calcularan en el procedimiento y se deben devolver al
programa principal para su posterior proceso
•
•
ESTRUCTURA GENERAL DE UN MÉTODO JAVA
La estructura general de un método Java es la siguiente:
tipoDevuelto: indica el tipo del valor que devuelve el método. En Java es imprescindible que en la declaración de un
método, se indique el tipo de dato que ha de devolver. El dato se devuelve mediante la instrucción return. Si el método no
devuelve ningún valor este tipo será void.
• nombreMetodo: es el nombre que se le da al método. Para crearlo hay que seguir las mismas normas que para crear
nombres de variables.
• Lista de parámetros (opcional): después del nombre del método y siempre entre paréntesis puede aparecer una lista
de parámetros (también llamados argumentos) separados por comas. Estos parámetros son los datos de entrada que
recibe el método para operar con ellos. Un método puede recibir cero o más argumentos. Se debe especificar para cada
argumento su tipo. Los paréntesis son obligatorios aunque estén vacíos.
• throws listaExcepciones (opcional): indica las excepciones que puede generar y manipular el método.
• return: se utiliza para devolver un valor. La palabra clave return va seguida de una expresión que será evaluada para
saber el valor de retorno. Esta expresión puede ser compleja o puede ser simplemente el nombre de un objeto, una
variable de tipo primitivo o una constante.
• El tipo del valor de retorno debe coincidir con el tipoDevuelto que se ha indicado en la declaración del método
Ejemplo
import java.util.*;
public class Metodos1 {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int numero1, numero2, resultado;
System.out.print("Introduce primer número: ");
numero1 = sc.nextInt();
System.out.print("Introduce segundo número: ");
numero2 = sc.nextInt();
resultado = sumar(numero1, numero2);
System.out.println("Suma: " + resultado);
}
public static int sumar(int a, int b)
{
int c;
c = a + b;
return c;
}
}
OTRO EJEMPLO
• Ejemplo de programa Java: Método que no devuelve ningún valor. El método cajaTexto recibe un String y lo muestra rodeado con un borde.
• El tipo devuelto es void y no es necesario escribir la sentencia return. El método acaba cuando se alcanza la llave final.
• import java.util.*;
• public class MetodoVoid {
• public static void main(String[] args) {
• Scanner sc = new Scanner(System.in);
• String cadena;
• System.out.print("Introduce cadena de texto: ");
• cadena = sc.nextLine();
• cajaTexto(cadena); //llamada al método
• }
• /**
• * método que muestra un String rodeado por un borde
• */
• public static void cajaTexto(String str){
• int n = str.length();
• for (int i = 0; i < n + 4; i++){
• System.out.print("#");
• }
• System.out.println();
• System.out.println("# " + str + " #");
• for (int i = 0; i < n + 4; i++){
• System.out.print("#");
• }
• System.out.println();
• }
• }
OTRO EJEMPLO
• Determinar en un conjunto de números enteros cuantos son primos
• import java.util.*;
• int i,num,cantidad=0,n;
• boolean res;
• n = sc.nextInt();
• for(i=1;i<=n;i++) {
• num = sc.nextInt();
• res=esprimo(num);
• if(res=true) {
• cantidad =cantidad + 1;
• } }
• }
• int i,divisores=0;
• for(i=1;i<=numero;i++)
• { divisores = divisores + 1}
• } if (divisores ==2) {
• return true;}
• Else {
• Return false }
• }
•
Métodos 1. No Envía Parametros, No Recibe Parametros
ALGORITMO JAVA
}
Métodos . 2. Envía parametros pero no recibe Parametros
ALGORITMO JAVA
ALGORITMO JAVA
!= No igual a a != b a no es igual b
Si a es verdadero y b es
&& AND a && b verdadero, solo evalúa b si a es
verdadera
Si a o b es verdadero
|| OR a || b
Solo evalúa b si a es falsa
}
}
Sentencias de bucle o loop (ciclo
WHILE(MIENTRAS))
[inicialización];
while(Expresión booleana de terminación){
//bloque de código
}
Inicialización: código donde se inicializa la expresión booleana que
determinará la parada.
La expresión booleana indica que el bloque de código se ejecutará
mientras se cumpla esta expresión
Eje: int a;
a= 0;
while(a <= 10){
//codigo;
}
Ejemplo
• public class numeros {
•
• public static void main(String[] args) {
• int i = 0;
• while(i<= 10)
• {
• System.out.println(i);
• i++;
• }
•
• }
•}
consulta
• En este ciclo se aplican los conceptos de
• Variables centinela
• Swiche o banderas
• Además concepto de
• Contadores
• acumuladores
Sentencias de bucle o loop (ciclo DO
Do WHILE(Repita Hasta))
{
//bloque de código
}
while(Expresión booleana de terminación);
La expresión booleana indica que el bloque de código se ejecutará
mientras se cumpla esta expresión
Eje: int contador =0;
do{
//instrucciones;
contador ++;
} while (contador < 10);
Ejemplo
• public class numeros
•{
• public static void main(String[] args)
• {
• int contador = 1;
• do
• {
• System.out.println(“contando…..”+ contador);
• contador++;
• }
• while(contador<= 10);
}
• }
TIPOS DE VARIABLES EN POO
VARIABLES LOCALES
VARIABLES DE BLOQUE
System.out.print(calcular());
}
public static float calcular()
{
float nd; Variable local, solo
nd=(nota1+nota2+nota3)/3; puede ser utilizada
return nd; dentro del metodo
}
}
Un Arreglo es una estructura de datos que almacena bajo el mismo nombre (variable) a una colección de datos del mismo
tipo. También son llamados arrays
caracterizan por:
1 2 3 4
Sentido horizontal (Filas)
Sentido vertical (columnas).
Los números 1,2,3,4 determinan cada
posición en el vector
nombre[i] i= 1,2,3 indica el contenido de Cada termino de la matriz lo
la respectiva posición denominamos AI J en donde los
subíndices i, j determinan la fila y la
nombre[1] = “Juan” columna del elemento de la matriz
nombre[3] = “Maria”
Se pueden crear vectores de cualquier tipo M[2,2] = 10
Vectores en java
<Tipo de dato> <nombre del vector> < [ ]>= new <tipo de dato> < [tamaño]>
Ejemplo
int Edades [] = new int [6]; Debe ser un valor entero
Ejemplo:
System.out.print(Edades[2]);
System.out.print(Edades[i]);
Nota: La posición del vector puede ser un número entero, una variable entera o el resultado
entero de un cálculo matemático.
Ejemplo
VEC [6] = 10;
VEC [3 * 2] = 10;
N=4;
VEC [N + 2 ] = 10;
Observacion: podemos usar el atributo length quien nos determina la longitud del vector
Ejemplo n= vector.length;
Buscar el valor menor en un vector
import java.util.Scanner;
public class PruebaVector2
{
public static void main(String[] ar)
{
int numeros[]={46,324,54,56,6,98,342,32,46,65,76,54,324,12};
int min = numeros[0];
for(int i=1; i<numeros.length; i++) Se utiliza length para
{ obtener la longitud
if(numeros[i] < min) del vector
min = numeros[i];
}
System.out.println("El valor más pequeño es: "+min);
}
}
Vectores como atributos de tamaño N
Se define que
import java.util.Scanner;
se va a crear un
public class PruebaVector2
vector de tipo
{
atributo
static int numeros[] ;
• Métodos de búsqueda
• Búsqueda secuencia
• Búsqueda binaria
<Tipo de dato> <nombre matriz> < [ ] [ ]>= new <tipo de dato> < [tamaño] [tamaño]>
Ejemplo
int Edades [] [] = new int [6] [2]; Deben ser valores enteros