programación de aplicaciones - editorialcasals.com fileprogramación de aplicaciones competencias...

20
Programación de aplicaciones Competencias en construcción Una página web donde expresaros 6 156

Upload: vothuy

Post on 22-Oct-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programación de aplicaciones - editorialcasals.com fileProgramación de aplicaciones Competencias en construcción Una página web donde expresaros 6 156 programació_6_Maquetación

Programación deaplicaciones

Competencias en construcción

Una página web donde expresaros

6

156

programació_6_Maquetación 1 07/05/15 17:41 Página 156

Page 2: Programación de aplicaciones - editorialcasals.com fileProgramación de aplicaciones Competencias en construcción Una página web donde expresaros 6 156 programació_6_Maquetación

1 Visualizad el vídeo del siguiente enlace: . Debatid en clase qué información personal proporcionáis en las redes sociales oInternet habitualmente y cuál no se debería proporcionar nunca. Elaborad una lista.

2 Hay conductas en la red que se pueden considerar delitos. Recuerda que deberías denunciarlas a las autoridades e informar a tustutores si adviertes alguna de ellas. Une cada una de las conductas con su definición e investiga sus consecuencias legales:

3 Organizaos por grupos con la ayuda de vuestro profesor o profesora y seguid lassiguientes pautas organizativas: a) Explorad qué sitios en la web os ofrecen crear vuestra página web o blog de forma

gratuita. Escoged uno de ellos y argumentad por escrito el motivo de vuestraelección.

b) Decidid el nombre del sitio web o del blog, de entre los disponibles, y cuáles seránsus contenidos y objetivos. Redactadlos escuetamente. Pensad que estainformación ya podrá formar parte del sitio web, si se considera oportuno.

c) Estableced un plan de trabajo, organizaos, decidid qué miembro se hará cargo decada una de las partes del sitio web las tareas que se realizarán, etc., ¡y manos ala obra!

4 Un buen modo de adaptar la web a lo que realmente queréis es iniciaros en laprogramación hipertextual HTML. Visionad este vídeo y sintetizad la informaciónque habéis visto. a) ¿Cuál es el origen de los lenguajes de programación hipertextuales? ¿Y cuál es

su última versión? b) Intentad mejorar vuestra web con un fragmento de código HTML de los que hay

en la Red. Interpretad qué significan las instrucciones del fragmento.

Las páginas web siguen siendo esenciales en el mundo virtual. Aunque consideremos laemergencia de las redes sociales como espacios donde compartir información, aficiones, conoceramigos y, por qué no decirlo, curiosear un poco, Internet se sostiene gracias a las páginas web. Tantosi quieres emprender un negocio como compartir una afición o, sencillamente, darte a conocer ocomunicarte, crear una página web es una buena opción. Hoy en día, casi todos los profesionalesy empresas disponen de una página web comercial.

Por ello, os queremos proponer crear una página web que, conectada a vuestras redes sociales,pueda convertirse en un espacio donde compartir lo que os apetezca. Pueden ser aficiones, tareasescolares o lo que os divierta, o bien un blog o cuaderno de bitácora donde ir anotando y subiendola información que queráis, siempre que respetéis las normas de la red y la legislación vigente.

actividades

Ciberacoso

Grooming

Sextorsión

Pishing

a) Acciones emprendidas deliberadamente por un adulto con el objetivo de ganarse laamistad de un menor de edad para poder abusar de él o ella posteriormente.

b) Suplantación virtual de la identidad para obtener datos bancarios o personales, conobjetivos de estafa, lucrativos o de difamación.

c) Hechos que comportan que alguien sea amenazado, humillado o molestadoreiteradamente por otro utilizando medios digitales.

d) Coacción o explotación en la que una persona es sometida a chantaje, mediante laamenaza de difundir una imagen o vídeo de contenido sexual, si no se aceptan lascondiciones del acosador.

157

programació_6_Maquetación 1 07/05/15 17:41 Página 157

Page 3: Programación de aplicaciones - editorialcasals.com fileProgramación de aplicaciones Competencias en construcción Una página web donde expresaros 6 156 programació_6_Maquetación

BLOQUE 3. Programación e Internet. Unidad 6. Programación de aplicaciones

158

1. Los programas

El concepto de programa tiene miles de años: Euclides, por ejemplo, nacido enel 323 a. C., ya escribió un programa para calcular el máximo común divisor. Nolo llamó programa (ni nadie de su época), pero escribió una serie de instruccio-nes sencillas y claras que, si se ejecutaban de forma repetitiva, daban como re-sultado el MCD de dos números.

Siglos más tarde, a este hecho se le llamó escribir algoritmos, en referencia aAl-Juarismi, persa que hacia el 820 escribió varios tratados matemáticos donde,entre otros aspectos, exponía las bondades de las cifras arábigas (que en la ac-tualidad conforman nuestro sistema decimal, 0... 9).

Hoy en día llamamos algoritmo a la descripción de los pasos más sencillos quesirven para resolver un problema; un programa es un algoritmo escrito en el len-guaje de los ordenadores, y un ordenador es una máquina capaz de ejecutar losprogramas de forma automática y sin intervención externa.

Por lo tanto, lo que veremos en esta unidad es cómo podemos escribir instruc-ciones muy sencillas para que un ordenador pueda entenderlas y ejecutarlasde forma automática.

En la actualidad, hay centenares de formas de escribir estas instrucciones. Sonlos distintos lenguajes de programación. Nosotros veremos las características delos denominados lenguajes imperativos.

ScratchAntes de empezar a programar es importante conocer las características prin-cipales de la herramienta que utilizaremos, Scratch. El editor Scratch está dis-ponible on-line y off-line. Esta segunda opción permite trabajar sin conexión aInternet pero deberás instalar el programa que encontrarás en el enlace .

Para empezar, accede al enlace y regístrate clicando en “Únete a Scratch”.Una vez que tengas tu cuenta creada, selecciona la opción “Crear”.

A continuación, se abrirá un editor de programas, donde ya podrás empezar atrabajar. En primer lugar puedes seleccionar nuestro idioma, en caso de que nolo esté ya, haciendo clic en la esfera que hay arriba a la izquierda.

La pantalla de trabajo consta principalmente de tres partes, más una ayuda quese encuentra a la derecha:

• En el escenario de la izquierda, donde se encuentra el gato que es mascotadel Scratch, es donde veremos el funcionamiento de nuestro programa. De-bajo del escenario podremos seleccionar los objetos sobre los que quera-mos trabajar.

• En medio se encuentran todas las acciones que podemos realizar, organi-zadas temáticamente.

• A la derecha se localizará el código de nuestro programa.

Muchos historiadores consideran que la primera pro-gramadora de la historia fue Ada Lovelace, hacia1840.

programació_6_Maquetación 1 07/05/15 17:41 Página 158

Page 4: Programación de aplicaciones - editorialcasals.com fileProgramación de aplicaciones Competencias en construcción Una página web donde expresaros 6 156 programació_6_Maquetación

BLOQUE 3. Programación e Internet. Unidad 6. Programación de aplicaciones

159Competencias científicas: C3 (act. 1)

Para escribir un programa, debemos arrastrar las acciones desde el panelcentral hasta el área de la derecha e irlas uniendo en el orden en que quere-mos que se ejecuten. Cuando dos bloques están a punto de unirse, apareceuna línea blanca que indica el punto en el que se unirán.

Disponemos de muchos tipos de acciones que se aplicarán sobre el objetoseleccionado: Movimiento, Apariencia, Sonido, Lápiz, Eventos, Control..., yde cada tipo hay muchas posibilidades.

Puedes hacer que el gato baile y toque instrumentos, crear un nuevo objetoque se mueva al son de la música, crear una animación para explicar una his-toria... Algunas piezas o instrucciones son muy sencillas, como por ejemplo“girar 15 grados”, y las podemos probar sencillamente haciendo doble clic.También se puede cambiar el valor predeterminado escribiendo un nuevo valordirectamente. Otras son más complejas y se deben utilizar junto con otras ac-ciones.

Los programas del Scratch siempre comienzan cuando se selecciona la ban-dera que hay sobre el escenario, y se detienen haciendo clic en el octógono.Por lo tanto, si queremos que nuestro programa empiece a ejecutar accionescuando el usuario hace clic sobre esta bandera, deben ponerse las accionesbajo el Evento “al presionar (a bandera)”. Si queremos crear un programaque haga correr al gato por toda la pantalla, podemos unir las siguientes ac-ciones, una debajo de la otra. Las encontraréis todas en los apartados Movi-miento y Apariencia.

actividades

1 Un ejemplo de algoritmo que todos aplicamos de camino al instituto es:1 Camino hasta el siguiente semáforo.2 Miro el color del semáforo.3 SI está en verde, cruzo la calle.4 SI NO, vuelvo al paso 2.

Ahora imagínate que alguno de los semáforos se ha estropeado y no mues-tra ningún color; ¿qué deberías añadir o quitar a este algoritmo para conse-guir llegar al instituto?

Banco de actividades: 12

5 ¿He llegado al instituto?6 SI ya he llegado, entro.7 SI NO, vuelvo al paso 1.

programació_6_Maquetación 1 07/05/15 17:41 Página 159

Page 5: Programación de aplicaciones - editorialcasals.com fileProgramación de aplicaciones Competencias en construcción Una página web donde expresaros 6 156 programació_6_Maquetación

160

BLOQUE 3. Programación e Internet. Unidad 6. Programación de aplicaciones

2. Programación básica

A continuación, iremos programando nuestro primer programa y descubriendolas posibilidades de Scratch. Para empezar, crearemos una animación sencilla.

Lo primero que deberás hacer será limpiar el espacio de trabajo para situar tuescenario y tus objetos. Para ello, deberás borrar el gato que aparece en esteespacio haciendo clic con el botón derecho y seleccionando «borrar».

Después, selecciona un escenario adecuado a tu animación. A la izquierda detodo hay un escenario de color blanco; haz clic en la opción que permite esco-ger un fondo de la biblioteca. Selecciona el tema que más te guste y haz clic en“ok”, en el margen inferior derecho de la pantalla.

Para insertar un personaje u objeto, dirígete a la zona de Objetos de la izquierda.Selecciona la opción que permite cargar un Nuevo objeto, ya sea de la biblio-teca o aportando alguna imagen que tengamos o creemos.

PRACTICA

Inserta un escenario de la librería como fondo y un personaje que te guste deInternet. Dicha imagen debe ser .png y no tener fondo, ya que, si no, este se verádurante la animación. En la web http://pixabay.com/ puedes encontrar imáge-nes de estas características sin copyright.Para ajustar el tamaño de la imagen, haz clic sobre los iconos y despuéssobre el personaje.Por último, copia el siguiente programa que permite:

1) Iniciar la animación al presionar la bandera 2) Situar el personaje en la parte inferior de la derecha3) Esperar medio segundo4) Moverse la distancia indicada5) Repetir el paso 3 y 4

La opción “mover pasos” mueve el objeto en la misma dirección que se en-cuentra la imagen. Si giráramos la imagen hacia abajo, el personaje se move-ría hacia abajo. Prueba a escribir la cifra de los pasos en negativo (-200), ¿qué sucede?

programació_6_Maquetación 1 07/05/15 17:41 Página 160

Page 6: Programación de aplicaciones - editorialcasals.com fileProgramación de aplicaciones Competencias en construcción Una página web donde expresaros 6 156 programació_6_Maquetación

Estructuras de repeticiónSi quisiéramos mover un objeto de la izquierda a la derecha de forma conti-nua y sin parar, ¿cómo lo haríamos? Una opción sería repetir un fragmentodel programa muchísimas veces, como se muestra en la imagen derecha,pero esto resulta muy poco práctico porque tarde o temprano el programa fi-nalizará. Para solucionarlo, tendremos que utilizar las estructuras de controlrepetitivas, que se encuentran en el apartado Control.

Las estructuras repetitivas o bucles nos permiten indicar al ordenador quevaya repitiendo una secuencia de acciones hasta que se cumpla una condi-ción (o «por siempre»).

Si queremos que un objeto dé vueltas hasta que presionemos el botón deespacio, podemos utilizar el sensor «¿tecla presionada?» para obtener el si-guiente código:

actividades

2 Utilizando las piezas de pintar del apartado Lápiz podemos lograr que elobjeto realice dibujos, por ejemplo, un triángulo equilátero de lado 100,con el código que tienes a la izquierda.A continuación, modifícalo para realizar los siguientes polígonos: • Cuadrado de lado 100.• Rectángulo.• Pentágono.• Rombo.• Dos cuadrados.Para ver posibles problemas durante la construcción de los polígonos, pue-des ir intercalando la instrucción «esperar 1 segundos».

3 Realiza una animación en la que un personaje se mueva de derecha a iz-quierda ilimitadamente. Puedes partir de la “practica” de la página ante-rior y editar el programa.

4 Ahora haremos un minijuego en el que un personaje girará hasta quelo toquemos con el cursor del ratón. Después, el personaje nos dirá en quéángulo lo hemos parado. ¡Intenta pararlo justo cuando apunte a 90º!Encontrarás la instrucción decir en el apartado Apariencia y la variabledirección en el apartado Movimiento. ¿Podrías explicar paso a paso cómofunciona el programa?

Competencias científicas: C1 (act. 2, 4) C2 (act, 3)

Banco de actividades: 15, 16, 17, 18

161

BLOQUE 3. Programación e Internet. Unidad 6. Programación de aplicaciones

programació_6_Maquetación 1 07/05/15 17:41 Página 161

Page 7: Programación de aplicaciones - editorialcasals.com fileProgramación de aplicaciones Competencias en construcción Una página web donde expresaros 6 156 programació_6_Maquetación

DisfracesAl aspecto de cada dibujo en Scratch se lo llama disfraces. Para crear mayoresinteracciones entre los objetos, como hacer que un personaje cambie de coloro de posición, o deformar una figura para crear un mayor efecto de movimiento,es necesario crear más dibujos, cogiendo de base el original.

Para empezar debemos tener un objeto insertado en el espacio de trabajo. Coneste objeto seleccionado, hay que cambiar a la pestaña Disfraces, al lado de lapestaña Programas.

A continuación, duplicamos el primer disfraz, de tal manera que habrá dos imá-genes iguales para el mismo objeto.

En la parte derecha, aparecen las herramientas de dibujo que permiten selec-cionar una parte del dibujo, reformarlo, dibujar a mano alzada, pintar, crear líneasy formas geométricas, escribir y duplicar. En la parte inferior aparecen una gamade colores a usar con las herramientas de dibujo. Por último, en la parte supe-rio hay iconos que voltean el objeto en horizontal o vertical, o lo fijan en el cen-tro de la pantalla.

La herramienta Reformar permite cambiar el trazo de las líneas del objeto. Ob-serva cómo, con la herramienta seleccionada y clicando sobre las aletas delpez, le podemos modificar la forma.

Si se clica sobre el primer vestido y sobre el segundo repetidamente, se ve cómoel espacio de trabajo va cambiando el aspecto del personaje. Hay que ir ajus-tando los cambios hasta obtener el efecto deseado.

162

BLOQUE 3. Programación e Internet. Unidad 6. Programación de aplicaciones

actividades5 Crea una animación con 3 disfraces distintos. Con-

trola el tiempo que tarda en cambiar una imagen porotra a través de “esperar 1 segundos” del apartadoControl.

Banco de actividades: 13, 14

Competencias científicas: C2 (act. 5)

programació_6_Maquetación 1 07/05/15 17:41 Página 162

Page 8: Programación de aplicaciones - editorialcasals.com fileProgramación de aplicaciones Competencias en construcción Una página web donde expresaros 6 156 programació_6_Maquetación

Competencias científicas: C1 (act. 7), C2 (act. 6)

Estructuras condicionalesLas estructuras condicionales nos permiten indicar al ordenador que lo que que-remos hacer depende de algo.

Las estructuras condicionales, del apartado Control, están formadas por unapregunta o expresión, cuya respuesta solo puede ser verdadero o falso, y de dossecuencias de acciones, una que se debe ejecutar cuando la respuesta sea ver-dadera, y la otra, cuando sea falsa. Cuando finaliza cualquiera de las dos se-cuencias de acciones, se pasa a ejecutar la instrucción que hay a continuaciónde la estructura condicional.

En ocasiones solo nos interesa hacer algo especial si se cumple la condición;en estos casos, utilizamos la estructura que solo tiene un camino.

Por ejemplo, si queremos que nuestro objeto se vaya desplazando por la pan-talla y rebotando por las paredes, podemos escribir una estructura de repeticiónque vaya moviendo el objeto y lo haga rebotar si toca un borde.

163

BLOQUE 3. Programación e Internet. Unidad 6. Programación de aplicaciones

PRACTICA

Empezaremos con un código sencillo, que vaya moviendo el objeto sin rebotar.Primero inicializaremos el objeto situándolo en el centro y apuntando hacia laderecha, y después utilizaremos una estructura de repetición para efectuar elmovimiento.

Una vez comprobado que funciona, añadiremos la condición que hará rebotaral objeto. Debería ser similar a “Si está tocando el borde, girar 180 grados”.En el apartado Sensores se encuentra la pregunta “¿tocando borde?”.

Podemos sustituir la instrucción “mover 10 pasos” del bucle por cualquierade las estructuras que se hallan a continuación, pero solo una funcionará co-rrectamente. Prueba ambas y analiza la diferencia.

La diferencia entre las opciones es que en una el objeto solo se mueve cuandono está tocando el borde, y en la otra siempre se mueve.

actividades

6 Crea un juego de habilidad donde tendremos que evitar que un personaje rocelos bordes si lo tocas con el ratón, siguiendo el siguiente programa:Ten en cuenta que has creado la primera versión de un juego y, como casitodas las versiones iniciales de cualquier programa, tendrá errores (o en elargot técnico, bugs, ‘insectos’ en inglés), que deberán solucionarse.

7 Explica paso a paso el funcionamiento del programa del ejercicio anterior.

Banco de actividades: 19, 20, 22

programació_6_Maquetación 1 07/05/15 17:41 Página 163

Page 9: Programación de aplicaciones - editorialcasals.com fileProgramación de aplicaciones Competencias en construcción Una página web donde expresaros 6 156 programació_6_Maquetación

164

actividades8 Dibuja un objeto con cuatro disfraces diferentes o más que se corres-

pondan con distintas posiciones de correr (o saltar, patinar...) y crea elprograma que lo haga correr de forma aleatoria; si el jugador lo toca conel ratón, debe decir «tocado», detenerse dos segundos y después seguir sumarcha.

BLOQUE 3. Programación e Internet. Unidad 6. Programación de aplicaciones

3. Programación avanzada

Hasta ahora hemos utilizado las estructuras más básicas de Scratch, pero siqueremos crear programas más interesantes debemos saber utilizar, al menos,las variables y los operadores.

Podemos imaginar las variables como pizarritas en las que el programa puedeescribir y borrar todo lo que quiera. La mayoría de los lenguajes de programa-ción permiten leer y escribir los siguientes tipos de variables o de datos:

• Número: las variables de este tipo pueden tener como valores cualquier número(valores positivos o negativos y con o sin decimales). Por ejemplo: 2 050;23; 3,05...

• Carácter: las variables de este tipo pueden tener como valor cualquier ca-rácter alfanumérico. Por ejemplo: «A», «#»...

• Booleano: las variables de tipo booleano solo pueden tener dos valores: ver-dadero o falso.

• Cadena de caracteres: las variables de este tipo pueden tener como valorcualquier cadena de caracteres. Por ejemplo: «Hola».

En Scratch podemos definir variables en el apartado Datos.

Por ejemplo, podemos crear una variable que cuente las veces que un jugadortoca a un personaje con el cursor. Hay que ir al apartado Datos, seleccionar Va-riable nueva, darle un nombre y la asignarla al personaje.

A continuación debemos programar el objeto para que se mueva de forma aleatoriasin parar y para que cada vez que se toque aumente el valor de la variable en 1.

Los ordenadores pueden manipular grandescantidades y tipos de datos: números, carac-teres, colores, imágenes, sonidos, vídeos...,pero en definitiva, para el ordenador, todosestos datos son siempre un conjunto de 0 y 1.

Cuando hayamos creado la variable, podemos utili-zar las siguientes opciones:

Competencias científicas: C2 (act. 8)

programació_6_Maquetación 1 07/05/15 17:41 Página 164

Page 10: Programación de aplicaciones - editorialcasals.com fileProgramación de aplicaciones Competencias en construcción Una página web donde expresaros 6 156 programació_6_Maquetación

165

Los operadoresUnas de las acciones que mejor ejecutan los ordenadores son las operacionesmatemáticas. Para un ordenador es muy fácil sumar dos valores, multiplicarlos,compararlos... Cuando escribimos un programa que queremos que lleve a caboestas acciones, lo que debemos hacer es utilizar los operadores.

Los operadores son los símbolos que utilizan los programas para indicar al or-denador cómo queremos que manipule los datos (ya sean literales o bien va-riables). Los más conocidos son los operadores aritméticos (+, *, /) y los decomparación (<, >), pero a partir de estos los ordenadores también utilizan losde asignación y los lógicos.

Para cada tipo de operador es importante conocer qué tipo de datos manipula,es decir, qué datos utiliza (los operandos) y qué datos devuelve.

Los operadores aritméticos

Operan sobre 2 números, devuelven números.

Permiten efectuar las operaciones matemáticas básicas, la suma (+), la resta (–),el producto (*) y la división (/). Siempre que los utilicemos, debemos situarlosentre dos datos de tipo número.

En el caso de un programa que calcula los años que faltan para la mayoría deedad, necesitaremos restar de 18 los años del usuario. Así sabremos cuántosnos faltan.

Los operadores de comparación

Operan indistintamente con 2 números, 2 caracteres, 2 cadenas de caracteres,2 booleanos..., pero los dos operandos deben ser del mismo tipo; devuelve unbooleano.

En ocasiones también se los denomina operadores relacionales, ya que su fun-ción es determinar la relación entre dos datos, cuál es mayor, cuál es menor osi son iguales. Se utilizan principalmente en las estructuras repetitivas para sabercuándo hay que acabar, y en los condicionales.

BLOQUE 3. Programación e Internet. Unidad 6. Programación de aplicaciones

Recuerda

La prioridad de los operadores:1. - (cambio de signo), no2. * , /3. +, (restar)4. =, <>, <, <=, >, >=,5. y6. oEn caso de empate se aplica primero el ope-rador que está situado más a la izquierda.

Recuerda

También existe un operador para el resto dela división: el símbolo %.5/2 dará como resultado 2.5%2 dará como resultado 1.

Utilizamos datos literales cuando escribimos direc-tamente el valor que queremos, por ejemplo, el valor«5»:

en contraposición al uso de variables:

PRACTICA

Consideremos el operador =, el < y el >, cuyo significado ya conocéis. Creauna variable llamada “espacio” y realiza un programa en el que el personajepiense oraciones distintas en función de la cantidad de veces que pulsas labarra de espacio de tu teclado.Recuerda crear una condición antes de todo que permita que la variable “es-pacio” se incremente en 1 cada vez que pulses dicha tecla.Recuerda también que este programa no debe terminar nunca, ya que si no seacabaría el juego, por lo que deberás colocar un bucle “por siempre”.

La mayoría de los lenguajes de programacióntambién incorporan una extensión de estosoperadores para simplificar los programas:

Menor o igual <=Mayor o igual >=Diferentes <>, !=

programació_6_Maquetación 1 07/05/15 17:41 Página 165

Page 11: Programación de aplicaciones - editorialcasals.com fileProgramación de aplicaciones Competencias en construcción Una página web donde expresaros 6 156 programació_6_Maquetación

166

Los operadores de asignación

Operan con cualquier tipo; no devuelven ningún valor, sino que lo asignan a lavariable de la izquierda.

Al inicio del apartado hemos comentado las variables que nos permiten guardardatos, pero no hemos hablado de cómo les asignamos estos datos o valores.Para ello disponemos de los operadores de asignación, representados por lossímbolos := en la mayoría de los lenguajes de programación, que asignan a lavariable de la izquierda el dato de la derecha.

Por ejemplo:edad := 14nombre := «María»

En Scratch el operador de asignación no es el símbolo :=, sino la pieza «fijar a»del apartado Datos.

El siguiente programa pregunta al usuario su edad (se encuentra en el apartado Sen-sores), después guarda el valor de la respuesta en la variable edad y, finalmente,calcula los años que le faltan para ser mayor de edad y lo escribe en la pantalla.

Los operadores lógicos

Operan con booleanos, devuelven booleanos.

Sirven para relacionar dos expresiones booleanas, y normalmente se utilizanpara definir las condiciones de las estructuras alternativas y de las estructurasrepetitivas que ya hemos visto anteriormente.

El operador «y» sirve para indicar que solo cuando las dos expresiones se cumplan,el resultado también será verdadero; el operador «o» permite indicar que si cualquierade las dos expresiones se cumple, el resultado también se cumplirá.

Por ejemplo, si en una variable tenemos la edad de una persona y queremossaber si es o no estudiante de ESO, podemos expresarlo del siguiente modo:

estudianteESO := (edad > 11) y (edad < 17)

Esta instrucción se puede leer como: asignar a la variable estudianteESO si lavariable edad es superior a 11 e inferior a 17. Es decir, solo cuando las dos con-diciones sean verdaderas, el resultado será verdadero.

Las tablas de verdad resumen el comportamiento de estos operadores en fun-ción del valor de A y de B.

BLOQUE 3. Programación e Internet. Unidad 6. Programación de aplicaciones

programació_6_Maquetación 1 07/05/15 17:41 Página 166

Page 12: Programación de aplicaciones - editorialcasals.com fileProgramación de aplicaciones Competencias en construcción Una página web donde expresaros 6 156 programació_6_Maquetación

167

Tablas de verdad

El Scratch utiliza la siguiente pieza:

Sin embargo, como hemos dicho al principio, normalmente se utilizan para con-cretar las expresiones de los condicionales. Un uso más típico sería:

Si la edad es un valor de 5, la primera condición ya fallará y mostrará lo que dice el“si no”, es decir, que “No eres de la ESO”. Si la edad es 18, la segunda condiciónfallará y también dirá: “No eres de la ESO”. Y si la edad es un valor de 14, las doscondiciones serán verdaderas y dirá: “Eres un estudiante de ESO”.

Pero ¿qué sucedería si en la condición anterior pusiéramos una «o» en vez deuna «y»? Siempre dirá “Eres un estudiante de ESO”, ya que a cualquier edadse cumple que o bien es mayor de 12 o bien, menor de 16.

Finalmente, también tenemos el operador de negación, el «no». Solo consta deun operando y lo devuelve negado. Si el operando es verdadero, devuelve falso,y si es falso, devuelve verdadero.

BLOQUE 3. Programación e Internet. Unidad 6. Programación de aplicaciones

A B A y BFalso Falso FalsoFalso Verdadero FalsoVerdadero Falso FalsoVerdadero Verdadero Verdadero

A B A o BFalso Falso FalsoFalso Verdadero VerdaderoVerdadero Falso VerdaderoVerdadero Verdadero Verdadero

A No AFalso VerdaderoVerdadero Falso

actividades

9 Scratch presenta una instrucción y una variable en el apartado Sensores que per-miten formular preguntas al usuario y, después utilizar la respuesta tal y comomuestra este código. Tomándolo como muestra crea los siguientes programas:

• Pregunta un peso en gramos y responde el peso en kilogramos. • Pregunta un valor y responde si es par o impar.• Pregunta un valor y responde si es múltiplo de 5.• Pregunta por el radio de una circunferencia y responde el perímetro y el

área de esta.

10 Para aprobar una asignatura, la profesora le dice a sus alumnos que deben aprobar todos los exámenes y pre-sentar todos los trabajos. Por un lado, Diego ha suspendido un examen, pero ha entregado todo lo demás; porotro lado, Bruno no ha presentado todos los ejercicios del trimestre pero sacó notable en sus controles. ¿Apro-bará alguno de los dos la asignatura? Elabora un esquema relacionando el enunciado y la solución con una tablade verdad.

11 Isabel quiere ver la película de Avatar o la de Yo, robot. Si ambas películas están en el cine, ¿podrá ver aquello quequiere? ¿Y si solo está en cartelera una de ellas? ¿A qué tabla de verdad hacen referencia estos sucesos?

Banco de actividades: 21, 23, 24, 25

Competencias científicas: C2 (act. 11) C3 (act. 9, 10)

programació_6_Maquetación 1 07/05/15 17:41 Página 167

Page 13: Programación de aplicaciones - editorialcasals.com fileProgramación de aplicaciones Competencias en construcción Una página web donde expresaros 6 156 programació_6_Maquetación

168

Funciones Mediante Scratch podemos crear nuevos bloques que realicen algo que con-sideremos interesante y que utilizamos a menudo. Por ejemplo, si estamoscreando una aplicación que mueve al gato arriba y abajo, lo cambia de ta-maño, le cambia el disfraz..., seguramente en varios momentos del programaquerremos que el gato vuelva al centro de la pantalla, que apunte en direccióna la derecha, que vuelva a su tamaño original, etc. Para ello, deberíamos in-dicar cada vez todas estas instrucciones.Scratch, como la mayoría de los lenguajes de programación, nos permite definir fun-ciones propias, que en la nomenclatura de Scratch se denominan Bloques.Una función o bloque es un trozo de programa que: • Incluye una secuencia de instrucciones.• Tiene un nombre único.• Se puede visualizar desde cualquier lugar del programa. Cada vez que utilizamos una función o bloque, se ejecutan todas las instruc-ciones que contiene.Siguiendo con el ejemplo, podemos crear una nueva pieza denominada “vol-verAlCentro” y que, al situarla, en nuestro programa lleve a cabo todas estasacciones.

Para llevar a cabo esta función, debemos ir a la opción Más Bloques y crearuno. En nuestro ejemplo lo llamaremos «volverAlCentro» y no escogeremosninguna de las opciones que aparecen.

Una vez que hayamos definido la nueva función, aparecerá una pieza espe-cial, redondeada por la parte superior, es decir, que no podremos unirla poresta parte. A esta pieza deberemos unirle todas las instrucciones que quera-mos que ejecute la función.También nos habrá aparecido una nueva pieza que podemos utilizar en nuestrosprogramas y que, cuando se ejecute, ejecutará a su vez todas las instruccionesque hayamos situado anteriormente.

BLOQUE 3. Programación e Internet. Unidad 6. Programación de aplicaciones

programació_6_Maquetación 1 07/05/15 17:41 Página 168

Page 14: Programación de aplicaciones - editorialcasals.com fileProgramación de aplicaciones Competencias en construcción Una página web donde expresaros 6 156 programació_6_Maquetación

169

BLOQUE 3. Programación e Internet. Unidad 6. Programación de aplicaciones

4. Técnicas de depuración

Como ya hemos visto en varias ocasiones a lo largo de la unidad, la primeravez que escribimos un programa difícilmente reproducirá exactamente lo quequeremos. En ocasiones por olvido, por desconocimiento, por imprecisión enel planteamiento o por cualquier otro motivo, los resultados no son los espe-rados.

Por ello, a menudo debemos utilizar técnicas de depuración que nos permi-tan ver paso a paso lo que están realizando exactamente, y de este modopoder localizar los errores o bugs.

Siempre que programemos es importante que nos preocupemos de dispo-ner de un código claro, esmerado y ordenado. También es importante probarel código cada vez que tengamos unas cuantas instrucciones, para detectarerrores lo antes posible.

No obstante, aun siendo precavidos, si al final el programa no ejecuta lo quequeríamos, tendremos que depurarlo, es decir, investigar y analizar detalla-damente el funcionamiento del programa hasta hallar el error.

Las técnicas de depuración más utilizadas por los programadores son las si-guientes:

• Repasar mentalmente las instrucciones que hemos escrito, como sifuéramos el ordenador, para ver si realmente dicen lo que queríamosdecir. Debemos pensar que el ordenador no se equivoca, sino que somosnosotros quienes no hemos sabido expresar lo que queríamos.

• Hacer que el programa vaya mostrando en la pantalla todos los datosy variables que va utilizando y que también vaya indicando mensajes deinformación que digan por qué fragmento del código pasa («la condiciónes cierta», «he salido del bucle»...). Con el Scratch, muchas veces tam-bién es útil utilizar la pieza para detectar problemas visuales.

• Pedir ayuda a un compañero para que lea nuestro código. Solo lepodemos decir lo que queremos conseguir, y no le podemos explicarcómo lo queríamos lograr, ya que nos interesa que lea el código sin saberexactamente qué hace. Si contrastamos las dos versiones, será másfácil detectar los errores de funcionamiento.

Si bien el Scratch no dispone de depuradores, las herramientas de progra-mación más avanzadas sí que los incorporan; son programas que permitenejecutar otros programas y pausarlos en cualquier momento. Una vez pau-sados nos permiten ver los valores de sus variables e incluso ejecutar lasinstrucciones una a una. De este modo podremos ver qué sucede exacta-mente después de cada instrucción.

Aunque el término bug (‘insecto’ en inglés) ya hacíaaños que se utilizaba en entornos técnicos, a me-nudo se considera esta anotación de 1947, realizadapor la almirante Grace Murray en el dietario de unode los primeros ordenadores, como el origen de lapalabra en el entorno informático.

Los encargados pegaron en el libro de manteni-miento el insecto que había estropeado una de laspartes del ordenador.

programació_6_Maquetación 1 07/05/15 17:42 Página 169

Page 15: Programación de aplicaciones - editorialcasals.com fileProgramación de aplicaciones Competencias en construcción Una página web donde expresaros 6 156 programació_6_Maquetación

Actividad prácticaOs proponemos un juego de habilidad en el que un cohete deberá conseguir huir de la Luna antes de que lo atrapen.Programaremos tres objetos: la nave nodriza, que sobrevuela la Luna; el cohete, que está despegando y que debe-mos salvar, y los alienígenas, que se quieren quedar con nuestra tecnología.

Si no os gustan las naves, podéis diseñar un juego en el que Caperucita deba llegar a casa de su abuela esquivandoa los lobos, o un juego en el que una cantante famosa deba llegar a un helicóptero para huir de sus fans, o bien otroen el que un submarinista deba alcanzar una barca antes de que los tiburones... Las posibilidades son múltiples; es-coge tres objetos y un escenario y empieza a programar tu videojuego.

170

Paso a paso

1. Limpia tu espacio de trabajo e inserta un fondo de pantalla. En casode realizar el juego de la nave, encontrarás la imagen “moon” dentrodel tema “Espacio”.

2. Crea tu primer personaje, el cual será la nave nodriza, donde tu navedeberá llegar sin que los extraterrestres te atrapen. Busca alguna naveque te guste por Internet y recuerda, ¡es imprescindible que la imagenno tenga fondo!

3. Programa la nave para que se vaya desplazando sola hacia la izquierday sitúala en el margen superior izquierdo. Deberás añadir una estruc-tura de repetición para que se vaya moviendo. Las encontrarás en elapartado Control.

4. Ahora que la nave nodriza que nos espera ya sobrevuela la Luna, de-bemos programar el comportamiento del cohete. Empezaremoscreando el nuevo objeto; en este caso no lo dibujaremos, sino que es-cogeremos un dibujo que ya incorpora el Scratch, el cohete o “Spaces-hip”, de la categoría Transportes. Repetiremos las mismas acciones quehemos aplicado a la nave para crear el objeto del cohete y también loencogeremos.

5. Lo primero que haremos será crear un efecto de movimiento en la naverealizando un segundo dibujo, que tendrá los alerones un poco movi-dos. Después haremos que se vayan intercalando los dos dibujos; estocreará una animación con el efecto de movimiento. Para empezar, de-bemos ir a la pestaña Disfraces, borrar el Spaceship-b y después dupli-car el Spaceship-a. Una vez realizado, tendremos dos disfraces igualespara la nave.

6. Con la herramienta Reformar seleccionada, hacemos clic en alguno delos alerones y modificaremos ligeramente el trazo. El objetivo es tenerdos disfraces para la nave, muy similares pero con los alerones dife-renciados para crear el efecto de movimiento.

programació_6_Maquetación 1 07/05/15 17:42 Página 170

Page 16: Programación de aplicaciones - editorialcasals.com fileProgramación de aplicaciones Competencias en construcción Una página web donde expresaros 6 156 programació_6_Maquetación

171

7. La programación del cohete será un poco más compleja, ya que queremosconducir la nave con las flechas del teclado y que, si topa el cohete tresveces contra el alienígena (aún por crear), se acabe el juego. Deberemosutilizar una estructura de repetición limitada por una variable. Peroantes de eso, programa el cohete para que se sitúe en el centro y vayacambiando sus disfraces sin parar.

8. Para mover el cohete, utiliza una estructura condicional, que cambie losvalores de “x” y de “y” (que marcan la posición del objeto) cuando se pre-sionen las teclas de las flechas. Deberás hacerlo 4 veces, una por cadatecla. Además, programa qué sucede si el cohete llega a la nave.

9. Comprueba tu código y, si funciona todo bien, prosigue con la creacióndel alienígena, ¡nuestro último componente! Puedes utilizar la estrella demar “starfish”.

10. El alienígena deberá moverse sin parar de forma aleatoria. Por lo tanto,inicializaremos la posición, después utilizaremos una estructura repeti-tiva para que se mueva hacia delante, rebote si toca un borde y gire unpoco de forma aleatoria. En el apartado Operadores tenemos la instruc-ción que genera un «número al azar».

11. Cada vez que el alienígena y el cohete choquen, el programa deberá con-tar un impacto para que cuando este número sea mayor que dos, el juegotermine. Crea una variable para ello y, con un operador, indica que debehacer el programa hasta que los impactos sean mayores que dos.

12. Comprueba el funcionamiento del programa entero y corrige los erro-res que vayas encontrando. Si no los hallas, recurre a las técnicas de de-puración aprendidas en esta unidad.

programació_6_Maquetación 1 07/05/15 17:42 Página 171

Page 17: Programación de aplicaciones - editorialcasals.com fileProgramación de aplicaciones Competencias en construcción Una página web donde expresaros 6 156 programació_6_Maquetación

banco de actividades

12 Describe los siguientes algoritmos, es decir, escribeuna lista finita de acciones simples que te permitanrealizar la acción requerida:

a) Algoritmo para abrir tu taquilla del instituto (noindiques los códigos reales, invéntatelos).

b) Algoritmo que utilizas cuando quieres prepa-rarte un bocadillo de jamón de york en casa.

c) Algoritmo que emplea el cajero automáticocuando sacas 10 € de tu cuenta corriente.

d) Algoritmo que empleas cuando entras en tu casadesde la puerta de la calle.

e) Algoritmo que utiliza el profesor para calcular lanota si la asignatura tiene 2 exámenes, y cadauno representa el 25% de la nota, y tambiéntiene 5 prácticas, cada una de las cuales puntúaun 10%.

13 Crea mediante Scratch un programa que permitaque cada vez que hacemos clic sobre el gato, este eje-cute un pequeño «baile», cambie de color, de ta-maño... Empieza por buscar en el apartado Eventosy, después, en Apariencia.

14 Crea mediante el Scratch un programa que hagaque el gato escriba el número 7 en el escenario (tangrande y llamativo como puedas).

15 En vez de utilizar el Evento ”al presionar la ban-dera”, utiliza varias veces el Evento:

y haz que al presionar la letra inicial de cada polí-gono regular de los que hay a continuación el gatolos pinte:

a) Cuadrilátero

b) Heptágono

c) Octógono

d) Eneágono

16 Crea cuatro objetos que sean un rectángulo de color,cada uno de un color diferente. Después, haz quese escuche un sonido diferente para cada objetocuando los selecciones con el ratón.

17 Utilizando una estructura de repetición (o bucle) yla instrucción “esperar 1 segundos” del apartadoControl, haz que el gato inicie una cuenta atrásdesde el 5 hasta el 0 (utiliza una variable del apar-tado Datos).

18 Haz lo mismo que en la actividad anterior, peroahora, cuando llegue a 0, debe volver a contar hasta5 (utiliza dos estructuras de repetición).

19 Haz lo mismo que en la actividad anterior, peroahora procura que no pare nunca. Que cuente desde5 hasta 0, después hasta 5, de nuevo hasta 0... sinparar.

20 Sitúa a un gato y un ratón en el escenario. Haz queel ratón se vaya moviendo libremente. A continua-ción, utilizando una estructura condicional y el Sen-sor “distancia a”, haz que cuando el ratón pasecerca del gato este diga “Ñam”, maúlle (apartadoSonido) y se le eche encima.

21 Utilizando el Sensor que permite formular pregun-tas y la variable respuesta asociada, haz que te pre-gunte la edad y a continuación te diga cuántos añoste faltan para ser mayor de edad.

22 Busca cuatro fotos que representen las estacionesdel año, defínelas como escenario y haz que un ob-jeto vaya explicando las estaciones. Al hacer clicsobre el objeto, cambiará el fondo del escenario yaquel explicará la siguiente estación.

23 Crea un programa que se invente un número (uti-liza el operador que crea un número al azar entre 1y 10 y lo guarda en una variable); el usuario deberáintentar adivinarlo. El programa solo indicará si elusuario ha introducido un número mayor o menor,o si lo ha acertado.

Competencias científicas: C1 (act. 22, 28) C2 (act. 13, 14, 15, 16, 17, 18, 19, 20, 21, 26, 27) C3 (act. 12, 23, 24, 25)172

BLOQUE 3. Programación e Internet. Unidad 6. Programación de aplicaciones

programació_6_Maquetación 1 07/05/15 17:42 Página 172

Page 18: Programación de aplicaciones - editorialcasals.com fileProgramación de aplicaciones Competencias en construcción Una página web donde expresaros 6 156 programació_6_Maquetación

24 Si consideramos las siguientes variables:

• añoNacimiento• añoActual• cursoESOActual

podemos calcular la edad mediante la operación:

edad = añoActual – añoNacimiento

Conociendo esto, indica qué operaciones resolve-rán las siguientes preguntas:

a) ¿Qué operación indicará cuántos años me faltanpara ser mayor de edad?

b) ¿Qué operación indicará cuántos años me faltanpara acabar la ESO (suponiendo que no repito)?

c) ¿Qué operación indicará cuántos años me faltanpara jubilarme (si la jubilación es a los 65)?

d) ¿Qué operación indicará «VERDADERO» solo sisoy mayor de edad?

Con las siguientes operaciones es imprescindibleutilizar paréntesis y los operadores booleanos (y, o):

a) ¿Qué operación indicará «VERDADERO» solo siestoy cursando 3.º o 4.º de ESO?

b) ¿Qué operación indicará «FALSO» solo si estoycursando 3.º o 4.º de ESO?

c) ¿Qué operación indicará «VERDADERO» solo sime faltan menos de tres años para ser mayor deedad?

25 Crea un programa que pregunte cuántos lados debetener un polígono regular y que a continuación lopinte. Ten en cuenta que la suma de todos los girosque efectuará el objeto deberá ser de 360 grados(un triángulo, 120*3, un cuadrado, 90*4…).

26 Investiga y explica cómo podemos conseguir reali-zar las siguientes acciones con Scratch:

a) Asociar música a los personajes

b) Saber cuánto tiempo ha pasado

c) Saber la fecha actual

d) Mover un personaje hasta la posición del cursor

e) Agrandar un disfraz automáticamente en mediode un programa

27 Crea un bloque llamado “mover” que realice las si-guientes opciones y después inserta la función enun programa:

¿Qué sucede? ¿Qué ventajas presenta trabajar confunciones?

28 Explica con tus propias palabras el funciona-miento y la secuencia de estos programas:

Competencias científicas: C1 (act. 28) C2 (act. 26, 27) C3 (act. 24, 25) 173

BLOQUE 3. Programación e Internet. Unidad 6. Programación de aplicaciones

programació_6_Maquetación 1 07/05/15 17:42 Página 173

Page 19: Programación de aplicaciones - editorialcasals.com fileProgramación de aplicaciones Competencias en construcción Una página web donde expresaros 6 156 programació_6_Maquetación

Pasado, presente y futuro

Los ordenadores que ocupaban habitacionesenteras y servían casi en exclusiva para efec-tuar cálculos matemáticos para los militares,científicos y las grandes corporaciones, hoyen día ya caben en la palma de la mano yestán al alcance de todos.

En todo el mundo hay millones de programasque recogen miles de datos sobre nosotrosen ordenadores que nadie sabe muy biendónde están: móviles que guardan constan-temente la ubicación y nos avisan de si hayretenciones para que no lleguemos tarde al

trabajo, coches que frenan solos si se acercaalgún peatón y que también nos avisancuando nos acercamos a un desvío, televi-sores que saben en todo momento qué pro-gramas estamos viendo, farolas de la calleque solo se encienden si pasamos cerca,contadores de electricidad que informan a lacompañía de cuándo y cuánto consumimos...También hay páginas de Internet que lo quie-ren aprender todo de nosotros: las que re-producen vídeos recuerdan lo que hemosvisto y nos sugieren otros que probablementenos gustarán, otras páginas saben quehemos buscado pantalones y nos ponen todoel día anuncios de pantalones, otras sabenque hoy es nuestro cumpleaños y solo nosmuestran noticias simpáticas y nos escondenlas que nos harán sentir mal... Cada vez hay más dispositivos wearablesque, con una apariencia clásica, esconden latecnología más moderna: gafas que grabanlo que miramos y nos marcan el camino, re-lojes que cuentan las pulsaciones y publicanen Internet los kilómetros que hemos reco-

rrido, bonitas pulseras que guardan nuestrasfotos y nos sirven de entrada en los espec-táculos, balanzas que recuerdan nuestropeso y nos envían al móvil el menú más ade-cuado para cada día... ¿Cómo será nuestro futuro? ¿Los orde-nadores serán compañeros de viaje o con-troladores?

¿CONECTADOS O CONTROLADOS?

El origen del ordenador es muy reciente. Todavía no hace ni cien años queapareció el Z3 alemán y el ENIAC norteamericano. A menudo se consideraúnicamente al ENIAC como la primera máquina que era realmente un or-denador de propósito general, ya que el Z3, aun teniendo unas funcionesmuy similares, constaba de partes electromecánicas. El ENIAC entró enfuncionamiento en el año 1946 por decisión del Ejército de los EE. UU. y sufunción principal debía ser calcular trayectorias balísticas para la artillería dela Segunda Guerra Mundial. Fue creado por dos ingenieros y programadopor un equipo de seis mujeres que establecieron las bases de muchos delos lenguajes de programación modernos.

LOS PRIMEROS ORDENADORES

174

¿Es útil tener una pulsera, anillo, pen-diente o camiseta que controle tu tem-peratura corporal, tus pulsaciones yotros datos biométricos para despuésenviarlas a tu móvil y que una aplica-ción de este las acabe guardando enalgún ordenador de Internet?

¿Crees que podría ser problemáticoque alguien conociera todos estosdatos? ¿Qué mal uso se podría hacerde ellos?

Pese a no ser exactamente ordenadores de propósito general, durante la Segunda Guerra Mundial, en BletchleyPark, Inglaterra, unas máquinas permitían a los aliados descifrar mensajes de la Alemania nazi. ¿Cómo se lla-maban estas máquinas y quiénes fueron los científicos que las construyeron?

Ada Lovelace y Charles Babbage trabajaron en la construcción de una máquina de la que surgieron algunas delas ideas de los ordenadores modernos. ¿Qué nombre recibía esta máquina y para qué servía? ¿Se llegó a cons-truir? ¿Por qué?

programació_6_Maquetación 1 07/05/15 17:42 Página 174

Page 20: Programación de aplicaciones - editorialcasals.com fileProgramación de aplicaciones Competencias en construcción Una página web donde expresaros 6 156 programació_6_Maquetación

La mayoría de los principales lenguajes de programación están en el mercado desdehace más de quince años, pero todos han evolucionado tanto que casi no tienennada que ver con sus versiones originales. Los lenguajes que están más de modaactualmente son los que permiten programar aplicaciones para móviles (Java, Ob-jective-C y el nuevo Swift) y aplicaciones web (principalmente, Javascript y PHP).Lamentablemente, todos ellos todavía se han de programar escribiendo todas y cadauna de las líneas de código, y un pequeño error en una letra puede echar por tierrahoras de trabajo. Por suerte, algunos tienen editores muy sofisticados que evitan lamayor parte de los errores.Los programadores, cuando empiezan a aprender algún lenguaje de programación,siempre crean primero el programa que escribe «Hello world». A continuación lo te-néis en distintos lenguajes, para que apreciéis sus diferencias.

LOS LENGUAJES DE PROGRAMACIÓN ACTUALES

Todos los lenguajes que hemosvisto siguen el paradigma impera-tivo, es decir, las instrucciones in-dican exactamente qué ha de hacerel ordenador. ¿Qué otros paradig-mas hay? ¿En qué se diferencian?

Si quieres programar aplicacionespara teléfonos Android, ¿qué len-guaje deberás estudiar? ¿Y paralos iPhone? ¿Y para los WindowsPhone? ¿Y para las BlackBerry?

175

C int main(void){puts("Hello, world!"); }

Java public class HelloWorld {public static void main(String[] args)System.out.println ("Hello, world!")

}}

Objective-C #import <stdio.h>#import <Foundation/Foundation.h>int main(void){NSLog(@"Hello, world!\n");return 0;

}

Javascript document.write('Hello, world!');

PHP <?php echo 'Hello, world!'; ?>

Scratch

programació_6_Maquetación 1 07/05/15 17:42 Página 175