Programación básica

31
PROGRAMACIÓN BÁSICA

description

Programación básica en java

Transcript of Programación básica

Page 1: Programación básica

PROGRAMACIÓN BÁSICA

Page 2: Programación básica

Variables

Espacios reservados

en la memoria

Son

Contenido

Pueden cambiar

Ejecución de un

programa

Durante la

Variables Tipos de Variables

Variable

Locales ClasesTrabajan dentro de un método en particular

Son declaradas dentro de las clases y fuera de los métodos, afectan a todos los métodos.

Declaración de variables

Tipo de

Dato

Nombre de

Variable

Ejemplo: int numero1;long numero2;

Page 3: Programación básica

Tipo de Datos

Tipo de Datos

Definición

Conjunto de valores

Una Variable

Es un conjunto

Que puede tomar

Categorías

Tipos de

Datos

Enteros

Lógicos

Caracteres

Números de Coma Flotante

Page 4: Programación básica

Operadores y Expresiones

Operadores y Expresiones

Asignación

Aritméticos

UnariosRelacionale

s

Lógicos

Manipulación de Bits

Ternarios

Page 5: Programación básica

Símbolo Uso Descripción

= a=b Asigna el valor de b “a” a

*= a*=b Multiplica a por b y asigna el resultado a la variable a

/= a/=b Divide el valor de a entre b y asigna el resultado a la variable a

%= a%=b Fija en a el resto de a/b

+= a+=b Suma b y a y lo asigna a la variable a

-= a-=b Resta b de a y asigna el resultado a la variable a

Asignación

Estos operadores de asignación no siempre se

utilizan, aunque los programadores en Java se

acostumbran usarlos para el ahorro de escritura

Page 6: Programación básica

Operador

Tipos Enteros Tipos Reales Ejemplo

+ Suma Suma 4+5

- Resta Resta 7-3

* Producto Producto 4*5

/ División entera: cociente

División en coma flotante

8/5

% División entera: resto

12%5

Aritméticos, unarios y ternarios

• Los operadores unarios son aquellos que determinan si una expresión es negativa o positiva (+; -)

• Es importante retomar la prioridad

• Ternario, es aquel que devuelve un resultado que depende de una condición, tiene tres operandos.

• Ejemplo: (ventas >15) ? Comision = 100 : Comision : 0;

Page 7: Programación básica

Relacionales

Operador

Significado Ejemplo

== Igual a a == b

!= No igual a a!=b

> Mayor que a>b

< Menor que a<b

>= Mayor o igual que a>=b

<= Menor o igual que a<=b

• Cuando se utiliza un operador relacional en una expresión. La evaluación produce como resultado true o false.

• Ejemplo: c=3<7; o sea el valor de c es true.

• Un error común de los programadores es confundir el operador de asignación con el de igualdad.

Page 8: Programación básica

LógicosOperador Operación Lógica Ejemplo

Negación (!) No lógica !(x>=y)

O exclusiva(^)

operando1 ^ operando2

x < n ^ n > 9

Y lógica (&&) operando1 && operando2

m < n && i > j

O lógica(||) operando1 || operando2

m = 5 || n != 10

aV

V

F

F

bV

F

V

F

a^bF

V

V

F

aV

V

F

F

bV

F

V

F

a&&bV

F

F

F

aV

V

F

F

bV

F

V

F

a||bV

V

V

F

a

V

F

b

F

V

Tabla de Verdad de O lógico

Tabla de verdad de la negación

Tabla de Verdad de O exclusivo

Tabla de Verdad de y lógico

Page 9: Programación básica

Sentencias de Control

Sentencias de

control

If, if-else

Anidamient o de If

SWITCH

WHILE

DO WHILE

FOR

FOR EACH

Bucles Anidados

Page 10: Programación básica

Condicionales If - Else

if(condicion){//Sentencia}else{//Sentencia}

Sintaxis del If - Else

Características

•Es la estructura de control de selección principal•Tiene dos alternativas o formatos posibles•La sintaxis está expresada como lo tenemos a la derecha

Sintaxis If Simple

if(condicion) Sentencia

Sintaxis en un ejemplo

import java.util.Scanner;public class Divide{public static void main(String args[]){float numero1 = 0;float numero2 = 0;float resultado;Scanner reader = new Scanner(System.in);System.out.println("Introduce el primer número:");numero1 = reader.nextFloat();System.out.println("Introduce el segundo número:");numero2 = reader.nextFloat();if(numero2==0){System.out.println("El Resultado no está definido");else{resultado = numero1/numero2;System.out.println("La división es " + numero1 + " / " + numero2 + " = " + resultado);}}}

Esta estructura de Control es utilizada para condiciones

para ejecutar una expresión u otra

Se puede expresar en una parte o en

dos, en dependencia de lo

que se desea

Page 11: Programación básica

Anidamiento de If

Características

•Se pueden obtener decisiones que impliquen diferentes alternativas•Las sentencias If anidadas permiten tener tantas opciones como if se aniden

Sintaxis en un ejemplo

import java.util.Scanner;public class Nota{public static void main(String args[]){float numero1 = 0;Scanner reader = new Scanner(System.in);System.out.println("Introduzca la nota:");numero1 = reader.nextFloat();if(numero1<60)System.out.println("Deficiente");else{ if(numero1<70) System.out.println("Regular"); else { if(numero1<80) { System.out.println("Bueno"); } else { System.out.println("Excelente"); } }}}}

Sintaxis If Simple

if(condición) sentencia1else{ sentencia2 if(condición2) sentencia3 else sentencia4}

Permite escoger entre más de dos alternativas

Page 12: Programación básica

Switch

Características

•La Sentencia Switch es una sentencia de java que se utiliza para seleccionar múltiples alternativas.

•Las sentencias switch es especialmente útil cuando la selección se basa en el valor de una variable simple o de una expresión simple denominada expresión de control o selector.

•El valor de esta expresión puede ser int o char, pero no double.

Sintaxis en un ejemplo

import java.util.Scanner;public class Clasificacion{public static void main(String args[]){int numero1 = 0;Scanner reader = new Scanner(System.in);System.out.println("Ingrese 0 o 1:");numero1 = reader.nextInt();switch (numero1){case 0: System.out.println("Cero"); break; case 1: System.out.println("Uno"); break;default:System.out.println("Fuera de rango");}}}

Sintaxis If Simple

switch (opcion){case 0:System.out.println(“Cero”);break;case1:System.out.println(“Uno”);break;}

Permite escoger entre más de dos alternativas

Page 13: Programación básica

Ciclos

While

Do Whil

e

For

For each

Page 14: Programación básica

While

•Es cualquier construcción de programa que repite una secuencia de sentencias un número de veces.•La sentencia que se repite se le denomina cuerpo•Existen dos interrogantes: ¿cuál es el cuerpo del bucle y como definirlo? Y ¿Cuántas veces se iterará el cuerpo del bucle?

¿Qué es un Bucle?

•Tiene una condición del bucle (expresión lógica) que está delante del cuerpo del Bucle.•Se ejecuta a si mismo, se evalúa la condición antes de que ejecute el cuerpo del bucle•El bucle es repetitivo mientras la condición siga siendo verdadera•Si la condición es incialmente falsa el cuerpo del bucle no se ejecutará

Bucle While

Condición

Sentencia

FalsoVerdadero

import java.util.Scanner;public class Divide_while{public static void main(String args[]){float numero1 = 0;float numero2 = 0;float resultado;Scanner reader = new Scanner(System.in);System.out.println("Introduce el primer número:");numero1 = reader.nextFloat();System.out.println("Introduce el segundo número:");numero2 = reader.nextFloat();while(numero2==0){System.out.println("Ingrese nuevamente, el resultado no está definido");numero2 = reader.nextFloat();}resultado = numero1/numero2;System.out.println("La división es " + numero1 + " / " + numero2 + " = " + resultado);}}

Sintaxis de un Bucle While

Se puede usar la sentencia break

en los bucles para determinar una

salida inesperada

Page 15: Programación básica

For

•Es el más indicado para utilizar bucles controlados por contador•Se diferencia del bucle while porque las operaciones de control se realizan en la cabecera •Contiene cuatro partes : Inicialización, condición, incremento, Sentencias (cuerpo)•Inicialización: Inicializa las variables de control del bucle•Condición: contiene la expresión lógica que hace que el bucle realice las iteraciones sentenciadas•Incremento: Incremento o decremento en dependencia de la variable de control del bucle•Sentencias: Acciones o sentencias que se ejecutan en cada iteración

Bucle For

import java.util.Scanner;public class Ciclo_for{public static void main(String args[]){int numero1 = 0;int numero2 = 0;Scanner reader = new Scanner(System.in);for(int i= 1; i<11; i++){System.out.println("Introduce el valor: "+i);numero1 = reader.nextInt();numero2+=numero1;}System.out.println("El resultado es: " + numero2);}}

Sintaxis de un Bucle For

Variable_control=

valor_limite

Sentencia

Falso

Verdadero

Variable_control=Valor_inicial

Expresion_incremento

Hay que tener mucho cuidado en los ciclos for para

evitar ciclos infinitos escribiendo

bien la condición.

Page 16: Programación básica

Do While

•Se utiliza para especificar un bucle condicional que ejecuta el cuerpo del bucle al menos una vez.•Comienza ejecutando una sentencia a través del DO, luego se evalúa una expresión, si esta es verdadera entonces sigue el bucle de lo contrario no.•Es parecido al while, la única diferencia es que el do while se ejecuta al menos una vez

Bucle Do While

import java.util.Scanner;public class Do_while{public static void main(String args[]){float numero1 = 0;float numero2 = 0;float resultado=0;Scanner reader = new Scanner(System.in);System.out.println("Introduce el primer valor: ");numero1 = reader.nextFloat();do{System.out.println("Introduce el segundo valor -Si se muestra más de dos veces esta sentencia sera porque se ha cometido un error-: ");numero2 = reader.nextFloat();}while(numero2==0);resultado=numero1/numero2;System.out.println("El resultado es: " + resultado);}}

Sintaxis de un bucle Do While

Los ciclos tienen diferentes utilidades las cuales debes ir conociendo para

que puedas identificar cual usar.

Condición

Sentencia

Falso

Verdadero

Page 17: Programación básica

For Each

•Sirve par a moverse dentro de los elementos de una estructura de datos, podría ser un vector•Los componentes son: Elementos, tipo de datos, Conjunto, Cuerpo.•Elemento: Es el nombre de la variable que toma el elemento iterado en el cuerpo del bucle•Tipo de Dato: Es el tipo de dato de dicha variable.•Conjunto: Es la estructura de datos que se quiere iterar (Suelen ser vectores o arreglos)•Cuerpo: Son las sentencias que se ejecutarán dentro del bucle.•Es otro tipo de utilización del ciclo for solo que emplea otra clase de parámetros

Bucle For Each

import java.util.Scanner;public class For_each{public static void main(String args[]){ String [] arrStr = {"1", "2", "3", "4", "5"}; for(String elemento : arrStr) { System.out.println(elemento); } }}

Sintaxis de un bucle For Each

El ciclo For each salió con la versión java5, lo que trajo, nuevas formas de utilización de los

bucles

Elemento

Tipo de Dato

Conjunto

Cuerpo

Ciclo For

Each

Page 18: Programación básica

Arreglos

•Es una secuencia de datos de un mismo tipo•Los elementos de un arreglo pueden tener cualquier tipo de dato simple de java.•Cada item de un arreglo se le denomina elemento•Para declararse un arreglo se hace de forma similar a una variable normal, sólo que diferenciándolo con corchetes ([]).•Para indicar el número de elementos que tiene un arreglo se utiliza el operador New•El primer item se inicializa en la posición 0

Arreglos

import java.util.Scanner;public class Divide_arreglo{public static void main(String args[]){float [] arreglo1;arreglo1=new float[3];arreglo1[2]=0;Scanner reader = new Scanner(System.in);System.out.println("Introduce el primer número:");arreglo1[0] = reader.nextFloat();System.out.println("Introduce el segundo número:");arreglo1[1] = reader.nextFloat();if(arreglo1[1]==0){System.out.println("El Resultado no está definido");}else{arreglo1[2] = arreglo1[0]/arreglo1[1];System.out.println("La división es " + arreglo1[0] + " / " + arreglo1[1] + " = " + arreglo1[2]);}}}

Forma de declarar un arreglo

El arreglo se guarda en memoria de forma continua

Arreglo

Tabla

Listas

Tipos disponibles

Page 19: Programación básica

Arreglos

•Define el tamaño de un arreglo•Resulta muy útil cuando se pasa un arreglo a un método•Se utiliza de la siguiente manera: variable.length, teniendo a variable como un arreglo.•El operador length no puede ser modificado.

La propiedad Length

public class Funcion_length{public static void main (String args []){float [] valor;valor=new float[5]; System.out.println("El tamaño del arreglo es " + valor.length);}}

Forma de declarar un arreglo

Es importante definir un arreglo correctamente, debido a que su

índice va desde 0 hasta el tamaño -1

Los arreglos son necesarios cuando

se tiene listas y tablas de valores

Page 20: Programación básica

Arreglos

•Son arreglos que están definidos por filas y columnas, por eso son llamados Matriz.•Generalmente para ingresar e imprimir (entrada y salida), se utilizan dos ciclos for que controlan el avance de las posiciones del arreglo.

La propiedad Length

import java.util.Scanner;public class Tabla{public static void main (String args []){int [][] valor;int tabla;valor=new int[12][3]; Scanner reader = new Scanner(System.in);System.out.println("Ingrese el valor de la tabla a calcular");tabla = reader.nextInt();for(int i=0;i<12;i++){valor [i][0]=i+1;valor[i][1]=tabla;valor[i][2]=valor [i][0]*valor[i][1];

System.out.println(" "+valor[i][0]+ " * "+valor[i][1]+" = "+valor[i][2]);}}}

Arreglo Tabla

Los arreglos bidimensionales

permiten trabajar tablas

Tabla

Valor 1

Valor 2

Resultado

1 5 5

2 5 10

3 5 15

4 5 20

5 5 25

6 5 30

… 5 …

Page 21: Programación básica

Algoritmos de Búsqueda y ordenación

Métodos de

ordenación

Shell

Selección

Burbuja

Inserción

Métodos de ordenación Métodos de búsqueda

Simple

Binario

Métodos de

Búsqueda

Page 22: Programación básica

Métodos

•Es un bloque de código que tiene un nombre, tipo de acceso, tipo de retorno y una lista de argumentos o parámetros•Puede tener palabras claves asociadas tales como: static, abstract, final. •A excepción de las sentencias de declaración de objetos y variables y bloques de inicialización estática.

Método

import java.util.Scanner;public class Divide_metodo{public static void main(String args[]){float numero1 = 0, numero2=0,resultado;Scanner reader = new Scanner(System.in);System.out.println("Introduce el primer número:");numero1 = reader.nextFloat();System.out.println("Introduce el segundo número:");numero2 = reader.nextFloat();if(numero2==0){System.out.println("El Resultado no está definido");}else{resultado = dividir(numero1,numero2);System.out.println("La división es " + numero1 + " / " + numero2 + " = " + resultado);}}static float dividir(float valor1, float valor2){float resultado;resultado = valor1/valor2;return resultado;}}

Ejemplo

Los métodos son parte muy

importante de la programación

orientada a objetos

Su estructura es la signiente:

Tipo nombre (parámetros){}

Tipo: Especifica el tipo de datos devuelto por el métodoNombre: Identifica al método (suele escribirse en minúsculas)Parámetros(los valores que necesita un método para funcionar)La sentencia return es utilizada par a devolver valores de un método

Page 23: Programación básica

Llamada de Métodos

•Para poder ser llamados deben ser invocados•El método que llama a otro es llamado invocador•El método llamado se le denomina invocado•La llamada a un método desde otro de la misma clase se realizará escribiendo el nombre y un par de paréntesis(abre y cierra)•Cuando se llama a un método en otra clase se realiza utilizando el nombre de la clase + “.”+ el nombre del método entre paréntesis•

Cómo?

import java.util.Scanner;public class Divide_metodo_class{public static void main(String args[]){float numero1 = 0;float numero2 = 0;float resultado;Scanner reader = new Scanner(System.in);System.out.println("Introduce el primer número:");numero1 = reader.nextFloat();System.out.println("Introduce el segundo número:");numero2 = reader.nextFloat();if(numero2==0){System.out.println("El Resultado no está definido");}else{resultado = Divide_metodo.dividir(numero1,numero2);System.out.println("La división es " + numero1 + " / " + numero2 + " = " + resultado);}}}

Ejemplo

No se pueden hacer métodos anidados

Page 24: Programación básica

Sobrecarga de Métodos

•Es posible definir dos métodos dentro de la misma clase que compartan nombre, y sus parámetros sean diferentes, a esto se le llama métodos sobrecargados.•La máquina determina a que método se hace referencia basándose en sus argumentos•La llamada no puede ser ambigua.•Medigante la sobrecarga se puede implementar el polimorfismo

Cómo?

static float calculo(float valor1, float valor2){float resultado;resultado = valor1/valor2;return resultado;}static int calculo(int valor){int resultado=1;for (int i=1;i<valor; i++){resultado*=i;}return resultado;}

Ejemplo

La sobrecarga aplica el polimorfismo

sobre los métodos

Page 25: Programación básica

Métodos recursivos

•Es un método que se llama así mismo directa o indirectamente.• La recursividad o recursión directa es el proceso por el cual un método se llama así mismo desde el propio cuerpo del método.•La recursividad indirecta es cuando se realiza entre más de un método•Ejemplo de ejercicios que se pueden realizar son: Factoriales, fibonacci, etc.

Cómo?

static int recursivo(int valor){if(valor>1){return valor * recursivo(valor-1);}return 1;

}//Este método peretenece a la clase Recursividad y es //llamado de la siguiente manera!!!

//resultado2=Recursividad.recursivo(factorial);

Ejemplo

No se pueden hacer métodos anidados

Page 26: Programación básica

Métodos constructores

•Un Constructor es un método miembro de propósito específico que se ejecuta automáticamente cuando se crea un objeto de una clase.•Tiene el mismo nombre que su clase•Puede tener 0 o más parámetros•No devuelve ningún valor

Qué es? Tipos de Constructores

Recordemos que los constructores son

los que se encargan de crear los objetos

en una clase

Por defec

to

Alternativos

•Cuando se define un objeto, se aplica el operador new al constructor que se desee, si tiene parámetros pasan los valores de los parámetros al constructor utilizando una sintaxis similar a una llamada normal del método•Por ejemplo: •Cuadrado c = new Cuadrado();

Estructura de un Constructor

Page 27: Programación básica

Constructores por defecto

•Es un constructor que no tiene parámetros.•Inicializa los miembros dato asignándoles valores por defecto

Qué es?public class Cuadrado{public double lado;double area(){double resultado;resultado=lado*lado;return resultado;}double perimetro(){double resultado;resultado=4*lado;return resultado;}}

Ejemplo Clase

El ejemplo hace uso de constructores por

defecto

public class Cuadrado_constructor{public static void main(String args[]){double area_total;double perimetro_total;Cuadrado c = new Cuadrado();c.lado = 5;area_total = c.area();perimetro_total=c.perimetro();System.out.println("El area es "+ area_total+ " y el perímetro es "+ perimetro_total);}}

Page 28: Programación básica

Constructores alternativos

•Son constructores que hacen uso de parámetros.•Los parámetros inicializan las variables definiendo valores de entrada en el constructor de objetos

Qué es? Ejemplo Clase

El ejemplo hace uso de la clase

cuadrado, asignando atributos

específicos a la clase para definirla

como objetoPodemos hacer uso

del método finalize() como

destructorr, aunque java maneja uno automático

public class Cuadrado_constructor{public static void main(String args[]){double area_total;double perimetro_total;Cuadrado c = new Cuadrado();area_total = c.area(5);perimetro_total=c.perimetro();System.out.println("El area es "+ area_total+ " y el perímetro es "+ perimetro_total);}}

Page 29: Programación básica

Constructores sobrecargados

•Al igual que los métodos, también podemos sobrecargar los constructores•Los constructores sobrecargados son bastante frecuentes

Qué es? Ejemplo Clase

El ejemplo hace uso de la clase cuadrado, asignando atributos específicos a la clase para

definirla como objeto

public class Rectangulo_constructor{public static void main(String args[]){double area_cuadrado;double area_rectangulo;Rectangulo c = new Rectangulo();area_cuadrado = c.area(5);area_rectangulo = c.area(4,5);System.out.println("El area es "+ area_cuadrado+ " y el perímetro es "+ area_rectangulo);}}

public class Rectangulo{public double lado1;public double lado2;double area(double l1){double resultado;lado1=l1;resultado=lado1*lado1;return resultado;}double area(double l1, double l2){double resultado;lado1=l1;lado2=l2;resultado=lado1*lado2;return resultado;}}

Constructor Sobrecargado

Page 30: Programación básica

Métodos getter y setter

•Son métodos de acceso, lo que significa que generalmente son una interfaz para cambiar miembros de clases privadas.•Los métodos getter y setter se utilizan para definir una propiedad•Se accede como propiedades situadas fura de la clase, aunque las defina dentro de las clases como métodosVentajas: Posibilidad de crear miembros con funcionalidad sofisiticada a los que puede acceder como propiedades. •Permiten crear propiedades de solo escritura y lectura•Desventajas: Dificultan el mantenimiento del código en ocasiones•Proporcionan acceso a la implementación de la clase (lo cual no es muy recomendado en POO)

Qué es?

Con el método Setter se le asignan valores a los atributos

Y con el Getter se obtienen valores de los atributos

Setter

Getter

Page 31: Programación básica

Excepciones

•Son normalmente condiciones de error imprevistas. •Normalmente estas condiciones terminan el programa del usuario con un mensaje de error proporcionado por el sistema. Ejemplo: División por 0, arreglos fuera de límites.•Java posee un mecanismo para manejar excepciones, los cuales son objetos con jerarquía proporcionada por el lenguaje.•Throws presenta el formato: throws ObjetoExcepcion;•Se define utilizando la sentencia try{}Catch(argumento formal)El bloque finally, se utiliza para que se ejecute independientemente que haya o no una excepción

Qué es? Ejemplo de Excepción

Estas dos excepciones sirven para

validar valores de entrada y

cálculos aritméticos

try {System.out.println ("Introduzca un numerador entero: ");int numerador= reader.nextInt();System.out.println("Introduzca un denominador entero: ");int denominador=reader.nextInt();int resultado = cociente(numerador,denominador);System.out.printf("\n Resultado : %d / %d = %d\n", numerador, denominador, resultado);}catch(InputMismatchException inputMismactchException){System.err.printf("\n Exception : %s\n", inputMismactchException);reader.nextLine();System.out.println("Debe introducir enteros. Intente de nuevo. \n");}catch (ArithmeticException arithmeticException){System.err.printf("\n Exception : %s\n", arithmeticException);System.out.println("Cero es un denominador inválido. Intente de nuevo. \n");}