{"id":69,"date":"2017-09-11T06:00:19","date_gmt":"2017-09-11T12:00:19","guid":{"rendered":"http:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/?page_id=69"},"modified":"2017-09-11T15:41:57","modified_gmt":"2017-09-11T21:41:57","slug":"estructura-de-datos-y-algoritmos","status":"publish","type":"page","link":"https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/estructura-de-datos-y-algoritmos\/","title":{"rendered":"Estructura de datos y algoritmos"},"content":{"rendered":"<p><strong>GENERADOR DE LABERINTOS<\/strong><\/p>\n<p>Peque\u00f1o programa que a trav\u00e9s de 5 clases crea y resuelve laberintos.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-70\" src=\"http:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-content\/uploads\/sites\/6\/2017\/09\/Screenshot_2.png\" alt=\"\" width=\"1065\" height=\"711\" srcset=\"https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-content\/uploads\/sites\/6\/2017\/09\/Screenshot_2.png 1065w, https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-content\/uploads\/sites\/6\/2017\/09\/Screenshot_2-300x200.png 300w, https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-content\/uploads\/sites\/6\/2017\/09\/Screenshot_2-768x513.png 768w, https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-content\/uploads\/sites\/6\/2017\/09\/Screenshot_2-1024x684.png 1024w\" sizes=\"auto, (max-width: 1065px) 100vw, 1065px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Funciona de la siguiente manera, primeramente, se crea una clase, con geters y seters a la cual llame TuTipo, esta clase nos servir\u00e1 para guardar un posicionamiento, que est\u00e1 en base a una ret\u00edcula imaginaria, que nos servir\u00e1 para crear los laberintos.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">package TercerSemestre.EstructurasDinamicas.ExamenLaberinto;\r\n\r\n\r\n\/**\r\n *\r\n * \r\n * @author (David L\u00e1zaro) \r\n * @version (1.0 \/ 11\/09\/2017)\r\n *\/\r\npublic class TuTipo\r\n{\r\n    private int fila;\r\n    private int columna;\r\n    public TuTipo(int f, int c)\r\n    {\r\n        \/\/ initialise instance variables\r\n        fila = f;\r\n        columna = c;\r\n    }\r\n    public int getF(){\r\n        return fila;\r\n    }\r\n    public int getC(){\r\n        return columna;\r\n    }\r\n    public void setF(int f){\r\n        fila=f;\r\n    }\r\n    public void setC(int c){\r\n        columna=c;\r\n    }\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>La Siguiente clase es Crealaberinto, que es la que contiene la l\u00f3gica detr\u00e1s de las paredes y caminos de el laberinto, y el algoritmo para generarlos de manera aleatoria.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">package TercerSemestre.EstructurasDinamicas.ExamenLaberinto;\r\n\r\n\/**\r\n * \r\n * \r\n\u00a0*\u00a0@author\u00a0(David\u00a0L\u00e1zaro)\u00a0\r\n *\u00a0@version\u00a0(1.0\u00a0\/\u00a011\/09\/2017)\r\n *\/\r\n\r\nimport java.util.Scanner;\r\nimport java.util.Vector;\r\n\r\npublic class CreaLaberinto\r\n{   static int [][] laberinto;\r\n    public void main(int n)\r\n    {   laberinto = new int [n][n];\r\n\r\n        \/\/vector que almacena las pociciones iniciales de los numero 3\r\n        Vector &lt;TuTipo&gt; L3s = new Vector &lt;TuTipo&gt; ();\r\n        int fpa=0;\r\n        int cpa=0;\r\n        TuTipo posActual = new TuTipo(fpa,cpa);\r\n\r\n        \/\/Ciclo para poner los 3 \r\n        for(int i=1 ; i&lt;laberinto.length ; i +=2){\r\n            for(int j=1 ; j&lt;laberinto[0].length ; j+=2){\r\n                laberinto[i][j]=3;\r\n                fpa=i;\r\n                cpa=j;\r\n                L3s.add(new TuTipo (fpa,cpa));\r\n            }\r\n        }\r\n\r\n        int posInicioC = (int)(Math.random()*L3s.size());\r\n        Vector &lt;TuTipo&gt; L2s = new Vector &lt;TuTipo&gt; ();\r\n        Vector &lt;TuTipo&gt; L1s = new Vector &lt;TuTipo&gt; ();\r\n        L2s.add(L3s.get(posInicioC));\r\n\r\n        \/\/CICLO PARA CHACAR LAS POCICIONES ALREDEDOR DE LOS 3\r\n        while(L2s.size()!=0){\r\n            int posInicioA = (int)(Math.random()*L2s.size());\r\n            TuTipo seleccionado= L2s.remove(posInicioA);\r\n            int file=seleccionado.getF();\r\n            int column=seleccionado.getC();\r\n            laberinto[file][column]=1;\r\n            \/\/CHECA LA POSICION ARRIBA\r\n            if(file &gt;= 3){\r\n                if(laberinto[file-2][column]==3){\r\n                    L2s.add(new TuTipo (file-2,column));\r\n                    laberinto[file-2][column]=2;\r\n                }else if(laberinto[file-2][column]==1){\r\n                    L1s.add(new TuTipo (file-1,column));\r\n                }\r\n            }\r\n\r\n            \/\/CHECA LA POSICION A LA DERECHA\r\n            if(column + 3 &lt;= laberinto.length){\r\n                if(laberinto[file][column+2]==3){\r\n                    L2s.add(new TuTipo (file,column+2));\r\n                    laberinto[file][column+2]=2;\r\n                }else if(laberinto[file][column+2]==1){\r\n                    L1s.add(new TuTipo (file,column+1));\r\n                }\r\n            }\r\n\r\n            \/\/CHECA LA POSICION ABAJO\r\n            if(file+3 &lt;= laberinto.length){\r\n                if(laberinto[file+2][column]==3){\r\n                    L2s.add(new TuTipo (file+2,column));\r\n                    laberinto[file+2][column]=2;\r\n                }else if(laberinto[file+2][column]==1){\r\n                    L1s.add(new TuTipo (file+1,column));\r\n                }\r\n            }\r\n\r\n            \/\/CHECA LA POSICION A LA IZQUIERDA\r\n            if(column &gt;= 3){\r\n                if(laberinto[file][column-2]==3){\r\n                    L2s.add(new TuTipo (file,column-2));\r\n                    laberinto[file][column-2]=2;\r\n                }else if(laberinto[file][column-2]==1){\r\n                    L1s.add(new TuTipo (file,column-1));\r\n                }\r\n            }\r\n\r\n            \/\/SELECCIONA UN PUENTE\r\n            if(!L1s.isEmpty()){\r\n                int posInicioB = (int)(Math.random()*L1s.size());\r\n                TuTipo seleccionado1= L1s.remove(posInicioB);\r\n                int file1=seleccionado1.getF();\r\n                int column1=seleccionado1.getC();\r\n                laberinto[file1][column1]=1;\r\n                L1s.clear();\r\n            } \r\n        }\r\n        \/\/entrada\r\n        laberinto[1][0]=1;\r\n        \/\/Salida\r\n        laberinto[n-2][n-1]=1;\r\n\r\n        \/\/Ciclo para imprimir la matriz\r\n        \/*for (int i = 0; i &lt; laberinto.length ; i++) {\r\n        for (int j = 0; j &lt; laberinto[0].length; j++) {\r\n        System.out.print(laberinto[i][j] + \" \");\r\n        }\r\n        System.out.println();*\/\r\n\r\n    }\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Las siguientes 2 clases son la clase Cola y Pila, ambas realizan una funci\u00f3n similar, encuentran la soluci\u00f3n del laberinto, sin embargo, la clase cola funciona con el concepto de Primero en entrar Primero en Salir y la clase pila funciona con el concepto contrario el Primero en Entrar \u00daltimo en Salir. Pero para crear una diferencia m\u00e1s marcada y grafica entre ambas la clase pila, adem\u00e1s de mostrar el camino correcto de color verde tambi\u00e9n muestra en los caminos donde busco la salida, pero que eran callejones sin salida en color rojo.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">package TercerSemestre.EstructurasDinamicas.ExamenLaberinto;\r\n\r\n\r\n\/**\r\n * \r\n * \r\n\u00a0*\u00a0@author\u00a0(David\u00a0L\u00e1zaro)\u00a0\r\n *\u00a0@version\u00a0(1.0\u00a0\/\u00a011\/09\/2017)\r\n *\/\r\n\r\nimport java.util.Queue;\r\nimport java.util.LinkedList;\r\nimport java.util.Stack;\r\n\r\npublic class Cola\r\n{\r\n    static Stack &lt;TuTipo&gt; pila;\r\n    public static void main()\r\n    {\r\n        Queue &lt;TuTipo&gt; cola = new LinkedList &lt;TuTipo&gt; ();\r\n        int fpa=1;\r\n        int cpa=0;\r\n        TuTipo posActual = new TuTipo(fpa,cpa);\r\n        TuTipo s = new TuTipo((Interface.n)-2,(Interface.n)-1);\r\n        \r\n        while(true){\r\n            if( cpa+1&lt;Interface.n &amp;&amp; CreaLaberinto.laberinto[fpa][cpa+1]== 1){\r\n                cola.offer(new TuTipo (fpa,cpa+1));\r\n                CreaLaberinto.laberinto[fpa][cpa+1]=CreaLaberinto.laberinto[fpa][cpa]+1;\r\n                if(fpa==s.getF()&amp;&amp; cpa+1==s.getC()){\r\n                    cola.offer(new TuTipo(fpa,cpa));\r\n                    break;\r\n                }\r\n            }\r\n            if (fpa+1&lt;Interface.n &amp;&amp; CreaLaberinto.laberinto[fpa+1][cpa]== 1){\r\n                cola.offer(new TuTipo (fpa+1,cpa));\r\n                CreaLaberinto.laberinto[fpa+1][cpa]=CreaLaberinto.laberinto[fpa][cpa]+1;\r\n                if(fpa+1==s.getF()&amp;&amp; cpa==s.getC()){\r\n                    cola.offer(new TuTipo(fpa,cpa));\r\n                    break;\r\n                }\r\n            }\r\n            if(cpa-1&gt;=0 &amp;&amp; CreaLaberinto.laberinto[fpa][cpa-1]== 1){\r\n                cola.offer(new TuTipo (fpa,cpa-1));\r\n                CreaLaberinto.laberinto[fpa][cpa-1]=CreaLaberinto.laberinto[fpa][cpa]+1;\r\n                if(fpa==s.getF()&amp;&amp; cpa-1==s.getC()){\r\n                    cola.offer(new TuTipo(fpa,cpa));\r\n                    break;\r\n                }\r\n            }\r\n            if (fpa-1&gt;=0 &amp;&amp; CreaLaberinto.laberinto[fpa-1][cpa]== 1){\r\n                cola.offer(new TuTipo (fpa-1,cpa));\r\n                CreaLaberinto.laberinto[fpa-1][cpa]=CreaLaberinto.laberinto[fpa][cpa]+1;\r\n                if(fpa-1==s.getF()&amp;&amp; cpa==s.getC()){\r\n                    cola.offer(new TuTipo(fpa,cpa));\r\n                    break;\r\n                }\r\n            }\r\n            if(!cola.isEmpty()){\r\n                posActual=(TuTipo)cola.poll();\r\n                fpa=posActual.getF();\r\n                cpa=posActual.getC();\r\n            }\r\n        }\r\n        CreaLaberinto.laberinto[1][0]=1;\r\n\r\n        pila = new Stack &lt;TuTipo&gt; ();\r\n        fpa=s.getF();\r\n        cpa=s.getC();\r\n        int num = CreaLaberinto.laberinto[s.getF()][s.getC()];\r\n        \r\n        while(num !=2){\r\n            if (cpa+1&lt;CreaLaberinto.laberinto.length &amp;&amp; CreaLaberinto.laberinto[fpa][cpa+1]==num-1){\r\n                pila.push(new TuTipo (fpa,cpa+1));\r\n                num=num-1;\r\n            }else if (fpa+1&lt;CreaLaberinto.laberinto.length &amp;&amp; CreaLaberinto.laberinto[fpa+1][cpa]==num-1){\r\n                pila.push(new TuTipo (fpa+1,cpa));\r\n                num=num-1;\r\n            }else if(cpa-1&gt;=0 &amp;&amp; CreaLaberinto.laberinto[fpa][cpa-1]==num-1){\r\n                pila.push(new TuTipo (fpa,cpa-1));\r\n                num=num-1;\r\n            }else if(fpa-1&gt;=0 &amp;&amp; CreaLaberinto.laberinto[fpa-1][cpa]==num-1){\r\n                pila.push(new TuTipo (fpa-1,cpa));\r\n                num=num-1;\r\n            }\r\n            if(!pila.empty()){\r\n                posActual=(TuTipo)pila.peek();\r\n                fpa=posActual.getF();\r\n                cpa=posActual.getC();\r\n                }\r\n            }\r\n\r\n    }\r\n}<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">package TercerSemestre.EstructurasDinamicas.ExamenLaberinto;\r\n\r\n\r\n\/**\r\n * .\r\n * \r\n\u00a0*\u00a0@author\u00a0(David\u00a0L\u00e1zaro)\u00a0\r\n *\u00a0@version\u00a0(1.0\u00a0\/\u00a011\/09\/2017)\r\n *\/\r\n\r\nimport java.util.Stack;\r\n\r\npublic class Pila\r\n{\r\n    private CreaLaberinto llamar = new CreaLaberinto();\r\n    public static void main(){\r\n        Stack &lt;TuTipo&gt; pila = new Stack &lt;TuTipo&gt; ();\r\n        int fpa=1;\r\n        int cpa=0;\r\n        TuTipo posActual = new TuTipo(fpa,cpa);\r\n        TuTipo s = new TuTipo((Interface.n)-2,(Interface.n)-1);\r\n        while(true){\r\n            if( cpa+1&lt;CreaLaberinto.laberinto.length &amp;&amp; CreaLaberinto.laberinto[fpa][cpa+1]== 1){\r\n                pila.push(new TuTipo (fpa,cpa));\r\n                CreaLaberinto.laberinto[fpa][cpa]=2;\r\n                cpa+=1;\r\n            }else if (fpa+1&lt;CreaLaberinto.laberinto.length &amp;&amp; CreaLaberinto.laberinto[fpa+1][cpa]== 1){\r\n                pila.push(new TuTipo (fpa,cpa));\r\n                CreaLaberinto.laberinto[fpa][cpa]=2;\r\n                fpa+=1;\r\n            }else if(cpa-1&gt;=0 &amp;&amp; CreaLaberinto.laberinto[fpa][cpa-1]== 1){\r\n                pila.push(new TuTipo (fpa,cpa));\r\n                CreaLaberinto.laberinto[fpa][cpa]=2;\r\n                cpa-=1;\r\n            }else if (fpa-1&gt;=0 &amp;&amp; CreaLaberinto.laberinto[fpa-1][cpa]== 1){\r\n                pila.push(new TuTipo (fpa,cpa));\r\n                CreaLaberinto.laberinto[fpa][cpa]=2;\r\n                fpa-=1;\r\n            }else{\r\n                if(!pila.empty()){\r\n                    posActual=(TuTipo)pila.pop();\r\n                }\r\n                CreaLaberinto.laberinto[fpa][cpa]=3;\r\n                fpa=posActual.getF();\r\n                cpa=posActual.getC();\r\n            }\r\n            if(fpa==s.getF()&amp;&amp; cpa==s.getC()){\r\n                CreaLaberinto.laberinto[fpa][cpa]=4;\r\n                pila.push (new TuTipo(fpa,cpa));\r\n                break;\r\n            }\r\n        }\r\n    }\r\n    \r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Hasta este momento, todo ha sido todo en trasfondo, la parte que el usuario no ve, pero en la clase, es la parte con la cual interact\u00faa el usuario, esta contiene, el marco y los botones del programa al momento de ejecuci\u00f3n.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">package TercerSemestre.EstructurasDinamicas.ExamenLaberinto;\r\n\r\n\/**\r\n * \r\n * \r\n\u00a0*\u00a0@author\u00a0(David\u00a0L\u00e1zaro)\u00a0\r\n *\u00a0@version\u00a0(1.0\u00a0\/\u00a011\/09\/2017)\r\n *\/\r\n\r\nimport java.awt.*;\r\nimport java.awt.event.*;\r\nimport javax.swing.*;\r\n\r\npublic class Interface  extends JFrame\r\nimplements ActionListener{\r\n    private JButton generar;\r\n    private JButton pila;\r\n    private JButton cola;\r\n    private JPanel panel;\r\n    private CreaLaberinto ejecutar = new CreaLaberinto();\r\n    private Pila ejecutar1 = new Pila();\r\n    private Cola ejecutar2 = new Cola();\r\n    static int n;\r\n    public static void main(String[] args){\r\n        Interface frame = new Interface();\r\n        frame.setSize(1080,720);\r\n        frame.createGUI();\r\n        frame.setVisible(true);\r\n    }\r\n\r\n    private void createGUI(){\r\n        setDefaultCloseOperation(EXIT_ON_CLOSE);\r\n        Container window = getContentPane();\r\n        window.setLayout(new FlowLayout());\r\n\r\n        panel = new JPanel();\r\n        panel.setPreferredSize(new Dimension (1000, 600));\r\n        panel.setBackground(Color.white);\r\n        window.add(panel);\r\n\r\n        generar = new JButton(\"GENERAR\");\r\n        window.add(generar);\r\n        generar.addActionListener(this);\r\n\r\n        pila = new JButton(\"PILA\");\r\n        window.add(pila);\r\n        pila.addActionListener(this);\r\n\r\n        cola = new JButton(\"COLA\");\r\n        window.add(cola);\r\n        cola.addActionListener(this);\r\n    }\r\n\r\n    public void actionPerformed(ActionEvent event){\r\n        Graphics papel = panel .getGraphics();\r\n        if (event.getSource()== generar){\r\n            papel.setColor(Color.white);\r\n            papel.fillRect(0, 0, 1000, 600);\r\n            this.n= Integer.parseInt(JOptionPane.showInputDialog(\"Introduce un numero impar\"));\r\n            ejecutar.main(n);\r\n            int x =1000\/n;\r\n            int y =600\/n;\r\n            for(int i=0 ; i&lt;n ; i++){\r\n                for(int j=0 ; j&lt;n ; j++){\r\n                    if(CreaLaberinto.laberinto[i][j]==0){\r\n                        papel.setColor(Color.blue);\r\n                        papel.fillRect(i*x, j*y, x, y);\r\n                    }\r\n                    if(CreaLaberinto.laberinto[i][j]==1){\r\n                        papel.setColor(Color.white);\r\n                        papel.fillRect(i*x, j*y, x, y);\r\n                    }\r\n                }\r\n            }\r\n            cola.setEnabled(true);\r\n            pila.setEnabled(true);\r\n        }\r\n\r\n        if (event.getSource()== pila){\r\n            ejecutar1.main();\r\n            int x =1000\/n;\r\n            int y =600\/n;\r\n            for(int i=0 ; i&lt;n ; i++){\r\n                for(int j=0 ; j&lt;n ; j++){\r\n                    if(CreaLaberinto.laberinto[i][j]==2 |CreaLaberinto.laberinto[i][j]==4){\r\n                        papel.setColor(Color.green);\r\n                        papel.fillRect(i*x, j*y, x, y);\r\n                    }\r\n                    if(CreaLaberinto.laberinto[i][j]==3){\r\n                        papel.setColor(Color.red);\r\n                        papel.fillRect(i*x, j*y, x, y);\r\n                    }\r\n                }\r\n            }\r\n            pila.setEnabled(false);\r\n            cola.setEnabled(false);\r\n        }\r\n\r\n        if (event.getSource()== cola){\r\n            ejecutar2.main();\r\n            int x =1000\/n;\r\n            int y =600\/n;\r\n            for (int z=0 ; z&lt;Cola.pila.size() ; z++){\r\n                TuTipo p = Cola.pila.get(z);\r\n                int f = p.getF();\r\n                int c = p.getC();\r\n                papel.setColor(Color.green);\r\n                papel.fillRect(f*x, c*y, x, y); \r\n            }\r\n            cola.setEnabled(false);\r\n            pila.setEnabled(false);\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Buscaminas<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-73\" src=\"http:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-content\/uploads\/sites\/6\/2017\/09\/Screenshot_1-1.png\" alt=\"\" width=\"984\" height=\"987\" srcset=\"https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-content\/uploads\/sites\/6\/2017\/09\/Screenshot_1-1.png 984w, https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-content\/uploads\/sites\/6\/2017\/09\/Screenshot_1-1-150x150.png 150w, https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-content\/uploads\/sites\/6\/2017\/09\/Screenshot_1-1-300x300.png 300w, https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-content\/uploads\/sites\/6\/2017\/09\/Screenshot_1-1-768x770.png 768w\" sizes=\"auto, (max-width: 984px) 100vw, 984px\" \/><\/p>\n<p>Es un juego, elaborado bajo el concepto de arreglos bidimensionales (matrices), en el cual, un car\u00e1cter se determina como mina, y hay caracteres que representan espacios sin minas, el algoritmo detr\u00e1s de la parte gr\u00e1fica, recibe una coordenada de la matriz y revisa esta tiene una mina, de no ser as\u00ed, revisa a sus vecinos para ver si alguno es una mina, as\u00ed sucesivamente con los vecinos, de los vecinos, hasta encontrar una mina y en los espacios de alrededor, da una pista de cuales casillas colindan con una o m\u00e1s minas, as\u00ed el jugador puede tomar una decisi\u00f3n, de que casilla seleccionar como siguiente.<\/p>\n<p>Codigo<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">package Matrices;\r\n\r\n\r\n\/**\u00a0\r\n *\u00a0\r\n *\u00a0\u00a0\r\n *\u00a0@author\u00a0(David\u00a0L\u00e1zaro)\u00a0&lt;br\u00a0&gt;\u00a0\r\n *\u00a0@version\u00a0(1.0\u00a0\/\u00a011\/09\/2017)\u00a0*\/&lt;\/br\u00a0&gt;\r\n\r\nimport java.lang.*;\r\nimport java.util.*;\r\nimport java.util.stream.*; \r\nimport javax.swing.*;\r\nimport java.awt.*;\r\nimport java.awt.event.*;\r\nimport java.awt.GridLayout;\r\n\r\n\r\npublic class BMinas extends JFrame\r\nimplements ActionListener{\r\n    static JButton MBotones[][];\r\n    private static int numero =Integer.parseInt(JOptionPane.showInputDialog(\"Ingresa un numero para la medida del Tablero\"));\r\n    private static int minas = Integer.parseInt(JOptionPane.showInputDialog(\"Cantidad de Minas\"));\r\n    int a, b;\r\n    \r\n    \/\/matriz logica\r\n    private static String [][] campo = new String [numero][numero];\r\n    \/\/matriz Priva linea de comandos\r\n    private static String [][] bMinas = new String [numero][numero];\r\n    \/\/matriz grafica\r\n    \r\n    \r\n    private GridLayout[][]tablero = new GridLayout[numero][numero];\r\n\r\n    public static void main(String[] args){\r\n        \r\n        \r\n        for (int nMinas=1; nMinas &lt;= minas; nMinas ++){\r\n        int fila;\r\n        int col;\r\n        do{\r\n        fila = (int)(Math.random()*campo.length);\r\n        col = (int)(Math.random()*campo[0].length);\r\n       }while (campo[fila][col]==\"*\");\r\n        campo[fila][col]= \"*\";\r\n        \r\n      }\r\n      \r\n      \/\/ campo.length chaca el alto del arreglo\r\n        for (int f=0; f &lt; campo.length; f++){\r\n        for(int c=0; c &lt; campo[0].length; c++){\r\n            if (campo[f][c]!=\"*\"){\r\n                campo[f][c]= (String)(\"\"+ cuentaVecinos(campo,f,c)) ;\r\n                if(cuentaVecinos(campo,f,c) ==0){\r\n                campo[f][c] = \" \";\r\n            }\r\n          }\r\n        }\r\n      }\r\n      \/\/Impresion de el array logico oh imaginario\r\n    \r\n      for (int i = 0; i &lt; numero; i++) {\r\n            for (int j = 0; j &lt; numero; j++) {\r\n                System.out.print(campo[i][j] + \" \");\r\n            }\r\n            System.out.println();\r\n        }\r\n     \r\n        \/\/Llenado de la Segunda Matriz    \r\n        \/\/ campo.length chaca el alto del arreglo\r\n        for (int fila=0; fila &lt; bMinas.length; fila++){\r\n        for(int col=0; col  &lt; bMinas[0].length; col++){\r\n                bMinas[fila][col] = (String)(\"T\") ;\r\n        }\r\n        }\r\n        \/\/Impresion del array de Ts\r\n        for (int i = 0; i &lt; numero; i++) {\r\n            for (int j = 0; j &lt; numero; j++) {\r\n                System.out.print(bMinas[i][j] + \" \");\r\n            }\r\n            System.out.println();\r\n        }\r\n        \r\n        \r\n        \r\n        \r\n        BMinas frame = new BMinas();\r\n        frame.setSize(1000,1000);\r\n        frame.crearGUI();\r\n        frame.setVisible(true);\r\n        \r\n        }\r\n\r\n    \r\n    private void crearGUI(){\r\n        setDefaultCloseOperation(EXIT_ON_CLOSE);\r\n        Container window = getContentPane();\r\n        window.setLayout(new GridLayout(numero, numero));\r\n        \r\n        MBotones = new JButton[campo.length][campo.length];\r\n        \r\n    \r\n        for(int fila = 0; fila &lt; campo.length; fila++){\r\n            for(int col = 0; col  &lt; campo.length; col++){\r\n                MBotones[fila][col]= new JButton(\"\");\r\n                MBotones[fila][col].addActionListener(this);\r\n                window.add(MBotones[fila][col]);\r\n                \r\n            }\r\n        }\r\n    \r\n    }\r\n    \r\n    public static void gray(int a, int b){\r\n        if (campo[a][b] == \" \"){\r\n        MBotones[a][b].setBackground(Color.WHITE);\r\n        \r\n    }else {\r\n    MBotones[a][b].setBackground(Color.YELLOW);}\r\n}\r\n   \r\n    \r\n     \r\n    \r\n    \/\/Este metodo checa si la casilla tiene numero bomba o esta basia y destapa segun corresponda\r\n    public static void destapaSerie(int numFila, int numCol){  \r\n        if(numFila-1 &gt;= 0 &amp;&amp; numCol-1 &gt;= 0 &amp;&amp; bMinas[numFila-1][numCol-1]==\"T\" ){\r\n          bMinas[numFila-1][numCol-1]= campo [numFila-1][numCol-1];\r\n          MBotones[numFila-1][numCol-1].setText(bMinas[numFila-1][numCol-1]);\r\n          gray(numFila-1,numCol-1);\r\n          if(campo [numFila-1][numCol-1]==(\" \")){\r\n              destapaSerie(numFila-1,numCol-1);\r\n            }\r\n        }\r\n        if(numFila-1 &gt;= 0 &amp;&amp; bMinas[numFila-1][numCol]==\"T\"){\r\n            bMinas[numFila-1][numCol]= campo [numFila-1][numCol];\r\n            MBotones[numFila-1][numCol].setText(bMinas[numFila-1][numCol]);\r\n            gray(numFila-1,numCol);\r\n            if(campo [numFila-1][numCol]==(\" \")){\r\n                destapaSerie(numFila-1,numCol);\r\n            }\r\n        }\r\n        if(numFila-1 &gt;= 0 &amp;&amp; numCol+1 &lt; bMinas.length &amp;&amp; bMinas[numFila-1][numCol+1]==\"T\"){\r\n            bMinas[numFila-1][numCol+1]= campo [numFila-1][numCol+1];\r\n            MBotones[numFila-1][numCol+1].setText(bMinas[numFila-1][numCol+1]);\r\n            gray(numFila-1,numCol+1);\r\n            if(campo [numFila-1][numCol+1]==(\" \")){\r\n                destapaSerie(numFila-1,numCol+1);\r\n            }\r\n        }\r\n\r\n        if(numFila &gt;= 0 &amp;&amp; numCol-1 &gt;= 0 &amp;&amp; bMinas[numFila][numCol-1]==\"T\"){\r\n            bMinas[numFila][numCol-1]= campo [numFila][numCol-1];\r\n            MBotones[numFila][numCol-1].setText(bMinas[numFila][numCol-1]);\r\n            gray(numFila,numCol-1);\r\n            if(campo [numFila][numCol-1]==(\" \")){\r\n                destapaSerie(numFila,numCol-1);\r\n            }\r\n        }\r\n        if(numFila &gt;= 0 &amp;&amp; bMinas[numFila][numCol]==\"T\"){\r\n            bMinas[numFila][numCol]= campo [numFila][numCol];\r\n            MBotones[numFila][numCol].setText(bMinas[numFila][numCol]);\r\n            gray(numFila,numCol);\r\n            if(campo [numFila][numCol]==(\" \")){\r\n                destapaSerie(numFila,numCol);\r\n            }\r\n        }\r\n        if(numFila &gt;= 0 &amp;&amp; numCol+1 &lt; bMinas.length &amp;&amp; bMinas[numFila][numCol+1]==\"T\"){\r\n            bMinas[numFila][numCol+1]= campo [numFila][numCol+1];\r\n            MBotones[numFila][numCol+1].setText(bMinas[numFila][numCol+1]);\r\n            gray(numFila,numCol+1);\r\n            if(campo [numFila][numCol+1]==(\" \")){\r\n                destapaSerie(numFila,numCol+1);\r\n            }\r\n        }\r\n\r\n        if(numFila+1 &lt; bMinas.length &amp;&amp; numCol-1 &gt;= 0 &amp;&amp; bMinas[numFila+1][numCol-1]==\"T\"){\r\n            bMinas[numFila+1][numCol-1]= campo [numFila+1][numCol-1];\r\n            MBotones[numFila+1][numCol-1].setText(bMinas[numFila+1][numCol-1]);\r\n            gray(numFila+1,numCol-1);\r\n            if(campo [numFila+1][numCol-1]==(\" \")){\r\n                destapaSerie(numFila+1,numCol-1);\r\n            }\r\n        }\r\n        if(numFila+1 &lt; bMinas.length &amp;&amp; bMinas[numFila+1][numCol]==\"T\"){\r\n            bMinas[numFila+1][numCol]= campo [numFila+1][numCol];\r\n            MBotones[numFila+1][numCol].setText(bMinas[numFila+1][numCol]);\r\n            gray(numFila+1,numCol);\r\n            if(campo [numFila+1][numCol]==(\" \")){\r\n                destapaSerie(numFila+1,numCol);\r\n            }\r\n        }\r\n        if(numFila+1 &lt; bMinas.length &amp;&amp; numCol+1 &lt; bMinas.length &amp;&amp; bMinas[numFila+1][numCol+1]==\"T\"){\r\n            bMinas[numFila+1][numCol+1]= campo [numFila+1][numCol+1];\r\n            MBotones[numFila+1][numCol+1].setText(bMinas[numFila+1][numCol+1]);\r\n            gray(numFila+1,numCol+1);\r\n            if(campo [numFila+1][numCol+1]==(\" \")){\r\n                destapaSerie(numFila+1,numCol+1);\r\n            }\r\n        }\r\n    }   \r\n\r\n    \r\n    \/\/Este metodo pone los numeros alrededor de las bombas\r\n    public static int cuentaVecinos(String[][]campo, int f, int c){\r\n        int cont =0;\r\n        int k = campo.length;\r\n        int p = campo[0].length;\r\n        if(f-1 &gt;=0 &amp;&amp; c-1 &gt;=0 &amp;&amp; campo[f-1][c-1]==\"*\"){\r\n            cont++;\r\n        }\r\n        if(f-1&gt;=0 &amp;&amp;  campo[f-1][c]==\"*\"){\r\n            cont++;\r\n        }\r\n        if(f-1&gt;=0 &amp;&amp; c+1&lt;k &amp;&amp; campo[f-1][c+1]==\"*\"){\r\n            cont++;\r\n        }\r\n        if(f &gt;=0 &amp;&amp; c-1 &gt;=0 &amp;&amp; campo[f][c-1]==\"*\"){\r\n            cont++;\r\n        }\r\n        if(f&gt;=0 &amp;&amp; campo[f][c]==\"*\"){\r\n            cont++;\r\n        }\r\n        if(f&gt;=0  &amp;&amp; c+1&lt;k &amp;&amp; campo[f][c+1]==\"*\"){\r\n            cont++;\r\n        }\r\n        if(f+1 &lt;p &amp;&amp; c-1 &gt;=0 &amp;&amp; campo[f+1][c-1]==\"*\"){\r\n            cont++;\r\n        }\r\n        if(f+1 &lt;p &amp;&amp; campo[f+1][c]==\"*\"){\r\n            cont++;\r\n        }\r\n        if(f+1 &lt; p  &amp;&amp; c+1&lt;k &amp;&amp; campo[f+1][c+1]==\"*\"){\r\n            cont++;\r\n        }\r\n        return cont;\r\n    }\r\n    \r\n     public void actionPerformed(ActionEvent event){\r\n\r\n         \/\/event.getSource, busca un evento que ocurra, en este caso en el boton, y se pide que si se encuenta un evento, asigne el valor almacenado\r\n         \/\/en la variable pero con su valor de cadena de caracteres.\r\n         if (event.getSource() instanceof JButton){\r\n             for (int fila=0; fila &lt; MBotones.length; fila++){\r\n                 for(int col=0; col  &lt; MBotones[0].length; col++){\r\n                if (MBotones[fila][col] == event.getSource()){\r\n                a = fila;\r\n                b = col;\r\n\r\n            }\r\n          }\r\n        }\r\n         MBotones[a][b].setText(campo[a][b]);\r\n         if((campo[a][b])== \"*\"){\r\n             MBotones[a][b].setBackground(Color.RED);\r\n             JOptionPane.showMessageDialog(null,\"Ya Perdiste\");\r\n            }\r\n            \r\n         if((campo[a][b])!= \"*\"){\r\n             MBotones[a][b].setBackground(Color.BLUE);\r\n        \r\n            }\r\n            \r\n         if((campo[a][b])== \" \"){\r\n             destapaSerie(a,b);\r\n            }\r\n        \r\n            \r\n            \r\n            \r\n        \/\/MBotones[a][b].setText(campo[a][b]);\r\n        \/\/MBotones[a][b].setEnabled(false);\r\n\r\n      }\r\n    }\r\n}\r\n<\/pre>\n<p>Proyectos de SQL Server + Visual Studio<\/p>\n<p>Inicio Sistema Colegio<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-109\" src=\"http:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-content\/uploads\/sites\/6\/2017\/09\/Screenshot_3.png\" alt=\"\" width=\"1115\" height=\"542\" srcset=\"https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-content\/uploads\/sites\/6\/2017\/09\/Screenshot_3.png 1115w, https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-content\/uploads\/sites\/6\/2017\/09\/Screenshot_3-300x146.png 300w, https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-content\/uploads\/sites\/6\/2017\/09\/Screenshot_3-768x373.png 768w, https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-content\/uploads\/sites\/6\/2017\/09\/Screenshot_3-1024x498.png 1024w\" sizes=\"auto, (max-width: 1115px) 100vw, 1115px\" \/><\/p>\n<p>Codigo de la clase que realiza la conecci\u00f3n con la base de datos.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\">using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading.Tasks;\r\nusing System.Data.SqlClient;\r\n\r\nnamespace SistemaMiColegio\r\n{\r\n    public class BDConexion\r\n    {\r\n        public static SqlConnection obtenerConexion()\r\n        {\r\n            \/\/System.Data.SqlClient.SqlConnection strConn = new System.Data.SqlClient.SqlConnection(@\"Data Source = DAVIDLM\\MSSQLSERVER2; Initial Catalog=ventas; Integrated Security=true\");\r\n            \/\/System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();\r\n            SqlConnection Conn = new SqlConnection(@\"Data Source = DAVIDLM\\MSSQLSERVER2 ; Initial Catalog = MiColegio; Integrated Security = SSPI\");\r\n           Conn.Open();\r\n            return Conn;\r\n        }\r\n    }\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>Codigo de la pantalla del modulo de registro de estudiantes<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\">\/\/ Autor: David L\u00e1zaro\r\n\/\/Version 1.0\r\n\/\/11\/Sep\/2017\r\n\r\nusing System;\r\nusing System.Collections.Generic;\r\nusing System.ComponentModel;\r\nusing System.Data;\r\nusing System.Drawing;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading.Tasks;\r\nusing System.Windows.Forms;\r\n\r\nnamespace SistemaMiColegio\r\n{\r\n    public partial class Form1 : Form\r\n    {\r\n        public Form1()\r\n        {\r\n            InitializeComponent();\r\n        }\r\n\r\n        public Alumno alumnoActual{get; set;}\r\n\r\n        private void Guardar_Click(object sender, EventArgs e)\r\n        {\r\n            Alumno Alumno = new Alumno();\r\n            Alumno.Nombre = textNombre.Text;\r\n            Alumno.Apellidos = textApellidos.Text;\r\n            Alumno.Direccion = textDireccion.Text;\r\n            Alumno.Fecha_Nac = textFechaNac.Text;\r\n\r\n            int resultado = alumnoABMC.agregarAlumno(Alumno);\r\n\r\n            if (resultado &gt; 0)\r\n            {\r\n                MessageBox.Show(\"El alumno se guardo exitosamente\", \"Datos Guardados\", MessageBoxButtons.OK, MessageBoxIcon.Information);\r\n            }\r\n            else\r\n            {\r\n                MessageBox.Show(\"El alumno NO se guardo exitosamente\", \"Error\", MessageBoxButtons.OK, MessageBoxIcon.Error);\r\n            }\r\n        }\r\n\r\n        private void Busqueda_Click(object sender, EventArgs e)\r\n        {\r\n            BuscarAlumno pBuscarAlumno = new BuscarAlumno();\r\n            pBuscarAlumno.ShowDialog();\r\n\r\n            if (pBuscarAlumno.alumnoSeleccionado != null)\r\n            {\r\n                alumnoActual = pBuscarAlumno.alumnoSeleccionado;\r\n                textNombre.Text = pBuscarAlumno.alumnoSeleccionado.Nombre;\r\n                textApellidos.Text = pBuscarAlumno.alumnoSeleccionado.Apellidos;\r\n                textDireccion.Text = pBuscarAlumno.alumnoSeleccionado.Direccion;\r\n                textFechaNac.Text = pBuscarAlumno.alumnoSeleccionado.Fecha_Nac;\r\n\r\n                Guardar.Enabled = false;\r\n                Modificar.Enabled = true;\r\n            }\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Codigo de la clase que agrega, busca y recupera la informacion de un alumno<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\">using System;\r\nusing System.Collections.Generic;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading.Tasks;\r\nusing System.Data.SqlClient;\r\n\r\nnamespace SistemaMiColegio\r\n{\r\n    class alumnoABMC\r\n    {\r\n        public static int agregarAlumno(Alumno pAlumno)\r\n        {\r\n            int retorno;\r\n            using (SqlConnection Conn = BDConexion.obtenerConexion())\r\n            {\r\n                SqlCommand cmd = new SqlCommand(string.Format(\"INSERT INTO Alumnos (Nombre, Apellidos, Direccion, Fecha_Nacimiento) VALUE('{0}','{1}','{2}','{3}')\",\r\n                    pAlumno.Nombre, pAlumno.Apellidos, pAlumno.Direccion, pAlumno.Fecha_Nac), Conn);\r\n                retorno = cmd.ExecuteNonQuery();\r\n                Conn.Close();\r\n            }\r\n            return retorno;\r\n            \/\/Fin del metodo agregarAlumno()\r\n        }\r\n        \/\/-------------------------------------------------------------------------------------------------------------\r\n        public static List&lt;Alumno&gt; buscarAlumnos(String pNombre, String pApellidos)\r\n        {\r\n            List&lt;Alumno&gt; Lista = new List&lt;Alumno&gt;();\r\n            using (SqlConnection Conn = BDConexion.obtenerConexion())\r\n            {\r\n\r\n                SqlCommand cmd = new SqlCommand(string.Format(\"SELECT Matricula, Nombre, Apellidos, Direccion, Fecha_Nacimiento FROM Alumnos WHERE Nombre LIKE '%{0}%' OR Apellios LIKE '%{1}%'\", pNombre, pApellidos, Conn));\r\n\r\n                SqlDataReader leerTabla = cmd.ExecuteReader();\r\n\r\n                while (leerTabla.Read())\r\n                {\r\n                    Alumno pAlumno = new Alumno();\r\n                    pAlumno.Id = leerTabla.GetInt64(0);\r\n                    pAlumno.Nombre = leerTabla.GetString(1);\r\n                    pAlumno.Apellidos = leerTabla.GetString(2);\r\n                    pAlumno.Direccion = leerTabla.GetString(3);\r\n                    pAlumno.Fecha_Nac = Convert.ToString(leerTabla.GetDateTime(4));\r\n                    Lista.Add(pAlumno);\r\n                }\r\n                Conn.Close();\r\n                return Lista;\r\n            }\r\n        }\r\n\r\n        \/\/Fin del metodo buscarAlumno\r\n        \/\/-----------------------------------------------------------------------------------------------------------------\r\n        public static Alumno obtenerAlumno(Int64 pId)\r\n        {\r\n            Alumno pAlumno = new Alumno();\r\n            using (SqlConnection Conn = BDConexion.obtenerConexion())\r\n            {\r\n                SqlCommand cmd = new SqlCommand(string.Format(\"SELECT, Nombre, Apellidos, Direccion, Fecha_Nacimiento, FROM Alumnos WHERE Matricula = {0}\", pId), Conn);\r\n                SqlDataReader leerTabla = cmd.ExecuteReader();\r\n                while (leerTabla.Read())\r\n                {\r\n                    pAlumno.Id = leerTabla.GetInt64(0);\r\n                    pAlumno.Nombre = leerTabla.GetString(1);\r\n                    pAlumno.Apellidos = leerTabla.GetString(2);\r\n                    pAlumno.Direccion = leerTabla.GetString(3);\r\n                    pAlumno.Fecha_Nac = Convert.ToString(leerTabla.GetDateTime(4));\r\n\r\n                }\r\n                Conn.Close();\r\n                return pAlumno;\r\n            }\/\/Fin del metodo Obtener Alumno\r\n        }\r\n             \/\/----------------------------------------------------------------------------------------------------------------\r\n        public static int modificarAlumno(Alumno pAlumno)\r\n        {\r\n            int resultSet = 0;\r\n            using (SqlConnection Conn = BDConexion.obtenerConexion())\r\n            {\r\n                SqlCommand cmd = new SqlCommand(string.Format(\"UPDATE Alumnos SET Nombre = '{0}', Apellidos = '{1}', Direccion = '{2}', Fecha_Nac = '{3}' WHERE Matricula {4}\", pAlumno.Nombre, pAlumno.Apellidos, pAlumno.Direccion, pAlumno.Fecha_Nac, pAlumno.Id), Conn);\r\n                resultSet = cmd.ExecuteNonQuery();\r\n                Conn.Close();\r\n            }\r\n                return resultSet;\r\n        }\r\n    }\r\n}\r\n\r\n\r\n<\/pre>\n<p>Forma para buscar Alumno<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-111\" src=\"http:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-content\/uploads\/sites\/6\/2017\/09\/Screenshot_5.png\" alt=\"\" width=\"1111\" height=\"614\" srcset=\"https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-content\/uploads\/sites\/6\/2017\/09\/Screenshot_5.png 1111w, https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-content\/uploads\/sites\/6\/2017\/09\/Screenshot_5-300x166.png 300w, https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-content\/uploads\/sites\/6\/2017\/09\/Screenshot_5-768x424.png 768w, https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-content\/uploads\/sites\/6\/2017\/09\/Screenshot_5-1024x566.png 1024w\" sizes=\"auto, (max-width: 1111px) 100vw, 1111px\" \/><\/p>\n<p>Codigo de la clase que sirve para buscar y accesar\u00a0 los datos almacenados en la base de datos pertenecientes a un alumno especifico.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"csharp\">using System;\r\nusing System.Collections.Generic;\r\nusing System.ComponentModel;\r\nusing System.Data;\r\nusing System.Drawing;\r\nusing System.Linq;\r\nusing System.Text;\r\nusing System.Threading.Tasks;\r\nusing System.Windows.Forms;\r\n\r\nnamespace SistemaMiColegio\r\n{\r\n    public partial class BuscarAlumno : Form\r\n    {\r\n        public BuscarAlumno()\r\n        {\r\n            InitializeComponent();\r\n        }\r\n        public Alumno alumnoSeleccionado { set; get;}\r\n        private void Buscar_Click(object sender, EventArgs e)\r\n        {\r\n            dataGridView1.DataSource = alumnoABMC.buscarAlumnos(textNombre.Text, textApellidos.Text);\r\n        }\r\n\r\n        private void Aceptar_Click(object sender, EventArgs e)\r\n        { \r\n            \/\/Si el grid esta lleno y se selecciona una fila, al click en aceptar se pasan los valores del registro\r\n            \/\/a la pantalla principal\r\n            if (dataGridView1.SelectedRows.Count == 1)\r\n            {\r\n                Int64 Id = Convert.ToInt64(dataGridView1.CurrentRow.Cells[0].Value);\r\n                alumnoSeleccionado = alumnoABMC.obtenerAlumno(Id);\r\n                this.Close();\r\n            }\r\n            else\r\n            {\r\n                MessageBox.Show(\"No se ha seleccionado el registro del alumno\");\r\n            }\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>Algunos comandos basicos de SQL Server<\/strong><\/p>\n<p><strong>Codigo para Crear una base de datos y una tabla con sus columnas<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\">USE master\r\nGO\r\nCREATE DATABASE [ventas]\r\nON PRIMARY\r\n(\r\n  NAME = 'ventas_Data',\r\n  FILENAME = 'C:\\bdVentas\\Data\\ventas_data.mdf',\r\n  SIZE = 5120KB,\r\n  MAXSIZE = 10240KB,\r\n  FILEGROWTH = 10%\r\n)\r\n\r\nLOG ON\r\n(\r\n  NAME = 'ventas_Log',\r\n  FILENAME = 'C:\\bdVentas\\Log\\ventas_log.mdf',\r\n  SIZE = 1024KB,\r\n  MAXSIZE = 2048KB,\r\n  FILEGROWTH = 10%\r\n)\r\nGO\r\nUSE ventas\r\nGO\r\nCREATE TABLE productos\r\n(\r\n  idProducto int NOT NULL,\r\n  nombre nvarchar (80) NOT NULL,\r\n  cantidad int NOT NULL,\r\n  precio smallmoney NOT NULL,\r\n  productImage image NULL,\r\n  CONSTRAINT Pk_Products\r\n  PRIMARY KEY CLUSTERED (idProducto)\r\n) \r\nON [PRIMARY]<\/pre>\n<p><strong>Codigo para omitir un caracter de busqueda<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\">--BUSCAR A LOS AUTORES CUYO NOMBRE NO TERMINE CON LA LETRA N\r\nUSE pubs --Nombre de la base de datos\r\nGO\r\nSELECT [au_fname] --Nombre de la columna\r\nFROM[dbo].[authors] --Nombre de la tabla\r\nWHERE [au_fname] NOT LIKE '%n' --Condicion de busqueda en culumna, que no sean n<\/pre>\n<p><strong>Cross Join<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\">--Cross Join despliega cada combinacion\r\n--por cada fila que se encuentre en cada tabla\r\n--Es un producto cartesiano. Una multiplicaci\u00f3n total\r\n--de los registros (filas) de la tabla de origen POR\r\n--el total de los registros de la tabla de origen\r\n--Si tabla origen 1=8 Rows (filas) y tablas de origen 2= 7 filas\r\n--la tabla derivada sera de 56 = Rows\r\n\r\n--Cuanto puede comprar cada cliente de acuerdo a las ventas?\r\n\r\nUSE joinDB\r\nGO\r\nSELECT c.idComprador, v.cantidad\r\nFROM Compradores AS c, Ventas AS v\r\nGO\r\nSELECT * FROM Ventas<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>GENERADOR DE LABERINTOS Peque\u00f1o programa que a trav\u00e9s de 5 clases crea y resuelve laberintos. &nbsp; Funciona de la siguiente manera, primeramente, se crea una clase, con geters y seters a la cual llame TuTipo, esta clase nos servir\u00e1 para guardar un posicionamiento, que est\u00e1 en base a una ret\u00edcula imaginaria, que nos servir\u00e1 para [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-69","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-json\/wp\/v2\/pages\/69","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-json\/wp\/v2\/comments?post=69"}],"version-history":[{"count":10,"href":"https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-json\/wp\/v2\/pages\/69\/revisions"}],"predecessor-version":[{"id":117,"href":"https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-json\/wp\/v2\/pages\/69\/revisions\/117"}],"wp:attachment":[{"href":"https:\/\/portafoliosfit.um.edu.mx\/davidlazaro\/wp-json\/wp\/v2\/media?parent=69"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}