SlideShare una empresa de Scribd logo
1 de 10
2. Codificar la solución del problema en un
lenguaje de programación estructurado.
La programación estructurada es un paradigma de programación orientado a
mejorar la claridad, calidad y tiempo de desarrollo de un programa de
computadora, utilizando únicamentesubrutinas y tres
estructuras: secuencia, selección (if y switch) e iteración (bucles for y while),
considerando innecesario y contraproducente el uso de la instrucción
de transferencia incondicional (GOTO), que podría conducir a "código
espagueti", que es mucho más difícil de seguir y de mantener, y era la causa
de muchos errores de programación.
Surgió en la década de 1960, particularmente del trabajo Böhm y Jacopini,1
y
una famosa carta, la sentencia goto considerada perjudicial, de Edsger
Dijkstra en 19682
— y fue reforzado teóricamente por el teorema del
programa estructurado, y prácticamente por la aparición de lenguajes
como ALGOL con adecuadas y ricas estructuras de control.
2.1. Elementos básicos del lenguaje de
programación estructurado. Manipulación
básica de datos
Es posible hacer la programación estructurada en cualquier lenguaje de
programación, aunque es preferible usar algo como un lenguaje de
programación procedimental. Algunos de los lenguajes utilizados
inicialmente para programación estructurada
incluyen: ALGOL, Pascal, PL/I y Ada – pero la mayoría de los nuevos
lenguajes programación procedimentales desde entonces han incluido
características para fomentar la programación estructurada y a veces
deliberadamente omiten características4
en un esfuerzo para hacer más
difícil la programación no estructurada.
2.2. Utilizar estructuras de control
Las estructuras de control nos permiten controlar el flujo del programa:
tomar decisiones, realizar acciones repetitivas etc, dependiendo de unas
condiciones que nosotros mismos establezcamos. Así podemos hacer un
script que nos salude cada día de la semana de una manera diferente. O por
ejemplo hacer un script que nos pida la contraseña una y otra vez hasta que
suministremos la opción correcta.
1.- La toma de decisiones if-else:
Quizá la estructura de control más básica y la más utilizada sea if-else:
if (condicion) {
// instrucciones que hay que ejecutar si la condición es verdadera
} else {
// Instrucciones que hay que ejecutar si la condición es falsa
}
En castellano sería algo así:
Si (Tal cosa es cierta) {
// Haz esto
} En caso contrario {
// Haz esto otro
}
Veamos un ejemplo real: En un formulario preguntaremos al usuario como
se llama, pasaremos las variables a la página “saludos.php” . En
saludos.php mostraremos un saludo diferente en función de si el usuario
soy yo o es cualquier otro
Formulario
<html>
<head>
<title> Ejemplo básico de If </title>
</head>
<body>
<form action="saludos.php" method="get">
¿Quién eres?<br />
<input type="text" name="nombre" />
<input type="submit" name="reset" value=" Enviar " />
</form>
</body>
</html>
saludos.php
<html>
<head>
<title> Ejemplo básico de If </title>
</head>
<body>
<h1> Página de bienvenida</h1>
<?php // Empieza el código php
if ($nombre=="Coder") { // Si el nombre es Coder
echo(" Hombre $nombre! Ya estás cotilleando por aquí otra vez!"); // saludo
especial
}else {
echo("Hola, $nombre, gracias por visitarnos"); // saludo para los demás
}
?>
</body>
</html>
La cláusula else (la parte del if-else que indica lo que hay que hacer si la
condición es falsa) es opcional. No es necesario ponerla. Por ejemplo puedo
querer un script que sólo me salude a mi. En este caso, cambiaría
saludos.php de la siguiente manera:
<html>
<head>
<title> Ejemplo básico de If </title>
</head>
<body>
<h1> Página de bienvenida</h1>
<?php // empieza el código php
if ($nombre=="Coder") { // Si el nombre es Coder
echo(" Hombre $nombre! Ya estás cotilleando por aquí otra vez!"); // Saludo
para Coder
}
?>
</body>
</html>
NOTA: Cuidado con el operador ==, es importante recordar que hay que
utilizar un doble signo igual. Si utilizas sólo “=”, estarás utilizando el
operador de asignación, es decir estableciendo que $nombre es igual a
Coder con lo que la condición siempre sería cierta
Las condiciones pueden complicarse mucho más, supongamos que
queremos dejarte pasar sólo sí además de llamarte Coder, te sabes la
contraseña, que en nuestro caso es “foros”:
Formulario:
<html>
<head>
<title> Ejemplo básico de If </title>
</head>
<body>
<form action="saludos.php" method="get">
¿Quién eres?<br />
<input type="text" name="nombre" /><br />
¿Y tu Contraseña?<br />
<input type="text" name="pass" />
<input type="submit" name="reset" value=" Enviar " />
</form>
</body>
</html>
saludos.php
<html>
<head>
<title> Ejemplo básico de If </title>
</head>
<body>
<h1> Página de bienvenida</h1>
<?php // Empieza el código php
if ($nombre=="Coder" and $pass =="foros") {
// Si el nombre es Coder y la contraseña foros
echo(" Hombre $nombre! Ya estás cotilleando por aquí otra vez!"); // saludo
especial
}else {
echo("ahhhhhhhhhhh como no te sabes el nombre y la contraseña, no
puedes pasar"); // saludo para los demás
}
?>
</body>
</html>
Además tenemos la instrucción elseif, que como su nombre indica, es una
combinación de if y else. Añade una nueva condición en el caso de que la
primera fuera falsa y sólo ejecuta las instrucciones si esta nueva condición
es verdadera. Es decir,
Veamos un ejemplo:
if ($a > $b) {
// Ejecuta esto si a es Mayor que b
echo("a es mayor que b");
} elseif ($a == $b) {
// si a no es mayor que be, comprueba si a es igual a b
echo("a es igual que b");
} else {
// si no se cumplen las anteriores condiciones ejecuta ésta
echo ("a es menor que b");
}
2- Bucles: While
If else nos permitía decidir si queríamos ejecutar o no una instrucción en
función de una condición, los bucles nos permiten utilizar una condición
para determinar cuantas veces queremos ejecutar una instrucción.:
While (condicion) {
// Instrucciones a ejecutar una y otra
//vez mientras la condición sea cierta
}
El funcionamiento es muy parecido al del if-else, la diferencia estriba en que
si la condición es cierta y se ejecuta la orden, la condición vuelve a
comprobarse una y otra vez mientras siga siendo cierta. En cambio en el
cambio del if-else sólo se comprueba la condición una vez, si es cierta se
ejecuta la instrucción y se sigue con el programa.
Veamos un ejemplo:
$cantidad = 1;
while ($cantidad < 10) {
echo ("$cantidad ");
$cantidad++;
}
Esto traducido a castellano sería:
$cantidad = 1; $cantidad es igual a uno
while ($cantidad < 10) Mientras el valor de la variable $cantidad sea menor
que 10
echo (“$cantidad “); Escribe el valor de cantidad
$cantidad++ (suma 1 al valor que tenga $cantidad, también podríamos haber
escrito $cantidad = $cantidad +1)
Veamos como funciona el script paso a paso,
$Cantidad es igual a 1
1 es menor que 10
Escribo 1 en pantalla
$cantidad = 2 (1+1)
2 es menor que 10
Escribo 2 en pantalla
$cantidad = 3 (2+1)…
Si ejecutamos este script, en pantalla veríamos 1 2 3 4 5 6 7 8 9
3- Bucles: do While
Los bucles do while, son muy parecidos a los bucles while, sólo que
comprobamos si la condición es cierta al final del bucle en lugar de al
principio. Así nuestras instrucciones se ejecutan siempre al menos una vez,
lo que no ocurre en las condiciones while si la condición es falsa.
$cantidad = 1;
do {
echo ($cantidad);
} while ($cantidad<1);
Traducido sería
$cantidad = 1
do ( // ejecuta
echo ($cantidad); escribe el valor de cantidad
while ($cantidad<1); mientras cantidad sea mayor que 1 -> la condición es
falsa luego el programa sale del bucle, pero ha escrito una vez el valor de
$cantidad. El resultado en pantalla sería 1
4- Bucles: for
Los bucles for funcionan exactamente igual que en C . Con una sola
instrucción controlamos todo el bucle, así que para los vaguetes está muy
bien.
for (valor inicial; condicion; ejecutar en cada blucle) {
// Instrucciones a ejecutar mientras la condición sea cierta
}
Ejemplo
for ($cantidad = 1; $cantidad <10; $i++) {
echo("$cantidad");
}
Traducido es igual a:
Cantidad es igual a 1, mientras cantidad sea menor que 10 escribe cantidad
en pantalla y después súmale 1 al valor de cantidad. Es decir, es
exactamente el mismo ejemplo que vimos en el bucle while pero de otra
manera.
4- Swich/case
Nos permite ejecutar un bloque de código u otro dependiendo del valor de
una variable. Veamos un ejemplo.
Primero para asignar un valor a la variable, vamos a hacernos un formulario:
<html>
<head>
<title> Ejemplo de switch </title>
</head>
<body>
<form action="switch.php" method="get">
¿Quién eres?<br />
<input type="radio" name="quien" value="cgus" /> cgus<br />
<input type="radio" name="quien" value="xela" /> xela<br />
<input type="radio" name="quien" value="adanedhel" /> adanedhel<br />
<input type="radio" name="quien" value="jorgito" /> jorgito<br />
<input type="submit" name="reset" value=" Enviar " />
</form>
</body>
</html>
Switch.php
<html>
<head>
<title>Ejemplo de Swich</title>
</head>
<?php
switch($quien) {
case "cgus": // Primera posibilidad
echo (" $quien es todo un leader ");
break;
case "adanedhel": // segunda posibilidad
echo ("$quien es un elfo");
break;
case "xela": // tercera posibilidad
echo ("$quien es normal");
break;
default: // Posiblidad si no es ninguna de las anteriores
echo ("$quien es un desconocido");
}
?>
</body>
</html>
Tenéis más información sobre las estructuras de control en el manual de
php
http://www.php.net/manual/es/control-structures.php
Sintaxis alternativa
PHP ofrece una sintaxis alternativa para alguna de sus estructuras de
control; a saber, if, while, for, y switch. Puede hace el código más legible en
algunos casos, especialmente en las páginas multiuso que vamos a ver a
continuación:
If con construcción alternativa
<?php if ($a==5): ?>
A es igual a 5
<?php endif; ?>
if con elseif y else en el formato alternativo:
if ($a == 5):
print "a es igual a 5";
print "...";
elseif ($a == 6):
print "a es igual a 6";
print "!!!";
else:
print “a no es ni 5 ni 6″;
endif;
While utilizando la construcción alternativa
$i = 1;
while ($i <= 10):
print $i;
$i++;
endwhile;
For con la construcción alternativa
for (expr1; expr2; expr3): sentencia; ...; endfor;
Páginas Multiuso
Páginas multiuso son aquellas que pueden mostrar un contenido
completamente diferente dependiendo de alguna condición. De esta forma,
podemos hacer varias cosas en un solo documento.
La estructura habitual de una página multiuso es:
<html>
<head>
<title> Página Multiusos </title>
</head>
<body>
<php?
If (condición) { ?>
<!-- HTML que se mostará si la condición es cierta -->
<?php }else{ ?>
<!-- html que se mostratará si la condición es falsa -->
<?php } ?>
</body>
</html>
O utilizando la sintaxis alternativa que acabamos de ver:
<html>
<head>
<title> Página Multiusos </title>
</head>
<body>
<php?
if (condición): ?>
<!-- HTML que se mostará si la condición es cierta -->
<?php else: ?>
<!-- html que se mostratará si la condición es falsa -->
<?php endif; ?>
</body>
</html>
Esto puede parecer un poco confuso. Pero es precisamente una de las
características que están haciendo muy popular al PHP: su capacidad de
pasar de php a html en cualquier momento y todas las veces que sea
necesario.
Ejemplo
Para nuestro ejemplo vamos a utilizar el ejemplo que vimos para switch y
utilizar una sola página (multiuso.php) para el formulario y las respuestas en
lugar de las dos que teníamos antes
<html>
<head>
<title> Página Multiusos </title>
</head>
<body>
<?php
if (!isset($quien)): ?>
<html>
<head>
<title> Ejemplo de switch </title>
</head>
<body>
<form action="multiuso1.php" method="get">
¿Quién eres?<br />
<input type="radio" name="quien" value="cgus" /> cgus<br />
<input type="radio" name="quien" value="xela" /> xela<br />
<input type="radio" name="quien" value="adanedhel" /> adanedhel<br />
<input type="radio" name="quien" value="jorgito" /> jorgito<br />
<input type="submit" name="reset" value=" Enviar " />
</form>
</body>
</html>
<?php else:
switch($quien) {
case "cgus": // Primera posibilidad
echo (" $quien es todo un leader ");
break;
case "adanedhel": // segunda posibilidad
echo ("$quien es un elfo");
break;
case "xela": // tercera posibilidad
echo ("$quien es un normal");
break;
default: // Posiblidad si no es ninguna de las anteriores
echo ("$quien es un desconocido");
}
endif;
?>
</body>
</html>
for each
Es un tipo de bucle especial para matrices. Cómo no hemos visto el tema de
las matrices todavía, de momento no lo vamos a explicar. Tocaremos este
tema al hablar de las matrices.

Más contenido relacionado

La actualidad más candente (18)

Php1
Php1Php1
Php1
 
Php1
Php1Php1
Php1
 
Php1
Php1Php1
Php1
 
Mini manual php
Mini manual phpMini manual php
Mini manual php
 
Php1
Php1Php1
Php1
 
Php1
Php1Php1
Php1
 
Php1
Php1Php1
Php1
 
Php1
Php1Php1
Php1
 
Vb script hx-c-wd
Vb script hx-c-wdVb script hx-c-wd
Vb script hx-c-wd
 
Introduccion a ruby
Introduccion a rubyIntroduccion a ruby
Introduccion a ruby
 
Lenguaje de programacion php
Lenguaje de programacion   phpLenguaje de programacion   php
Lenguaje de programacion php
 
Clase 10 expresiones regulares
Clase 10 expresiones regularesClase 10 expresiones regulares
Clase 10 expresiones regulares
 
Variables y Bucles
Variables y BuclesVariables y Bucles
Variables y Bucles
 
Php informacion
Php informacion Php informacion
Php informacion
 
Mini manual php
Mini manual phpMini manual php
Mini manual php
 
Php
PhpPhp
Php
 
Php y mysql
Php y mysqlPhp y mysql
Php y mysql
 
Estructuras De Control De Php
Estructuras De Control De PhpEstructuras De Control De Php
Estructuras De Control De Php
 

Destacado

Guía de la carrera espacial
Guía de la carrera espacialGuía de la carrera espacial
Guía de la carrera espacialAndrés Rojas
 
Presentación carrera espacial luna
Presentación carrera espacial lunaPresentación carrera espacial luna
Presentación carrera espacial lunajuansierradoncel
 
Ud5 oscar-rodriguez. la carrera-espacial
Ud5 oscar-rodriguez. la carrera-espacialUd5 oscar-rodriguez. la carrera-espacial
Ud5 oscar-rodriguez. la carrera-espacialcomunicacion2012
 
Acuerdos de Convivencia Institucional
Acuerdos de Convivencia InstitucionalAcuerdos de Convivencia Institucional
Acuerdos de Convivencia InstitucionalMartín Maglio
 
Seguridad en Informática y teléfonos celulares - Para padres
Seguridad en Informática y teléfonos celulares - Para padresSeguridad en Informática y teléfonos celulares - Para padres
Seguridad en Informática y teléfonos celulares - Para padresMartín Maglio
 
Legales, Papelería y Aula
Legales, Papelería y AulaLegales, Papelería y Aula
Legales, Papelería y AulaMartín Maglio
 
Internet ¿Vale todo o libertad con responsabilidad?
Internet ¿Vale todo o libertad con responsabilidad?Internet ¿Vale todo o libertad con responsabilidad?
Internet ¿Vale todo o libertad con responsabilidad?Martín Maglio
 
Las Nuevas Tecnologías en la Escuela
Las Nuevas Tecnologías en la EscuelaLas Nuevas Tecnologías en la Escuela
Las Nuevas Tecnologías en la EscuelaMartín Maglio
 
2012 - Reunión Plenaria Febrero
2012 - Reunión Plenaria Febrero2012 - Reunión Plenaria Febrero
2012 - Reunión Plenaria FebreroMartín Maglio
 
Elecciones 2009 en Argentina
Elecciones 2009 en ArgentinaElecciones 2009 en Argentina
Elecciones 2009 en ArgentinaMartín Maglio
 
Elecciones de 2011 en Argentina
Elecciones de 2011 en ArgentinaElecciones de 2011 en Argentina
Elecciones de 2011 en ArgentinaMartín Maglio
 
El Cabildo Según Pasan los Años
El Cabildo Según Pasan los AñosEl Cabildo Según Pasan los Años
El Cabildo Según Pasan los AñosMartín Maglio
 
LA CARRERA ESPACIAL
LA CARRERA ESPACIAL LA CARRERA ESPACIAL
LA CARRERA ESPACIAL Abby Cortez
 
Premios Nobel Argentinos
Premios Nobel ArgentinosPremios Nobel Argentinos
Premios Nobel ArgentinosMartín Maglio
 
Escuela, Violencia y Niñez
Escuela, Violencia y NiñezEscuela, Violencia y Niñez
Escuela, Violencia y NiñezMartín Maglio
 
Carrera espacial victor, luis, juan.
Carrera espacial victor, luis, juan.Carrera espacial victor, luis, juan.
Carrera espacial victor, luis, juan.Txema Gs
 

Destacado (20)

Unidad 2 (1)
Unidad 2 (1)Unidad 2 (1)
Unidad 2 (1)
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Practica 24
Practica 24Practica 24
Practica 24
 
Guía de la carrera espacial
Guía de la carrera espacialGuía de la carrera espacial
Guía de la carrera espacial
 
Presentación carrera espacial luna
Presentación carrera espacial lunaPresentación carrera espacial luna
Presentación carrera espacial luna
 
Ud5 oscar-rodriguez. la carrera-espacial
Ud5 oscar-rodriguez. la carrera-espacialUd5 oscar-rodriguez. la carrera-espacial
Ud5 oscar-rodriguez. la carrera-espacial
 
Acuerdos de Convivencia Institucional
Acuerdos de Convivencia InstitucionalAcuerdos de Convivencia Institucional
Acuerdos de Convivencia Institucional
 
Seguridad en Informática y teléfonos celulares - Para padres
Seguridad en Informática y teléfonos celulares - Para padresSeguridad en Informática y teléfonos celulares - Para padres
Seguridad en Informática y teléfonos celulares - Para padres
 
Legales, Papelería y Aula
Legales, Papelería y AulaLegales, Papelería y Aula
Legales, Papelería y Aula
 
Internet ¿Vale todo o libertad con responsabilidad?
Internet ¿Vale todo o libertad con responsabilidad?Internet ¿Vale todo o libertad con responsabilidad?
Internet ¿Vale todo o libertad con responsabilidad?
 
Las Nuevas Tecnologías en la Escuela
Las Nuevas Tecnologías en la EscuelaLas Nuevas Tecnologías en la Escuela
Las Nuevas Tecnologías en la Escuela
 
2012 - Reunión Plenaria Febrero
2012 - Reunión Plenaria Febrero2012 - Reunión Plenaria Febrero
2012 - Reunión Plenaria Febrero
 
Elecciones 2009 en Argentina
Elecciones 2009 en ArgentinaElecciones 2009 en Argentina
Elecciones 2009 en Argentina
 
Elecciones de 2011 en Argentina
Elecciones de 2011 en ArgentinaElecciones de 2011 en Argentina
Elecciones de 2011 en Argentina
 
El Cabildo Según Pasan los Años
El Cabildo Según Pasan los AñosEl Cabildo Según Pasan los Años
El Cabildo Según Pasan los Años
 
LA CARRERA ESPACIAL
LA CARRERA ESPACIAL LA CARRERA ESPACIAL
LA CARRERA ESPACIAL
 
Premios Nobel Argentinos
Premios Nobel ArgentinosPremios Nobel Argentinos
Premios Nobel Argentinos
 
Escuela, Violencia y Niñez
Escuela, Violencia y NiñezEscuela, Violencia y Niñez
Escuela, Violencia y Niñez
 
Armar un video
Armar un videoArmar un video
Armar un video
 
Carrera espacial victor, luis, juan.
Carrera espacial victor, luis, juan.Carrera espacial victor, luis, juan.
Carrera espacial victor, luis, juan.
 

Similar a Unidad 2 (20)

Power point progrmacion 2[1]
Power point progrmacion 2[1]Power point progrmacion 2[1]
Power point progrmacion 2[1]
 
Mod2ud2 1
Mod2ud2 1Mod2ud2 1
Mod2ud2 1
 
Clase 5 php
Clase 5 phpClase 5 php
Clase 5 php
 
Manual de php basico
Manual de php basicoManual de php basico
Manual de php basico
 
DESARROLLO-CON-PHP-pptx.pptx
DESARROLLO-CON-PHP-pptx.pptxDESARROLLO-CON-PHP-pptx.pptx
DESARROLLO-CON-PHP-pptx.pptx
 
Manuan de php y MySql-1.pdf
Manuan de php y MySql-1.pdfManuan de php y MySql-1.pdf
Manuan de php y MySql-1.pdf
 
Php
PhpPhp
Php
 
Php
PhpPhp
Php
 
Módulo de PHP
Módulo de PHPMódulo de PHP
Módulo de PHP
 
3144
31443144
3144
 
Java script
Java script Java script
Java script
 
Php basico
Php basicoPhp basico
Php basico
 
Taller de PHP Básico
Taller de PHP BásicoTaller de PHP Básico
Taller de PHP Básico
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
7. estructura condicional if
7.  estructura condicional if7.  estructura condicional if
7. estructura condicional if
 
Manual basico de PHP
Manual basico de PHPManual basico de PHP
Manual basico de PHP
 
Php basico
Php basicoPhp basico
Php basico
 
Shell script
Shell scriptShell script
Shell script
 
Curso php-my sql-clase-3
Curso php-my sql-clase-3Curso php-my sql-clase-3
Curso php-my sql-clase-3
 
Lais
LaisLais
Lais
 

Más de Tadeo Rmz

Pa los chamacos de asesoria
Pa los chamacos de asesoriaPa los chamacos de asesoria
Pa los chamacos de asesoriaTadeo Rmz
 
Pseudocodigos lml
Pseudocodigos lmlPseudocodigos lml
Pseudocodigos lmlTadeo Rmz
 
Algoritmo antonio tadeo ponce ramirez 4-a
Algoritmo   antonio tadeo ponce ramirez 4-aAlgoritmo   antonio tadeo ponce ramirez 4-a
Algoritmo antonio tadeo ponce ramirez 4-aTadeo Rmz
 
Practica 30 flash
Practica 30 flashPractica 30 flash
Practica 30 flashTadeo Rmz
 
Practica 29 flash
Practica 29 flashPractica 29 flash
Practica 29 flashTadeo Rmz
 
Practica 28 flash
Practica 28 flashPractica 28 flash
Practica 28 flashTadeo Rmz
 
Practica 26 flash
Practica 26 flashPractica 26 flash
Practica 26 flashTadeo Rmz
 
Practica 27 flash
Practica 27 flashPractica 27 flash
Practica 27 flashTadeo Rmz
 
Practica 25 flash
Practica 25 flashPractica 25 flash
Practica 25 flashTadeo Rmz
 
Gaem unidad 5
Gaem unidad 5Gaem unidad 5
Gaem unidad 5Tadeo Rmz
 

Más de Tadeo Rmz (20)

Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Pa los chamacos de asesoria
Pa los chamacos de asesoriaPa los chamacos de asesoria
Pa los chamacos de asesoria
 
Pseudocodigos lml
Pseudocodigos lmlPseudocodigos lml
Pseudocodigos lml
 
Problemas
ProblemasProblemas
Problemas
 
Algoritmo antonio tadeo ponce ramirez 4-a
Algoritmo   antonio tadeo ponce ramirez 4-aAlgoritmo   antonio tadeo ponce ramirez 4-a
Algoritmo antonio tadeo ponce ramirez 4-a
 
Practica 30 flash
Practica 30 flashPractica 30 flash
Practica 30 flash
 
Practica 29 flash
Practica 29 flashPractica 29 flash
Practica 29 flash
 
Practica 28 flash
Practica 28 flashPractica 28 flash
Practica 28 flash
 
Unidad 7
Unidad 7Unidad 7
Unidad 7
 
Practica 26 flash
Practica 26 flashPractica 26 flash
Practica 26 flash
 
Practica 27 flash
Practica 27 flashPractica 27 flash
Practica 27 flash
 
Practica 25 flash
Practica 25 flashPractica 25 flash
Practica 25 flash
 
Practica 23
Practica 23Practica 23
Practica 23
 
Practica 22
Practica 22Practica 22
Practica 22
 
Practica 20
Practica 20Practica 20
Practica 20
 
Practica 20
Practica 20Practica 20
Practica 20
 
Gaem unidad 5
Gaem unidad 5Gaem unidad 5
Gaem unidad 5
 

Unidad 2

  • 1. 2. Codificar la solución del problema en un lenguaje de programación estructurado. La programación estructurada es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando únicamentesubrutinas y tres estructuras: secuencia, selección (if y switch) e iteración (bucles for y while), considerando innecesario y contraproducente el uso de la instrucción de transferencia incondicional (GOTO), que podría conducir a "código espagueti", que es mucho más difícil de seguir y de mantener, y era la causa de muchos errores de programación. Surgió en la década de 1960, particularmente del trabajo Böhm y Jacopini,1 y una famosa carta, la sentencia goto considerada perjudicial, de Edsger Dijkstra en 19682 — y fue reforzado teóricamente por el teorema del programa estructurado, y prácticamente por la aparición de lenguajes como ALGOL con adecuadas y ricas estructuras de control. 2.1. Elementos básicos del lenguaje de programación estructurado. Manipulación básica de datos Es posible hacer la programación estructurada en cualquier lenguaje de programación, aunque es preferible usar algo como un lenguaje de programación procedimental. Algunos de los lenguajes utilizados inicialmente para programación estructurada incluyen: ALGOL, Pascal, PL/I y Ada – pero la mayoría de los nuevos lenguajes programación procedimentales desde entonces han incluido características para fomentar la programación estructurada y a veces deliberadamente omiten características4 en un esfuerzo para hacer más difícil la programación no estructurada. 2.2. Utilizar estructuras de control Las estructuras de control nos permiten controlar el flujo del programa: tomar decisiones, realizar acciones repetitivas etc, dependiendo de unas condiciones que nosotros mismos establezcamos. Así podemos hacer un script que nos salude cada día de la semana de una manera diferente. O por
  • 2. ejemplo hacer un script que nos pida la contraseña una y otra vez hasta que suministremos la opción correcta. 1.- La toma de decisiones if-else: Quizá la estructura de control más básica y la más utilizada sea if-else: if (condicion) { // instrucciones que hay que ejecutar si la condición es verdadera } else { // Instrucciones que hay que ejecutar si la condición es falsa } En castellano sería algo así: Si (Tal cosa es cierta) { // Haz esto } En caso contrario { // Haz esto otro } Veamos un ejemplo real: En un formulario preguntaremos al usuario como se llama, pasaremos las variables a la página “saludos.php” . En saludos.php mostraremos un saludo diferente en función de si el usuario soy yo o es cualquier otro Formulario <html> <head> <title> Ejemplo básico de If </title> </head> <body> <form action="saludos.php" method="get"> ¿Quién eres?<br /> <input type="text" name="nombre" /> <input type="submit" name="reset" value=" Enviar " /> </form> </body> </html> saludos.php <html> <head> <title> Ejemplo básico de If </title> </head> <body> <h1> Página de bienvenida</h1> <?php // Empieza el código php if ($nombre=="Coder") { // Si el nombre es Coder
  • 3. echo(" Hombre $nombre! Ya estás cotilleando por aquí otra vez!"); // saludo especial }else { echo("Hola, $nombre, gracias por visitarnos"); // saludo para los demás } ?> </body> </html> La cláusula else (la parte del if-else que indica lo que hay que hacer si la condición es falsa) es opcional. No es necesario ponerla. Por ejemplo puedo querer un script que sólo me salude a mi. En este caso, cambiaría saludos.php de la siguiente manera: <html> <head> <title> Ejemplo básico de If </title> </head> <body> <h1> Página de bienvenida</h1> <?php // empieza el código php if ($nombre=="Coder") { // Si el nombre es Coder echo(" Hombre $nombre! Ya estás cotilleando por aquí otra vez!"); // Saludo para Coder } ?> </body> </html> NOTA: Cuidado con el operador ==, es importante recordar que hay que utilizar un doble signo igual. Si utilizas sólo “=”, estarás utilizando el operador de asignación, es decir estableciendo que $nombre es igual a Coder con lo que la condición siempre sería cierta Las condiciones pueden complicarse mucho más, supongamos que queremos dejarte pasar sólo sí además de llamarte Coder, te sabes la contraseña, que en nuestro caso es “foros”: Formulario: <html> <head> <title> Ejemplo básico de If </title> </head> <body> <form action="saludos.php" method="get">
  • 4. ¿Quién eres?<br /> <input type="text" name="nombre" /><br /> ¿Y tu Contraseña?<br /> <input type="text" name="pass" /> <input type="submit" name="reset" value=" Enviar " /> </form> </body> </html> saludos.php <html> <head> <title> Ejemplo básico de If </title> </head> <body> <h1> Página de bienvenida</h1> <?php // Empieza el código php if ($nombre=="Coder" and $pass =="foros") { // Si el nombre es Coder y la contraseña foros echo(" Hombre $nombre! Ya estás cotilleando por aquí otra vez!"); // saludo especial }else { echo("ahhhhhhhhhhh como no te sabes el nombre y la contraseña, no puedes pasar"); // saludo para los demás } ?> </body> </html> Además tenemos la instrucción elseif, que como su nombre indica, es una combinación de if y else. Añade una nueva condición en el caso de que la primera fuera falsa y sólo ejecuta las instrucciones si esta nueva condición es verdadera. Es decir, Veamos un ejemplo: if ($a > $b) { // Ejecuta esto si a es Mayor que b echo("a es mayor que b"); } elseif ($a == $b) { // si a no es mayor que be, comprueba si a es igual a b echo("a es igual que b"); } else { // si no se cumplen las anteriores condiciones ejecuta ésta echo ("a es menor que b"); }
  • 5. 2- Bucles: While If else nos permitía decidir si queríamos ejecutar o no una instrucción en función de una condición, los bucles nos permiten utilizar una condición para determinar cuantas veces queremos ejecutar una instrucción.: While (condicion) { // Instrucciones a ejecutar una y otra //vez mientras la condición sea cierta } El funcionamiento es muy parecido al del if-else, la diferencia estriba en que si la condición es cierta y se ejecuta la orden, la condición vuelve a comprobarse una y otra vez mientras siga siendo cierta. En cambio en el cambio del if-else sólo se comprueba la condición una vez, si es cierta se ejecuta la instrucción y se sigue con el programa. Veamos un ejemplo: $cantidad = 1; while ($cantidad < 10) { echo ("$cantidad "); $cantidad++; } Esto traducido a castellano sería: $cantidad = 1; $cantidad es igual a uno while ($cantidad < 10) Mientras el valor de la variable $cantidad sea menor que 10 echo (“$cantidad “); Escribe el valor de cantidad $cantidad++ (suma 1 al valor que tenga $cantidad, también podríamos haber escrito $cantidad = $cantidad +1) Veamos como funciona el script paso a paso, $Cantidad es igual a 1 1 es menor que 10 Escribo 1 en pantalla $cantidad = 2 (1+1) 2 es menor que 10 Escribo 2 en pantalla $cantidad = 3 (2+1)… Si ejecutamos este script, en pantalla veríamos 1 2 3 4 5 6 7 8 9 3- Bucles: do While Los bucles do while, son muy parecidos a los bucles while, sólo que comprobamos si la condición es cierta al final del bucle en lugar de al
  • 6. principio. Así nuestras instrucciones se ejecutan siempre al menos una vez, lo que no ocurre en las condiciones while si la condición es falsa. $cantidad = 1; do { echo ($cantidad); } while ($cantidad<1); Traducido sería $cantidad = 1 do ( // ejecuta echo ($cantidad); escribe el valor de cantidad while ($cantidad<1); mientras cantidad sea mayor que 1 -> la condición es falsa luego el programa sale del bucle, pero ha escrito una vez el valor de $cantidad. El resultado en pantalla sería 1 4- Bucles: for Los bucles for funcionan exactamente igual que en C . Con una sola instrucción controlamos todo el bucle, así que para los vaguetes está muy bien. for (valor inicial; condicion; ejecutar en cada blucle) { // Instrucciones a ejecutar mientras la condición sea cierta } Ejemplo for ($cantidad = 1; $cantidad <10; $i++) { echo("$cantidad"); } Traducido es igual a: Cantidad es igual a 1, mientras cantidad sea menor que 10 escribe cantidad en pantalla y después súmale 1 al valor de cantidad. Es decir, es exactamente el mismo ejemplo que vimos en el bucle while pero de otra manera. 4- Swich/case Nos permite ejecutar un bloque de código u otro dependiendo del valor de una variable. Veamos un ejemplo. Primero para asignar un valor a la variable, vamos a hacernos un formulario: <html> <head> <title> Ejemplo de switch </title> </head> <body>
  • 7. <form action="switch.php" method="get"> ¿Quién eres?<br /> <input type="radio" name="quien" value="cgus" /> cgus<br /> <input type="radio" name="quien" value="xela" /> xela<br /> <input type="radio" name="quien" value="adanedhel" /> adanedhel<br /> <input type="radio" name="quien" value="jorgito" /> jorgito<br /> <input type="submit" name="reset" value=" Enviar " /> </form> </body> </html> Switch.php <html> <head> <title>Ejemplo de Swich</title> </head> <?php switch($quien) { case "cgus": // Primera posibilidad echo (" $quien es todo un leader "); break; case "adanedhel": // segunda posibilidad echo ("$quien es un elfo"); break; case "xela": // tercera posibilidad echo ("$quien es normal"); break; default: // Posiblidad si no es ninguna de las anteriores echo ("$quien es un desconocido"); } ?> </body> </html> Tenéis más información sobre las estructuras de control en el manual de php http://www.php.net/manual/es/control-structures.php Sintaxis alternativa PHP ofrece una sintaxis alternativa para alguna de sus estructuras de control; a saber, if, while, for, y switch. Puede hace el código más legible en algunos casos, especialmente en las páginas multiuso que vamos a ver a continuación:
  • 8. If con construcción alternativa <?php if ($a==5): ?> A es igual a 5 <?php endif; ?> if con elseif y else en el formato alternativo: if ($a == 5): print "a es igual a 5"; print "..."; elseif ($a == 6): print "a es igual a 6"; print "!!!"; else: print “a no es ni 5 ni 6″; endif; While utilizando la construcción alternativa $i = 1; while ($i <= 10): print $i; $i++; endwhile; For con la construcción alternativa for (expr1; expr2; expr3): sentencia; ...; endfor; Páginas Multiuso Páginas multiuso son aquellas que pueden mostrar un contenido completamente diferente dependiendo de alguna condición. De esta forma, podemos hacer varias cosas en un solo documento. La estructura habitual de una página multiuso es: <html> <head> <title> Página Multiusos </title> </head> <body> <php? If (condición) { ?> <!-- HTML que se mostará si la condición es cierta --> <?php }else{ ?> <!-- html que se mostratará si la condición es falsa --> <?php } ?>
  • 9. </body> </html> O utilizando la sintaxis alternativa que acabamos de ver: <html> <head> <title> Página Multiusos </title> </head> <body> <php? if (condición): ?> <!-- HTML que se mostará si la condición es cierta --> <?php else: ?> <!-- html que se mostratará si la condición es falsa --> <?php endif; ?> </body> </html> Esto puede parecer un poco confuso. Pero es precisamente una de las características que están haciendo muy popular al PHP: su capacidad de pasar de php a html en cualquier momento y todas las veces que sea necesario. Ejemplo Para nuestro ejemplo vamos a utilizar el ejemplo que vimos para switch y utilizar una sola página (multiuso.php) para el formulario y las respuestas en lugar de las dos que teníamos antes <html> <head> <title> Página Multiusos </title> </head> <body> <?php if (!isset($quien)): ?> <html> <head> <title> Ejemplo de switch </title> </head> <body> <form action="multiuso1.php" method="get"> ¿Quién eres?<br /> <input type="radio" name="quien" value="cgus" /> cgus<br /> <input type="radio" name="quien" value="xela" /> xela<br />
  • 10. <input type="radio" name="quien" value="adanedhel" /> adanedhel<br /> <input type="radio" name="quien" value="jorgito" /> jorgito<br /> <input type="submit" name="reset" value=" Enviar " /> </form> </body> </html> <?php else: switch($quien) { case "cgus": // Primera posibilidad echo (" $quien es todo un leader "); break; case "adanedhel": // segunda posibilidad echo ("$quien es un elfo"); break; case "xela": // tercera posibilidad echo ("$quien es un normal"); break; default: // Posiblidad si no es ninguna de las anteriores echo ("$quien es un desconocido"); } endif; ?> </body> </html> for each Es un tipo de bucle especial para matrices. Cómo no hemos visto el tema de las matrices todavía, de momento no lo vamos a explicar. Tocaremos este tema al hablar de las matrices.