1 00:00:00,820 --> 00:00:04,280 Hola, muy buenas. Vamos a repasar algunos conceptos de programación 2 00:00:04,280 --> 00:00:11,640 realizando un programita muy sencillo con el entorno de programación Scratch. 3 00:00:11,720 --> 00:00:15,279 Scratch ya sabéis que es un lenguaje de programación por bloque muy sencillito 4 00:00:15,279 --> 00:00:21,500 y vamos a partir de un algoritmo que tengo representado tanto en pseudolenguaje o pseudocódigo 5 00:00:21,500 --> 00:00:27,179 como en diagrama de flujo para realizar el programa. 6 00:00:27,179 --> 00:00:35,079 Este programa me dibuja una figura geométrica regular con el número de lados que el usuario del programa indique 7 00:00:35,079 --> 00:00:40,000 Cualquiera de las dos representaciones son válidas para realizar el programa 8 00:00:40,000 --> 00:00:44,679 Yo lo voy a hacer utilizando el pseudolenguaje o pseudocódigo 9 00:00:44,679 --> 00:00:53,619 Que no es otra cosa nada más que una serie de pasos esquemáticos sencillitos que voy a ir haciendo con mi programa 10 00:00:53,619 --> 00:01:07,680 Bueno, como sabemos, en Scratch, para empezar un programa, podemos utilizar esta sección de eventos, este por ejemplo, al presionar la banderita. 11 00:01:09,420 --> 00:01:22,140 Si yo vuelvo a mi algoritmo, veo que lo primero que hago es pedirle al usuario que indique el número de lados de la figura y almacenar el dato que él me dé, el número de lados, en una variable que vamos a llamar lados. 12 00:01:22,140 --> 00:01:38,840 Os recuerdo que una variable es una zona de memoria de un ordenador a la que identificamos mediante un nombre, en este caso va a tener el nombre de lados, donde vamos a ir guardando información que luego podemos recuperar en cualquier otro momento cuando estamos haciendo un programa. 13 00:01:38,840 --> 00:01:49,060 Bueno, ¿cómo podemos hacer eso en Scrap? Pues ya vimos que si me voy a sensores, hago una pregunta, en este caso tendré que preguntar por el número de la 2 14 00:01:49,060 --> 00:01:57,269 Eso, la información que aparece luego en pantalla es la que yo escribo aquí, ¿vale? 15 00:02:00,310 --> 00:02:08,669 Y cuando el usuario conteste, se va a almacenar la respuesta en esta variable, esta variable es un poco especial, puesto que ya viene hecha, que no va a ser lo normal, ¿vale? 16 00:02:08,669 --> 00:02:19,789 de hecho yo puedo mostrarla en pantalla pulsando simplemente en este cuadradito, vemos que tiene un valor actual de 8 porque seguramente la última vez que utilice el programa 17 00:02:19,789 --> 00:02:31,110 pues contendría el valor de 8, si yo ejecuto este programa hasta lo que llevo hasta ahora y pongo un valor de 4 y hago intro, vemos que el programa se acaba 18 00:02:31,110 --> 00:02:34,710 y la variable de respuesta pasa a valer 4, ¿vale? 19 00:02:35,550 --> 00:02:41,530 Bueno, fijaros, pero nosotros vamos a almacenar ese dato en una variable que vamos a llamar lados. 20 00:02:42,270 --> 00:02:48,930 En Scratch, para crearnos una variable, nos vamos a la sección de datos y pinchamos aquí en crear una variable. 21 00:02:49,189 --> 00:02:52,150 Ahora mismo no hay ninguna variable aquí porque no hemos creado ninguna. 22 00:02:52,669 --> 00:02:56,689 En el momento que creemos una, va a ir apareciendo aquí. 23 00:02:57,370 --> 00:03:01,009 Le damos el nombre de lado, le decimos que para todos los objetos y le damos a OK, ¿vale? 24 00:03:01,590 --> 00:03:11,569 Inicialmente esa variable vale cero y lo que vamos a hacer es que vamos a fijar el contenido de esa variable a lo que valga la variable respuesta. 25 00:03:12,909 --> 00:03:22,930 Para mostrar o quitar de pantalla del usuario, recuerdo que esta zona de aquí es la que ve el usuario de la aplicación, podemos darle a este cuadradito. 26 00:03:23,469 --> 00:03:26,610 Yo voy a dejar la variable helados y voy a esconder la variable respuesta. 27 00:03:26,610 --> 00:03:39,969 Bueno, vamos a probarlo a ver si funciona. Yo le doy a la banderita, pongo el número 5, le doy a este botoncito o pulso la tecla intro y vemos como efectivamente la variable lados pasa a valer 5. 28 00:03:42,099 --> 00:03:53,039 Seguimos con nuestro algoritmo. A continuación vamos a asignar a una variable que se llama ángulo el resultado de dividir 360 entre lo que valga la variable lados. 29 00:03:53,039 --> 00:03:57,659 aunque ángulo es una palabra que en castellano tiene tilde 30 00:03:57,659 --> 00:04:02,539 cuando se programa es habitual que las variables no tengan tildes 31 00:04:02,539 --> 00:04:05,719 en este caso en Scratch si me deja poner tildes 32 00:04:05,719 --> 00:04:09,300 en otros lenguajes de programación veremos que no es posible ponerlas 33 00:04:09,300 --> 00:04:11,500 yo la voy a poner a posta sin tilde 34 00:04:11,500 --> 00:04:12,680 ángulo 35 00:04:12,680 --> 00:04:18,160 creamos primero la variable y ahora fijamos el valor de esta variable 36 00:04:18,160 --> 00:04:26,899 al resultado de dividir 360 entre el contenido de la variable lados. 37 00:04:28,180 --> 00:04:32,779 ¿Para hacer la división? Pues aquí en la sección de operadores, la operación de división. 38 00:04:33,459 --> 00:04:42,540 En el primer circulito introducimos el valor 360 y en el otro circulito introducimos la variable lados. 39 00:04:44,560 --> 00:04:47,579 Vamos a ver si realmente esto funciona. 40 00:04:47,579 --> 00:05:02,040 Por ejemplo, si introducimos un valor de 3 para dibujar un triángulo, vemos como efectivamente la variable ángulo pasa a valer 120, que es el resultado de dividir 360 entre 3. 41 00:05:02,720 --> 00:05:03,800 Seguimos con nuestro algoritmo. 42 00:05:04,899 --> 00:05:10,600 A continuación vemos que tenemos una variable que se llama longitud lado y le vamos a asignar el valor 54. 43 00:05:10,600 --> 00:05:17,459 Entonces venimos a nuestro programita, nos creamos una variable nueva que se llama longitud lado 44 00:05:17,459 --> 00:05:23,220 Y a continuación le fijamos el valor de 54 45 00:05:23,220 --> 00:05:30,180 Por cierto, importante, pulsando aquí yo selecciono la variable a la que quiero fijar el valor 46 00:05:30,180 --> 00:05:35,639 Por defecto me ha salido bien, pero si no saliera bien hay que seleccionar la variable adecuada 47 00:05:35,639 --> 00:05:39,519 Fijaros como la primera es lado, la segunda ángulo, la tercera longitud lado 48 00:05:39,519 --> 00:05:42,699 Seguimos con nuestro programita 49 00:05:42,699 --> 00:05:47,399 A continuación tenemos un bucle 50 00:05:47,399 --> 00:05:49,000 Fijaros, estas tres opciones de aquí 51 00:05:49,000 --> 00:05:50,759 Mover, girar y lados 52 00:05:50,759 --> 00:05:53,699 Se pueden repetir más de una vez 53 00:05:53,699 --> 00:05:55,300 Están dentro de un bucle 54 00:05:55,300 --> 00:06:00,079 Así que en Scratch esto lo hacíamos dentro de la sección control 55 00:06:00,079 --> 00:06:02,860 Tenemos que buscar un bucle 56 00:06:02,860 --> 00:06:05,939 Que nos permita salir con una condición 57 00:06:05,939 --> 00:06:07,879 Fijaros, aquí esto se va a estar repitiendo 58 00:06:07,879 --> 00:06:09,439 Hasta que la 2 valga 0 59 00:06:09,439 --> 00:06:22,720 ¿Vale? Hasta que la variable lados valga cero. Yo voy a utilizar este bucle de aquí, repetir hasta que, pues aquí, en esta forma, en este hueco que tengo, voy a tener que poner la condición. 60 00:06:23,379 --> 00:06:34,899 Una condición de igual, ¿no? En el primer cuadradito pondré que la variable lados, ¿vale? Y en el segundo, valga cero. 61 00:06:34,899 --> 00:06:44,579 Es decir, todo lo que yo ponga dentro de este bucle se va a estar repitiendo hasta que la variable lados valga cero. Esto es muy importante en el mundo de la programación. 62 00:06:45,319 --> 00:06:52,300 Vamos a utilizar variables para salir o no salir de un bucle, para controlar el flujo del programa. 63 00:06:53,220 --> 00:07:00,800 Vamos a ver qué tres opciones aparecen dentro del bucle. La primera sería mover lo que valga la variable longitud lado. 64 00:07:00,800 --> 00:07:10,040 Así que en Scratch, iríamos a movimiento, movemos, pero en lugar de poner 10 pasos, tendremos que poner dentro la variable longitud de dados. 65 00:07:11,100 --> 00:07:25,000 A continuación, tendríamos que poner esta función, que es girar ángulo, así que dentro del bloque de movimiento, ponemos girar a la derecha, por ejemplo, 66 00:07:25,000 --> 00:07:31,879 y en lugar de 15 grados, pues el ángulo que nos calculamos anteriormente, y que tenemos en la variable que se llama igual. 67 00:07:33,379 --> 00:07:41,579 Y a continuación tendríamos que la variable la2 pasa a valer lo que en este momento valga la variable la2 menos 1, 68 00:07:41,660 --> 00:07:47,620 es decir, le restamos 1 a la variable la2. Así que esto en Scrap lo podemos hacer de varias formas, 69 00:07:47,620 --> 00:07:54,000 la forma más sencilla es utilizar esta función de aquí, cambiar la variable la2, 70 00:07:54,000 --> 00:07:56,379 Fijaros como en este caso tengo que seleccionarla 71 00:07:56,379 --> 00:07:57,300 Por 72 00:07:57,300 --> 00:08:00,019 En lugar de 1 vamos a poner menos 1 73 00:08:00,019 --> 00:08:02,160 Fijaros, la función cambiar 74 00:08:02,160 --> 00:08:03,860 Lo que hace realmente es 75 00:08:03,860 --> 00:08:06,600 Añadir el valor que yo tenga aquí 76 00:08:06,600 --> 00:08:07,500 En este circulito 77 00:08:07,500 --> 00:08:11,000 A la variable que tenga seleccionada 78 00:08:11,000 --> 00:08:12,639 Es decir, si yo tengo aquí un 1 79 00:08:12,639 --> 00:08:13,939 Lo que haría sería sumar 1 80 00:08:13,939 --> 00:08:16,339 Para restarlo lo que hago es poner un menos 1 81 00:08:16,339 --> 00:08:18,740 Bueno y con esto se ha acabado el programa 82 00:08:18,740 --> 00:08:19,439 Ya no tengo más 83 00:08:19,439 --> 00:08:22,019 Si el algoritmo está bien hecho 84 00:08:22,019 --> 00:08:23,819 Si yo no me he equivocado nada a la hora de hacer el programa 85 00:08:23,819 --> 00:08:27,540 esto debería dibujar una figura geométrica regular. 86 00:08:27,980 --> 00:08:28,620 Vamos a probarlo. 87 00:08:29,620 --> 00:08:32,899 Yo le doy a la banderita, le pongo un valor 5, por ejemplo, 88 00:08:34,159 --> 00:08:35,539 y no ha pintado nada. 89 00:08:37,039 --> 00:08:40,240 Veo que el gato se ha movido, pero yo no veo ninguna figura geométrica. 90 00:08:40,399 --> 00:08:40,639 ¿Por qué? 91 00:08:41,500 --> 00:08:45,320 Fijaros, cuando se hace un algoritmo, normalmente se pone la parte más difícil. 92 00:08:45,320 --> 00:08:50,100 Se representa la serie de pasos que es más difícil de ver. 93 00:08:50,100 --> 00:08:54,019 Pero no se pone todos los pasos que lleva un programa 94 00:08:54,019 --> 00:08:55,500 O no se suele poner, por lo menos 95 00:08:55,500 --> 00:08:58,100 Un programador de Scratch 96 00:08:58,100 --> 00:09:00,639 Que tenga cierta experiencia 97 00:09:00,639 --> 00:09:03,039 Sabrá que si quiere dibujar algo 98 00:09:03,039 --> 00:09:05,500 Con un programa de Scratch 99 00:09:05,500 --> 00:09:08,059 Tiene que mover un objeto 100 00:09:08,059 --> 00:09:09,600 Pero antes de moverlo 101 00:09:09,600 --> 00:09:11,059 Debe bajar el lápiz 102 00:09:11,059 --> 00:09:13,059 Yo lo voy a hacer aquí 103 00:09:13,059 --> 00:09:15,960 Si yo ahora pongo esa función de bajar el lápiz aquí 104 00:09:15,960 --> 00:09:18,080 Antes de mover 105 00:09:18,080 --> 00:09:21,360 por donde se mueva el gato se va a dibujar 106 00:09:21,360 --> 00:09:23,399 vamos a probarlo, vamos a poner igual que antes un 5 107 00:09:23,399 --> 00:09:27,019 vamos a darle a intro y efectivamente aquí me ha dibujado un pentágono 108 00:09:27,019 --> 00:09:28,559 que era lo que cabría esperar 109 00:09:28,559 --> 00:09:31,139 bueno, podemos añadir otros detalles 110 00:09:31,139 --> 00:09:38,179 como por ejemplo que automáticamente cuando termine el programa 111 00:09:38,179 --> 00:09:40,600 el gato se desplace a una posición, por ejemplo a esta de aquí 112 00:09:40,600 --> 00:09:44,039 para que podamos ver la figura sin ningún problema 113 00:09:44,039 --> 00:09:46,120 ¿cómo hago eso? 114 00:09:46,120 --> 00:09:59,980 Pues primero subiré el lápiz porque si no este último desplazamiento me dibujará una línea hasta esta posición y a continuación le diré que se vaya a esa posición, ¿vale? Automáticamente me coge las coordenadas de la posición del gato, ¿vale? 115 00:09:59,980 --> 00:10:16,480 También voy a hacer alguna otra cosa. Cuando yo inicio el programa voy a decirle que originalmente esté el gato por esta zona de aquí, ¿vale? Así que diré, lo primero de todo, que se vaya a esa posición, ¿vale? Para que me empiece a dibujar en esta parte de la pantalla. 116 00:10:16,480 --> 00:10:22,399 Si me empieza a dibujar en esta esquinita no tendría lienzo y me lo pintaría mal, ¿vale? 117 00:10:22,480 --> 00:10:30,360 Vamos a probarlo. Por ejemplo, vamos a ponerle un hexágono, seis lados, y efectivamente vemos que ha dibujado el hexágono, 118 00:10:30,460 --> 00:10:34,840 se ha ido a la esquinita para que no tengamos ningún problema a la hora de verlo. 119 00:10:35,659 --> 00:10:45,159 Si yo quiero borrar la figura anterior antes de dibujar otra nueva, pues iría a lápiz, borrar todo el contenido, 120 00:10:45,159 --> 00:10:57,259 lo voy a hacer al principio de todo y de esa manera cuando yo le ponga un valor, por ejemplo el 8, veo que me dibuja la figura geométrica y se va a la posición de la esquinita 121 00:10:57,259 --> 00:11:04,100 para que no me moleste a la hora de verlo. Y con estos detalles ya tendríamos acabado nuestro programa. Bueno, eso es todo por ahora.