Está en la página 1de 69

Ser programador

Ser programador es extremadamente difcil. Necesits un ttulo en informtica, millones de


guaranes en hardware y software, una mente analtica, muchsima paciencia y un gran gusto
por las bebidas cafeinadas.

Si ests empezando en la programacin, probablemente eso es lo que siempre te dicen.

Exceptuando la parte de la cafena, te dijeron cosas errneas. Programar es ms fcil de lo que


penss, contrariamente a lo que muchos puedan decir.

Este es el mejor momento para aprender programacin. Miles de herramientas para programar
estn apareciendo, en su mayora gratis, y cientos de programadores distribuyen sus
programas como cdigo abierto, as las personas pueden examinar cmo estn escritos,
corregir errores y contribuir a su mejoramiento. Inclusive en una economa baja, muchas
compaas estn contratando programadores.

El objetivo de este manual es ensear a programar en Java, PHP y Python a dos tipos de
personas los que nunca intentaron programar y los que intentaron pero lo odiaron. En vez de
utilizar palabras difciles o acrnimos oscuros, el castellano es utilizado siempre que sea
posible, y todos los trminos nuevos de programacin son totalmente explicados cuando son
introducidos.

Al terminar este manual, vas a tener suficiente habilidad de programacin como para ser un
peligro para vos y para otros. Vas a ser capaz de escribir programas, leer otros libros de
programacin con ms confianza, y aprender nuevos lenguajes de programacin con mayor
facilidad. Tambin vas a ganar habilidades con Java, PHP y Python.

Este manual est dividido en cuatro partes: la primera introduce conceptos generales sobre la
programacin y el funcionamiento de los programas, y las tres ltimas estn dedicadas cada
una a un lenguaje, en este caso Java, Python y PHP.

Eligiendo un lenguaje

Si pods usar la computadora para escribir un lindo resumen, llevar tus cuentas o publicar tu
propio blog, entonces pods escribir programas.

El secreto para aprender a programar es elegir el lenguaje correcto para empezar. El lenguaje
que elegs a menudo depende de las tareas que quers realizar. Cada lenguaje tiene sus puntos
fuertes y sus puntos dbiles. Por ejemplo, muchas personas aprendieron a programar con una
forma del lenguaje BASIC, ya que es un lenguaje antiguo creado para principiantes.
Este manual cubre los lenguajes Java, PHP y Python.

Java

Java es un lenguaje que fue desarrollado por Sun Microsystems. A pesar de que Java puede ser
ms difcil de aprender que otros lenguajes, es un buen lenguaje para empezar por varias
razones. Una ventaja de aprender Java es que pods usarlo en la web y dispositivos mviles.
Otra ventaja es que Java requiere un enfoque organizado para que los programas funcionen. El
lenguaje es particular en la forma que los programas necesitan ser escritos, y se resiste si los
programadores no siguen todas sus reglas. Sun Microsystems fue adquirido por Oracle en el
2010.

Python

Python es un lenguaje simple y rpido que crea buenas costumbres de programacin. Es ligero
y abierto, con gran cantidad de documentacin en Internet. Se puede usar para realizar scripts
o grandes programas, funciona con una mquina virtual de manera parecida a Java.

PHP

Es un lenguaje inicialmente previsto para el desarrollo de pginas web dinmicas. PHP es


bastante simple de abordar y permite conectarse fcilmente a una base de datos.

Tambin pods desarrollar otras aplicaciones que no sean para la web con este lenguaje. Es
potente y permisivo, pero con el riesgo de aprender malas costumbres.

Dicindole a la computadora que hacer

Un programa de computadora, tambin llamado software, es una manera de decirle a la


computadora qu hacer. Todo lo que la computadora hace, desde iniciar hasta apagarse, es
hecho por un programa. Windows 7 es un programa; Buscaminas es un programa; el
controlador que instalaste con tu impresora es un programa; hasta un virus es un programa.

Los programas de computadora estn hechos de una lista de comandos que la computadora
maneja en un orden especfico cuando el programa se ejecuta. Cada comando es llamado
sentencia.

Por ejemplo, si tuvieras un robot, podras darle instrucciones detalladas de la siguiente manera:

Querido robot Jaime,


Por favor hac estas tareas mientras me encuentro de vacaciones:
Item 1: Aspir toda la casa
Item 2: And a la tienda.
Item 3: Compr naranjas, carne y tanta mandioca como puedas llevar.
Item 4: Volv a casa.
Gracias,
Pedro Martnez

Cuando le das instrucciones a alguien, esta persona tiene cierto grado de libertad en cmo
cumplir las instrucciones. Por ejemplo, si Jaime no encuentra naranjas, puede elegir traer
mandarinas u otra fruta.

Las computadoras no tienen esta libertad. Siguen las instrucciones de manera literal. Los
programas que escribs son ejecutados, de manera precisa, una sentencia por vez.

A continuacin hay un ejemplo sencillo de un programa de computadora, escrito en lenguaje


BASIC. No te preocupes si no entends lo que cada lnea significa.

1 PRINT Quers aprender a programar?


2 INPUT A$

Traducido al castellano, este programa es equivalente a darle a una computadora una lista de
tareas como la que sigue:

Querida computadora,
Item 1: Mostr la oracin, Quers aprender a programar?
tem 2: Da al usuario la chance de responder a la pregunta
Gracias,
Tu usuario

Cada una de las lneas en el programa es una sentencia. La computadora maneja cada sentencia
en un programa en un orden especfico, de la misma manera que un cocinero sigue una receta.

Por cmo funcionan los programas, es difcil culpar a la computadora cuando algo no funciona
en tu programa. La computadora est haciendo exactamente lo que le dijiste que haga. La culpa
por los errores la lleva el programador; esas son las malas noticias. Las buenas noticias son que
no pods hacer ningn dao permanente. Nadie fue lastimado durante la creacin de este
manual, y ninguna computadora saldr herida mientras ests estudiando programacin.

Cmo funcionan los programas

La mayora de los programas son escritos de la misma forma que escribs una carta;
escribiendo cada sentencia en un editor de texto. Algunas herramientas vienen con sus propios
editores de texto, mientras otras pueden ser usadas con cualquier programa de edicin de
texto.

Cuando termins de escribir tu programa, lo guards en un archivo. Los programas


usualmente tienen su propia extensin para indicar que tipo de archivo son. Los programas de
Java tienen la extensin .java, los programas en Python tienen la extensin .py y los
programas en php tienen la extensin .php.

Para ejecutar un programa que est guardado en un archivo, necesits ayuda. El tipo de ayuda
que necesits depende del lenguaje de programacin que ests usando. Algunos lenguajes
requieren de un intrprete para ejecutar sus programas. Dicho intrprete lee cada sentencia y le
dice a la computadora lo que tiene que hacer.

La ventaja de los lenguajes interpretados es que son ms rpidos de testear. Cuando escribs un
programa en un lenguaje interpretado, pods probarlo inmediatamente, arreglar errores, y
probar de nuevo. La principal desventaja es que tienen tiempos de ejecucin ms largos que
otros programas escritos en lenguajes no interpretados.

Otros lenguajes de programacin (los no interpretados) requieren de un compilador. El


compilador toma el cdigo escrito por el programador y lo traduce al lenguaje mquina para
que la computadora entienda las instrucciones. Esto hace que el programa se ejecute de la
manera ms eficiente.

Un programa compilado puede ser ejecutado directamente sin la necesidad de un intrprete.


Los programas compilados tienen tiempos de ejecucin menores que los programas
interpretados, pero requieren ms tiempo para ser testeados. Tens que escribir el programa y
compilarlo antes de probarlo. Si encontrs el error y lo arregls, debs compilar el programa
de nuevo para que los cambios sean efectivos.

Java es diferente en el hecho de que requiere un compilador y un intrprete. Aprenders ms


acerca de esto ms adelante en la seccin de Java.

Cmo los programas no funcionan

Muchos programadores nuevos pierden motivacin al empezar a probar sus programas.


Aparecen errores por todas partes. Algunos de estos errores son errores de sintaxis, que son
identificados por la computadora cuando lee el programa y se confunde por lo que escribiste.
Otros errores son errores lgicos, que solamente son identificados por el programador cuando el
programa es testeado, si es que son identificados. Los errores lgicos se cuelan a la
computadora sin ser detectados, pero ocasionan que el programa haga cosas inesperadas.
A medida que empieces a escribir tus propios programas, te familiarizars mucho con los
errores. Son una parte natural del proceso. Los errores de programacin son llamados bugs
(bichos), un trmino que data de hace ms de un siglo para describir errores en dispositivos
tcnicos. El proceso de arreglar errores tambin tiene su propio trmino: debugging o
depuracin. No es coincidencia que existan tantas formas de describir errores de programacin.
Lo quieras o no, obtens muchsima experiencia en debugging/depuracin a medida que
aprends programacin.
PARTE I: MANUAL JAVA
CAPTULO I

Primer programa

Como vimos al principio de este manual, un programa es un conjunto de instrucciones que le


dicen a la computadora que hacer. En este captulo haremos nuestro primer programa en Java
usando un editor de texto y lo probaremos.

Crear un hola mundo

Para crear tu primer programa, us el bloc de notas. Ser un programa sencillo que nos
mostrar la frase Hola mundo.

Abr el bloc y escrib esto:

class Saludo {
public static void main(String[] args) {
// Tu primer programa va aqu
}
}

Asegurate de escribir exactamente como se muestra arriba y us la tecla Tab para insertar las
indentaciones (mover los bloques de texto hacia la derecha insertando espacios o tabuladores,
para as separarlos del margen izquierdo y distinguirlos mejor del texto adyacente) en las
lneas 2-4. Cuando termins, guard tu archivo como Saludo.java.

En este punto, Saludo.java contiene la fundacin para un programa de Java. Crears muchos
programas que comienzan exactamente como ste, con excepcin de la palabra Saludo en la
lnea 1. Esta palabra representa el nombre del programa y cambia con cada programa que
escribs.

Sentencia class

La primera lnea de tu programa es:

class Saludo {
Traducido al espaol, esta lnea significa, Computadora, dale a mi programa el nombre
Saludo.

Como podrs recordar del captulo de introduccin, cada instruccin que le das a la
computadora se llama sentencia. La sentencia class es una manera de dar a tu programa un
nombre. Tambin es usado para determinar otras cosas sobre el programa, como vers ms
adelante. Lo importante del trmino class es que en Java los programas tambin son llamados
clases.

En este ejemplo, el nombre del programa Saludo coincide con el nombre del archivo,
Saludo.java. Un programa en Java debe tener un nombre que coincida con la primera parte del
nombre de archivo y debe estar capitalizado en la misma forma.

Si el nombre del programa no coincide con el nombre del archivo, recibirs un error cuando
trates de compilar tu programa, dependiendo de cmo usaste class para configurar tu
programa.

Sentencia main

La siguiente lnea del programa es:

public static void main(String[] args) {

Esta lnea le dice a la computadora la parte principal de tu programa empieza aqu.. Los
programas en Java estn organizados en diferentes secciones, as que tiene que haber una
forma de identificar donde empieza el programa.

La sentencia main es el punto de entrada de la mayora de los programas en Java. La excepcin


son los llamados applets, programas que corren como parte de una pgina web, y los servlets,
programas que corren en un servidor web. Los programas que escribirs en este manual usan
main como su punto de entrada.

Bloques

En el programa Saludo, cada lnea excepto la lnea 3 contiene una llave, puede ser un { o un }.
Estas llaves son una forma de agrupar partes de tu programa (de la misma forma que los
parntesis son usados para agrupar palabras en una oracin). Todo lo que est dentro de la
llave de apertura, {, y la llave de cierre, }, es parte de un mismo grupo.

Estas agrupaciones son llamadas bloques. En el cdigo del programa Saludo, la llave de
apertura en la lnea 1 est asociado con la llave de cierre en la lnea 5, lo que hace que todo tu
programa sea un bloque. Uss las llaves de esta forma para indicar el principio y el fin de tu
programa.
Un bloque puede estar dentro de otro bloque (as como los parntesis son usados en esta
oracin (y otro grupo es usado aqu)). El programa Saludo tiene llaves en las lneas 2 y 4 que
forman otro bloque. Este bloque comienza con la sentencia main. Todo lo que est dentro del
bloque de la sentencia main es un comando que la computadora tiene que manejar cuando el
programa es ejecutado.

Esta sentencia es la nica ubicada dentro del bloque:

// Tu primer programa va aqu

Esta lnea es un marcador de posicin. El // al principio le dice a la computadora que tiene que
ignorar esta lnea, est ah solo para el beneficio de las personas que leen el texto del programa.
Las lneas que sirven para este propsito son llamadas comentarios.

Ahora mismo has escrito tu primer programa en Java. Puede ser compilado, pero si lo ejecuts
no pasar nada. La razn de esto es que todava no le dijiste a la computadora lo que tiene que
hacer. La sentencia main contiene un simple comentario, que es omitido. Debs agregar
algunas sentencias dentro de las llaves de bloque main.

Guardar informacin en una variable

En los programas que escribs, necesits un lugar en el cual guardar informacin por un breve
periodo de tiempo. Pods hacer esto mediante el uso de una variable, que es un lugar de
almacenamiento que puede contener informacin como enteros, nmeros de coma flotante,
valores verdadero-falso, caracteres y lneas de texto. La informacin guardada en una variable
puede cambiar, de ah que se llama variable.

En el archivo Saludo.java, reemplaz la lnea 3 con:

String saludo = Hola mundo!;

Esta sentencia le dice a la computadora que guarde la lnea de texto Hola mundo! en una
variable llamada saludo.

En un programa Java, debs decirle a la computadora que tipo de informacin va a contener la


variable. En este programa, saludo es una cadena (string), una lnea de texto que puede incluir
letras, nmeros, puntuaciones, y otros caracteres. Poniendo String en la sentencia se configura
la variable para contener cadenas.

Cuando escribs esta sentencia en el programa, debs poner un punto y coma al final de la lnea.
El punto y coma indica el final de cada sentencia en los programas en Java. Es como el punto
al final de una oracin. La computadora usa el punto y coma para determinar cundo termina
una sentencia y empieza la siguiente.
Mostrar en pantalla

Si ejecuts el programa en este momento no mostrar nada. El comando para guardar la lnea
de texto en la variable saludo ocurre detrs de escena. Para hacer que la computadora muestre
que est haciendo algo, pods mostrar los contenidos de esa variable.

Insert otra lnea en blanco en el programa Saludo, despus de la sentencia String saludo =
Hola mundo!. Us ese espacio vaco para escribir la siguiente sentencia:

System.out.println(saludo);

Esta sentencia le dice a la computadora que muestre lo que est almacenado en la variable
saludo. La sentencia System.out.println le dice a la computadora que muestre una lnea en el
dispositivo de salida de tu sistema, en este caso tu monitor.

Compilar el programa en un archivo de clase

Para probar tus programas Java, tens que instalar primeramente el kit de desarrollo Java
(JDK) en tu pc. Podes descargar la ltima versin entrando a
http://www.oracle.com/technetwork/es/java/javase/downloads/index.html.

Para compilar tus programas Java desde la terminal debes escribir javac
nombredelprograma.java. Esto crear un archivo llamado nombre.class en la carpeta donde
est tu archivo .java, para ejecutar el archivo .class debes escribir java nombre omitiendo la
terminacin .class.

Por ejemplo si quers compilar un archivo llamado holamundo.java, debes ir al directorio desde
la terminal y escribir javac holamundo.java, esto va a crear un archivo llamado
holamundo.class en ese mismo directorio. Para ejecutar el programa holamundo, debes escribir
java holamundo. El programa se ejecutara directamente en la terminal, donde podras ver los
resultados.

Arreglando errores

Cuando escribs un programa en Java, usualmente vas a tener errores en tu cdigo. Estos
errores saltan a la vista al momento de compilar tu programa.

El compilador slo habla cuando hay un error, en cuyo caso te muestra el tipo de error y la
lnea de cdigo donde el error fue encontrado.

Es importante entender que los errores que Java te informa, son errores en su mayora de
sintaxis, es decir, errores en la estructuracin bsica de tu programacin. Con la informacin
que Java te proporciona, normalmente podrs corregir estos errores, sin embargo hay otro tipo
de errores que Java no te informa y que corresponde a una cuestin de lgica de programacin
y estos tipo de errores son quizs los ms difciles de resolver.

Con el tiempo, a medida que vayas mejorando tu manera de programar y aumente tu


experiencia estos errores sern cada vez menos frecuentes, sin embargo es probable que
siempre se presenten al menos en las primeras fases de desarrollo de tu programa o aplicacin.

CAPTULO II

Guardar y editar informacin en un programa

En el Captulo I, Tu primer programa, usaste una variable, un lugar especial de


almacenamiento diseado para contener informacin. La informacin almacenada en variables
puede ser modificada a medida que el programa se ejecuta. Tu primer programa almacen una
cadena de texto en una variable. Las cadenas slo son un tipo de informacin que puede ser
almacenado en variables. Las variables tambin pueden almacenar caracteres, enteros, nmeros
de coma flotante, y objetos.

En este captulo aprenderemos ms acerca de cmo usar variables en Java.

Sentencias y expresiones

Los programas de computadora son un conjunto de instrucciones que le dicen a la


computadora que hacer. Cada instruccin es llamada sentencia. El siguiente ejemplo tomado de
un programa de Java es una sentencia:

int puntajeMax = 856000;

Pods usar llaves para agrupar un conjunto de sentencias juntas en un programa de Java. Estos
grupos son llamados sentencias de bloque. Consider la siguiente porcin de un programa:

public static void main(String[] args) {

int a = 3;
int b = 4;

int c = 8 * 5;

Las lneas 2 a 4 de este ejemplo estn dentro de una sentencia de bloque. La llave de apertura
en la lnea 1 denota el comienzo del bloque, y la llave de cierre en la lnea 5 denota el final del
bloque.

Algunas sentencias son llamadas expresiones porque involucran una expresin matemtica y
producen un resultado. La lnea 4 del ejemplo es una expresin porque define el valor de la
variable c como el resultado de multiplicar 8 por 5. Trabajaremos con expresiones en este
captulo.

Asignando tipos de variables

Las variables son la principal forma en que la computadora recuerda algo a medida que ejecuta
un programa. El programa Saludo que creaste en el primer captulo us la variable saludo para
almacenar Hola mundo!. La computadora necesitaba recordar ese texto para que el mensaje
pueda ser mostrado.

En un programa de Java, las variables son creadas con una sentencia que debe incluir dos
cosas:

- El nombre de la variable
- El tipo de informacin que la variable almacenar

Tambin pueden incluir el valor de la informacin almacenada.

Para ver los diferentes tipos de variables y cmo son creadas, abr tu editor de texto y cre un
nuevo archivo java llamado Variable.

Empez a escribir el programa con estas lneas:

class Variable {

public static void main(String[] args) {

//variables

}
Guard estas lneas antes de hacer cualquier cambio.

Enteros y coma flotante

Hasta el momento, el programa Variable tiene un bloque main() con slo una sentencia en l, el
comentario // variables. Borr el comentario y escrib la siguiente sentencia en su lugar:

int maximos;

Esta sentencia crea una variable llamada maximos. No especifica un valor para maximos, as
que por el momento la variable es un lugar de almacenamiento vaco. El texto int al comienzo
de la sentencia designa a maximos como una variable que ser usada para almacenar nmeros
enteros. Pods usar el tipo int para almacenar la mayora de los nmeros no decimales que
necesitars en tus programas. Puede contener cualquier entero entre alrededor de -2.14
billones y 2.14 billones.

Cre una lnea vaca despus de la sentencia int maximos y escrib la siguiente sentencia:

float puntajePromedio;

Esta sentencia crea una variable con el nombre puntajePromedio. El texto float significa
nmeros de coma flotante. Las variables de coma flotante son usadas para almacenar nmeros
que podran contener un punto decimal.

El tipo de variable float puede contener nmeros de hasta 38 dgitos. El tipo ms grande
double puede contener nmeros de hasta 300 dgitos.

Caracteres y cadenas

Como las variables que vimos hasta ahora son todas numricas, quizs tens la impresin de
que todas las variables son usadas para almacenar nmeros. Pens de nuevo. Tambin pods
usar variables para almacenar texto. Dos tipos de texto pueden ser almacenados como
variables: caracteres y cadenas. Un carcter es una letra sola, un nmero, un signo de
puntuacin, o smbolo. Una cadena es un grupo de caracteres.

Tu siguiente paso en la creacin del programa Variable es crear una variable char y una
variable String. Agreg estas dos sentencias despus de la lnea float puntajePromedio;

char llave = c;
String nombreProducto = Bolsos;

Cuando uss caracteres como valores en tu programa, debs usar las comillas simples para
delimitar el caracter que asigns a la variable. Para valores de cadena, lo delimits con comillas
dobles. Mir la siguiente sentencia:
String nombreProducto = Bolsos;

Esta sentencia parecera que le dice a la computadora que cree una variable de cadena llamada
nombreProducto y que le asigne el texto Bolsos como su valor. Sin embargo, como la palabra
Bolsos no est entre comillas, la computadora piensa que tiene que asignar el valor de la
variable nombreProducto al mismo valor que una variable llamada Bolsos, por lo cual debe ir
entre comillas.

Despus de aadir las sentencias char y String, tu programa debe parecerse a esto:

class Variable {
public static void main(String[] args) {
int maximos;
float puntajePromedio;
char llave = c;
String nombreProducto = Bolsos;
}
}

Las ltimas dos variables usan el signo = para asignar un valor inicial cuando las variables son
creadas. Pods usar esta opcin para cualquier variable que crees en un programa java, como
descubrirs ms adelante en este captulo.

Este programa puede ser ejecutado pero no producir ninguna salida.

Otros tipos de variables numricas

Los tipos de variables que viste hasta ahora son las principales que usars para la mayor parte
de tu programacin en java. Pods recurrir a otros tipos de variables en circunstancias
especiales.

El primero, byte, puede ser usado para nmeros enteros en el rango de -128 a 127. La siguiente
sentencia crea una variable llamada teclaEsc con un valor inicial de 27:

byte teclaEsc = 27;

El segundo, short, puede ser usado para nmeros enteros que son ms pequeos en tamao que
los del tipo int. Un entero short puede ir de -37.768 a 32.767, como en este ejemplo:

short nroHabitacion = 245;

El ltimo de los tipos numricos de variable, long, es tpicamente utilizado para enteros que son
muy grandes para que el tipo int los contenga. Un entero long puede ir de -9.22 quintillones a
9.22 quintillones, que es un numero suficientemente grande para cubrir todo menos los gastos
de gobierno.

Boolean

Java tiene un tipo de variable llamado boolean que slo puede ser usado para almacenar el valor
verdadero(true) o el valor falso(false). A primera vista, una variable boolean no puede parecer
particularmente til a menos que planees escribir muchas pruebas de verdadero/falso. Sin
embargo, las variables boolean son usadas en una variedad de situaciones en tus programas.
Los siguientes son algunos ejemplos de preguntas en que las variables boolean son usadas para
responder:

o Ha presionado una tecla el usuario?


o Se ha terminado el juego?
o Est mi cuenta en rojo?
o Estos pantalones me hacen ver gordo/a?
o Puede el conejo de pascua poner huevos?

La siguiente sentencia crea una variable boolean llamada juegoTerminado:

boolean juegoTerminado = false;

Esta variable tiene el valor inicial de false(falso), as que una sentencia como sta podra indicar
en un juego de computadora que el juego todava no se termin. Ms tarde, cuando algo cause
que el juego se termine, la variable juegoTerminado puede ser cambiada a true(verdadero).

Aunque los dos posibles valores boolean parezcan cadenas de texto en un programa, no debes
encerrarlos entre comillas. Ms adelante veremos las variables boolean con ms detalle.

Nombrar variables

Los nombres de variables en Java pueden empezar con una letra, un guion bajo (_), o un
signo de dlar ($). El resto del nombre puede ser cualquier letra o nmero. Pods darle a tus
variables cualquier nombre que desees, pero debs ser consistente en cmo las nombras. Esta
seccin explica el mtodo generalmente recomendado para nombrar variables.

Java es sensible a las maysculas cuando a nombres de variables se refiere, as que siempre
debs capitalizar los nombres de variables de la misma manera. Por ejemplo, si la variable
juegoTerminado es referida como JuegoTerminado en alguna parte del programa, un error
saldr a la vista cuando trates de compilar tu programa.
El nombre de una variable debera describir su propsito de alguna forma. La primera letra
debe estar en minsculas, y si el nombre de la variable tiene ms de una palabra, haz que la
primera letra de cada palabra subsecuente sea mayscula. Por ejemplo, si quisieras crear una
variable entera para almacenar el puntaje mayor histrico en un juego, pods usar la siguiente
sentencia:

int puntajeMayorHistorico;

No pods usar signos de puntuacin o espacios en un nombre de variable, as que ninguna de


estas sentencias funciona:

int puntaje-Mayor historico;

int puntaje mayor histrico;

Si trats de utilizar estos nombres de variable en un programa, el compilador te dar errores al


momento de compilar.

Guardar informacin en variables

Pods guardar un valor en una variable al mismo tiempo que cres la variable en un programa
Java. Tambin pods insertar un valor en la variable en cualquier momento ms adelante en el
programa.

Para definir un valor inicial para una variable en el momento de su creacin, us el signo igual
(=). Aqu est un ejemplo de cmo crear una variable de coma flotante llamada pi con el valor
inicial de 3,14:

float pi = 3,14;

Todas las variables que almacenan nmeros pueden establecerse de manera similar. Si ests
definiendo una variable de carcter o de cadena, las comillas deben de ubicarse alrededor del
valor como fue descrito anteriormente.

Tambin pods definir una variable igual al valor de otra variable si ambas son del mismo tipo.
Consider el ejemplo siguiente:

int kilometraje = 100;


int kilometrajeTotal = kilometraje;

Primero, una variable entera llamada kilometraje es creada con un valor inicial de 100. Luego,
una variable llamada kilometrajeTotal es creada con el mismo valor que kilometraje. Ambas
variables tienen el valor inicial de 100. Ms adelante aprenders cmo convertir el valor de una
variable al tipo de otra variable.
Otra convencin con los nombres en Java es capitalizar los nombre de las variables que no
cambian de valor. Estas variables son llamadas constantes. Las sentencias siguientes crean tres
constantes:

final int TRIPLE = 3;


final int DOBLE = 2;
final int MULTIPLICADOR = 5;

Como las constantes nunca cambian su valor, capaz te preguntes porque deberan siquiera ser
usadas, vos podras usar simplemente el valor asignado a la constante. Una ventaja de usar
constantes es que hacen tu programa ms fcil de entender.

En las tres sentencias anteriores, el nombre de la variable estaba capitalizado. Esto no es


requerido en Java, pero se ha vuelto una convencin estndar entre los programadores para
distinguir las constantes de otros variables.

Operadores

Las sentencias pueden usar expresiones matemticas mediante el uso de los operadores +, -, *,
/, y %. Estos operadores se usan para masticar nmeros a travs de tus programas Java.

Una expresin de adicin en Java usa el operador +, como en estas sentencias:

double peso = 70;


peso = peso + 10;

La segunda sentencia usa el operador + para asignar la variable peso igual a su valor actual
ms 10. Una expresin de substraccin usa el operador - :

peso = peso 15;

Esta expresin asigna la variable peso igual a su valor actual menos 15.

Una expresin de divisin usa el signo / :

peso = peso / 2;

Esto asigna la variable peso a su valor actual dividido 2.

Para encontrar el resto de una expresin de divisin, usa el operador % (tambin llamado
operador mdulo). La siguiente sentencia encuentra el resto de 245 dividido 3:

int resto = 245 % 3;

Una expresin de multiplicacin usa el signo *. Aqu est una sentencia que usa una expresin
de multiplicacin como parte de una sentencia ms complicada:
int total = 100 + (puntaje * 15);

La parte puntaje * 15 de la expresin multiplica puntaje por 15. La sentencia completa


multiplica puntaje por 15 y aade 100 al resultado. Si el puntaje es igual a 20, el resultado es
que total es igual a 400: 100 + (20 * 15).

Incrementar/decrementar

Una tarea comn en los programas es cambiar el valor de una variable por uno. Pods
aumentar el valor por uno, que es llamado incrementar la variable, o disminuir el valor por uno,
que es llamado decrementar la variable. Hay operadores para hacer ambas tareas.

Para incrementar el valor de una variable por uno, us el operador ++, como en la sentencia
siguiente:

X++;

Esta sentencia aade uno al valor almacenado en la variable x.

Para decrementar el valor de una variable por uno, us el operador -- :

z--;

Esta sentencia reduce z por uno.

Tambin pods poner los operadores de incremento y decremento en frente del nombre de la
variable, como en las sentencias siguiente:

++x;
--y;

Poner el operador en frente del nombre de la variable se llama anteponer, y ponerlo despus del
nombre es llamado sobreponer.

La diferencia en operadores antepuestos y sobrepuestos se vuelve importante cuando uss los


operadores dentro de una expresin.

Consider las siguientes sentencias:

int x = 3;
int respuesta = x++ * 10;

A qu es igual la variable respuesta despus de que estas sentencias son manejadas? Quizs
vos espers que sea igual a 40, lo cual sera cierto si 3 era aumentado en 1, lo cual equivale a 4,
y entonces 4 era multiplicado por 10.
Sin embargo, la respuesta es que vale 31 porque el operador sobrepuesto fue usado en vez del
operador antepuesto.

Cuando un operador sobrepuesto es usado en una variable dentro de una expresin, el valor de
la variable no cambia hasta despus de que la expresin fue totalmente evaluada. La sentencia
int respuesta = x++ * 10 hace lo mismo en el mismo orden, que las siguientes dos sentencias:

int respuesta = x * 10;


x++;

Lo opuesto es verdadero para los operadores antepuestos. Si son usados en una variable dentro
de una expresin, el valor de la variable cambia antes de que la expresin sea evaluada.

Consider las siguientes sentencias:

int x = 3;
int respuesta = ++x * 10;

Esto si resulta en la variable respuesta igual a 40. El operador antepuesto causa que el valor de
la variable x sea cambiado antes de que la expresin sea evaluada. La sentencia int respuesta =
++x * 10 hace lo mismo en el mismo orden, que estas sentencias:

x++;
int respuesta = x * 10;

Es fcil exasperarse con los operadores ++ y porque no son tan directos como muchos de
los otros conceptos que encontrs en este manual.

De todos modos no necesits usar los operadores de incremento y decremento en tus propios
programas. Pods obtener los mismos resultados usando los operadores + y de esta manera:

x = x + 1;
y = y 1;

Incrementar y decrementar son atajos tiles, pero tomar la ruta larga de una expresin est
bien tambin.

Precedencia de operadores

Cuando uss una expresin con ms de un operador, necesits saber en qu orden la


computadora los usar a medida que trabaja la expresin. Consider las siguientes sentencias:

int y = 10;

x = y * 3 + 5;
A menos que sepas que orden la computadora va a usar cuando calcule la matemtica en estas
sentencias, no pods estar seguro a que se va a asignar la variable x.

En Java, los programas primero evalan las multiplicaciones, divisiones y mdulos en el orden
que aparecen, y luego las sumas y las restas.

CAPTULO III

Usar pruebas condicionales para tomar decisiones

Cuando escribs un programa, le proves a la computadora una lista de instrucciones llamadas


sentencias, y estas instrucciones son seguidas al pie de la letra. Pods decirle a la computadora
que resuelva frmulas matemticas no tan lindas, y las resolver. Decile que muestre
informacin, y te responder servicialmente.

Hay veces que necesits que la computadora sea ms selectiva con las cosas que hace. Por
ejemplo, si has escrito un programa para llevar tu balance bancario, probablemente quieras que
te muestre una advertencia cuando tu cuenta est en rojo. La computadora solo debera
mostrar esta advertencia cuando tu cuenta est en rojo. Si no lo est, el mensaje sera
incorrecto.

La manera de lograr esta tarea en un programa Java es usar un condicional, una sentencia que
causa que algo pase en un programa solo si se cumple una condicin especfica. En este captulo
aprenders a usar los condicionales if, else y switch.

Probando una condicin

Cuando un programa Java toma una decisin, lo hace empleando una sentencia condicional.
Durante este captulo, vas a verificar la condicin de muchas cosas en tus programas usando
las palabras clave if, else, switch, case, y break. Tambin vas a usar los operadores ==. !=. <, >,
<=, >= y ?, junto con variables booleanas.

Sentencias if
La manera ms bsica de probar una condicin en Java es usar una sentencia if. Las sentencia if
prueba si una condicin es verdadera o falsa y realiza una accin solo si la condicin es
verdadera.

Usas if junto con la condicin que quers probar, como en la sentencia siguiente:

if (cuenta < 0){

System.out.println(Cuenta en rojo; deberas gastar


menos.);

La sentencia if verifica si la variable cuenta est debajo de 0, usando el operador menor que (<).
Si lo est, el bloque dentro de la sentencia if es ejecutado, mostrando el texto.

El bloque slo se ejecuta si la condicin es verdadera. En el ejemplo anterior, si la variable


cuenta tiene un valor de 0 o ms, la sentencia println es ignorada. Fjate que la condicin debe
estar entre parntesis, como en (cuenta < 0).

El operador menor que es uno de los diferentes operadores que puedes usar dentro de sentencias
condicionales.

Operadores menor que y mayor que

En la seccin anterior, el operador < es usado igual que en la clase de matemtica: como un
signo menor que. Tambin hay un operador condicional mayor que >, que es usado en las
sentencias siguientes:

If( pesoElefante > 1052 ) {


System.out.println(El elefante es muy pesado para el acto con
trampolines);
}
If(totalElefantes > 8){
costoLimpieza = costoLimpieza + 2000000;
}

La primera sentencia if verifica si el valor de la variable pesoElefante es o no mayor a 1052. La


segunda sentencia prueba si la variable totalElefantes es o no mayor a 8.

Si las dos sentencias anteriores fueran usadas en un programa donde pesoElefante y


totalElefantes valieran 900 y 5 respectivamente, las sentencias dentro de cada bloque seran
ignoradas.
Pods determinar si algo es menor o igual que otro algo con el operador <=. Aqu tens un
ejemplo:

if( cuenta <= 0) {


System.out.println(Estas quebrado);
}

Tambin hay un operador >= para pruebas de mayor o igual.

Sentencias igual y no igual

Otra condicin que vas a probar en tus programas es la igualdad. Es una variable igual a otra?
Es una variable igual al valor de otra? Estas preguntas pueden ser respondidas con el
operador ==, como en las sentencias siguientes:

if (respuesta == respuestaCorrecta) {
puntuacion = puntuacion + 10;
}
If (puntuacion == 100) {
System.out.println(Impresionante!);
}

Tambin pods probar desigualdad, si algo no es igual a otro algo, con el operador !=, as:

if( respuesta != respuestaCorrecta) {


puntaje = puntaje 5;
}

Puedes usar los operadores == y != con todos los tipos de variable excepto cadenas, porque las
cadenas son un tipo especial de variables llamadas objetos.

Organizar un programa con sentencias en bloque

Hasta este punto, las sentencias if en este captulo han sido acompaadas de un bloque
contenido entre llaves {}.

Anteriormente viste como las sentencias de bloque son usadas para marcar el principio y el
final de bloque main() de un programa Java. Cada sentencia dentro del bloque main() es
manejada cuando el programa se ejecuta.

Una sentencia if no requiere una sentencia de bloque. Puede ocupar una sola lnea, as:

if (cuenta <= 0) System.out.println(Sin plata.);

La sentencia que le sigue al condicional if slo es ejecutada si el condicional es verdadero.


El siguiente es un ejemplo de un programa Java con una sentencia de bloque usada para
denotar el bloque main(). La sentencia de bloque empieza con la llave de apertura { en la lnea 2
y termina con la llave de cierre en la lnea 13. Cre un archivo vaco llamado Juego.java y
escrib lo siguiente:

class Juego {
public static void main(String[] args) {
int total = 0;
int puntaje = 5;
if (puntaje == 5) {
System.out.println(Has salvado a la princesa!);
}
if (puntaje == 3) {
System.out.println(La princesa est en otro
castillo);
}
total = total + puntaje;
System.out.println(Tu puntaje total es: + total);
}

Pods usar sentencias de bloque en sentencias if para hacer que la computadora haga ms de
una cosa si una condicin es cierta. El siguiente es un ejemplo de una sentencia if que incluye
una sentencia de bloque:

if (puntaje > 9000) {


vidas++;
System.out.println(Tu puntaje es mayor que 9000!!!!);
System.out.println(Vida extra!);
dificultad = dificultad + 5;
}

Las llaves son usadas para agrupar todas las sentencias que son parte de la sentencia if. Si la
variable puntaje es mayor que 9000, cuatro cosas pasan:

o El valor de vidas incrementa en 1.


o El texto Tu puntaje es mayor que 9000!!!! se muestra en pantalla.
o Tambin el texto Vida extra! se muestra en pantalla.
o El valor de la variable dificultad se incrementa en 5.

Si la variable puntaje no es mayor a 9000, nada pasa. Las cuatro sentencias dentro de la
sentencia if son ignoradas.

Sentencia if-else
Hay veces que quers hacer algo si una condicin es verdadera y algo diferente si es falsa.
Pods hacer esto usando la sentencia else, como en el ejemplo siguiente:

if (respuesta == respuestaCorrecta){
puntaje += 5;
System.out.println(Correcto. Sumas 5 puntos);
} else {
puntaje -= 5;
System.out.println(Incorrecto. Perds 5 puntos);
}

La sentencia else no tiene una condicin que la acompae, a diferencia de la sentencia if. La
sentencia else es combinada con la sentencia if que la precede. Tambien pods usar else para
encadenar muchas sentencias if juntas, como en el siguiente ejemplo:

if ( calificacin = 5 ) {
System.out.println(Tuviste un 5. Excelente!);
} else if(calificacin = 4) {
System.out.println(Tuviste un 4. Buen trabajo!);
} else if (calificacin = 3) {
System.out.println(Tuviste un 3. Debiste estudiar mas.);
} else if (calificacin = 2) {
System.out.println(Tuviste un 2. Cul fue el error?);
} else {
System.out.println(Te aplazaste. Te ira bien en el
Congreso.);
}

Poniendo juntas varias sentencias if y else de esta manera, pods manejar una variedad de
condiciones. El ejemplo anterior enva un mensaje especfico a estudiantes con calificaciones 5,
4, 3, 2 y futuros legisladores.
CAPTULO IV

Repetir una accin con bucles

Uno de los castigos ms fastidiosos cuando sos nio es hacer que escribas algo una y otra vez
en el pizarrn o en tu cuaderno. Este castigo capaz funcione en los chicos, pero una
computadora puede repetir una tarea con facilidad.

Los programas estn especialmente preparados para hacer la misma cosa una y otra vez gracias
a los bucles. Un bucle es una sentencia o bloque que se repite en un programa. Algunos bucles
se ejecutan un nmero fijo de veces. Otros indefinidamente.

Bucles for

En tu programacin, vas a encontrar circunstancias donde un bucle es til. Pods usarlos para
seguir haciendo algo varias veces, como un antivirus que abre cada correo nuevo recibido para
buscar si est infectado. Tambin pods usar bucles para hacer que la computadora haga nada
por un periodo breve de tiempo, como un reloj animado que muestra el tiempo actual una vez
por minuto.

Una sentencia de bucle causa que un programa vuelva al mismo lugar ms de una vez, como un
avin haciendo un giro acrobtico.

La sentencia de bucle ms compleja de Java es for. Un bucle for repite una seccin de un
programa un nmero fijo de veces. Aqu tens un ejemplo:

for (int nro = 0; nro < 1000; nro++) {


if (nro % 12 == 0) {
System.out.println(#: + nro);
}
}
Este bucle muestra todos los nmeros entre 0 y 999 que son divisibles por 12.

Cada bucle for tiene una variable que determina cuando el bucle debe empezar y terminar. Esta
variable es llamada contador o ndice. El contador en el ejemplo anterior es la variable nro.

El ejemplo ilustra las tres partes principales de una sentencia for:

- La seccin de inicializacin: En la primera parte, se le asigna a la variable nro un valor


inicial de 0.
- La seccin condicional: En la segunda parte, hay una prueba condicional como la que
usaras en una sentencia if: nro < 1000.
- La seccin de cambio: La tercera parte es una sentencia que cambia el valor de la
variable nro, en este ejemplo usando el operador de incremento.

En la seccin de inicializacin, se configura la variable contador. Pods crear esta variable en la


sentencia for, como el ejemplo anterior hace con la variable entera nro. Tambin pods crear la
variable en otra parte de tu programa. En ambos casos, se debe asignar un valor inicial a la
variable en esta seccin de la sentencia. La variable tiene este valor cuando el bucle comienza.

La seccin condicional contiene una prueba que debe permanecer verdadera para que el bucle
continue repitindose. Una vez que la prueba es falsa, el bucle se termina. En este ejemplo, el
bucle termina cuando la variable nro tiene un valor igual o mayor a 1000.

La ltima seccin de una sentencia for contiene una sentencia que cambia el valor de la variable
contador. Esta sentencia es ejecutada cada vez que el bucle da una vuelta. La variable contador
debe cambiar de alguna forma o el bucle nunca termina. En este ejemplo, nro es incrementado
por uno en la seccin de cambio. Si nro no fuera cambiado, tendra su valor original de 0 y el
condicional nro < 1000 siempre seria verdad.

El bloque de la sentencia for es ejecutado en cada vuelta del bucle.

El ejemplo anterior tena las siguientes sentencias en el bloque:

if (nro % 12 == 0) {
System.out.println(#: + nro);
}

Estas sentencias son ejecutadas 1000 veces. El bucle empieza asignando la variable nro a 0.
Luego suma 1 a nro en cada vuelta del bucle y termina cuando nro deja de ser menor a 1000.

Como viste con las sentencias if, un bucle for no requiere llaves si solo contiene una sola
sentencia. Fijate en el siguiente ejemplo:

for (int p = 0; p < 500; p++)


System.out.println(No voy a copiar en el examen);

Este bucle muestra el texto No voy a copiar en el examen 500 veces. A pesar de que las llaves
no son requeridos para delimitar una sola sentencia dentro de un bucle, pods usarlos para que
el bloque sea ms fcil de hallar.

Bucles while

El bucle while no tiene tantas secciones diferentes como el bucle for. Lo nico que necesita es
una prueba condicional, que acompaa a la sentencia while. El siguiente es un ejemplo de un
bucle while:

while ( vidasJuego > 0 ) {


// las sentencias dentro del bucle van aqu
}

Este bucle contina repitindose hasta que la variable vidasJuego deja de ser mayor a 0.

La sentencia while prueba la condicin al principio del bucle antes de que cualquier sentencia
dentro del bucle sea ejecutada. Si la condicin probada es falsa cuando el programa ejecuta la
sentencia while por primera vez, las sentencias dentro del bucle son ignoradas.

Si la condicin while es verdadera, el bucle se ejecuta una vez y al final del primer ciclo prueba
la condicin de nuevo y si sta sigue siendo verdadera, contina. Si la condicin probada nunca
cambia dentro del bucle, el bucle se ejecuta indefinidamente.

Las siguientes sentencias causan que un bucle while muestre la misma lnea de texto varias
veces:

int limite = 5;
int contador = 1;
while (contador < limite) {
System.out.println(La torta es una mentira):
contador++;
}

Un bucle while usa una o ms variables definidas antes de la sentencia del bucle. En este
ejemplo, dos variables enteras son creadas: lmite, que tiene un valor de 5, y contador, que tiene
un valor de 1.

El bucle while muestra el texto La torta es una mentira cuatro veces. Si le das a la variable
contador una valor inicial de 6 en vez de 1, el texto nunca ser mostrado.
Bucles do-while

El bucle do-while es similar al bucle while, pero la prueba condicional va en un lugar diferente.
El siguiente es un ejemplo de un bucle do-while:

do {
// las sentencias dentro del bucle van aqu
} while (vidasJuego > 0)

Como el bucle while, el bucle contina repitindose hasta que la variable vidasJuego deja de ser
mayor a 0. El bucle do-while es diferente porque la prueba condicional es ejecutada al final de
las sentencias dentro del bucle en vez de antes.

Cuando el bucle do es alcanzado la primera vez que se ejecuta el programa, las sentencias entre
do y while son manejadas automticamente, y entonces la condicin while es probada para
determinar si el bucle debe seguir repitindose. Si la condicin while es verdadera, el bucle se
ejecuta una vez ms. Si la condicin es falsa, el bucle termina. Algo debe pasar dentro de las
sentencias do y while que cambie la condicin probada con while, o el bucle se ejecutar
indefinidamente. Las sentencias dentro de un bucle do-while siempre son ejecutadas al menos
una vez.

Las siguientes sentencias causan que un bucle do-while muestre una lnea de texto varias
veces:

int limite = 10:


int contador = 0:
do {
System.out.println(No voy a escaparme de clases);
contador++;
} while (contador < limit)

Como un bucle while, un bucle do-while usa una o ms variables que son definidas antes de la
sentencia de bucle.

El bucle muestra el texto No voy a escaparme de clases diez veces. Si le dieras a la variable
contador un valor inicial de 10, el texto seria mostrado una vez, a pesar de que contador nunca
es menor a lmite.

En el bucle do-while, las sentencias dentro del bucle son ejecutadas al menos una vez inclusve
si la condicin del bucle es falsa la primera vez.

Saliendo de un bucle
La forma normal de salir de un bucle es que la condicin probada se vuelva falsa. Esto es cierto
para los tres tipos de bucles en Java. Pueden existir ocasiones en que quieras que un bucle
termine inmediatamente, an si la condicin siendo probada es verdadera. Puedes lograr esto
con la sentencia break, como es mostrado en el cdigo siguiente:

int indice = 0;
while (ndice <= 1000) {
indice = indice + 5;
if (indice == 400) {
break;
}
}

Una sentencia break termina el bucle que le contiene a la sentencia.

En este ejemplo, el bucle while se repite hasta que la variable indice es mayor a 1000. Sin
embargo, un caso especial hace que el bucle se termine antes que eso: si ndice es igual a 400, la
sentencia break es ejecutada, terminando el bucle inmediatamente.

Otra sentencia para casos especiales que puedes usar dentro de un bucle es continue. La
sentencia continue causa que el bucle salga de su recorrido actual y comience de nuevo desde la
primera sentencia del bucle. Considera el bucle siguiente:

int indice = 0;
while (indice <= 1000){
indice = indice + 5;
if (ndice == 400) {
continue;
}
System.out.println(El indice es + indice);
}

En este bucle, las sentencias son manejadas normalmente a menos que el valor de ndice sea
igual a 400. En ese caso, la sentencia continue causa que el bucle vuelva a la sentencia while en
vez de seguir normalmente a la sentencia System.out.println(). Por culpa de la sentencia
continue, el bucle nunca muestra el texto siguiente:

El ndice es 400

Puedes usar las sentencias break y continue con los tres tipos de bucles.

La sentencia break hace posible que hagas un bucle en tu programa que este diseado para
ejecutarse para siempre y finalizarse al presionar una tecla, como en este ejemplo:
while (true) {
if (teclaEscapePresionada == true) {
break;
}
}

CAPTULO V

Leer y escribir texto en archivos

En Java, existe un tipo especial de objetos llamados File. Vas a usar este objeto para poder leer
y escribir archivos en tus programas. La forma ms sencilla de hacerlo es usando character
streams.

Pods imaginarte un character stream como una corriente de caracteres. Existen dos tipos de
streams, los de entrada y los de salida. Los streams de entrada reciben el nombre de FileReader
(lector de archivos), y los de salida FileWriter (escritor de archivos).

Mir el siguiente ejemplo de cmo leer un archivo llamado prueba.txt y copiar su contenido a
otro archivo llamado copia.txt:

import java.io.*;
public class Lector {
public static void main(String[] args) {
File entrada = new File(prueba.txt);
File salida = new File(copia.txt)
FileReader lector = new FileReader(entrada);
FileWriter escritor = new FileWriter(salida);
char c;
while((c = lector.read()) != -1) {
escritor.write(c);
}
lector.close();
escritor.close();
}
}

Muchas cosas nuevas! En primer lugar pods ver que el programa empieza con import
java.io.* esto le indica a la computadora que vamos a necesitar unas libreras especiales para
trabajar con archivos, as que Java importa esas libreras dentro de tu programa para que
puedas usarlas.

Una librera es como un conjunto de funciones ya codificadas que te ayudan a agilizar tu


cdigo, y tambin te ahorran trabajo a la hora de hacer cosas nuevas. Recordate que no es
necesario volver a inventar la rueda, y el comando import justamente te permite utilizar cdigo
que ya est hecho para que vos no lo tengas que volver a escribir. Java tiene sus libreras
estndares, pero tambin puedes usar libreras externas.

Luego creamos dos variables de tipo File, una para el archivo que quers leer y otra para el
archivo que vas a crear. La sintaxis es new File(nombre del archivo). Luego cres un stream
de entrada, y un stream de salida; la sintaxis es muy parecida a como creaste los archivos,
escribs new y el tipo de variable, seguido por el nombre de tu objeto File al cual quers
asignar el stream entre parntesis.

Luego cres una variable de tipo caracter, y le decs al programa que lea un caracter del
archivo prueba.txt y le asigne ese valor a la variable c. Mientras ese valor sea distinto a -1 (si el
lector lee -1 del archivo, significa que lleg al final del mismo), le manda la variable c al
escritor para que escriba en el archivo copia.txt.

Finalmente, le indicamos al programa que cierre las dos corrientes de salida y de entrada.

Ves entonces que para leer de un archivo uss el mtodo read(), para escribir uss el mtodo
write(), y para cerrar el stream uss close().
PARTE II: PYTHON
CAPTULO I

Primer Programa

En esta primera parte veremos cmo instalar el entorno Python, y crear un programa simple.

Primero, descarg la ltima versin de Python 2.7 de la pgina oficial (python.org). Por
defecto, Pyhton se instala en C:\Python27\. Desde all pods ejecutar el intrprete. A su vez,
pods tener instaladas varias versiones de Python.

Para crear nuestro primer programa, abr un editor de texto y escrib:

print Hola, mundo

Guard el archivo como holamundo.py.

Lo nico que hace nuestro programa es mostrar Hola, mundo en la pantalla

Bloques y comentarios

Si leste el manual de Java antes que este, habrs visto que en Java los programas tienen
bloques que estn indicados por llaves. En Python los bloques de cdigo se indican con la
indentacin; sentencias con el mismo nivel de indentacin pertenecen a un mismo bloque de
cdigo.

Un bloque puede estar dentro de otro bloque (as como los parntesis son usados en esta
oracin (y otro grupo es usado aqu)). Para entender mejor, mir este ejemplo de bloques:

# Bloque 1
Sentencia 1
Sentencia 2
# Bloque 2
Sentencia 3
Sentencia 4
Sentencia 5
Sentencia 6

Como pods ver, todas las sentencias del 1 al 6 estn dentro del bloque 1. Las sentencias 3 y 4
forman un bloque diferente, el bloque 2, pero este bloque est dentro del bloque 1.

Otra parte importante de los programas son los comentarios. Usualmente se usan para hacer
tu cdigo ms fcil de leer (especialmente si es un cdigo que hace mucho no ves, o el cdigo de
alguien ms), y tens que crear el hbito de siempre comentar tu cdigo.
Para crear un comentario en Python, se usa el signo #, como en el siguiente ejemplo:

# esta variable guarda mi nombre


miNombre = Juan Perez

Todo lo que va entre el # y el final de la lnea es ignorado. Es un mensaje destinado al


programador o a cualquier persona que tenga acceso al cdigo, y no tiene influencia en el
comportamiento de tu programa.

Guardar informacin en una variable

Una de las capacidades ms potentes de un lenguaje es la capacidad de almacenar informacin


en variables. En Python, es super sencillo guardar valores en una variable. Mir el siguiente
ejemplo:

miNombre = Juan Perez

Aqu le ests diciendo a la computadora que asigne el valor Juan Perez a la variable
miNombre.

En un programa Python, no debs decirle a la computadora que tipo de informacin va a


contener la variable. Dependiendo del tipo de valor que uses, Python automticamente le
asigna ese tipo de datos a la variable.

Mostrar en pantalla

Muchas veces cuando hagas un programa, vas a querer mostrar tus resultados en pantalla (a
menos que ests hacindolo en secreto). Para esto, en Python usamos el comando print. Para
usarlo simplemente tenes que escribir print seguido de la variable o valor que deseas mostrar
en pantalla, como en nuestro primer ejemplo de Hola mundo.

Ejecutar nuestro programa

Hasta ahora viste como guardar informacin en una variable, y como mostrarla en pantalla.
Pero cmo tens que hacer para ejecutar tu cdigo?

Para ejecutarlo, desde la lnea de comandos and al directorio donde guardaste tu archivo y
escrib C:\Python27\python nombredelarchivo, si quers ejecutar el archivo que creaste al
principio, simplemente reemplaz nombredelarchivo por holamundo.py.
CAPTULO II
Guardar y editar informacin en un programa

En el captulo 1, Tu primer programa, creaste un programa simple que te muestra un texto


en la pantalla. Ahora modific ese programa para que se vea as:

mensaje = Hola, mundo


print mensaje

Ves que ahora primero definimos el texto que queremos imprimir, y luego le decimos al
programa lo que tiene que mostrar en pantalla haciendo referencia a ese mensaje. Usaste una
variable, un lugar especial de almacenamiento diseado para contener informacin. La
informacin almacenada en variables puede ser modificada a medida que el programa se
ejecuta. Este programa almacen una cadena de texto en una variable. Las cadenas slo son un
tipo de informacin que puede ser almacenado en variables. Las variables tambin pueden
almacenar caracteres, enteros, nmeros de coma flotante, y objetos.

En este captulo aprenderemos ms acerca de cmo usar variables en Python.

Sentencias y expresiones

Los programas de computadora son un conjunto de instrucciones que le dicen a la


computadora que hacer. Cada instruccin es llamada sentencia. El siguiente ejemplo tomado de
un programa de Python es una sentencia:

puntajeMax = 856000

Algunas sentencias son llamadas expresiones porque involucran una expresin matemtica y
producen un resultado. Trabajaremos con expresiones en este captulo.

Tipos de variables

Las variables son la principal forma en que la computadora recuerda algo a medida que ejecuta
un programa. El programa modificado que creaste recin us la variable saludo para almacenar
Hola, mundo. La computadora necesitaba recordar ese texto para que el mensaje pueda ser
mostrado.

En un programa Python, las variables son creadas con una sentencia que debe incluir dos
cosas:

- El nombre de la variable
- El valor que contendr la variable
Para ver los diferentes tipos de variables y como son creadas, abr tu editor de texto y cre un
nuevo archivo java llamado Variable.

Empez a escribir el programa con estas lneas:

# En este programa voy a usar todos los tipos de variables

Guard estas lneas antes de hacer cualquier cambio.

Enteros y coma flotante

Hasta el momento, el programa Variable tiene slo un comentario. Cre una nueva lnea y
escrib la siguiente sentencia en su lugar:

temperatura = 39
print Este es un valor entero:
print temperatura

Esta sentencia crea una variable llamada temperatura. Python automticamente identifica al
nmero 39 como un valor de tipo entero. Pods usar el tipo entero para almacenar la mayora
de los nmeros no decimales que necesitars en tus programas. Puede contener cualquier
entero entre alrededor de -2.14 billones y 2.14 billones.

Cre una lnea vaca despus de la sentencia temperatura = 39 y escrib la siguiente sentencia:

puntajePromedio = 4.2
print Este es un valor de coma flotante:
print puntajePromedio

Esta sentencia crea una variable con el nombre puntajePromedio. Pods notar que esta vez
ests almacenando un valor decimal, este tipo de variable recibe el nombre de coma flotante.
Las variables de coma flotante son usadas para almacenar nmeros que podran contener un
punto decimal.

Caracteres y cadenas

Todas las variables que vimos hasta ahora son todas numricas, ser que solo pods
almacenar nmeros en las variables?. Como viste al principio del captulo, tambin pods usar
variables para almacenar texto. Dos tipos de texto pueden ser almacenados como variables:
caracteres y cadenas. Un caracter es una letra sola, un nmero, un signo de puntuacin, o
smbolo. Una cadena es un grupo de caracteres.
Tu siguiente paso en la creacin del programa Variable es crear una variable de tipo
char(caracter) y una variable de tipo string(cadena). Agreg estas dos sentencias despus de la
lnea float puntajePromedio;

letra = c
mascota = Perro
print Esto es una variable char:
print letra
print Esto es una cadena:
print mascota

Cuando uss caracteres como valores en tu programa, debs usar las comillas simples para
delimitar el caracter que asigns a la variable. Para valores de cadena, lo delimits con comillas
dobles. Mir la siguiente sentencia:

producto = Bolsos

Esta sentencia parecera que le dice a la computadora que cree una variable de cadena llamada
producto y que le asigne el texto Bolsos como su valor. Sin embargo, como la palabra Bolsos
no est entre comillas, la computadora piensa que tiene que asignar el valor de la variable
producto al mismo valor que una variable llamada Bolsos, y como no existe una variable
llamada Bolsos, el programa te va a mostrar un error al ejecutar.

Al ejecutar este programa, vers en pantalla un ejemplo de cada tipo de variable que viste hasta
ahora.

Boolean

Python tiene un tipo de variable llamado boolean que slo puede ser usado para almacenar el
valor verdadero(true) o el valor falso(false). A primera vista, una variable boolean no puede
parecer particularmente til a menos que planees escribir muchas pruebas de verdadero/falso.
Sin embargo, las variables boolean son usadas en una variedad de situaciones en tus
programas. Los siguientes son algunos ejemplos de preguntas en que las variables boolean son
usadas para responder:

o Ha presionado una tecla el usuario?


o Se ha terminado el juego?
o Est mi cuenta en rojo?
o Estos pantalones me hacen ver gordo/a?
o Puede el conejo de pascua poner huevos?

La siguiente sentencia crea una variable boolean llamada juegoTerminado:


juego_terminado = False

Esta variable tiene el valor inicial de false(falso), as que una sentencia como esta podra en un
juego de computadora que el juego_terminado puede ser cambiada a true(verdadero).

Aunque los dos posibles valores boolean parezcan cadenas de texto en un programa, no debes
encerrarlas entre comillas.

Nombrar variables

Los nombres de variables en Python pueden contener letras o numeros, el guion bajo (_)
tambin es vlido; pero tiene que comenzar con una letra s o s. Pods darle a tus variables
cualquier nombre que quers, pero tens que ser consistente en como las nombras. Esta seccin
explica el mtodo generalmente recomendado para nombrar variables.

Python es sensible a las maysculas cuando a nombres de variables se refiere, as que siempre
debes capitalizar los nombres de variables de la misma manera. Por ejemplo, si la variable
juegoTerminado es referida como JuegoTerminado en alguna parte del programa, un error
saldr a la vista cuando trates de ejecutar tu programa.

El nombre de una variable debera describir su propsito de alguna forma. La primera letra
debe estar en minsculas, y si el nombre de la variable tiene ms de una palabra, usa el guin
bajo para separar las palabras. Por ejemplo, si quers crear una variable entera para almacenar
el puntaje mayor histrico en un juego, pods usar la siguiente sentencia:

mayor_puntaje = 9001

No pods usar signos de puntuacin o espacios en un nombre de variable, as que ninguna de


estas sentencias funciona:

mayor-puntaje = 9001
mayor puntaje = 9001

Si tratas de utilizar estos nombres de variable en un programa, te dar un error al momento de


ejecutar el programa.

Guardar informacin en variables

Adems de definir el valor de una variable cuando la cres, tambin pods insertar un valor en
la variable en cualquier momento ms adelante en el programa.

Tambin pods definir una variable igual al valor de otra. Consider el ejemplo siguiente:

kilometraje = 100
kilometraje_total = kilometraje

Primero, una variable entera llamada kilometraje es creada, con un valor inicial de 100. Luego,
una variable llamada kilometraje_total es creada con el mismo valor que kilometraje. Ambas
variables tienen el valor inicial de 100.

Operadores

Las sentencias pueden usar expresiones matemticas mediante el uso de los operadores +, -, *,
/, % y **. Uss estos operadores para trabajar con nmeros a travs de tus programas Python.

Una expresin de adicin en Python usa el operador +, como en estas sentencias:

peso = 70
peso = peso + 10;

La segunda sentencia usa el operador + para asignar la variable peso igual a su valor actual
ms 10. Una expresin de substraccin usa el operador - :

peso = peso 15;

Esta expresin asigna la variable peso igual a su valor actual menos 15.

Una expresin de divisin usa el signo / :

peso = peso / 2;

Esto asigna la variable peso a su valor actual dividido 2.

Para encontrar el resto de una expresin de divisin, usa el operador % (tambin llamado
operador modulo). La siguiente sentencia encuentra el resto de 245 dividido 3:

resto = 245 % 3;

Una expresin de multiplicacin usa el signo *. Aqu est una sentencia que usa una expresin
de multiplicacin como parte de una sentencia ms complicada:

total = 100 + (puntaje * 15);

La parte puntaje * 15 de la expresin multiplica puntaje por 15. La sentencia completa


multiplica puntaje por 15 y aade 100 al resultado. Si el puntaje es igual a 20, el resultado es
que total es igual a 400: 100 + (20 * 15).

Finalmente, el operador ** es el operador de exponenciacin. La parte a la izquierda del


operador es la base, y la parte a la derecha es el exponente. El siguiente ejemplo te va a dar
como resultado una variable con el valor 1024 almacenado en ella:
caramelos = 2**10

Incrementar/decrementar

Una tarea comn en los programas es cambiar el valor de una variable por uno. Pods
aumentar el valor por uno, que es llamado incrementar la variable, o disminuir el valor por uno,
que es llamado decrementar la variable. Hay operadores para hacer ambas tareas.

Para incrementar el valor de una variable por uno o ms, us el operador +=, como en la
sentencia siguiente:

X += 1

Esta sentencia aade uno al valor almacenado en la variable x.

Para decrementar el valor de una variable por uno o ms, usa el operador -= :

Y -= 1

Esta sentencia reduce y por uno.

No necesits usar los operadores de incremento y decremento en tus propios programas. Pods
obtener los mismos resultados usando los operadores + y as:

x = x + 1
y = y 1

Incrementar y decrementar son atajos tiles, pero tomar la ruta larga de una expresin est
bien tambin.

Precedencia de operadores

Cuando uss una expresin con ms de un operador, necesits saber en qu orden la


computadora los usar a medida que trabaja la expresin. Consider las siguientes sentencias:

int y = 10;

x = y * 3 + 5;

A menos que sepas que orden la computadora va a usar cuando calcule la matemtica en estas
sentencias, no pods estar seguro a que se va a asignar la variable x.

En Python los operadores tienen cierto orden en el cual son evaluados, primero se resuelven
las exponenciaciones, luego las divisiones, multiplicaciones y modulos (los 3 tienen la misma
prioridad, por lo tanto se evalan en el orden que aparecen) y finalmente la suma y la resta.
CAPTULO III

Usar pruebas condicionales para tomar decisiones

Cuando hacs tu programa, le pass a la computadora una lista. Esta lista contiene muchas
instrucciones que se llaman sentencias, y estas sentencias son seguidas exactamente por el
programa. No importa si es resolver una ecuacin fea o apagar la computadora de tu amigo.

Muchas veces vas a necesitar que tu programa elija las cosas que tiene y que no tiene que
hacer. Supongamos que hacs un programa que controla una mquina exprimidora, y necesitas
que elija las frutas para hacer jugos. No todas las frutas van a pasar, slo las que estn en buen
estado (a menos que te parezca ms econmico usar todas), de lo contrario el jugo tendr un
mal sabor.

La manera de lograr esta tarea en un programa Python es usar un condicional, una sentencia
que causa que algo pase en un programa slo si se cumple una condicin especfica. En este
captulo aprenders a usar los condicionales if y else.

Probando una condicin

Cuando un programa Python toma una decisin, lo hace empleando una sentencia condicional.
Durante este captulo, vas a verificar la condicin de muchas cosas en tus programas usando
las palabras clave if, else y elif. Tambin vas a usar los operadores ==, !=. <, >, <=, >=, junto
con variables booleanas.

Sentencias if

La manera ms bsica de probar una condicin en Python es usar una sentencia if. Las
sentencia if prueban si una condicin es verdadera o falsa y realizan una accin slo si la
condicin es verdadera.

Usas if junto con la condicin que quers probar, como en la sentencia siguiente:

if ingresos < 0:
print Alerta, sus ingresos son negativos!

La sentencia if verifica si la variable cuenta est debajo de 0 usando el operador menor que (<). Si
est, el bloque dentro de la sentencia if es ejecutado, mostrando el texto.

El bloque slo se ejecuta si la condicin es verdadera. En el ejemplo anterior, si la variable


cuenta tiene un valor de 0 o ms, la sentencia print es ignorada.
El operador menor que es uno de los diferentes operadores que pods usar dentro de sentencias
condicionales.

Operadores menor que y mayor que

En la seccin anterior, el operador < es usado igual que en la clase de matemtica: como un
signo menor que. Tambin hay un operador condicional mayor que >, que es usado en las
sentencias siguientes:

if pesoElefante > 1052:


print El elefante es muy pesado para el acto con trampolines

if totalElefantes > 8:
costoLimpieza = costoLimpieza + 200000

La primera sentencia if verifica si el valor de la variable pesoElefante es o no mayor a 1052. La


segunda sentencia prueba si la variable totalElefantes es o no mayor a 8.

Si las dos sentencias anteriores fueran usadas en un programa donde pesoElefante y


totalElefantes valieran 900 y 5 respectivamente, las sentencias dentro de cada bloque seran
ignoradas.

Pods determinar si algo es menor o igual que algo otro con el operador <=. Aqu tens un
ejemplo:

if cuenta <= 0:
print Estas quebrado

Tambien hay un operador >= para pruebas de mayor o igual.

Sentencias igual y no igual

Otra condicin que vas a probar en tus programas es la igualdad. Es una variable igual a otra?
Es una variable igual al valor de otra? Estas preguntas pueden ser respondidas con el
operador ==, como en las sentencias siguientes:

if respuesta == respuestaCorrecta:
puntuacin = puntuacin + 10
if puntuacin == 100:
print Impresionante!

Tambin pods probar desigualdad, si algo no es igual a otro algo, con el operador !=, as:

if respuesta != respuestaCorrecta:
puntaje = puntaje 5
Sentencia if-else

Hay veces que quers hacer algo si una condicin es verdadera y algo diferente si es falsa.
Pods hacer esto usando la sentencia else, como en el ejemplo siguiente:

if respuesta == respuestaCorrecta:
puntaje += 5
print Correcto. Sums 5 puntos
else:
puntaje -= 5
print Incorrecto. Perds 5 puntos

La sentencia else no tiene una condicin que la acompae, a diferencia de la sentencia if. La
sentencia else es combinada con la sentencia if que la precede. Tambin pods usar elif para
encadenar muchas sentencias if juntas, como en el siguiente ejemplo:

if calificacin == 5:
print Tuviste un 5. Excelente!
elif calificacin == 4:
print Tuviste un 4. Buen trabajo!
elif calificacin == 3:
print Tuviste un 3. Debiste estudiar mas.
elif calificacin == 2:
print Tuviste un 2. Cul fue el error?
else:
print Te aplazaste. Te ira bien en el Congreso.

Poniendo juntas varias sentencias if y elif de esta manera, pods manejar una variedad de
condiciones. El ejemplo anterior enva un mensaje especfico a estudiantes con calificaciones 5,
4, 3, 2 y futuros legisladores.

Es importante aclarar que en el bloque anterior, cada condicin es evaluada en el orden en que
aparecen, luego, si una de ellas es verdadera, entonces se ejecuta el cdigo que contiene y el
resto de las condiciones son ignoradas. Esa es la funcin del if/elif.

CAPTULO IV
Controlando el flujo de tu programa

Hasta ahora viste como hacer programas sencillos que pueden hacer clculos bsicos e
imprimir informacin en pantalla, pero estn diseados para comportarse de una sola forma,
tienen un flujo lineal.

Usualmente cuando dises un programa, quers que este pueda comportarse de ms de una
manera, dependiendo de lo que necesite el usuario. Para esto existen las sentencias
condicionales.

Bucle while

Al disear un programa, usualmente vas a querer poder realizar tareas repetitivas sin tener que
escribir mucho cdigo. Las computadoras son bastante buenas repitiendo tareas.

Como la repeticin, o tambin llamada iteracin, de tareas es algo muy habitual en la


programacin, Python proporciona caractersticas que la hacen ms fcil de realizar. La
primera de ellas es la sentencia while.

Supongamos que quers imprimir en pantalla todos los nmeros del 1 al 100, usando la
sentencia while un ejemplo sera:

numero = 1
while numero <= 100:
print numero
numero = numero + 1

Primero, creamos una variable llamada numero(fijate que es sin acento, puesto que los nombres
de variables no permiten caracteres especiales como letras acentuadas) y le asignamos el valor
1. Luego la sentencia while evala la condicin y pregunta si numero es menor o igual a 100, si
la condicin es verdadera entonces el bloque de sentencias despus de los dos puntos se ejecuta.
Se imprime en pantalla el valor de numero y luego aumentamos el valor de numero en 1. El
bloque de sentencias se va a ejecutar repetidamente hasta que la condicin en el while sea falsa.

Este tipo de flujo se llama bucle, puesto que es circular (del ltimo paso, vuelve al primero).
Si la condicin es falsa la primera vez que se evala, el bloque de sentencias en el interior del
bucle no se ejecuta nunca. Es importante que notes que debs cambiar el valor de la variable de
la condicin dentro de tu bucle para que cambie su valor de verdad en algn momento, de lo
contrario tu bucle ser infinito.

Bucle for
Un tipo especial de iteracin es el recorrido, por ejemplo queremos verificar una lista, y
recorremos uno a uno sus elementos. Para este tipo de flujo, Python tambin tiene una
caracterstica y es la sentencia for. Un ejemplo de una sentencia for es:

for indice in range(0,3):


print numero

Al principio parece muy diferente a todo lo que viste hasta ahora, vamos a ir parte por parte.

En la cabecera de la sentencia for, le indicamos al programa un rango de nmeros y el nombre


de una variable. Lo que hace esto es recorrer todo el rango de nmeros, en cada vuelta asigna
el valor del nmero a la variable. En nuestro ejemplo, el resultado es que se muestra en
pantalla los nmeros del 0 al 3.

El for tambin sirve para recorrer una lista de valores, por ejemplo:

lista = [Juan, Carlos, Matias]


for nombre in lista:
print nombre

Este cdigo ocasiona que aparezcan en pantalla cada uno de los nombres que estn guardados
en la variable lista.

Saliendo de un bucle

La forma normal de salir de un bucle es que la condicin probada se vuelva falsa. Esto es cierto
para los tres tipos de bucles en Python. Pueden existir ocasiones en que quieras que un bucle
termine inmediatamente, an si la condicin siendo probada es verdadera. Puedes lograr esto
con la sentencia break, como es mostrado en el cdigo siguiente:

indice = 0
while indice <= 1000:
indice = indice + 5
if indice == 400:
break

Una sentencia break termina el bucle que le contiene a la sentencia.

En este ejemplo, el bucle while se repite hasta que la variable indice es mayor a 1000. Sin
embargo, un caso especial hace que el bucle se termine antes que eso: si indice es igual a 400, la
sentencia break es ejecutada, terminando el bucle inmediatamente.
Otra sentencia para casos especiales que pods usar dentro de un bucle es continue. La
sentencia continue causa que el bucle salga de su recorrido actual y comience de nuevo desde la
primera sentencia del bucle. Consider el bucle siguiente:

indice = 0
while indice <= 1000:
indice = indice + 5
if indice == 400:
continue
print El indice es
print indice

En este bucle, las sentencias son manejadas normalmente a menos que el valor de indice sea
igual a 400. En ese caso, la sentencia continue causa que el bucle vuelva a la sentencia while en
vez de seguir normalmente a la sentencia print. Por culpa de la sentencia continue, el bucle
nunca muestra el texto siguiente:

El ndice es 400

Pods usar las sentencias break y continue con los tres tipos de bucles.

La sentencia break hace posible que hagas un bucle en tu programa que este diseado para
ejecutarse para siempre, como en este ejemplo:

while true:
if tecla_escape_presionada == true:
break

Es importante sin embargo aclarar que en la prctica estos bucles podran causar que el
programa o la mquina dejen de funcionar por diversos motivos, como por ejemplo, quedarse
sin memoria, lo que impedira seguir ejecutando el programa.
CAPTULO V

Leer y escribir texto en archivos

En Python es muy sencillo leer y escribir cadenas de texto en archivos. Fijate el siguiente
ejemplo de cdigo donde copiamos el contenido de un archivo llamado prueba.txt a un archivo
llamado copia.txt:

entrada = open(prueba.txt, r)
salida = open(copia.txt, w)
for linea in entrada:
salida.write(linea)

Para crear un objeto de tipo archivo, en Python se usa la funcin open(). El primer argumento
es el nombre del archivo que quers usar, y el segundo argumento es cmo vas a usar ese
archivo. Una r significa read(lectura), mientras que una w se usa para indicar que vas a
escribir en el archivo.

En el cdigo de ejemplo cres dos variables, una llamada entrada que contendr al archivo que
quers leer, y otra llamada salida que contendr al archivo en el que quers escribir. Luego le
decs al programa que por cada lnea de texto que exista en el archivo prueba.txt, escriba esa
lnea en el archivo copia.txt
PARTE III: MANUAL PHP
CAPTULO I

Primer programa

Como vimos al principio de este manual, un programa es un conjunto de instrucciones que le


dicen a la computadora que hacer. En este captulo haremos nuestro primer programa en PHP
usando un editor de texto y lo probaremos.

En primer lugar, como seguro sabs, PHP es un lenguaje orientado ms a desarrollo web del
lado del servidor. Por lo tanto para programar en PHP debs tener instalado algn web server
en tu computadora.

Un buen programa para esto es XAMPP, pods conseguirlo de


http://www.apachefriends.org/es/xampp-windows.html

Luego de instalar XAMPP, debes ejecutar la aplicacin para hacer correr el servidor Apache
(recuerda que siempre que quieras probar tus programas PHP, debes estar ejecutando el
servidor).

Dentro de la carpeta donde instalaste XAMPP, hay una carpeta con el nombre de htdocs. En
esta carpeta debes guardar tus archivos para luego poder acceder a ellos mediante un
explorador web.

Hay que aclarar que este tipo de programas tambin estn disponibles para otras plataformas,
incluyendo Linux y Mac.

Crear un hola mundo

Para crear nuestro primer programa, usaremos el bloc de notas. Ser un programa sencillo que
nos mostrara la frase Hola mundo.

Abrimos el bloc y escribimos esto:

<?php
echo Hola mundo!;
?>

Asegurate de escribir exactamente el texto como se muestra arriba, y us la tecla Tab para
insertar las indentaciones (mover los bloques de texto hacia la derecha insertando espacios o
tabuladores, para as separarlos del margen izquierdo y distinguirlos mejor del texto
adyacente). Cuando termines, guard tu archivo como holamundo.php. Fijate que debs
guardar tu archivo en la carpeta htdocs dentro de tu instalacin de XAMPP.
Para ejecutarlo, abr tu explorador de internet favorito y escrib en la barra de direcciones
localhost/holamundo.php. Tenes que ver un Hola mundo! en la pantalla del explorador.

Opcionalmente podras utilizar la direccin 127.0.0.1/holamundo.php, ya que en principio el


servidor corre en esa direccin ip.

Guardar informacin en una variable

En los programas que escribs, necesits un lugar en el cual guardar informacin por un breve
periodo de tiempo. Pods hacer esto mediante el uso de una variable, un lugar de
almacenamiento que puede contener informacin como enteros, nmeros de coma flotante,
valores verdadero-falso, caracteres y lneas de texto. La informacin guardada en una variable
puede cambiar, de ah que se llama variable.

Abr el archivo holamundo.php y hac estas modificaciones:

<?php
$mensaje = Hola mundo!;
echo $mensaje;
?>

Como ves, primero guardamos Hola mundo! en una variable llamada $mensaje, y luego le
decimos a la computadora que nos muestre esta variable en pantalla.

En este programa, $mensaje es una cadena (string), una lnea de texto que puede incluir letras,
nmeros, puntuaciones, y otros caracteres.

Cuando escribs esta sentencia en el programa, debs poner un punto y coma al final de la lnea.
El punto y coma indica el final de cada sentencia en los programas en PHP. Es como el punto
al final de una oracin. La computadora usa el punto y coma para determinar cundo termina
una sentencia y empieza la siguiente.

Tambin seguro nots el <?php al principio del programa y el ?> al final. Esto sirve para
indicarle al servidor que todo lo que est entre estas dos lneas es cdigo PHP.

Arreglando errores

Cuando escribs un programa en PHP, usualmente vas a tener errores en tu cdigo. Estos
errores se muestran en la pantalla de tu explorador al momento de ejecutar el cdigo,
usualmente diciendo el error y en que lnea de tu archivo se encontr el mismo.
CAPTULO II

Guardar y editar informacin en un programa

En el captulo 1, Tu primer programa, usaste una variable, un lugar especial de


almacenamiento diseado para contener informacin. La informacin almacenada en variables
puede ser modificada a medida que el programa se ejecuta. Tu primer programa almacen una
cadena de texto en una variable. Las cadenas slo son un tipo de informacin que puede ser
almacenado en variables. Las variables tambin pueden almacenar caracteres, enteros, nmeros
de coma flotante, y objetos.

En este captulo aprenderemos ms acerca de cmo usar variables en PHP.

Sentencias y expresiones

Los programas de computadora son un conjunto de instrucciones que le dicen a la


computadora que hacer. Cada instruccin es llamada sentencia. El siguiente ejemplo tomado de
un programa de PHP es una sentencia:

$puntajeMax = 856000;

Algunas sentencias son llamadas expresiones porque involucran una expresin matemtica y
producen un resultado. Trabajaremos con expresiones en este captulo.

Asignando tipos de variables

Las variables son la principal forma en que la computadora recuerda algo a medida que ejecuta
un programa. El programa holamundo que creaste en el primer captulo us la variable
$mensaje para almacenar Hola mundo!. La computadora necesitaba recordar ese texto para
que el mensaje pueda ser mostrado.

En un programa de Java, las variables son creadas con una sentencia que debe incluir dos
cosas:

- El nombre de la variable
- El o los valores que contendr la variable(opcional)

Tambin pods omitir incluir el valor de la informacin almacenada, y slo especificar el


nombre de la variable.

Para ver los diferentes tipos de variables y como son creados, abr tu editor de texto y cre un
nuevo archivo php llamado variables.php.

Empez a escribir el programa con estas lneas:

<?php
//Ac vas a poner tus variables
?>

Guard estas lneas antes de hacer cualquier cambio.

Enteros y coma flotante

Hasta el momento, el programa variable.php slo tiene un comentario.. Borr el comentario y


escrib la siguiente sentencia en su lugar:

$entero;

Esta sentencia crea una variable llamada $entero. No especifica un valor, as que por el
momento la variable es un lugar de almacenamiento vaco. Ahora cambi la sentencia a:

$entero = 32;

Al asignarle el valor 32 a la variable, le indics que ser usada para almacenar nmeros
enteros. Pods usar el tipo entero para almacenar la mayora de los nmeros no decimales que
necesitars en tus programas. Puede contener cualquier entero entre alrededor de -2.14 mil
millones y 2.14 mil millones..

Cre una lnea vaca despus de la sentencia $entero = 32 y escrib la siguiente sentencia:

$puntajePromedio = 4.0;

Esta sentencia crea una variable con el nombre $puntajePromedio. Fijate que ahora le
agregamos un punto cero al valor, esto le indica al programa que no trate este nmero como
entero, sino como decimal o de coma flotante. Las variables de coma flotante son usadas para
almacenar nmeros que podran contener un punto decimal.

Cadenas
Tambin pods usar variables para almacenar texto. En PHP todo texto es del tipo cadena.
Una cadena es un carcter o un grupo de caracteres.

Tu siguiente paso en la creacin del programa variable.php es crear una variable de tipo string.
Agreg esta sentencia despus de la lnea $puntajePromedio = 4.0;:

$cadena = Bolsos;

Para valores de cadena, lo delimits con comillas dobles o comillas simples. Mir la siguiente
sentencia:

$nombreProducto = Bolsos;

Esta sentencia parecera que le dice a la computadora que cree una variable de cadena llamada
$nombreProducto y que le asigne el texto Bolsos como su valor. Sin embargo, como la palabra
Bolsos no est entre comillas, la computadora piensa que tiene que asignar el valor de la
variable $nombreProducto al mismo valor que una variable llamada Bolsos.

Este programa puede ser ejecutado pero no producir ninguna salida. Va a producir un error
de bajo nivel.

Boolean

Tambin existe un tipo de variable llamado boolean que slo puede ser usado para almacenar el
valor verdadero(true) o el valor falso(false). A primera vista, una variable boolean no puede
parecer particularmente til a menos que planees escribir muchas pruebas de verdadero/falso.
Sin embargo, las variables boolean son usadas en una variedad de situaciones en tus
programas. Los siguientes son algunos ejemplos de preguntas en que las variables boolean son
usadas para responder:

o Ha presionado una tecla el usuario?


o Se ha terminado el juego?
o Est mi cuenta en rojo?
o Estos pantalones me hacen ver gordo/a?
o Puede el conejo de pascua poner huevos?

La siguiente sentencia crea una variable boolean llamada $juegoTerminado:

$juegoTerminado = false;

Esta variable tiene el valor inicial de false(falso), as que una sentencia como esta podra en un
juego de computadora que el juego todava no se termin. Ms tarde, cuando algo cause que el
juego se termine, la variable $juegoTerminado puede ser cambiada a true (verdadero).
Aunque los dos posibles valores boolean parezcan cadenas de texto en un programa, no debs
encerrarlas entre comillas.

Nombrar variables

Los nombres de variables en PHP empiezan con el signo de dlar ($) seguido del nombre
propiamente dicho, estos nombres pueden empezar con una letra o un guion bajo (_). El resto
del nombre puede ser cualquier letra o nmero, incluido el guin bajo. Pods darle a tus
variables cualquier nombre que desees, pero debes ser consistente en como las nombras. Esta
seccin explica el mtodo generalmente recomendado para nombrar variables.

PHP es sensible a las maysculas cuando a nombres de variables se refiere, as que siempre
debes capitalizar los nombres de variables de la misma manera. Por ejemplo, si la variable
$juegoTerminado es referida como $JuegoTerminado en alguna parte del programa, un error
saldr a la vista cuando trates de ejecutar tu programa.

El nombre de una variable debera describir su propsito de alguna forma. La primera letra
debe estar en minsculas, y si el nombre de la variable tiene ms de una palabra, hac que la
primera letra de cada palabra subsecuente sea mayscula. Por ejemplo, si quisieras crear una
variable entera para almacenar la cantidad de clientes en un videoclub, pods llamarla as:

$cantidadClientes;

No pods usar signos de puntuacin o espacios en un nombre de variable, as que ninguna de


estas sentencias funciona:

$cantidad-Clientes;

$cantidad Clientes;

Si trats de utilizar estos nombres de variable en un programa, vas a tener errores al momento
de ejecucin.

Guardar informacin en variables

Pods guardar un valor en una variable al mismo tiempo que cres la variable en un programa.
Tambin pods insertar un valor en la variable en cualquier momento ms adelante en el
programa.
Para definir un valor inicial para una variable en el momento de su creacin, us el signo igual
(=). Aqu est un ejemplo de cmo crear una variable de coma flotante llamada pi con el valor
inicial de 3.14:

$pi = 3.14;

Todas las variables que almacenan nmeros pueden establecerse de manera similar. Si ests
definiendo una variable de caracter o de cadena, las comillas deben de ubicarse alrededor del
valor como fue descrito anteriormente.

Tambin pods definir una variable igual al valor de otra variable si ambas son del mismo tipo.
Consider el ejemplo siguiente:

$tortas = 100;
$tortasActuales = $tortas;

Primero, una variable entera llamada $tortas es creada, con un valor inicial de 100. Luego, una
variable llamada $tortasActuales es creada con el mismo valor que tortas. Ambas variables
tienen el valor inicial de 100.

Operadores

Las sentencias pueden usar expresiones matemticas mediante el uso de los operadores +, -, *,
/, y %..

Una expresin de adicin en PHP usa el operador +, como en estas sentencias:

$peso = 70;
$peso = $peso + 10;

La segunda sentencia usa el operador + para asignar la variable peso igual a su valor actual
ms 10. Una expresin de substraccin usa el operador - :

$peso = $peso 15;

Esta expresin asigna la variable peso igual a su valor actual menos 15.

Una expresin de divisin usa el signo / :

$peso = $peso / 2;

Esto asigna la variable peso a su valor actual dividido 2.

Para encontrar el resto de una expresin de divisin, us el operador % (tambin llamado


operador mdulo). La siguiente sentencia encuentra el resto de 245 dividido 3:
$resto = 245 % 3;

Una expresin de multiplicacin usa el signo *. Aqu est una sentencia que usa una expresin
de multiplicacin como parte de una sentencia ms complicada:

$total = 100 + ($puntaje * 15);

La parte $puntaje * 15 de la expresin multiplica $puntaje por 15. La sentencia completa


multiplica $puntaje por 15 y aade 100 al resultado. Si el puntaje es igual a 20, el resultado es
que total es igual a 400: 100 + (20 * 15).

Incrementar/decrementar

Una tarea comn en los programas es cambiar el valor de una variable por uno. Pods
aumentar el valor por uno, que es llamado incrementar la variable, o disminuir el valor por uno,
que es llamado decrementar la variable. Hay operadores para hacer ambas tareas.

Para incrementar el valor de una variable por uno, us el operador ++, como en la sentencia
siguiente:

$x++;

Esta sentencia aade uno al valor almacenado en la variable $x.

Para decrementar el valor de una variable por uno, usa el operador -- :

$y--;

Esta sentencia reduce y por uno.

Tambin pods poner los operadores de incremento y decremento en frente del nombre de la
variable, como en las sentencias siguientes:

++$x;
--$y;

Poner el operador en frente del nombre de la variable se llama anteponer, y ponerlo despus del
nombre es llamado sobreponer.

La diferencia en operadores antepuestos y sobrepuestos se vuelve importante cuando uss los


operadores dentro de una expresin.

Consider las siguientes sentencias:

$x = 3;
$respuesta = $x++ * 10;
A qu es igual la variable $respuesta despus de que estas sentencias son manejadas? Quizs
espers que sea igual a 40, lo cual sera cierto si 3 era aumentado en 1, lo cual equivale a 4, y
entonces 4 era multiplicado por 10.

Sin embargo, la respuesta es que vale 30 porque el operador sobrepuesto fue usado en vez del
operador antepuesto.

Cuando un operador sobrepuesto es usado en una variable dentro de una expresin, el valor de
la variable no cambia hasta despus de que la expresin fue totalmente evaluada. La sentencia
$respuesta = $x++ * 10 hace lo mismo en el mismo orden, que las siguientes dos sentencias:

$respuesta = $x * 10;
$x++;

Lo opuesto es verdadero para los operadores antepuestos. Si son usados en una variable dentro
de una expresin, el valor de la variable cambia antes de que la expresin sea evaluada.

Consider las sentencias siguientes:

$x = 3;
$respuesta = ++$x * 10;

Esto si resulta en la variable $respuesta igual a 40. El operador antepuesto causa que el valor
de la variable $x sea cambiado antes de que la expresin sea evaluada. La sentencia $respuesta
= ++$x * 10 hace lo mismo en el mismo orden, que estas sentencias:

$x++;
$respuesta = $x * 10;

Es fcil exasperarse con los operadores ++ y - porque no son tan directos como muchos de
los otros conceptos que encontrs en este manual.

Pods obtener los mismos resultados usando los operadores + y as:

$x = $x + 1;
$y = $y 1;

Incrementar y decrementar son atajos tiles, pero tomar la ruta larga de una expresin est
bien tambin.

Precedencia de operadores

Cuando uss una expresin con ms de un operador, necesits saber en qu orden la


computadora los usar a medida que trabaja la expresin. Consider las siguientes sentencias:
$y = 10;

$x = $y * 3 + 5;

A menos que sepas en qu orden la computadora va a realizar sus clculos cuando calcule la
matemtica en estas sentencias, no pods estar seguro a que se va a asignar la variable x.

En PHP, los programas primero evalan las multiplicaciones, divisiones y mdulos en el orden
que aparecen, y luego las sumas y las restas.
CAPTULO III

Usar pruebas condicionales para tomar decisiones

Cuando escribs un programa, le provees a la computadora una lista de instrucciones llamadas


sentencias, y estas instrucciones son seguidas al pie de la letra. Pods decirle a la computadora
que resuelva frmulas matemticas no tan lindas, y las resolver. Pods decirle que muestre
informacin, y te responder servicialmente.

Hay veces que necesits que la computadora sea ms selectiva con las cosas que hace. Por
ejemplo, si has escrito un programa para llevar tu balance bancario, capaz quieras que te
muestre una advertencia cuando tu cuenta est en rojo. La computadora slo debera mostrar
esta advertencia cuando tu cuenta est en rojo. Si no lo est, el mensaje sera.

La manera de lograr esta tarea en un programa PHP es usar una condicional, una sentencia
que causa que algo pase en un programa slo si se cumple una condicin especifica. En este
captulo aprenders a usar los condicionales if, else y switch.

Probando una condicin

Cuando un programa toma una decisin, lo hace empleando una sentencia condicional. Durante
este captulo, vas a verificar la condicin de muchas cosas en tus programas usando las
palabras clave if, else, switch, case, y break. Tambin vas a usar los operadores ==. !=. <, >, <=,
>= y ?, junto con variables booleanas.

Sentencias if

La manera ms bsica de probar una condicin en PHP es usar una sentencia if. Las sentencia
if prueban si una condicin es verdadera o falsa y realizan una accin slo si la condicin es
verdadera.

Se usa if junto con la condicin que quers probar, como en la sentencia siguiente:

if ($cuenta < 0){


echo Cuenta en rojo; deberas gastar menos.;
}

La sentencia if verifica si la variable $cuenta est debajo de 0 usando el operador menor que (<).
Si est, entonces el bloque dentro de la sentencia if es ejecutado, mostrando el texto.
El bloque slo se ejecuta si la condicin es verdadera. En el ejemplo anterior, si la variable
cuenta tiene un valor de 0 o ms, la sentencia echo es ignorada. Fjate que la condicin debe
estar entre parntesis, como en (cuenta < 0).

El operador menor que es uno de los diferentes operadores que pods usar dentro de sentencias
condicionales.

Operadores menor que y mayor que

En la seccin anterior, el operador < es usado igual que en la clase de matemtica: como un
signo menor que. Tambin hay un operador condicional mayor que >, que es usado en las
sentencias siguientes:

if( $pesoElefante > 1052 ) {


Echo El elefante es muy pesado para el acto con trampolines;
}
if( $totalElefantes > 8 ){
$costoLimpieza = $costoLimpieza + 2000000;
}

La primera sentencia if verifica si el valor de la variable $pesoElefante es o no mayor a 1052. La


segunda sentencia prueba si la variable $totalElefantes es o no mayor a 8.

Si las dos sentencias anteriores fueran usadas en un programa donde $pesoElefante y


$totalElefantes valieran 900 y 5 respectivamente, las sentencias dentro de cada bloque serian
ignoradas.

Pods determinar si algo es menor o igual que algo otro con el operador <=. Aqu tenes un
ejemplo:

if( $cuenta <= 0) {


echo Estas quebrado;
}

Tambien hay un operador >= para pruebas de mayor o igual.

Sentencias igual y no igual

Otra condicin que vas a probar en tus programas es la igualdad. Es una variable igual a otra?
Es una variable igual al valor de otra? Estas preguntas pueden ser respondidas con el
operador ==, como en las sentencias siguientes:

if ($respuesta == $respuestaCorrecta) {
$puntuacion = $puntuacion + 10;
}
if ($puntuacion == 100) {
echo Impresionante!;
}

Tambin pods probar desigualdad, si algo no es igual a otro algo, con el operador !=, as:

if($respuesta != $respuestaCorrecta) {
$puntaje = $puntaje 5;
}

Organizar un programa con sentencias en bloque

Hasta este punto, las sentencias if en este captulo han sido acompaadas de un bloque
contenido entre llaves {}.

Una sentencia if no requiere una sentencia de bloque. Puede ocupar una sola lnea, as:

if ($cuenta <= 0) echo Sin plata.;

La sentencia que le sigue al condicional if slo es ejecutada si la condicional es verdadera.

Pods usar sentencias de bloque en sentencias if para hacer que la computadora haga ms de
una cosa si una condicin es cierta. El siguiente es un ejemplo de una sentencia if que incluye
una sentencia de bloque:

if ($puntaje > 9000) {


$vidas++;
echo Tu puntaje es mayor a 9000!!!!;
echo Vida extra!;
$dificultad = $dificultad + 5;
}

Las llaves son usadas para agrupar todas las sentencias que son parte de la sentencia if. Si la
variable $puntaje es mayor que 9000, cuatro cosas pasan:

o El valor de $vidas incrementa en 1.


o El texto Tu puntaje es sobre 9000!!!! se muestra en pantalla.
o Tambin el texto Vida extra! se muestra en pantalla.
o El valor de la variable $dificultad se incrementa en 5.

Si la variable $puntaje no es mayor a 9000, nada pasa y las cuatro sentencias dentro de la
sentencia if son ignoradas.

Sentencia if-else
Hay veces que quers hacer algo si una condicin es verdadera y algo diferente si es falsa.
Pods hacer esto usando la sentencia else, como en el ejemplo siguiente:

if ($respuesta == $respuestaCorrecta){
$puntaje += 5;
echo Correcto. Sumas 5 puntos;
} else {
$puntaje -= 5;
echo Incorrecto. Pierdes 5 puntos;
}

La sentencia else no tiene una condicin que la acompae, a diferencia de la sentencia if. La
sentencia else es combinada con la sentencia if que la precede. Tambin pods usar else para
encadenar muchas sentencias if juntas, como en el siguiente ejemplo:

if ( $calificacion == 5 ) {
echo Tuviste un 5. Excelente!;
} else if($calificacion == 4) {
echo Tuviste un 4. Buen trabajo!;
} else if ($calificacion == 3) {
echo Tuviste un 3. Debiste estudiar ms.;
} else if ($calificacion == 2) {
echo Tuviste un 2. Cul fue el error?;
} else {
echo Te aplazaste. Te ir bien en el Congreso.;
}

En este caso las condicionales if funcionan juntas, y cuando uno de ellas obtiene un valor
verdadero, los dems se ignoran. Si ninguno de ellos obtiene un verdadero, se ejecuta el bloque
dentro del ltimo else.

Poniendo juntas varias sentencias if y else de esta manera, pods manejar una variedad de
condiciones. El ejemplo anterior enva un mensaje especfico a estudiantes con calificaciones 5,
4, 3, 2 y futuros legisladores.
CAPTULO IV

Repetir una accin con bucles

Uno de los castigos ms fastidiosos cuando sos nio es hacer que escribas algo una y otra vez
en el pizarrn, o en tu cuaderno. Este castigo capaz funcione en los chicos, pero una
computadora puede repetir una tarea con facilidad.

Los programas estn especialmente preparados para hacer la misma cosa una y otra vez gracias
a los bucles. Un bucle es una sentencia o bloque que se repite en un programa. Algunos bucles
se ejecutan un nmero fijo de veces; otros indefinidamente.

Bucles for

En tu programacin, vas a encontrar circunstancias donde un bucle es til. Pods usarlos para
seguir haciendo algo varias veces, como un antivirus que abre cada correo nuevo recibido para
buscar si est infectado. Tambin pods usar bucles para hacer que la computadora haga nada
por un periodo breve de tiempo, como un reloj animado que muestra el tiempo actual una vez
por minuto.

Una sentencia de bucle causa que un programa vuelva al mismo lugar mas de una vez, como un
avin haciendo un giro acrobtico. Un bucle for repite una seccin de un programa un nmero
fijo de veces. Aqu tens un ejemplo:

for ($nro = 0; $nro < 1000; $nro++) {


if ($nro % 12 == 0) {
echo #: .nro;
}
}

Este bucle muestra todos los nmeros entre 0 y 999 que son divisibles por 12.

Cada bucle for tiene una variable que determina cuando el bucle debe empezar y terminar. Esta
variable es llamada contador, o ndice. El contador en el ejemplo anterior es la variable nro.

El ejemplo ilustra las tres partes principales de una sentencia for:

- La seccin de inicializacin: En la primera parte, se le asigna a la variable nro un valor


inicial de 0.
- La seccin condicional: En la segunda parte hay una prueba condicional como la que
usaras en una sentencia if: nro < 1000.
- La seccin de cambio: La tercera parte es una sentencia que cambia el valor de la variable
nro, en este ejemplo usando el operador de incremento.

En la seccin de inicializacin, se configura la variable contador. Puedes crear esta variable en


la sentencia for, como el ejemplo anterior hace con la variable entera nro. Tambin pods crear
la variable en otra parte de tu programa. En ambos casos, se debe asignar un valor inicial a la
variable en esta seccin de la sentencia. La variable tiene este valor cuando el bucle comienza.

La seccin condicional contiene una prueba que debe permanecer verdadera para que el bucle
contine repitindose. Una vez que la prueba es falsa, el bucle se termina. En este ejemplo, el
bucle termina cuando la variable nro tiene un valor igual o mayor a 1000.

La ltima seccin de una sentencia for contiene una sentencia que cambia el valor de la variable
contador. Esta sentencia es ejecutada cada vez que el bucle da una vuelta. La variable contador
debe cambiar de alguna forma o el bucle nunca termina. En este ejemplo, nro es incrementado
por uno en la seccin de cambio. Si nro no fuera cambiado, tendra su valor original de 0 y el
condicional nro < 1000 siempre sera verdad.

El bloque de la sentencia for es ejecutado en cada vuelta del bucle.

El ejemplo anterior tena las siguientes sentencias en el bloque:

if ($nro % 12 == 0) {
echo #: .nro;
}

Estas sentencias con ejecutadas 1000 veces. El bucle empieza asignando la variable nro a 0.
Luego suma 1 a nro en cada vuelta del bucle y termina cuando nro deja de ser menor a 1000.

Como viste con las sentencias if, un bucle for no requiere llaves si slo contiene una sola
sentencia. Fijate el siguiente ejemplo:

for ($p = 0; $p < 500; $p++)


echo No voy a copiar en el examen;

Este bucle muestra el texto No voy a copiar en el examen 500 veces. A pesar de que las llaves
no son requeridas para delimitar una sola sentencia dentro de un bucle, pods usarlos para que
el bloque sea ms fcil de hallar.

Bucles foreach

Existe tambin un bucle especial para iterar a lo largo de un array, llamado bucle foreach.
Fijate un ejemplo:
<?
$dias = array(lunes, martes, miercoles, jueves,
viernes);
foreach($dias as $dia) {
echo Hoy es .$dia;
}
>

Primero creas un array con los das laborales de la semana, luego usas el foreach para recorrer
el array e imprimir Hoy es (da) por cada da del array.

El bucle foreach toma dos argumentos, el primero es el nombre del array y el segundo es el
nombre que le asignaremos a cada elemento del mismo para poder trabajar con el dentro del
bucle. En este caso, el bucle recorre todo el array con los das, y por cada elemento que
encuentra imprime una lnea que contiene el valor del elemento.

Como ves el bucle foreach es muy prctico para trabajar con arrays de datos.

Bucles while

El bucle while no tiene tantas secciones diferentes como el bucle for. Lo nico que necesita es
una prueba condicional, que acompaa a la sentencia while. El siguiente es un ejemplo de un
bucle while:

while ( $vidasJuego > 0 ) {


// las sentencias dentro del bucle van aqu
}

Este bucle contina repitindose hasta que la variable vidasJuego deja de ser mayor a 0.

La sentencia while prueba la condicin al principio del bucle antes de que cualquier sentencia
dentro del bucle sea ejecutada. Si la condicin probada es falsa cuando el programa ejecuta la
sentencia while por primera vez, las sentencias dentro del bucle son ignoradas.

Si la condicin while es verdadera, el bucle se ejecuta una vez y prueba la condicin de nuevo.
Si la condicin probada nunca cambia dentro del bucle, el bucle se ejecuta indefinidamente.

Las siguientes sentencias causan que un bucle while muestre la misma lnea de texto varias
veces:

$limite = 5;
$contador = 1;
while ($contador < $limite) {
echo La torta es una mentira:
$contador++;
}

Un bucle while usa una o ms variables definidas antes de la sentencia del bucle. En este
ejemplo, dos variables enteras son creadas: limite, que tiene un valor de 5, y contador, que tiene
un valor de 1.

El bucle while muestra el texto La torta es una mentira cuatro veces. Si le das a la variable
contador una valor inicial de 6 en vez de 1, el texto nunca ser mostrado, puesto que 6 nunca
ser menor que 5, que es el valor de la variable limite.

Bucles do-while

El bucle do-while es similar al bucle while, pero la prueba condicional va en un lugar diferente.
El siguiente es un ejemplo de un bucle do-while:

do {
// las sentencias dentro del bucle van aqui
} while ($vidasJuego > 0)

Como el bucle while, el bucle continua repitindose hasta que la variable vidasJuego deja de ser
mayor a 0. El bucle do-while es diferente porque la prueba condicional es ejecutada al final de
las sentencias dentro del bucle, en vez de antes.

Cuando el bucle do es alcanzado la primera vez cuando se ejecuta el programa, las sentencias
entre do y while son manejadas automticamente, y entonces la condicin while es probada
para determinar si el bucle debe seguir repitindose. Si la condicin while es verdadera, el bucle
se ejecuta una vez ms. Si la condicin es falsa, el bucle termina. Algo debe pasar dentro de las
sentencias do y while que cambie la condicin probada con while, o el bucle se ejecutara
indefinidamente. Las sentencias dentro de un bucle do-while siempre son ejecutadas al menos
una vez.

Las siguientes sentencias causan que un bucle do-while muestre una lnea de texto varias
veces:

$limite = 10:
$contador = 0:
do {
echo No voy a escaparme de clases;
$contador++;
} while ($contador < $limite)
Como un bucle while, un bucle do-while usa una o ms variables que son definidas antes de la
sentencia de bucle.

El bucle muestra el texto No voy a escaparme de clases diez veces. Si le dieras a la variable
contador un valor inicial de 10, el texto sera mostrado una vez, a pesar de que contador nunca
es menor a $limite.

En el bucle do-while, las sentencias dentro del bucle son ejecutadas al menos una vez inclusive
si la condicin del bucle es falsa la primera vez.

Saliendo de un bucle

La forma normal de salir de un bucle es que la condicin probada se vuelva falsa. Esto es cierto
para los tres tipos de bucles. Pueden existir ocasiones en que quieras que un bucle termine
inmediatamente, an si la condicin siendo probada es verdadera. Pods lograr esto con la
sentencia break, como es mostrado en el cdigo siguiente:

$indice = 0;
while ($indice <= 1000) {
$indice = $indice + 5;
if ($indice == 400) {
break;
}
}

Una sentencia break termina el bucle que le contiene a la sentencia.

En este ejemplo, el bucle while se repite hasta que la variable indice es mayor a 1000. Sin
embargo, un caso especial hace que el bucle se termine antes que eso: si ndice es igual a 400, la
sentencia break es ejecutada, terminando el bucle inmediatamente.

Otra sentencia para casos especiales que pods usar dentro de un bucle es continue. La
sentencia continue causa que el bucle salga de su recorrido actual y comience de nuevo desde la
primera sentencia del bucle. Consider el bucle siguiente:

$indice = 0;
while ($indice <= 1000){
$indice = $indice + 5;
if ($indice == 400) {
continue;
}
Echo El ndice es .$indice;
}
En este bucle, las sentencias son manejadas normalmente a menos que el valor de ndice sea
igual a 400. En ese caso, la sentencia continue causa que el bucle vuelva a la sentencia while en
vez de seguir normalmente a la sentencia echo. Por culpa de la sentencia continue, el bucle
nunca muestra el texto siguiente:

El ndice es 400

Pods usar las sentencias break y continue con los tres tipos de bucles.

La sentencia break hace posible que hagas un bucle en tu programa que este diseado para
ejecutarse para siempre, como en este ejemplo:

while (true) {
if ($teclaEscapePresionada == true) {
break;
}
}

CAPTULO V

Leer y escribir texto en archivos

Para leer y escribir archivos en PHP, primero debemos crear una variable que contenga el
archivo que quers usar. Fijate este ejemplo donde se copia el contenido de un archivo llamado
prueba.txt a un archivo copia.txt:

<?php
$archivoIn = $fopen(prueba.txt, r);
$archivoOut = $fopen(copia.txt, a);
while(!feof($archivo)) {
$linea = fgets($archivoIn);
fwrite($archivoOut, $linea);
}
?>

En primer lugar definis tu variable que va a manejar cada uno de tus archivos, con la funcin
fopen. El primer argumento de la funcin es el nombre del archivo, y el segundo es el modo en
que queres abrir el mismo; r significa que abris el archivo en modo lectura y a que lo abris
en modo de anexar, esto es que vas a aadir datos sin que se borren los datos que ya estaban.
Luego debes leer los datos del archivo prueba.txt para copiarlos en el archivo copia.txt. Para
hacer esto, recorres el archivo lnea por lnea con un bucle while. La funcin feof($archivo)
pregunta si estamos en el final del archivo o no, devolviendo TRUE si ya llego al final o
FALSE en caso contrario. De esta manera te aseguras de leer todo el archivo.

Para leer el archivo prueba.txt lnea por lnea, usas la funcin fgets($archivoIn). Esta funcin
lee una lnea de texto del archivo y la guarda en una variable, en este caso $liena.

Para escribir en el archivo copia.txt usas la funcin fwrite($archivoOut, $linea), esta funcin
escribe los datos en la variable lnea en el archivo copia.txt.

Esta es solo una de las maneras de leer un archivo en PHP. Existen tambin otras funciones
para leer los datos de un archivo, como por ejemplo fread() o readFile(). Cada funcin ofrece
una funcionalidad diferente.

También podría gustarte