miércoles, 17 de diciembre de 2014

IF ANIDADOS.

Decimos que una estructura condicional es anidada cuando por la rama del verdadero o el falso de una estructura condicional hay otra estructura condicional.El diagrama de flujo que se presenta contiene dos estructuras condicionales. La principal se trata de una estructura condicional compuesta y la segunda es una estructura condicional simple y está contenida por la rama del falso de la primer estructura.
Es común que se presenten estructuras condicionales anidadas aún más complejas.

Problema:

Confeccionar un programa que pida por teclado tres notas de un alumno, calcule el promedio e imprima alguno de estos mensajes:
Si el promedio es >=7 mostrar "Promocionado".
Si el promedio es >=4 y <7 mostrar "Regular".
Si el promedio es <4 mostrar "Reprobado".

OPERADOR SWITCH.

Switch es un tipo especial de iterador de concatenación que tiene n entradas. A cada operador Switch se asocia una expresión. Dependiendo del valor devuelto de la expresión (entre 0 y n-1), Switch copia la secuencia de entrada correspondiente en la secuencia de salida.
Un uso de Switch es implementar planes de consulta en el que participan cursores de avance rápido con determinados operadores, como el operador TOP.
Switch es un operador lógico y físico.El switch no es tan popular como el if, pero se utiliza con regularidad en la programación. En principio la funcionalidad de un switch también se puede implementar con múltiples ifs anidados. En el caso de que hayan muchas acciones dependientes de muchos valores iniciales, es recomendable su uso. El switch favorece la legibilidad y rapidez en la programación.

BUCLE FOR.

Es un bucle más "fijo", permite ejecutar el conjunto de sentencias un numero determinado de veces fijado al principio del bucle y funciona por tanto como un contador. Su expresión general seria como la que sigue: 

for (inicialización, expresionBooleana, incremento) {conjuntoDeSentencias;} 

for (int i= 0; i <10; i++){     System.out.println("el valor de i es: " + i); }

Este ejemplo nos mostraría por la pantalla diez líneas diciéndonos el valor creciente de 'i' de cero a nueve. 



CONTROL FOR MEJORADO.

La ejecución de la estructura de control for comienza con la instrucción de inicialización. Esta instrucción suele realizar la inicialización de una variable de control que suele conocerse como centinela. A continuación se comprueba la condición cuyo resultado tiene que ser un valor booleano true o false.
Si la condición se evalúa como true se ejcuta el bloque de instrucciones delimitadas por las llaves que solo son necesarias si hay más de una instrucción. Después se ejcuta la instrucción de incremento y vuelve a comprobarse la condición. Así sucesivamente hasta que la condición no se cumple.
La inicialización, la condición y el incremento son instrucciones opcionales. Aún así sino se utilizan debe de estar presente el delimitador punto y coma (;). Por ejemplo si omitimos la condición y el incremento, la estructura de control for quedaría así:
for(int i=0;;)
{
   //instrucciones
}

Además si declaramos una variable en la instrucción de inicialización como en el ejemplo anterior, ésta solo será accesible desde el interior de la estructura de control for. Remarco esto porque todavía no hemos visto el ámbito de las variables y puede llevar a confusiones, así que de momento saber que solo puede utilizarse dentro del bucle for.
Vamos a ver el ejemplo que vimos en la entrada dedicada a la estructura de control while, pero en este caso utilizando la estructura de control for:
public class EjemploFor
{
    public static void main(String[] args)
    {
          for(int i=1; i<11; i++){
               System.out.println("Número: " + i);
          }
     }
}


CONTROL WHILE, DO WHILE.


if else nos permitía decidir si queríamos ejecutar o no una instrucción en función de una condición, los bucles nos permiten utilizar una condición para determinar cuantas veces queremos ejecutar una instrucción.:
While (condicion) {
// Instrucciones a ejecutar una y otra
//vez mientras la condición sea cierta
}
El funcionamiento es muy parecido al del if-else, la diferencia estriba en que si la condición es cierta y se ejecuta la orden, la condición vuelve a comprobarse una y otra vez mientras siga siendo cierta. En cambio en el cambio del if-else sólo se comprueba la condición una vez, si es cierta se ejecuta la instrucción y se sigue con el programa.
La estructura de control while permite ejecutar un bloque de instrucciones mientras se cumpla una condición que se evañúa a un booleano true o false. Como en el caso de la estructura de control if, las llaves solo son obligatorias si el bloque de instrucciones está formado por más de una instrucción.
La sintaxis básica de la estructura de control while es la siguiente:
while(condicion)
{
    //instrucciones
}
Existe también una versión diferente, la estructura de control do…while. La diferencia está en que en la estructura while primero comprueba la condición y si se cumple ejecuta el bloque de instrucciones, en cambio en la estructura de control do…while primero se ejecutan las instrucciones y después se comprueba la condición. De esta forma se garantiza que el bloque de instrucciones se ejecute al menos una vez.
La sintaxis básica de la estructura de control do…while es la siguiente:

do
{
   //instrucciones   

} while(condicion);

martes, 23 de septiembre de 2014

Diseña bases de datos (MySQL)
Unidad I: Analiza los conceptos básicos de las bases de datos
1.- ¿Qué  importancia tienen las bases de datos?
R=En la actualidad la recopilación de datos es fundamental para que una empresa o institución mantenga sus relaciones. Por este motivo se le brinda una gran importancia al mantenimiento de la base de datos y también al constante crecimiento de la misma. Es importante que la base contenga ciertos datos fundamentales de la persona, como por ejemplo su teléfono (fijo, móvil o ambos), dirección de correo electrónico y la dirección postal. Estas bases de datos son dinámicas, pues se modifican todo el tiempo, a diferencia de las estáticas que suelen recopilar información o documentos históricos.


2.- ¿Cuáles son los elementos que integran una base de datos?
R=      Datos: Es la parte esencial de la información, es decir, la información que llega a la base de datos.
·         Atributos: Son los diferentes campos que conforman la estructura de una base de datos.
·         Campos: Es la unidad más pequeña de datos.
·         Registro: Es un conjunto de campos o atributos relacionados entre sí.
·         Archivo: Es un conjunto de registros relacionados.


3.-¿Qué es un manejador de base de datos? 
R=El manejador de bases de datos Access es una herramienta que permite almacenar, organizar, buscar y presentar información de una manera fácil y dinámica, utilizando para ello la potencialidad del ambiente gráfico Windows.
Cuenta con asistentes y herramientas de diseño para crear formularios para la captura de información, así como reportes e informes, incluyendo diversos tipos de gráficos, lo cual hace de Access un manejador sumamente útil, versátil y sencillo de usar.


4.- ¿Qué es el programa MySQL?   
R=El sistema de base de datos operacional MySQL es hoy en día uno de los más importantes en lo que hace al diseño y programación de base de datos de tipo relacional. Cuenta con millones de aplicaciones y aparece en el mundo informático como una de las más utilizadas por usuarios del medio. El programa MySQL se usa como servidor a través del cual pueden conectarse múltiples usuarios y utilizarlo al mismo tiempo.

5.- ¿Qué es un campo?
R=En informática, un campo es un espacio de almacenamiento para un dato en particular. En las bases de datos, un campo es la mínima unidad de información a la que se puede acceder; un campo o un conjunto de ellos forman un registro, donde pueden existir campos en blanco, siendo éste un error del sistema operativo. En las hojas de cálculo los campos son llamados celdas.

6.- ¿Qué es una tabla?
R=Tabla en las bases de datos, se refiere al tipo de modelado de datos, donde se guardan los datos recogidos por un programa. Su estructura general se asemeja a la vista general de un programa de hoja de cálculo.

7. - ¿Qué es un rango?
R=Los rangos de datos, son áreas rectangulares de rangos de celdas delimitados por al menos una fila y una columna en blanco a las cuales se les establece un nombre y tienen características especiales que facilitan su uso como si de una base de datos se tratara.
No confundas estos nombres, con los que puedes definir en el cuadro de nombres de la barra de formulas, ya que son distintos. Las mayor parte de las opciones que estudiaremos en este capitulo, son las presentes en el menú Datos, de la interfaz del usuario.


8.- ¿Cuál es el ambiente de trabajo de  MySQL?
R=El servidor MySQL opera en un ambiente de red donde interoperan clientes con servidores. Los clientes y servidores funcionan o son hospedados en ordenadores a los cuales se los llama anfitriones. El anfitrión, entonces, es el conjunto de componentes electronicos que conforman el ordenador lo cuales son controlados por un sistema operativo. Los componentes clientes y servidores son los programas que operan en los anfitriones para darnos un servicio. En este caso, los servidores y clientes nos proporcionan el servicio de una base de datos.

9.    ¿Cómo se desarrolla una consulta en MySQL?

·         R= tiene un comando simple que ordena al servidor que muestre su número de versión y la fecha actual. Ingréselo a continuación del prompt mysql> y presione Enter: Un comando normalmente consiste en una sentencia SQL seguida de punto y coma. (Hay excepciones donde el punto y coma puede omitirse. QUIT, mencionado anteriormente, es una de ellas. Luego conocerá otras.)
·      
10.- ¿Cómo se desarrolla una actualización en MySQL?
R=Uno de los mayores problemas de los que adolece actualmente Mysql es el no poseer un entorno gráfico que satisfaga a la mayor parte de los usuarios. Existen magníficos proyectos a través de página Web, como PHPmysqlAdmin, pero muchas veces te encuentras con gente que le gustaría tener algo parecido a un Access, posibilidad de incluir formularios para la entrada de datos, o de informes sobre los datos almacenados dentro de una tabla. 

Dado que no existe hoy en día ninguna herramienta parecida al Access para trabajar con Mysql, el presente artículo expondrá la forma de trabajar con las bases de datos de Mysql utilizando el entorno gráfico de Access. Al terminarlo, podrás utilizar los formularios, consultas e informes de Access con los datos de los ficheros de Mysql. 

De esta forma, el encargado de actualizar los datos de una página, podrá trabajar desde Access, con la comodidad de los formularios, los menús desplegables etc., y los datos serán enviados automáticamente a
Mysql. 


11.- ¿Cómo se desarrolla una eliminación en MySQL?


En artículos previos hemos explicado como interactuar con MySQL utilizando PHP, desde consultar, insertar y editar registros, ahora veremos como eliminar registros de manera sencilla. Si es que no has leído los artículos anteriores te recomiendo revisar:
Para eliminar registros seguiremos los siguientes pasos: primero haremos un listado de todos los registros de la tabla elegida, luego en el listado agregaremos un enlace a un archivo delete.php que se encargará de hacer la eliminación. Antes de eliminar el registro le preguntaremos al usuario si desea proceder con la eliminación. Finalmente eliminaremos el registro y redireccionaremos al usuario a listado de registros.
Crear el Listado de Registros
Para nuestro ejemplo utilizaremos la base de datos de ejemplo que contiene una tabla llamadaempresa (Descargar el Script SQL). Creamos una consulta a la tabla ‘empresa’ y lo mostramos en una tabla HTML con un enlace a eliminar el registro.
<?php
// conexión a mysql
require("conexion.php");
require("funciones.php");
// consulta de registros
$query = "SELECT * FROM empresa ORDER BY nombre ASC";
$queEmp = mysql_query($query, $conexion);
?>
<html>
<head>
<title>Listado de Empresas</title>
</head>
<body>
<table>
  <?php while ($rsEmp = mysql_fetch_assoc($quEmp)) { ?>
  <tr>
    <td><?php echo $rsEmp['nombre']; ?></td>
    <td><?php echo $rsEmp['direccion']; ?></td>
    <td><a href="editar.php?id=<?php echo $rsEmp['id']; ?>">Editar</a></td>
    <td><a href="#" onclick="delEmpresa(<?php echo $rsEmp['id']; ?>);">Eliminar</a></td>
  </tr>
  <?php } ?>
</table>
<script type="text/javascript">
function delEmpresa(id) {
 if (window.confirm("Aviso:\nDesea eliminar el registro seleccionado?")) {
  window.location = "delete.php?action=del&id="+id; 
 }
}
</script>
</body>
</html>
Hay que notar que en lugar de colocar un enlace directo a delete.php estamos llamando a una función Javascript delEmpresa, esta función le pregunta al usuario si esta seguro de eliminar el registro (Para evitar eliminar registros de manera accidental). Si el usuario acepta entonces redireccionamos a otra página donde pasamos el id del registro que deseamos eliminar.
Eliminar el registro
Creamos un archivo llamado delete.php el cual recibe dos parámetros: el identificador del registro un otro parámetro para verificar que acción se quiere realizar. Creamos la consulta para eliminar el registro y finalmente redireccionar al listado de registros.
// file: delete.php
require("conexion.php");
require("funciones.php");

$idempresa = getParam($_GET["id"], "-1");
$action = getParam($_GET["action"], "");

if ($action == "del") {
 $sql = "DELETE FROM empresa WHERE id = ".sqlValue($idempresa, "int");
 mysql_query($sql, $conexion);
 header("location: listado.php");
}
 
.