Está en la página 1de 27

¿Qué es PHP?

PHP (acrónimo recursivo de PHP: Hypertext Preprocessor) es un lenguaje de código


abierto muy popular especialmente adecuado para el desarrollo web y que puede ser
incrustado en HTML.

Bien, pero ¿qué significa realmente? Un ejemplo nos aclarará las cosas:

Ejemplo #1 Un ejemplo introductorio

<!DOCTYPE HTML>
<html>
<head>
<title>Ejemplo</title>
</head>
<body>

<?php
echo "¡Hola, soy un script de PHP!";
?>

</body>
</html>

En lugar de usar muchos comandos para mostrar HTML (como en C o en Perl), las
páginas de PHP contienen HTML con código incrustado que hace "algo" (en este caso,
mostrar "¡Hola, soy un script de PHP!). El código de PHP está encerrado entre
las etiquetas especiales de comienzo y final <?php y ?> que permiten entrar y salir del
"modo PHP".

Lo que distingue a PHP de algo del lado del cliente como Javascript es que el código es
ejecutado en el servidor, generando HTML y enviándolo al cliente. El cliente recibirá el
resultado de ejecutar el script, aunque no se sabrá el código subyacente que era. El
servidor web puede ser configurado incluso para que procese todos los ficheros HTML
con PHP, por lo que no hay manera de que los usuarios puedan saber qué se tiene
debajo de la manga.

Lo mejor de utilizar PHP es su extrema simplicidad para el principiante, pero a su vez


ofrece muchas características avanzadas para los programadores profesionales. No
sienta miedo de leer la larga lista de características de PHP. En unas pocas horas
podrá empezar a escribir sus primeros scripts.

Aunque el desarrollo de PHP está centrado en la programación de scripts del lado del
servidor, se puede utilizar para muchas otras cosas. Siga leyendo y descubra más en la
sección ¿Qué puede hacer PHP?, o vaya directo al tutorial introductorio si solamente
está interesado en programación web.

¿QUÉ ES PHP? ¿PARA QUÉ SIRVE PHP?


PHP es un lenguaje de código abierto muy popular, adecuado para desarrollo web y que puede ser incrustado
en HTML. Es popular porque un gran número de páginas y portales web están creadas con PHP. Código abierto
significa que es de uso libre y gratuito para todos los programadores que quieran usarlo. Incrustado en HTML
significa que en un mismo archivo vamos a poder combinar código PHP con código HTML, siguiendo unas reglas.

PHP se utiliza para generar páginas web dinámicas. Recordar que llamamos página estática a aquella cuyos
contenidos permanecen siempre igual, mientras que llamamos páginas dinámicas a aquellas cuyo contenido no
es el mismo siempre. Por ejemplo, los contenidos pueden cambiar en base a los cambios que haya en una base
de datos, de búsquedas o aportaciones de los usuarios, etc.

¿Cómo trabaja PHP? El lenguaje PHP se procesa en servidores, que son potentes ordenadores con un software
y hardware especial. Cuando se escribe una dirección tipo http://www.aprenderaprogramar.com/index.php en
un navegador web como Internet Explorer, Firefox o Chrome, ¿qué ocurre? Se envían los datos de la solicitud
al servidor que los procesa, reúne los datos (por eso decimos que es un proceso dinámico) y el servidor lo que
devuelve es una página HTML como si fuera estática.

El esquema es: Petición de página web al servidor --> El servidor recibe la petición, reúne la información
necesaria consultando a bases de datos o a otras páginas webs, otros servidores, etc --> El servidor responde
enviando una página web “normal” (estática) pero cuya creación ha sido dinámica (realizando procesos de modo
que la página web devuelta no siempre es igual).

En resumen:

Zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

Qué se puede hacer con PHP ?


PHP puede hacer cualquier cosa que se pueda hacer con un script CGI, como
procesar la información de formularios, generar páginas con contenidos
dinámicos, ó enviar y recibir cookies. Y esto no es todo, se puede hacer mucho
más. Existen tres campos en los que se usan scripts escritos en PHP.

1. Scripts del lado del servidor. Este es el campo más tradicional y el


principal foco de trabajo. Se necesitan tres cosas para que esto funcione. El
intérprete PHP (CGI ó móulo), un servidor web y un navegador. Es
necesario correr el servidor web con PHP instalado. El resultado del
programa PHP se puede obtener a través del navegador, conectándose con
el servidor web.
2. Scripts en la línea de comandos. Se puede crear un script PHP y correrlo
sin ningún servidor web o navegador. Solamente se necesita el intérprete
PHP para usarlo de esta manera. Este tipo de uso es ideal para scripts
ejecutados regularmente desde cron (en Unix ó Linux). Estos scripts
también pueden ser usados para tareas simples de procesamiento de texto.
3. Escribir aplicaciones de interfaz gráfica. Probablemente PHP no sea el
lenguaje más apropiado para escribir aplicaciones gráficas, pero si se
conoce bien PHP, y se quisieran utilizar algunas características avanzadas
en programas clientes, se puede utilizar PHP-GTK para escribir dichos
programas. También es posible escribir aplicaciones independientes de
una plataforma. PHP-GTK es una extensión de PHP, no disponible en la
distribución principal, ni tampoco en la distribución para PDAs con Linux
Integrado.

PHP puede ser utilizado en cualquiera de los principales sistemas operativos del
mercado, incluyendo Linux integrado y Linux, muchas variantes Unix
(incluyendo HP-UX, Solaris y OpenBSD), Mac OS X, RISC OS y seguramente
algunos más. PHP soporta la mayoría de servidores web de hoy en día,
incluyendo Apache, Personal Web Server, Netscape e iPlanet, Oreilly Website
Pro server, Caudium, Xitami, OmniHTTPd y muchos otros. PHP tiene módulos
disponibles para la mayoría de los servidores, para aquellos otros que soporten el
estándar CGI, PHP puede usarse como procesador CGI.

De modo que, con PHP se tiene la libertad de elegir el sistema operativo y el


servidor de que mas guste. También se tiene la posibilidad de usar programación
procedimental ó programación orientada a objetos. Aunque no todas las
características estándares de la programación orientada a objetos están
implementadas en la versión actual de PHP, muchas librerías y aplicaciones
grandes están escritas íntegramente usando programación orientada a objetos.

Quizás la característica más potente y destacable de PHP es su soporte para una


gran cantidad de bases de datos. Escribir un interfaz vía web para una base de
datos es una tarea simple con PHP. Las siguientes bases de datos están
soportadas actualmente5.2:

Adabas D, Ingres, Oracle (OCI7 and OCI8), dBase, InterBase, Ovrimos,


Empress, FrontBase, PostgreSQL, FilePro (read-only), mSQL, Solid Hyperwave,
Direct MS-SQL, Sybase, IBM DB2, MySQL, Velocis, Informix, ODBC, Unix
dbm.

También se cuenta con una extensión DBX de abstracción de base de datos que
permite usar de forma transparente cualquier base de datos soportada por la
extensión. Adicionalmente, PHP soporta ODBC (el Estándar Abierto de
Conexión con Bases de Datos), asi que se puede conectar a cualquier base de
datos que soporte tal estándar.
PHP también cuenta con soporte para comunicarse con otros servicios usando
protocolos tales como LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (en
Windows) y muchos otros. Se pueden crear sockets puros. PHP soporta WDDX
para el intercambio de datos entre lenguajes de programación en web. Y
hablando de interconexión, PHP puede utilizar objetos Java de forma
transparente como objetos PHP y la extensión de CORBA puede ser utilizada
para acceder a objetos remotos.

PHP tiene unas características muy útiles para el procesamiento de texto, desde
expresiones regulares POSIX extendidas ó tipo Perl hasta procesadores de
documentos XML. Para procesar y acceder a documentos XML, soporta los
estándares SAX y DOM. Puede utilizar la extensión XSLT para transformar
documentos XML.

Si se usa PHP en el campo del comercio electrónico, se encontrarán muy útiles


las funciones Cybercash, CyberMUT, VeriSign Payflow Pro y CCVS para los
programas de pago.

Para terminar, cuenta con muchas otras extensiones muy interesantes, las
funciones del motor de búsquedas mnoGoSearch, funciones para pasarelas de
IRC, utilidades de compresión (gzip, bz2), conversión de calendarios, traducción,
etc.

Actualmente puedes hacer muchas cosas con php:

- enviar cabeceras al navegador


- enviar codigo html al navegador (y junto con el tambien cualkier lenguaje q interprete el
navegador como javascript o vbscript si es IE).
- producir imagenes (librería gd).
- producir flash (librerías ming y swf).
- conectarte a bases de datos (entre ellas: mysql, postgresql, m$ sql server, oracle y
muchisimas otras), obtener datos y ejecutar consultas.
- manejo de xml.
- tratamiento de ficheros (lectura/escritura en archivos de texto).
- conexion a irc (solo en linux con una librería experimental).
- tratamiento de objetos java (sí, se puede usar java con php).

Ejemplos útiles:
- galerias de imagenes
- foros -> invision board, phpBB, vBulletin
- libros de visita ->fusiongbook, radikal guestbook
- manejadores de noticias -> fusionnews, cutenews
- cms (content manager system) -> phpnuke, xoop

no se q + usos, pero de q hay hartos más los hay, y de q habrán más, te aseguro q habrán
más, cada día programadores de todo el mundo estan desarrollando + librerías para
extender las funcionalidades de php.

Cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc

Eficiente, fiable, fácil de usar


MySQL es la base de datos de código abierto más popular del mercado. Gracias a
su rendimiento probado, a su fiabilidad y a su facilidad de uso, MySQL se ha
convertido en la base de datos líder elegida para las aplicaciones basadas en web
y utilizada por propiedades web de perfil alto, como Facebook, Twitter, YouTube y
los cinco sitios web principales*. Además, es una elección muy popular como base
de datos integrada, distribuida por miles de ISV y OEM.

MySQL es un sistema de administración de bases de datos (Database Management


System, DBMS) para bases de datos relacionales. Así, MySQL no es más que una
aplicación que permite gestionar archivos llamados de bases de datos.
Existen muchos tipos de bases de datos, desde un simple archivo hasta sistemas
relacionales orientados a objetos. MySQL, como base de datos relacional, utiliza
multiples tablas para almacenar y organizar la información. MySQL fue escrito en C y
C++ y destaca por su gran adaptación a diferentes entornos de desarrollo, permitiendo
su interactuación con los lenguajes de programación más utilizados como PHP, Perl y
Java y su integración en distintos sistemas operativos.
También es muy destacable, la condición de open source de MySQL, que hace que su
utilización sea gratuita e incluso se pueda modificar con total libertad, pudiendo
descargar su código fuente. Esto ha favorecido muy positivamente en su desarrollo y
continuas actualizaciones, para hacer de MySQL una de las herramientas más
utilizadas por los programadores orientados a Internet.
Algunos enlaces para que amplíes esta información
Sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss

¿Qué son las bases de datos MySQL?


Una base de datos es un conjunto de datos pertenecientes a un mismo contexto y
almacenados sistemáticamente para su posterior uso. En este sentido; una biblioteca puede
considerarse una base de datos compuesta en su mayoría por documentos y textos impresos
en papel e indexados para su consulta. Actualmente, y debido al desarrollo tecnológico de
campos como la informática y la electrónica, la mayoría de las bases de datos están en
formato digital, siendo este un componente electrónico, por tanto se ha desarrollado y se
ofrece un amplio rango de soluciones al problema del almacenamiento de datos.
Categorias: cPanel
MySQL es un sistema para la gestión de base de datos con más de seis millones de
instalaciones en el mundo, y que por lo tanto es el más extendido dentro de las aplicaciones
relacionadas. MySQL funciona como software libre dentro del esquema de licencias
GNU GPL.

MySQL es muy utilizado en aplicaciones web como WordPress, PhpBB, MediaWikio


Drupal, en plataformas (Linux/Windows-Apache-MySQL-PHP/Perl/Python), y por
herramientas de seguimiento de errores como Bugzilla. Su popularidad como aplicación
web está muy ligada a PHP, que a menudo aparece en combinación con MySQL. MySQL
es una base de datos muy rápida en la lectura, lo que hace a MySQL ideal para este tipo de
aplicaciones.

Todos los planes de hosting de Hostinet disponen de MySQL para poder crear y gestionar
el contenido en bases de datos.
Esta entrada y otras relacionadas pertenecen a nuestro Curso cPanel creado por Hostinet.
Si te ha gustado esta entrada y quieres recibir más información útil por email puedes
suscribirte a esta sección dejando tu correo en este enlace, solamente te enviaremos
información de ayuda para tu hosting y dominio.
¿Qué tengo que hacer?
MySQL es el sistema gestor de bases de datos de código abierto más popular en
la actualidad. MySQL está disponible para distintos sistemas operativos, como
Linux, Mac OS X, Solaris, Windows y otros más. MySQL es muy popular en el
desarrollo de aplicaciones web, ya que forma parte como sistema gestor de bases
de datos de las plataformas LAMP, BAMP, MAMP y WAMP.
En esta práctica tienes que crear una base de datos en MySQL para almacenar
los datos que emplea el sitio web. La base de datos se tiene que llamar "pibd" y
tiene que tener las siguientes tablas (se indica el tipo de dato más apropiado para
cada columna, pero se puede cambiar según la necesidad de cada uno):
Tabla Usuarios

 IdUsuario : entero, autoincremento y clave primaria.


 NomUsuario : texto (longitud máxima 15 caracteres) y valor único.
 Clave : texto (longitud máxima 15 caracteres).
 Email : texto.
 Sexo : entero pequeño.
 FNacimiento : fecha.
 Ciudad : texto; no se relaciona con una tabla porque los nombres de todas las
ciudades del mundo es imposible de conocer.
 Pais : entero y clave ajena a Paises.
 Foto : texto; contiene el nombre y quizás la ruta del fichero que almacena la
foto, el uso de este campo depende de la implementación que realice el
alumno.
 FRegistro : marca de tiempo (fecha y hora); fecha de registro en el sistema del
usuario.

Tabla Paises

 IdPais : entero, autoincremento y clave primaria.


 NomPais : texto.

Tabla Albumes

 IdAlbum : entero, autoincremento y clave primaria.


 Titulo : texto.
 Descripcion : texto.
 Fecha : fecha; fecha en el que fueron tomadas las fotografías del álbum, si es
un período de tiempo se puede poner la fecha del primer día o dejar en blanco.
 Pais : entero y clave ajena a Paises; país en el que se tomaron las fotos, si son
varios se puede dejar en blanco.
 Usuario : entero y clave ajena a Usuarios.

Tabla Fotos

 IdFoto : entero, autoincremento y clave primaria.


 Titulo : texto.
 Fecha : fecha; fecha en la que fue tomada la foto, se puede dejar en blanco.
 Pais : entero y clave ajena a Paises; país en el que se tomo la foto, se puede
dejar en blanco.
 Album : entero y clave ajena a Albumes.
 Fichero : texto; contiene el nombre y quizás la ruta del fichero que almacena la
foto, el uso de este campo depende de la implementación que realice el
alumno.
 FRegistro : marca de tiempo (fecha y hora); fecha de registro en el sistema de
la foto, se emplea para mostrar las últimas cinco fotos introducidas.

Nota: este diseño de la base de datos se verá modificado en prácticas posteriores


cuando se incorporen algunas funcionalidades adicionales.
El mantenimiento de la tabla Paises se realiza directamente a través de la base de
datos: los datos se introducen directamente en la tabla. Respecto a las otras
tablas, el mantenimiento se realizará en una próxima práctica, pero por ahora
introduce los datos directamente en las tablas para poder hacer pruebas.
Además, tienes que modificar las siguientes páginas (Figura 1) para que realicen
la consulta SELECT correspondiente y visualicen el resultado obtenido (sustituye los
datos estáticos que tengas en las páginas web por los datos devueltos por la base
de datos):
Página principal
Contiene un listado con un resumen (foto, título, fecha, país) de las últimas
cinco fotos que se han introducido.
Página con el formulario de registro como nuevo usuario
En la lista desplegable para seleccionar el país, mostrar los países a partir
de la tabla Paises de la base de datos.
Página con el formulario de búsqueda
En la lista desplegable para seleccionar el país, mostrar los países a partir
de la tabla Paises de la base de datos.
Página con el listado resultado de una búsqueda
A partir de los datos recibidos desde la [Página con el formulario de
búsqueda] (título, fecha y/o país) debe realizar una búsqueda en la
tabla Fotos y mostrar el resultado obtenido.
Página detalle foto
Muestra toda la información sobre una foto seleccionada en la página
anterior (foto, título, fecha, país, álbum de fotos y usuario al que pertenece).
Página control de acceso
Controla el acceso a la parte privada para los usuarios registrados (los que
figuran en la tabla Usuarios). Si el usuario está registrado, mediante una
redirección en la parte del servidor se debe mostrar la página con el menú
de usuario registrado; si el usuario no está registrado, mediante una
redirección en la parte del servidor se debe mostrar la página principal del
sitio web.
Página "Crear álbum"
En la lista desplegable para seleccionar el país, mostrar los países a partir
de la tabla Paises de la base de datos.
Página "Mis álbumes"
Muestra un listado con todos los álbumes del usuario.
Página "Ver álbum"
Desde la [Página "Mis álbumes"], muestra todas las fotos que contiene un
álbum.
Página "Añadir foto a álbum"
Contiene un formulario con los datos necesarios para añadir una foto (título,
fecha, país, foto y álbum al que se añade la foto).

dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
ddd
Apache Software Foundation (ASF) es una organización sin fines de lucro (una fundación)
creada para dar soporte a los proyectos de software bajo la denominación Apache, incluyendo
el popular servidor HTTP Apache. La ASF se formó a partir del llamado Grupo Apache y fue
registrada en Delaware (Estados Unidos), en junio de 1999.
Apache Software Foundation es una comunidad descentralizada de desarrolladores que
trabajan cada uno en sus propios proyectos de código abierto. Los proyectos Apache se
caracterizan por un modelo de desarrollo basado en el consenso y la colaboración y en
una licencia de software abierta y pragmática. Cada proyecto es gestionado por un grupo
autoseleccionado de expertos técnicos que son participantes activos en dicho proyecto. La
ASF es una meritocracia, de lo que se deriva que la pertenencia a la fundación se permite sólo
a voluntarios que hayan contribuido significativamente a proyectos Apache.
Entre los objetivos de la ASF se encuentran el de proporcionar protección legal a los
voluntarios que trabajan en proyectos Apache, y al propio nombre Apache de ser empleado
por otras organizaciones. El proyecto Apache es el origen de la Licencia Apache y de todas
las licencias que siguen un esquema similar (llamadas licencias "estilo

Apache OpenOffice Base

Base es un sistema gestor de bases de datos con una amplia gama de


características, diseñado para cubrir un amplio abanico de usuarios, puede, desde
simplemente llevar un control de su colección de CD hasta generar un informe
corporativo mensual departamental de ventas.

Base contiene asistentes para ayudar a los usuarios nuevos en el diseño de bases
de datos (o simplemente nuevos en Base) a crear tablas, consultas, formularios e
informes, junto con un conjunto predefinido de definiciones de tablas para
controlar activos, clientes, ordenes de venta, facturas y mucho más.
Para un uso personal de bases de datos Base es lo único que se
necesita, Base ofrece el motor completo de bases de datos relacionales HSQL
configurado para uso individual, con los datos almacenados en el archivo de Base;
también ofrece soporte nativo para archivos de dBase.

Para usuarios empresariales avanzados, Base distribuye controladores nativos


para una variedad de motores de bases de datos multiusuario: MySQL, Adabas D,
MS Access y PostgreSQL. Adicionalmente el soporte de controladores estándar
para JDBC y ODBC le permite conectar con prácticamente cualquier base de
datos existente.

Base se integra perfectamente con el resto de las aplicaciones de OpenOffice, por


ejemplo:

 proporcionando datos de agenda de direcciones para fusión de correo en


Writer utilizando el protocolo estándar LDAP, o formatos de agenda
comunes como el de Microsoft Outlook, Microsoft Windows y Mozilla;
 creando rangos de datos enlazados con Calc para el análisis de datos o
como base para gráficos.

Para más información sobre como trabajar con Base vea la página de Base del
wiki de OpenOffice.

Para información técnica o para ayudar a mejorar Base visite la página del
proyecto Base.

Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Tuplas
Una tupla es una secuencia de valores agrupados.

Una tupla sirve para agrupar, como si fueran un único valor, varios valores que,
por su naturaleza, deben ir juntos.

El tipo de datos que representa a las tuplas se llama tuple. El tipo tuple es
inmutable: una tupla no puede ser modificada una vez que ha sido creada.

Una tupla puede ser creada poniendo los valores separados por comas y entre
paréntesis. Por ejemplo, podemos crear una tupla que tenga el nombre y el
apellido de una persona:

>>> persona = ('Perico', 'Los Palotes')


>>> persona
('Perico', 'Los Palotes')
Desempaquetado de tuplas
Los valores individuales de una tupla pueden ser recuperados asignando la tupla a
las variables respectivas. Esto se llama desempaquetar la tupla (en inglés: unpack):

>>> nombre, apellido = persona


>>> nombre
'Perico'

Si se intenta desempaquetar una cantidad incorrecta de valores, ocurre un error de


valor:

>>> a, b, c = persona
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: need more than 2 values to unpack

Además, también es posible extraer los valores usando su índice, al igual que con
las listas:

>>> persona[1]
'Los Palotes'

A diferencia de las listas, los elementos no se pueden modificar:

>>> persona[1] = 'Smith'


Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

Comparación de tuplas
Dos tuplas son iguales cuando tienen el mismo tamaño y cada uno de sus
elementos correspondientes tienen el mismo valor:

>>> (1, 2) == (3 / 2, 1 + 1)
True
>>> (6, 1) == (6, 2)
False
>>> (6, 1) == (6, 1, 0)
False
Para determinar si una tupla es menor que otra, se utiliza lo que se
denomina orden lexicográfico. Si los elementos en la primera posición de ambas
tuplas son distintos, ellos determinan el ordenamiento de las tuplas:

>>> (1, 4, 7) < (2, 0, 0, 1)


True
>>> (1, 9, 10) < (0, 5)
False

La primera comparación es True porque 1 < 2. La segunda comparación


es False porque 1 > 0. No importa el valor que tengan los siguientes valores, o si
una tupla tiene más elementos que la otra.

Si los elementos en la primera posición son iguales, entonces se usa el valor


siguiente para hacer la comparación:

>>> (6, 1, 8) < (6, 2, 8)


True
>>> (6, 1, 8) < (6, 0)
False

La primera comparación es True porque 6 == 6 y 1 < 2. La segunda comparación


es False porque 6== 6 y 1 > 0.

Si los elementos respectivos siguen siendo iguales, entonces se sigue probando con
los siguientes uno por uno, hasta encontrar dos distintos. Si a una tupla se le
acaban los elementos para comparar antes que a la otra, entonces es considerada
menor que la otra:

>>> (1, 2) < (1, 2, 4)


True
>>> (1, 3) < (1, 2, 4)
False

La primera compación es True porque 1 == 1, 2 == 2, y ahí se acaban los


elementos de la primera tupla. La segunda comparación
es False porque 1 == 1 y 3 < 2; en este caso sí se alcanza a determinar el
resultado antes que se acaben los elementos de la primera tupla.

Este método de comparación es el mismo que se utiliza para poner palabras en


orden alfabético (por ejemplo, en guías telefónicas y diccionarios):

>>> 'auto' < 'auxilio'


True
>>> 'auto' < 'autos'
True
>>> 'mes' < 'mesa' < 'mesadas' < 'mesas' < 'meses' < 'mi'
True

Usos típicos de las tuplas


Las tuplas se usan siempre que es necesario agrupar valores. Generalmente,
conceptos del mundo real son representados como tuplas que agrupan
información sobre ellos. Por ejemplo, un partido de fútbol se puede representar
como una tupla de los equipos que lo juegan:

partido1 = ('Milan', 'Bayern')

Para representar puntos en el plano, se puede usar tuplas de dos


elementos (x, y). Por ejemplo, podemos crear una función distancia que recibe
dos puntos y entrega la distancia entre ellos:

def distancia(p1, p2):


x1, y1 = p1
x2, y2 = p2
dx = x2 - x1
dy = y2 - y1
return (dx ** 2 + dy ** 2) ** 0.5

Al llamar a la función, se le debe pasar dos tuplas:

>>> a = (2, 3)
>>> b = (7, 15)
>>> distancia(a, b)
13.0

Las fechas generalmente se representan como tuplas agrupando el año, el mes y el


día. La ventaja de hacerlo en este orden (el año primero) es que las operaciones
relacionales permiten saber en qué orden ocurrieron las fechas:

>>> hoy = (2011, 4, 19)


>>> ayer = (2011, 4, 18)
>>> navidad = (2011, 12, 25)
>>> anno_nuevo = (2012, 1, 1)
>>> hoy < ayer
False
>>> hoy < navidad < anno_nuevo
True

Una tupla puede contener otras tuplas. Por ejemplo, una persona puede ser
descrita por su nombre, su rut y su fecha de nacimiento:

persona = ('Perico Los Palotes', '12345678-9', (1980, 5, 14))

En este caso, los datos se pueden desempaquetar así:

>>> nombre, rut, (a, m, d) = persona


>>> m
5

A veces a uno le interesa sólo uno de los valores de la tupla. Para evitar crear
variables innecesarias, se suele asignar estos valores a la variable _. Por ejemplo, si
sólo nos interesa el mes en que nació la persona, podemos obtenerlo así:

>>> _, _, (_, mes, _) = persona


>>> mes
5

Una tabla de datos generalmente se representa como una lista de tuplas. Por
ejemplo, la información de los alumnos que están tomando un ramo puede ser
representada así:

alumnos = [
('Perico', 'Los Palotes', '201199001-5', 'Civil'),
('Fulano', 'De Tal', '201199002-6', 'Electrica'),
('Fulano', 'De Tal', '201199003-7', 'Mecanica'),
]

En este caso, se puede desempaquetar los valores automáticamente al recorrer la


lista en un ciclo for:

for nombre, apellido, rol, carrera in alumnos:


print nombre, 'estudia', carrera

O, ya que el apellido y el rol no son usados:

for nombre, _, _, carrera in alumnos:


print nombre, 'estudia', carrera
Es posible crear tuplas de largo uno dejando una coma a continuación del único
valor:

>>> t = (12,)
>>> len(t)
1

En otros lenguajes, las tuplas reciben el nombre de registros. Este nombre es


común, por lo que conviene conocerlo.

Iteración sobre tuplas


Al igual que las listas, las tuplas son iterables:

for valor in (6, 1):


print valor ** 2

Además, se puede convertir una tupla en una lista usando la función list, y una
lista en una tupla usando la función tuple:

>>> a = (1, 2, 3)
>>> b = [4, 5, 6]
>>> list(a)
[1, 2, 3]
>>> tuple(b)
(4, 5, 6)
Ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc

Registro (base de datos)


Ir a la navegaciónIr a la búsqueda

Filas en Excel

En informática, o concretamente en el contexto de una base de datos relacional,


un registro (también llamado fila o tupla) representa un objeto único de datos implícitamente
estructurados en una tabla. En términos simples, una tabla de una base de datos puede
imaginarse formada de filas y columnas o campos. Cada fila de una tabla representa un
conjunto de datos relacionados, y todas las filas de la misma tabla tienen la misma estructura.
Un registro es un conjunto de campos que contienen los datos que pertenecen a una misma
repetición de entidad. Se le asigna automáticamente un número consecutivo (número de
registro) que en ocasiones es usado como índice aunque lo normal y práctico es asignarle a
cada registro un campo clave para su búsqueda.
egistros (Record)

Son estructuras de datos cuyos elementos pueden ser de diferentes tipos. En los registros se puede almacenar una
variedad de información sobre una persona (nombre, estado civil, edad, fecha de nacimiento, etc.).

Cada elemento se almacena en un campo de registro independiente y se puede referenciar cada elemento
almacenado en un campo por su nombre.
Tambien, se puede decir que un registro (record) es un tipo de dato estructurado que consta de un conjunto de
elementos que pueden ser del mismo tipo o no. Los componentes de un registro se denominan campos, cada campo
tiene un nombre llamado identificador del campo.

Formato:

TYPE
tipo_registro= record
lista_1: tipo_dato1;
lista_2 tipo_dato2;
lista_3 tipo_dato3;
.
.
.
lista_n:tipo_daton;
end;

donde,
tipo_registro es el nombre de la estructura.
lista_1, lista_2, lista_3 ... linsta_n son los nombres de los campos.
dato1, dato2, dato3 ... daton son los tipos de datos de cada campo.

VAR
nombre_reg:tipo_registro;

donde nombre_reg es el nombre de la variable de tipo registro.


tipo_registro es el nombre de la estructura que se uso en TYPE.

Ejemplo: Declarar un registro de empleados cuyos campos son: nombre, edad, direccin y salario

TYPE
empleado= record
nombre:string[30];
edad:integer;
direccion:string[40];
salarios:real;
end;

VAR
trabajador:empleado;

graficamente seria
nombre: Juan Perez
edad:22
direccion: calle 50, barquisimeto estado Lara.
salario12345
Acceso a los campos de un registro: Se puede acceder a cada campo de un registro directamente usando un
designador o selectro de campo.
Formato: nombre_registro.nombre_campo

Ejemplo:
trabajador.nombre
trabajador.edad
trabajador.direccion
trabajador.salario

bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

Atributos

Los atributos son las caracterísiticas individuales que diferencian un objeto de


otro y determinan su apariencia, estado u otras cualidades. Los atributos se
guardan en variables denominadas de instancia, y cada objeto particular puede
tener valores distintos para estas variables.

Las variables de instancia también denominados miembros dato, son declaradas


en la clase pero sus valores son fijados y cambiados en el objeto.

Además de las variables de instancia hay variables de clase, las cuales se aplican
a la clase y a todas sus instancias. Por ejemplo, el número de ruedas de un
automóvil es el mismo cuatro, para todos los automóviles.

Comportamiento

El comportamiento de los objetos de una clase se implementa mediante funciones


miembro o métodos. Un método es un conjunto de instrucciones que realizan una
determinada tarea y son similares a las funciones de los lenguajes estructurados.

Del mismo modo que hay variables de instancia y de clase, también hay métodos
de instancia y de clase. En el primer caso, un objeto llama a un método para
realizar una determinada tarea, en el segundo, el método se llama desde la propia
clase.

El proyecto
El proyecto consta de dos archivos, el primero contiene la clase Rectangulo que
se guarda en el archivo Rectangulo.java y no tiene el método main. La última
casilla del asistente de creación de clases New Java File debe de estar
desactivada.

La otra clase, es la que describe la aplicación RectanguloApp1 y se guarda en el


archivo RectanguloApp1.java, esta clase tiene que tener el método main, por lo
tanto, la última casilla del asistente de creación de clases New Java File debe de
estar activada.

Un proyecto puede constar de varias clases (normalmente se sitúa cada clase en


un archivo) pero solamente una tiene el método main y representa la aplicación.
Para distinguir la clase que describe la aplicación de las demás le hemos añadido
el sufijo App.

rectangulo1: Rectangulo.java, RectanguloApp1.java

La clase
Para crear una clase se utiliza la palabra reservada class y a continuación el
nombre de la clase. La definición de la clase se pone entre las llaves de apertura y
cierre. El nombre de la clase empieza por letra mayúscula.
class Rectangulo{
//miembros dato
//funciones miembro
}

Los miembros dato

Los valores de los atributos se guardan en los miembros dato o variables de


instancia. Los nombres de dichas variables comienzan por letra minúscula.

Vamos a crear una clase denominada Rectangulo, que describa las características
comunes a estas figuras planas que son las siguientes:

 El origen del rectángulo: el origen o posición de la esquina superior


izquierda del rectángulo en el plano determinado por dos números
enteros x e y.
 Las dimensiones del rectángulo: ancho y alto, otros dos números enteros.
class Rectangulo{
int x;
int y;
int ancho;
int alto;
//faltan las funciones miembro
}

Las funciones miembro

En el lenguaje C++ las funciones miembro se declaran, se definen y se llaman.


En el lenguaje Java las funciones miembro o métodos solamente se definen y se
llaman.

El nombre de las funciones miembro o métodos comieza por letra minúscula y


deben sugerir acciones (mover, calcular, etc.). La definición de una función tiene
el siguiente formato:
tipo nombreFuncion(tipo parm1, tipo parm2, tipo parm3){
//...sentencias
}

Entre las llaves de apertura y cierre se coloca la definición de la


función. tipo indica el tipo de dato que puede ser predefinido int, double, etc, o
definido por el usuario, una clase cualquiera.

Para llamar a un función miembro o método se escribe


retorno=objeto.nombreFuncion(arg1, arg2, arg3);

Cuando se llama a la función, los argumentos arg1, arg2, arg3 se copian en los
parámetros parm1, parm2, parm3 y se ejecutan las sentencias dentro de la
función. La función finaliza cuando se llega al final de su bloque de definición o
cuando encuentra una sentencia return.
Cuando se llama a la función, el valor devuelto mediante la sentencia return se
asigna a la variable retorno.

Cuando una función no devuelve nada se dice de tipo void. Para llamar a la
función, se escribe
objeto.nombreFuncion(arg1, arg2, arg3);

Estudiaremos más adelante con más detalle como se definen las funciones.

Una función suele finalizar cuando llega al final del bloque de su definición
void funcion(....){
//sentencias...
}

Una función puede finalizar antes del llegar al final de su definición


void funcion(....){
//sentencias...
if(condicion) return;
//sentencias..
}

Una función puede devolver un valor (un tipo de dato primitivo o un objeto).
double funcion(....){
double suma=0.0;
//sentencias...
return suma;
}

Cualquier variable declarada dentro de la función tiene una vida temporal,


existiendo en memoria, mientras la función esté activa. Se trata de variables
locales a la función. Por ejemplo:
void nombreFuncion(int parm){
//...
int i=5;
//...
}

La variable parm, existe desde el comienzo hasta el final de la función. La


variable local i, existe desde el punto de su declaración hasta el final del bloque
de la función.

Se ha de tener en cuenta que las funciones miembro tienen acceso a los miembros
dato, por tanto, es importante en el diseño de una clase decidir qué variables son
miembros dato, qué variables son locales a las funciones miembro, y qué valores
les pasamos a dichas funciones. Los ejemplos nos ayudarán a entender esta
distinción.

Hemos definido los atributos o miembros dato de la clase Rectangulo, ahora le


vamos añadir un comportamiento: los objetos de la clase Rectangulo o
rectángulos sabrán calcular su área, tendrán capacidad para trasladarse a otro
punto del plano, sabrán si contienen en su interior un punto determinado del
plano.

La función que calcula el área realizará la siguiente tarea, calculará el producto


del ancho por el alto del rectángulo y devolverá el resultado. La función devuelve
un entero es por tanto, de tipo int. No es necasario pasarle datos ya que tiene
acceso a los miembros dato ancho y alto que guardan la anchura y la altura de un
rectángulo concreto.
class Rectangulo{
int x;
int y;
int ancho;
int alto;
int calcularArea(){
return (ancho*alto);
}
}

A la función que desplaza el rectángulo horizontalmente en dx, y verticalmente


en dy, le pasamos dichos desplazamientos, y a partir de estos datos actualizará
los valores que guardan sus miembros dato x e y. La función no devuelve nada es
de tipo void.

Atributo (informática)
Espacios de nombres
 Página

 Discusión

Acciones de página
 Ver

 Ver código
 Historial

Atributo. Los atributos son Atributos


las características
individuales que diferencian
un objeto de otro y
determinan su apariencia,
estado u otras cualidades.
Los atributos se guardan en
variables denominadas de
instancia, y cada objeto
particular puede tener
valores distintos para estas
variables.

Concepto: Los atributos son las características


individuales que diferencian un objeto de otro
y determinan su apariencia, estado u otras
cualidades. Los atributos se guardan en
variables denominadas de instancia, y cada
objeto particular puede tener valores distintos
para estas variables.

Las variables de instancia también denominados miembros dato, son declaradas en la


clase pero sus valores son fijados y cambiados en el objeto. Además de las variables
de instancia hay variables de clase, las cuales se aplican a la clase y a todas sus
instancias.
Bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
FORMAS DE ENVÍO DE LOS DATOS DE UN FORMULARIO. MÉTODOS GET Y POST. EJEMPLOS

Cuando un usuario rellena un formulario en una página web los datos hay que enviarlos de alguna manera.
Vamos a considerar las dos formas de envío de datos posibles: usando el método POST o usando el método
GET.

Por ejemplo: <form action="http://www.aprenderaprogramar.com/prog/newuser" method ="get">

En el ejemplo anterior la acción que se ejecutará cuando el usuario pulse el botón “Enviar” (submit) será el envío
de los datos a la url especificada usando el método get.
Veamos el aspecto de un formulario cualquiera para hacernos una idea general.

Este formulario consta de varios campos que al usuario se le solicitan como Nombre, Apellidos, Correo
electrónico, País y Mensaje. Posiblemente los nombres de los campos en el código HTML sean del tipo
nombre_user, apellidos_user, email_user, pais_user y msg.

La diferencia entre los métodos get y post radica en la forma de enviar los datos a la página cuando se pulsa el
botón “Enviar”. Mientras que el método GET envía los datos usando la URL, el método POST los envía de forma
que no podemos verlos (en un segundo plano u "ocultos" al usuario).

Un resultado usando el método GET, a modo de ejemplo, podría ser el siguiente:

http://www.aprenderaprogramar.com/newuser.php?nombre=Pepe&apellido=Flores&email=h5
2turam%40uco.es&sexo=Mujer
En esta URL podemos distinguir varias partes: http://www.aprenderaprogramar.com/newuser.php es
la dirección web en sí.

El símbolo ? indica dónde empiezan los parámetros que se reciben desde el formulario que ha enviado los datos
a la página.

Después del símbolo ? aparecen parejas de datos con su nombre y valor separadas por el símbolo &. Las
parejas dato1=valor1, dato2=valor2, dato3=valor3… reflejan el nombre y el valor de los campos enviados por
el formulario.

Por ejemplo: nombre=Pepe, apellidos=Flores, etc. nos dice que el campo del formulario que se denomina
nombre llega con valor “Pepe” mientras que el campo del formulario que se denomina apellidos llega con valor
“Flores”. Estos valores son recibidos en la página web de destino del formulario.

Tener en cuenta que para separar la primera pareja de la dirección web en sí se usa el símbolo ‘?’ y para separar
las restantes parejas entre sí se usa el símbolo ‘&’.

Otro aspecto a tener en cuenta es que determinados caracteres no son recibidos en la URL de la misma forma
exactamente en que fueron escritos en el formulario. Por ejemplo, el valor del campo email que se recibe en la
URL es h52turam%40uco.es, mientras que el usuario en el formulario habrá introducido con toda
seguridad h52turam@uco.es. Como vemos, el carácter @ ha sido sustituido por los caracteres %40. Estas
equivalencias se introducen automáticamente en la transmisión de datos debido a que las URLs no admiten
determinados caracteres como letras con tildes, arrobas y otros. No debes preocuparte por esta codificación, ya
que si posteriormente rescatamos los valores mediante otros mecanismos volveremos a obtener el texto original.
Simplemente, conviene conocer esta circunstancia para no pensar que están ocurriendo cosas extrañas o
errores.

Hemos visto el resultado de un envío por el método GET. En el caso de un envío de datos usando el método
POST, aunque estos datos también serán enviados (de una forma que podemos denominar “oculta”), no los
podremos ver en la URL. Para poder recuperar los valores de los campos en el caso de un envío con el método
POST necesitaríamos otras herramientas (por ejemplo valernos del lenguaje PHP para recuperar el valor de esos
campos).

El resultado final con ambos métodos podemos decir que es el mismo: la información se transmite de un lado a
otro. La diferencia radica en que con el método GET podemos ver directamente los parámetros pasados ya que
están dentro de la URL mientras que con el método POST los parámetros quedan ocultos y para rescatarlos hay
que usar otras herramientas.

Un ejemplo de uso del método post sería este:

<form action="http://www.aprenderaprogramar.com/prog/newuser" method ="post">

¿ES MEJOR USAR EL MÉTODO GET O EL MÉTODO POST?

Tanto GET como POST son métodos de envío de la información de los formularios válidos y ampliamente
utilizados. Cada método tiene sus ventajas y sus inconvenientes y no se puede decir que uno sea mejor que
otro. Elegir entre un método y otro depende de la aplicación concreta que se esté desarrollando y es algo que
dentro de las empresas de desarrollos web suelen decidir los encargados del diseño de las aplicaciones. A
nosotros en este curso básico simplemente nos interesa conocer la existencia de ambos métodos y sus
características.

Para terminar, en la siguiente tabla mostramos un resumen de las diferencias entre GET y POST:
MÉTODO CONCEPTO OBSERVACIONES

GET lleva los datos


de forma "visible" al
cliente (navegador Los datos son visibles por la URL, por ejemplo:
GET web). El medio de www.aprenderaprogramar.com/
envío es la URL. Los action.php?nombre=pedro&apellidos1= gomez
datos los puede ver
cualquiera.

POST consiste en
datos "ocultos"
La ventaja de usar POST es que estos datos no son
(porque el cliente no
visibles al usuario de la web. En el caso de usar
los ve) enviados por
get, el propio usuario podría modificar la URL
POST un formulario cuyo
escribiendo diferentes parámetros a los reales en su
método de envío es
navegador, dando lugar a que la información
post. Es adecuado
tratada no sea la prevista.
para formularios. Los
datos no son visibles.

Métodos GET vs POST del HTTP


Entendiendo el concepto de GET y POST
Muchas veces tenemos una idea equivocada sobre la utilización de GET
y POST. Tendemos a entender que cuando doy click a un link eso es
GET y cuando envío un formulario es POST. Mucho peor, solemos
pensar que enviando peticiones POST los datos viajan seguros por no ir
como parte de la URL como lo hace GET. Hay un error en este concepto
que considero que cuando empezamos a aprender a usar tecnologías
Web como por ejemplo PHP es entendible pero que a medida que
vamos madurando debemos darnos cuenta que GET y POST no son la
diferencia entre links y formularios.

Se suele prestar a confusión ya que tanto GET como POST son métodos
del protocolo HTTP el cual esta compuesto por un envío al servidor
conocido como petición (request) y una respuesta a dicha solicitud
(response).
Tanto GET como POST, justamente por ser métodos ambos de HTTP,
ejecutan un request y response, y a mi criterio esto suele ser parte de la
confusión sobre los objetivos reales de ambos métodos.

Redefinamos los conceptos


El concepto GET es obtener información del servidor. Traer datos que
están en el servidor, ya sea en un archivo o base de datos, al cliente.
Independientemente de que para eso tengamos que enviar (request)
algún dato que será procesado para luego devolver la respuesta
(response) que esperamos, como por ejemplo un identificador para
obtener una noticia de la base de datos.
POST sin embargo es enviar información desde el cliente para que sea
procesada y actualice o agregue información en el servidor, como sería
la carga o actualización en sí de una noticia. Cuando enviamos
(request) datos a través de un formulario, estos son procesados y luego
a través de una redirección por ejemplo devolvemos (response) alguna
página con información.
Ambos métodos solicitan una respuesta del servidor y ahí es donde
parecen que los conceptos son iguales ya que con ambos se podría
lograr los mismos objetivos. Yo podría, aunque estaría mal, enviar por
GET ciertos datos en la URL y “actualizar o insertar” información en mi
base de datos, pero eso le correspondería al método POST. De la misma
manera podría solicitar una página diferente por medio de POST y
simplemente mostrarla como respuesta aunque eso debería ser a
través de una llamada GET.

Las llamadas GET pueden ser cacheadas (historial del navegador),


indexadas por buscadores, agregar los enlaces a nuestros favoritos o
hasta pasar una url completa a otra persona para que directamente
ingrese a esa página. Con el método POST sin embargo no se puede
hacer esto.

Generalmente usamos links para ejecutar llamadas GET ya que la idea


del link es simplemente “solicitar” una información (página) al servidor
y que sea devuelta como una respuesta. Mientras usamos formularios
para actualizar datos de productos, clientes, noticias, etc, también
teniendo en cuenta que por el método POST también se puede enviar
mucha más cantidad de datos que por GET.