jueves, 22 de octubre de 2020

Listas enlazadas (Parte 2)

miércoles, 21 de octubre de 2020

Listas enlazadas (parte 1)

Hola a todos en esta entrega hablaremos sobre listas, nodos y punteros demostrando su funcionalidad en la programación. 



NODOS 

Un nodo es un elemento que será una estructura o registro que dispondrá de campos que serán referencia a otro nodo o puntero.




PUNTERO

Variable que refiere a una parte de la memoria.


LISTAS ENLAZADAS

Son una colección o secuencias de información formados de manera consecutiva uno detrás del otro unidos por una referencia o enlace. 
Estas listas se clasifican en cuatro grupos.

1- Simplemente enlazadas.
2- Doblemente enlazadas.
3- Circular simplemente enlazada.
4- circular doblemente enlazada.











Lista circular doblemente enlazada.


 TORRES DE HANOI



    Hola a todos nuestros lectores en esta ocasión veremos la forma de crear una solución de el juego matemático las torres de Hanói utilizando la recursividad este juego consiste en una cantidad de discos que se distribuyen de el mayor diámetro al menor introducidos en un poste de madera donde hay tres sobre una base la dificultad de este juego es pasar los discos a cualquier otro de los postes sin colocar un disco grande sobre uno pequeño


entonces mostraremos el código de solución de dicho juego.

  

se crea un método para encontrar la solución de  las torres de Hanói  recibiendo los parámetros discos, torre1,  torre2, y torre3.
condicionamos si discos es igual a uno se mueve disco de torre 1 a torre 3
si no se le  resta 1 a los discos y se hace el movimiento de torre 1 a torre 3y volvemos a restar uno de discos.


La solución queda como se muestra en la imagen.

martes, 20 de octubre de 2020

Fibonacci

 Hola amigos continualos con programacionen esta ocacion veremos la serie Fibonacci resuelta en codigo de java.

Comentarles de la serie Fibonacci Consta de una serie de números naturales que se suman de a 2, a partir de 0 y 1. Básicamente, la sucesión de Fibonacci se realiza sumando siempre los últimos 2 números (Todos los números presentes en la sucesión se llaman números de Fibonacci) de la siguiente manera: 0,1,1,2,3,5,8,13,21,34...



Codigo:  

package pkg7.practica.fibonacci;

public class PracticaFibonacci {


    

    public static void main(String[] args) {

        

        PracticaFibonacci objFibonacci = new PracticaFibonacci();

        System.out.println("La sucesion con Fibonacci recursivo es: " + objFibonacci.fibonacciRecursivo(4));

        

    }

    //METODO RECURSIVO PARA LA SUCESION DE FIBONACCI

    //0,1-1-2-3-5-8-13-21-34

    public int fibonacciRecursivo(int n){

        if(n==1 || n==2){

            return 1;

        }else{

            return fibonacciRecursivo(n-1) + fibonacciRecursivo(n-2);

            //posicion 1 

            //Numero 1 - 2 - 3

            //resultado 1- 1- 

        

        }

    }

    //METODO CICLICO PARA LA SUCESION DE FIBONACCI

    public int fibonacciCiclico(int n){

        int fibo=0, primero = 1, segundo=0;

        while(n>0){

            fibo=primero+segundo;

            primero=segundo;

            segundo=fibo;

            n--;

            //n 3 2 1 0

            // fibo 1 1 2

            // primero 0 1 1

            //segundo 1 1 2

        }

        return fibo;

    }

    

}



Recursividad

 Saludes mis amigos en esta entrada vamos hablar sobre la recursividad.

Es una técnica que permite que un bloque de instrucciones se ejecuten n veces, logrando en algunas ocasiones reemplazar a las estructuras repetitivas. , aquí vamos
a desarrollar un ejemplo.


Vamos a calcular cuantas escalones de una escalera necesitamos pasar.



Seguidamente vamos a crear un objeto que le llamaremos BajarEscalera.

Seguidamente vamos hacer lo métodos , así el, programa nos calculara los escalones faltantes



recordemos que primero se tiene que poner un metodo, seguidamente  las instrucciones de ese metodo. 








ejemplo de TDA ArraysList

 Saludes mis amigos en esta oportunidad veremos  un ejemplo de Arraylist donde se le pide una frase ,seguidamente se le pedirá si quiere poner otra frase, así la modificara veamos






/**
 *
 * @author Israel Campos y Dannis Alfaro
 */
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class PracticaTDAArrayList {

    
    public static void main(String[] args) {
        //P1 HACER UN OBJETO O INSTANCIA DE ARRAYLIST
        ArrayList <String> cadenas;
        cadenas = new ArrayList<String>();
        
        //P2 DEFINIR 2 VARIABLES MAS
        String frase, respuesta;
        
        //P3 LLENAR EL ARRAY LIST DINAMICAMENTE
        do{
            //Primero capturar la frase
            frase = JOptionPane.showInputDialog(null,"Ingrese la frase");
            
            //Segundo agregar la frase al array list
            cadenas.add(frase);
            
            //Tercero, preguntar si desea seguir agregando frases
            respuesta = JOptionPane.showInputDialog(null,"¿Desea ingresar otra frase (SI/NO)?");
            respuesta = respuesta.toUpperCase();
            
          } while(respuesta.equals("SI"));
        
        //P4 MOSTRAR EL CONTENIDO DEL ARRAYLIST (cadenas)
        //Utilizaremos el metodo size y el metodo get de los arraylist
        System.out.println("Las frases originales son: ");
        int i;
        for(i=0; i<cadenas.size(); i++){
            System.out.println("<"+cadenas.get(i)+">");
        }
        
        //P5. UTILIZAR SET DE ARRARYLIST(cadenas)
        System.out.println("Las frases modificadas son: ");
        cadenas.set(1,"Elemento modificado") ;
        for(i=0; i<cadenas.size(); i++){
            System.out.println("<"+cadenas.get(i)+">");
        }
        //P6 UTILIZAR EL METODO REMOVE DEL ARRAYLIST(cadenas)
        System.out.println("\n LAS FRASES QUE NOS QUEDAN SON: ");
        cadenas.remove(0);
        for(i=0; i<cadenas.size(); i++){
            System.out.println("<"+cadenas.get(i)+">");
        }
    }
    
}
 

Continuaremos en la siguiente entrada
















jueves, 15 de octubre de 2020

Clase Arraylist





 Saludes queridos lectores, en este momento vamos hablar sobre el método Arraylist.

Esto nos permite insertar elementos, remplazarlos, consultarlos, entre otros procesos.

para crearlos debemos de definirlos : arrayList<>,

Para poder utilizar las operaciones como eliminar, buscar o modificar podemos ocupar los métodos siguientes 



Esperemos  con la siguiente entrada para continuar hablando de este amplio mundo de Java. 



miércoles, 14 de octubre de 2020

Menoría Dinámica


 Hola de nuevo, en esta oportunidad  continuaremos con la Memoria Dinámica.


cuando se programa un TDA debemos de decidir que clase de memoria debemos de tener, ya sea Estática o dinámica.

como ya sabemos la estática hace referencia arreglo vectores o matrices , en cambio la dinámica en una lista de  Nodos.



La memoria dinámica no definimos el tamaño de la lista , si no que se van creando Nodos dependiendo a las necesidades y cada uno de ellos ocupa un espacio en la memoria, el numero de elemento crece según la necesidad del programa y crece siempre y cuando haya memoria , y se puede quitar los elementos que ya no se necesitan para recuperar espacio en la memoria, y solo ocupa espacio los nodos que se van creando. 


CLASE – ARRAYLIST

Dentro de esto están lo siguientes métodos.  

add 

get

 set 

remove

 size


En la próxima entrada trataremos de explicar cada uno de estos métodos.

Continuara..  


lunes, 5 de octubre de 2020

 Qué es un Array en Java

 



Es simplemente una matriz que puede tener múltiples valores a diferencia de la demás matriz que solo pueden tener solo una.

Método Sort

 

Este método ordena todos los elementos de un objeto List, que además se especifica como segundo argumento que compara para su orden alterno orden de estos elementos.

Como ordenar arrays en Java


Para ordenar en arrary en Java dispone del método sort.

Para utilizarlo es necesario incluir el import:

import java.util.Arrays;



Ejemplo

Vamos a ordenar nombres:

String [] nombres = {"juan", "pedro", "ana", "maria", "felipe", "luis", "eduardo"};

para ordenarlo de forma ascendente escribiremos la instrucción:

Arrays.sort(nombres);


Método Fill


Este método lo que nos ayuda es para mutar, modifica el arreglo cuando se le convoca y no devuelve valores, su parámetro primero es un objeto, y copia su referencia , rellena con referencia el objeto.




En otras palabras lo que hace Fill es rellenar todo con valores.

 

Método EQUALS

 

 

Este método compara una cadena con otra y determina lógicamente si las mismas son iguales o diferente.



 

 

 

 

 

 

domingo, 4 de octubre de 2020

MEMORIA ESTÁTICA

 


Ya estamos de nuevo queridos lectores, en esta oportunidad hablaremos acerca de las memorias estáticas.

Una memoria en programación es :

Bueno no exactamente esto.

Cuando nos referimos memoria podemos definirlo como un espacio lógico para guardar información.

Y cuando nos referimos a estática nos recordamos cuando estudiábamos  la materia de Física(upss) 

En programación una memoria Estática es un espacio que no se puede modificar cuando esta en ejecución, ejemplo de ellos es los vectores, calificaciones, etc


Dentro de este tipo esta los ARRAYS , que es un tipo de memoria estática 

Este tipo de memoria estática tiene sus propios métodos en Java y esta contenida de la siguiente manera:  
                                             import java.util.Arrays; 

Sus métodos son:  
                                   SORT: Método para ordenar 
                                    FILL: Para rellenar un arreglo 
                                    EQUALS: Para comparar


En la próxima entrega  profundizaremos mas sobre estos métodos. 













  

sábado, 3 de octubre de 2020

Continuación

 



Bienvenidos lectores, en esta nueva entrega continuaremos con el tema de la entrega anterior.

Daremos un repaso de la misma

Cuando hablamos de constructor tenemos que comprender su definición, sabiendo que es la que inicializa al objeto de una clase, le da identidad, y posee al mismo nombre de la clase que pertenece y no puede devolver un valor, construye e inicializa las variables.

 

En la primera entrega se presentó un método de tipo suma, pero hay varios tipos.

Uno de ellos es de tipo función, estos si devuelven algo.

Ya hablamos los tipos de métodos y hablamos del método de tipo función y estos devuelven un resultado, no varios y se logra con la palabra Return (retórneme el que) y termina la ejecución del código, que normalmente esto es lo último.

El otro tipo de método que mencionamos es el método de Procedimiento y este solo se encarga de procesar algo, y, si esta con la palabra Void quiere decir que es un método de procedimiento y no devuelve ningún valor.

En java todo el lógico de programación está en métodos y estos en si son trozos de programas que contienen su funcionalidad.

Estos métodos también se pueden reutilizar varias veces, y se pueden comprender más ordenadamente, y las tareas de una clase se pueden separar.

Veamos como  funciona con el siguiente código













viernes, 2 de octubre de 2020

Ejercicios de tipos de datos abstractos e introducción a pilas.


  

Hola a todos nuestros lectores en esta oportunidad seguiremos con el estudio de código fácil, hablaremos sobre los constructores y cual es su uso así como los tipos de métodos que se utilizan en Java.




Cuando hablamos de un constructor en Java que una de sus misiones es inicializar un objeto en una clase,

su característica es que posee el mismo nombre de la clase a la que pertenece y no devuelve ningún valor. En Java también utilizamos los métodos los cuales se conocen como de tipo función y de tipo procedimiento.







En los métodos de tipo función podemos mencionar que:

1- Nos devuelven algo como un solo dato u objeto.

2-la devolución de su resultado se expresa con la palabra reservada return seguida del         objeto o el dato a devolver, al encontrarnos con esta palabra implica que la ejecución         del código llega a su final ya que siempre se encontrara en la ultima linea.

continuamos hablando del método tipo procedimiento, este método permite realizar ciertas operaciones sin devolver valores u objetos.

la palabra reservada que lo identifica es "void"  la cual del ingles significa vacío o nulo, al tener esta sentencia no lleva la palabra return.

sabiendo esto podemos determinar que los métodos nos sirven para:

1- comprender de una manera mas factible el código.

2- Separar tareas entre el mismo código permitiéndonos orden en su estructura.

3- Reutilizando código permitiéndonos realizar trabajos mas complejos.




En resumen podemos decir que. 


Un método tiene como opciones recibir parámetros o argumentos

 y devolver un valor de algún tipo conocido.

y es un  pequeño bloque de código con su respectivo nombre. 



 En próximas entradas seguiremos dando ejemplos prácticos sobre este tema.

  

Listas enlazadas (Parte 2)

Saludes ,en esta oportunidad vamos a hablar  sobre las Listas enlazadas Pero antes comenzaremos con algunos conceptos: ¿Qué es un nodo?  ...