Condicionales y bucles

Iniciamos tema nuevo con nuevos conceptos que nos ayudarán a implementar aplicaciones con un grado de complejidad y solvencia superior a lo estudiado y practicado en el tema 2.

De momento, gracias a los conceptos de variables, tipos de datos, operadores aritméticos ( +, -, *, /), entrada y salida de información, habéis podido crear pequeñas aplicaciones que realizaban simples cálculos matemáticos o sencillas salidas por pantalla, mostrando un determinado texto o bien el resultado de una determinada operación aritmética. Por otra parte, en algunos programas escritos por vosotros, habéis hecho uso de la entrada de información, mediante el uso en Java del scanner, técnica de gran utilidad que da la posibilidad al programa de obtener datos del usuario de la aplicación con el fin de procesarlos.

Siendo de vital importancia todos estos conceptos iniciales para vuestro inicio y progreso en el mundo de la programación de aplicaciones, todavía os encontráis en los albores de esta ciencia (la programación) la cual os ofrece un recorrido de conocimiento de amplio trayecto.

Siguiendo esta senda, en el tema que ahora iniciáis, vais a ver dos tipos de estructuras, para la programación de aplicaciones, de esencial importancia en esta área de conocimiento. Me estoy refiriendo a las estructuras condicionales y a los bucles.

En un lenguaje de programación, una estructura condicional nos ofrece la posibilidad de dar ejecución a unas determinadas líneas de código y no forzosamente a todas. Como su nombre dice, en ellas se establecerá una condición de forma que en el caso de su correcto cumplimiento se podrán poner en funcionamiento unas determinadas líneas del código de la aplicación omitiendo la ejecución de otras líneas de código que incumplen la condición estipulada en la mencionada estructura condicional.

En otras palabras, con el empleo de estructuras condicionales en un lenguaje de programación (en java: if, if…else, switch) se evita la ejecución secuencial de todas las instrucciones del programa en favor de solamente algunas de ellas.

El otro tipo de estructura básica a tratar en este tema van a ser los bucles. Mediante ellos podremos hacer programas con un menor número de lineas que si no hiciéramos uso de ellos.

Un bucle es una estructura de control que permite la ejecución, de forma repetida, de un determinado número de líneas de código del programa sin necesidad de escribirlas tantas veces como ejecuciones de las mismas se desean producir.

En este tema iremos tratando diferentes tipos de bucles (incondicionales: for, condicionales: while, …) , conoceréis sus características y aprenderéis a aplicarlos de una forma acertada en vuestras futuras creaciones.

¡ Qué el saber os atalante !

Jesús Albert Magro

Profesor de Programación en el Ciclo de DAW

Alta de un registro en una tabla de MySQL con Java

Se necesita realizar una aplicación Java que permita acceder a una servidor MySQL con el propósito de dar de alta un registro en una tabla socios de una base de datos empresa.

insert-bd-sql

Seguidamente se puede ver el código Java necesario que permite dar de alta el registro de un nuevo socio en la tabla socios de la base de datos empresa:

import java.sql.DriverManager;

import java.sql.Connection;

import java.sql.SQLException;

import com.mysql.jdbc;

import java.sql.*;

public class insertarbd {

public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {

try {

// Conexión con el Servidor MySQL indicando: nombre del servidor, usuario, contraseña y base de datos

Connection con = null;

String sURL = «jdbc:mysql://localhost:3306/empresa?useSSL=false&serverTimezone=UTC»;

con = DriverManager.getConnection(sURL,»root»,»12345″);

// Se indica que se va a proceder a insertar en una tabla de la base de datos nuevos registros (st). En tres arrays (nombres, apellidos, teléfono) se guardan los datos a guardar (total dos nuevos registros en la tabla

Statement st = con.createStatement();

String nif1=»123456782″;

String nombre1=»pepe»;

String apellidos1=»martinez»;

// Recorremos cada una de las posiciones de los arrays anteriores para añadir en la tabla cada uno de los registros, para ello se utiliza la sentencia SQL INSERT

String sql1=»INSERT INTO socios (nif, nombre, apellidos) VALUES(‘»+nif1+»‘,'»+nombre1+»‘,'»+apellidos1+»‘)»;

st.executeUpdate(sql1);

// Se muestra en pantalla el contenido de la tabla alumnos en la que hemos añadido los dos registros anteriores

con.close();

}

catch (SQLException sqle) {

System.out.println(«Error en la ejecución:»

+ sqle.getErrorCode() + » » + sqle.getMessage());

}

}

}

Arrays o arreglos

Recuerdo cuando era un estudiante de la asignatura de programación me costó entender el concepto de array así como su utilidad práctica. Vamos a ver si con el planteamiento de un caso práctico es posible facilitar el conocimiento sobre esta estructura básica y fundamental en el campo de la programación de aplicaciones:

Supongamos que un centro educativo ha requerido de nuestros servicios para que desarrollemos una aplicación informática que gestione los aspectos fundamentales de dicho centro.

En un estado avanzado de implementación de código nos encontramos programando el módulo de gestión de notas del alumnado. Ya hemos gestionado la inserción de notas de cada asignatura del alumno y después del cálculo de la nota media final del curso de cada alumno nos planteamos cómo guardar temporalmente en memoria toda esta información. Como máximo la escuela tiene una capacidad de 500 alumnos. En este caso, si desconocemos el uso de arrays en programación, deberíamos declarar en memoria 500 variables para guardar la nota final de cada uno de los alumnos. Lógicamente, desde el punto de vista del programador, se trataría de un trabajo enorme de difícil gestión y control por parte de este.

En aras de evitarle al programador este descomunal trabajo se definieron los arrays. Esta útil estructura de datos recibe diferentes nombres: vector, arrays, matriz, arreglo. En cualquier caso se trata de un nuevo tipo de datos definido por el programador que pretende gestionar múltiples datos de un mismo tipo.


Poniendo las manos en la obra, si necesitamos realizar un programa que guarde la nota de los 500 alumnos del centro educativo, podríamos tener en cuenta que cada alumno vendrá identificado por un número de expediente empezando con el alumno de número de expediente 0, luego con el alumno de número de expediente 1 y, así sucesivamente, hasta el alumno con el número de expediente 499. Vamos a ver, gráficamente, cual sería la estructura array que necesitaríamos:

Número expediente alumno012345678….    497498499
Nota del alumno6,54,68969,18,347….     1018,3

¿Cómo definimos una array en Java que represente la tabla anterior?

Mediante la declaración de un array con capacidad para guardar 500 números reales, en donde la posición en la que será guardada cada una de las 500 notas vendrá identificada por un índice que coincide con el número de expediente de cada alumno:

float[] notasalumno=new float[500];

En la linea de código anterior se ha definido una nueva variable (notasalumno) de tipo array de números reales (float) con capacidad para guardar en ella las notas de 500 alumnos.

Si por ejemplo, quiero guardar el valor de nota de 7 para el alumno con número de expediente 8 escribiré la linea siguiente de código:

notasalumno[8]=7;

Si, al alumno con número de expediente 499 quiero almacenarle su nota media (8,3) escribiré la siguiente linea de código:

notasalumno[499]=8,3;

De todas formas, en este tema que iniciamos veremos como recorrer cada una de las posiciones de una array con la intención de guardar información en cada una de sus posiciones o bien, leer los datos ya contenidos en el mismo. Solamente os puedo avanzar que para el recorrido de los diferentes tipos de arrays que veremos en este tema será muy conveniente saber utilizar los bucles ya estudiados en el tema anterior. Especial utilidad tendrán los bucles anidados en el caso de recorrido de arrays bidimensionales (matriz). No obstante, para ahondar en el conocimiento de los arrays unidimensionales y bidimensionales así como su recorrido tenemos el trabajo y estudio de este tema que ya iniciamos.

Espero que no tengáis dificultad en el aprendizaje de estos nuevos conceptos que a bien seguro os serán de gran utilidad para el desarrollo de múltiples tipos de aplicaciones.

Un saludo.

Jesús Albert Magro

Profesor de Programación

Programación orientada a objetos

Programación orientada a objetos !

Uf !, quizás la mención de este título os lleve a una asociación relativa a la dificultad o esfuerzo cognitivo que conlleva el estudio de este nuevo tema.

¡ Tranquilos ! Nunca más lejos de la realidad, siempre y cuando no hayáis perdido el hilo de los temas previos tratados en la asignatura de programación: condicionales, bucles, vectores, suprogramas…

¡ Vamos allá !

Con la programación orientada a objetos (POO) se os ofrece un nuevo paradigma de la programación diferente al utilizado en clase hasta la fecha.

La POO os abrirá las puertas al mundo de la reutilización del código y a la forma en la que, en un etapa de análisis y diseño de la aplicación, os debéis plantear la estructura y forma del futuro programa, así como cada una de las partes bien diferenciadas del mismo (objetos) interactúan entre ellos, de una forma mucho más fidedigna a como los seres humanos vemos el mundo real.

Y, ¿Cómo, los seres humanos, vemos el mundo real?

Algo así como un conjunto de objetos o elementos que, en algunos casos, interactuarán unos con otros. Veamos un ejemplo:

Si consideramos una oficina, en ella tenemos un escritorio sobre el cual se encuentra un ordenador que es utilizado por una secretaria. La oficina, el escritorio, el ordenador y la secretaria son objetos los cuales pueden tener algún tipo de relación entre ellos.

Lo más importante en la POO es que entendáis muy claramente el significado de los conceptos de clase y objeto. En programación orientada a objetos, una clase es una estructura que contiene atributos (variables) y métodos (funciones o acciones), es algo similar a una plantilla que permite crear múltiples documentos los cuales siempre tendrán la estructura de esa plantilla: tipo y tamaño de letra, márgenes…

Un objeto en POO es una variable cuyo tipo de datos es una determinada clase. Podemos definir también un objeto como una instancia de una clase. Con esta definición y teniendo en cuenta que en una clase habrán atributos (variables) y métodos (funciones y acciones), un objeto de una clase estará formado también por atributos y métodos con la única diferencia que sus atributos podrán tener valores. Por ejemplo la clasejarrón tiene el atributo color y otros métodos, el objeto jarron-rojo de la clase jarrón tendrá los mismos atributos y métodos que su clase aunque, por ejemplo, el atributo color del objeto jarron-rojo tendrá el valor rojo.

poo

Si viajamos al mundo real y pensamos en el alfarero que a partir de un único molde obtiene múltiples jarrones idénticos aunque cada uno de ellos tenga un color determinado y un dibujo, regresamos, a continuación, al mundo de la POO, el molde cerámico sería una clase con sus atributos y métodos y, cada uno de los jarrones obtenidos a partir del molde serían los objetos de la clase jarrón con métodos tales como llena-jarron y vacia-jarron y,  sus valores de atributos: color rojo, azul… que caracterizan e identifican a cada uno de los objetos.

Espero halláis captado la idea de la POO que acabo de exponer, no obstante entiendo que una vez puesta en práctica, mediante la realización de programas en POO, vuestro grado de comprensión de estos nuevos conceptos será sumamente mayor.

Como profesor este es y será mi objetivo.

¡ Nos vemos en “clase” ! Aunque para evitar equívocos mejor deciros:

¡ Nos vemos en el aula !

Jesús Albert Magro

Profesor de programación en el ciclo de DAW

La nube

En la nube!, ¿Qué nube?

“Esta información seguro la tienes en la nube”, “Todo esto lo tenemos en la nube”, “Se trata de un programa que funciona en la nube”, “lo mejor es guardar los datos en la nube”…

nube

Hoy en día, dada la velocidad de crucero de evolución de las tecnologías y fundamentalmente, las asociadas al mundo computacional, resulta habitual hacer mención a conceptos informáticos, dando por conocido su significado cuando, en realidad, para el común de los mortales, dichos términos acaban formando parte de un léxico habitual, carente de una correcta semántica.

Si no teníamos bastante con un vocabulario generalmente bastante limitado en nuestro lenguaje, máxime si cabe comparándonos con el dominio absoluto que de la lengua castellana tenía Don Miguel de Cervantes; en algunos casos, nos vemos abocados a la imposibilidad de asociar el vocablo pertinente al concepto que queremos manifestar.

Ahondando algo más en el tema, en este mundo actual de cambios y avances tecnológicos, comúnmente empleamos palabras cuyo significado real desconocemos y, por lo tanto, su empleo en el uso del habla diaria quedará mermado o tal vez, mal empleado.

Hablemos del neologismo nube o la nube. A priori cualquiera que por primera vez escuche dicha palabra, automáticamente la asociará con el fenómeno metereológico tan habitual en los cielos, presagio, algunas veces, de lluvia y agua para todos.

Informáticamente hablando, se utiliza el término nube, para hacer referencia a todo aquello alejado de nosotros, fuera del alcance de nuestras manos aunque, visible desde cualquier lugar (como las nubes del cielo). La nube, la podemos utilizar para poner en funcionamiento y hacer uso de un determinado programa informático, guardar nuestra información en servidores no físicamente presentes. El único requisito para poder hacer uso de la nube, es tener un dispositivo informático cualquiera:

Ordenador de sobremesa, portátil, tablet, móvil, etcétera y, una conexión a Internet.

Lo que normalmente estaría almacenado en tu PC (tus programas o tus archivos, por ejemplo) pasará a estar en los servidores que forman la nube. Por eso se habla en inglés de Cloud Computing, que suele abreviarse simplemente como The Cloud, es decir:

La nube.

Siendo un usuario habitual del ordenador, móvil, tablet, etcétera, aunque no hayas sido consciente de ello, es prácticamente seguro el hecho de que ya hayas accedido a la nube, incluso, con bastante frecuencia. Sin ir más lejos, piensa en tu cuenta de correo gmail, yahoo o hotmail; en las redes sociales facebook, twitter; en el sitio web desde el cual puedes acceder a tus datos bancarios; servidores que posibilitan que guardes tus datos o archivos como Google Drive, Dropbox y, en un suma y sigue de difícil enumeración dado el amplio elenco de usos de la nube.

Muchas ventajas nos ofrece la nube, algunas de ellas, dada su importancia, podrían ser las siguientes:

– Acceso desde cualquier sitio y dispositivo.

– Ahorro en cuanto a la instalación de programas en nuestro dispositivo, ya que estarán en los servidores de la nube.

– Ahorro en mantenimiento técnico (de él se encargarán los técnicos del servidor de la nube y no nosotros).

– No obstante, no deben desmerecer en absoluto algunas de las desventajas o peligros a los que se exponen los usuarios finales de esta tecnología:

– Inseguridad o no privacidad (lo que se encuentra en un servidor puede ser leido o accedido por alguien no autorizado). Nunca se puede estar seguro de quién accede a esa información o si está o no protegida como tiene que ser.

– Problemas de conexión (si nos falla Internet, ni nube, ni nada de nada). Al igual que en el cielo existen varios tipos de nubes: cúmulos, altocúmulos, extratocúmulos, etc, computacionalmente hablando existen tres tipos de nubes: públicas, privadas e híbridas.

En el caso que vuestra curiosidad metereológica se haya avivado os recomiendo la explicación de algún experto meteorólogo como el televisivo Alfred Rodriguez Picó; pero, si vuestro interés se decanta más hacia los Cloud Computing os animo a visitar la nube y hacer uso de la maravillosa Wikipedia ya que:

“Esta información, seguro la tienes en la nube”.

Jesús Albert Magro

Introducción al CSS

En diseño web tenemos el lenguaje HTML utilizado para establecer la estructura de una página web e insertar en ella los contenidos estáticos necesarios. Los conceptos más importantes relativos a este lenguaje de marcas ya se vieron y trabajaron en el tema anterior.

La utilización de hojas de estilo (CSS) en una página web tiene como objetivo principal establecer en ellas todo lo relativo al aspecto (estilo) de dicha página: color de fondo, color de letras, tamaño de letras, borde de las tablas, etcétera. De esta forma se pretende separar, de una forma meridiana, los contenidos estáticos de toda página web (texto, imágenes, etcétera) que se establecen mediante el empleo de etiquetas HTML y, por otra parte, del estilo y aspecto de la página web.

Ante una problema en el contenido de una página estática se accedería al archivo de HTML en donde se encuentra este contenido y, ante un problema que conlleva la modificación y/o arreglo del estilo o aspecto de la página se acudiría a los archivos con extensión .css que contienen el código que permite modificar el aspecto de alguna parte de la página HTML.

En el enlace siguiente se pueden ver y descargar una gran variedad de páginas web con hojas de estilo .css de gran calidad artística pudiendo apreciar en ella las posibilidades que ofrece el conocimiento del lenguaje CSS. Otro sitio web de suma importancia para el conocimiento del HTML y del CSS es la W3Schools: os invito a visitarla y a realizar en ella misma las pruebas pertinentes para el conocimiento de las propiedades de estilo CSS así como del uso de las etiquetas HTML.

En este tema que se inicia estudiaremos todo lo relativo a las hojas de estilo tanto desde el punto de vista de cómo y desde dónde hacer uso de ellas hasta de las propiedades más útiles a utilizar en aras de mejorar el aspecto de un sitio web.

Vais a ver un tema muy interesante y fundamental para el diseño web profesional que espero os ilusione y anime en la creación de nuevos y bonitos sitios web.

Un saludo a todos.

Jesús Albert Magro

Profesor de Informática al IES Joan Coromines de Benicarló

Introducción a la asignatura Aplicaciones Web

Aplicaciones Web es una asignatura del segundo curso del ciclo formativo de grado medio denominado Sistemas Microinformáticos y redes (SMX).

Con el estudio de esta asignatura os formaréis en aspectos relativos al diseño web y al uso y configuración de aplicaciones web (CMS o gestores de contenidos), de gran interés y utilidad por las prestaciones que ofrecen y, también, por el grado de especialidad que algunos de ellos aportan.

Resulta obvio entender la importancia de esta asignatura para vuestra maleta formativa, debido a la relevancia que tienen hoy en día las aplicaciones web en un mundo tan interconectado…

Comenzaremos el curso abordando los fundamentos del diseño web (HTML y CSS). Con ello aprenderéis a crear una página web desde su código HTML escribiendo sus etiquetas y configurando la estructura de la página y aportando estilo a la misma (CSS).

Será imprescindible, en aras de una buena formación, que podáis poner en práctica vuestros conocimientos en HTML, es por ello que a la finalización del tema, os exigiré la creación de vuestro primer proyecto web con HTML. De todas formas, de todo esto, ya os hablaré en su momento…

Una vez entendido el correcto funcionamiento en la creación de una página web, mediante las marcas del HTML, ya podréis ampliar vuestro abanico de conocimientos estudiando el mecanismo de programación de las hojas de estilo (CSS) que os permitirá aportar estilo (colores, formato de texto, fondos, etc) a las páginas web que al inicio de curso se crearon con el código HTML.

Finalizado este segundo tema os haré modificar el proyecto HTML propuesto en el tema 1, aportándole al mismo los estilos CSS pertinentes con la intención de mejorar y unificar notablemente el aspecto de sus páginas.

Os daréis cuenta que la especificación de estilos mediante CSS en una página web es un tema de conocimiento realmente amplio que os debería llevar muchas horas de estudio para su correcto dominio.

No obstante, vuestro profesor que aquí os habla, se dará por satisfecho si habéis aprendido la forma de usar los estilos CSS y conocéis sus principales aplicaciones. Al igual que en cualquier otra materia, la categoría de expertos únicamente se asigna transcurridas muchas horas más de estudio y trabajo. Tiempo al tiempo…

Con el trabajo de estos dos temas habremos finalizado la primera evaluación y las Navidades con su turrón casi esperándonos en la mesa…

Con la primera evaluación, dejaremos aparcado el diseño web para centrarnos, durante la segunda evaluación, en el conocimientos de los gestores de contenidos (CMS). Ya veréis que se tratan de aplicaciones web creadas, las cuales habréis de descargar e instalar en un servidor de hosting y configurar y personalizar según vuestro interés. A diferencia de lo estudiado hasta ahora, ya no tendréis que diseñar la página a partir de los códigos HTML y CSS: todo está creado, el trabajo consistirá en conocer todo lo que podemos hacer con los CMS y ponerlo en práctica.

Existen CMS para crear aplicaciones web de uso genérico y de uso específico. Esto es lo que os iré enseñando durante la segunda evaluación.

Espero que disfrutéis con todo esto así como yo de vuestra compañía.

¡ Buen curso a todos !

Jesús Albert Magro (profesor de Aplicaciones Web de SMX2)

Gestión de usuarios con MySQL

MySQL es un Sistema Gestor de Base de Datos (SGBD) multiusuario, por lo tanto, a diferencia de otros SGBD como Access o Base de LibreOffice, múltiples usuarios podrán acceder al sistema y por ende a la información contenida en sus bases de datos.

Esta característica, que a priori es una gran ventaja, conlleva que el administrador del sistema tenga que realizar la gestión de usuarios dándolos de alta, modificándolos, borrándolos si ya no hacen falta y, muy importante, definiendo privilegios o revocándolos para que el acceso al sistema por parte de los diferentes tipos de usuarios sea lo más correcto y eficiente posible.

El usuario administrador del SGBD o cualquier otro con privilegios de gestión de usuarios podrá realizar esta tarea de dos formas posibles. La primera será haciendo uso del lenguaje SQL, desde consola, con todas las instrucciones que posee para la gestión de usuarios y privilegios; la segunda posibilidad y más cómoda será empleando la herramienta web para la gestión de bases de datos MySQL PhpMyAdmin.

Así pues, de todo esto tratará el tema que vamos a empezar.

Como «usuarios» que sois del curso de Gestión de Bases de Datos y futuros administradores de sistemas os emplazo a que ampliéis vuestros conocimientos en esta materia que de seguro os serán de gran utilidad.

Jesús Albert Magro

Profesor de Gestión de Base de Datos del Ciclo Formativo de DAW

Programación modular: subprogramas

Una vez conozcáis las características básicas del lenguaje de programación os veréis con ganas y seguridad de desarrollar aplicaciones cada vez más complejas y por lo tanto, en la mayoría de casos, con un mayor número de instrucciones. La consecuencia principal de todo esto será la de una mayor dificultad a la hora de leer el código asociado a vuestra aplicación. Por ejemplo, en el caso de querer dar solución a un determinado error sintáctico o de ejecución en el programa, si el número de lineas de código es algo elevado la dificultad para llevar el barco a buen puerto será mayor que si se tratara de una aplicación con bastante menor código.

Una primera solución muy conveniente para todo esto es la de comentar el código del programa en aras de una mayor legibilidad y comprensión del mismo. Si desconocéis o no os acordáis de cómo estaba implementada la aplicación y debéis de aplicar alguna modificación sobre su código, os será de gran ayuda que el mismo se encuentre correctamente comentado para que vuestra comprensión sobre su funcionamiento tenga efecto en el menor tiempo posible.

Otra forma que favorece en mucho la legibilidad y mantenimiento de una aplicación es modularizar las partes principales del programa. Por modularizar se entiende la agrupación del código en bloques, de forma bien diferenciada respecto al resto de las lineas del programa, según la tarea concreta que realice. Por ejemplo, si tenéis el encargo de realizar una aplicación que deba dar altas, bajas, consultas y modificaciones de los registros de una tabla productos en una determinada base de datos, la forma más correcta de realizar este programa es definir un módulo o subprograma por cada una de las partes principales del mismo (altas, bajas, consultas, modificaciones). Cada uno de estos módulos o subprogramas, según el lenguaje de programación que estéis utilizando, recibe el nombre de función, acción, procedimiento o método (en el lenguaje Java).

De implementar aplicaciones con subprogramas va a tratar el tema que ahora mismo iniciamos, siendo importante para vosotros que conozcáis los diferentes tipos de subprogramas y cómo utilizarlos de una forma correcta.

Ya veréis que el correcto uso de esta técnica os ayudará en la creación y mantenimiento de las futuras aplicaciones de las que vosotros mismos seréis sus creadores.

Jesús Albert Magro

Profesor del Ciclo Formativo de Desarrollo de Aplicaciones Web