1 00:00:02,540 --> 00:00:06,759 Bueno, pues hola a todos. Vamos a empezar aquí con la actividad 5 de PESAINT. 2 00:00:06,900 --> 00:00:12,859 Esta actividad trata de que aprendamos a manejar algunos de los operadores matemáticos que se pueden usar con PESAINT. 3 00:00:13,740 --> 00:00:17,739 Tenéis aquí una lista de operadores matemáticos y de funciones. 4 00:00:18,859 --> 00:00:25,859 Y aquí he preparado un programita, que es vuestro primer ejercicio, en el que, vamos a hacerlo un poco más grande, 5 00:00:26,519 --> 00:00:30,820 se trata de repartir piruletas. Las piruletas no las vamos a repartir en trocitos, 6 00:00:30,820 --> 00:00:40,659 Así que lo que queremos es que nos devuelva un valor entero de a cuántas piruletas tocamos cada persona y que nos diga cuántas piruletas sobran. 7 00:00:41,179 --> 00:00:48,159 Entonces, fijaros que hemos definido dos variables, piruletas y personas. Las dos las hemos definido como enteros. 8 00:00:48,159 --> 00:01:03,679 y por pantalla se nos pregunta cuántas piruletas tenemos, también se nos pregunta cuántos somos y esos datos se entregan por pantalla. 9 00:01:03,920 --> 00:01:07,079 Por pantalla se entregan piruletas y por pantalla se entregan personas. 10 00:01:07,700 --> 00:01:12,340 Una vez que sabemos eso, se trata de dividir las piruletas entre las personas para saber a cuántas tocamos. 11 00:01:12,340 --> 00:01:28,540 Pero para que nos devuelva un número entero tenemos que poner trunk, que es la función delante de la operación. De esa manera el resultado que nos dará será solo el entero, porque trunk es una orden que lo que hace es eliminar los decimales del número que venga a continuación. 12 00:01:28,540 --> 00:01:32,200 eliminarlos, no redondea, los elimina 13 00:01:32,200 --> 00:01:33,659 y luego 14 00:01:33,659 --> 00:01:37,760 utilizando la operación mod 15 00:01:37,760 --> 00:01:41,159 vamos a obtener el resto de las piruletas 16 00:01:41,159 --> 00:01:43,120 vamos a ver cómo funciona el programa 17 00:01:43,120 --> 00:01:47,120 nos pregunta cuántas piruletas tienes 18 00:01:47,120 --> 00:01:49,900 pues vamos a decirle que tenemos 19 piruletas 19 00:01:49,900 --> 00:01:52,060 ¿cuántos somos? somos 20 00:01:52,060 --> 00:01:55,500 13, pues vamos a tocar a una piruleta 21 00:01:55,500 --> 00:02:01,719 y sobran 6. Vamos a probar con otros números. Por ejemplo, tenemos 200 piruletas, ¿vale? 22 00:02:02,280 --> 00:02:08,539 Y somos 33. Pues tocamos a 6 piruletas cada uno y sobran 2, ¿vale? 23 00:02:09,039 --> 00:02:12,479 Bueno, pues esto es lo que quiero que hagáis en primer lugar, ¿no? 24 00:02:13,060 --> 00:02:18,560 Que hagáis un programa semejante a este, que sirva para repartir cosas, no necesariamente piruletas, 25 00:02:18,560 --> 00:02:24,539 y que nos dé como resultado un número entero y nos diga cuánto sobra. 26 00:02:28,199 --> 00:02:35,020 Otra función importante que nos puede venir bien de las funciones matemáticas es una función que redondea. 27 00:02:35,080 --> 00:02:48,280 Redondear no es lo mismo que truncar, puesto que cuando redondea sí que aproxima el entero al mayor o el superior dependiendo de cuáles sean los decimales. 28 00:02:48,280 --> 00:02:59,159 Vamos a hacer aquí un ejemplo. Bueno, como podéis ver, he hecho un programa ya muy sencillo. En el primero voy a escribir 5,426 y en el segundo voy a escribir el redondeo de 5,5. 29 00:02:59,240 --> 00:03:12,719 En este caso me tiene que dar un 5 y en este caso tendría que dar un 6. Vamos a verlo. Y efectivamente 5 y 6. O sea que aquí sí que veis que hace la función de redondear como os han enseñado en la clase de matemáticas. 30 00:03:12,719 --> 00:03:19,599 Otra función interesante es una que nos proporciona números aleatorios, o sea, números al azar 31 00:03:19,599 --> 00:03:28,860 He escrito dos funciones diferentes que hay, azar2 me daría un número aleatorio entre 0 y 1 32 00:03:28,860 --> 00:03:34,879 Es decir, entre el número inicial, entre el 0, y 1 menos el número marcado aquí 33 00:03:34,879 --> 00:03:41,860 Si aquí pusiera 2000, me daría un número al azar entre 0 y 1999 34 00:03:41,860 --> 00:03:49,599 Mientras que aleatorio nos da un número entre el primero y el último que ya hemos puesto aquí 35 00:03:49,599 --> 00:03:51,219 Vamos a ver cómo funciona 36 00:03:51,219 --> 00:03:56,759 En el primer caso me da 1590, un número al azar completamente 37 00:03:56,759 --> 00:03:57,860 En el segundo me da 11 38 00:03:57,860 --> 00:04:03,000 Si reinicio, y lo voy dando a reiniciar para ejecutar este programa muchas veces 39 00:04:03,000 --> 00:04:06,199 Os dais cuenta que aquí abajo solo me aparece el 10 o el 11 40 00:04:06,199 --> 00:04:08,599 Vamos a cambiarlo a como lo tenía al principio 41 00:04:08,599 --> 00:04:30,730 Y veremos que aquí me da números 0 o 1 y aquí solo 10 y 11. Vamos a hacerlo. Es más aburrido porque hay muchas veces que no cambia. Pero ya veis que arriba solo me da entre 0 y 1, mientras que abajo solo me da 10 u 11. 42 00:04:30,730 --> 00:04:33,389 ¿Vale? Se puede usar cualquiera de los dos 43 00:04:33,389 --> 00:04:35,430 Pero sabiendo bien que el 2 por ejemplo 44 00:04:35,430 --> 00:04:36,889 Aquí nunca va a salir, solo va a salir el 0 45 00:04:36,889 --> 00:04:39,550 Y el 1, si en vez del 2 aquí pongo 46 00:04:39,550 --> 00:04:41,509 Un 10, pues el número 47 00:04:41,509 --> 00:04:43,250 Aleatorio que va a salir va a ser entre 48 00:04:43,250 --> 00:04:45,149 0 y 9, nunca me saldrá el 10 49 00:04:45,149 --> 00:04:47,129 ¿Lo veis? 50 00:04:47,350 --> 00:04:49,290 Abajo sí porque es un número aleatorio 51 00:04:49,290 --> 00:04:50,949 ¿Vale? Entre 10 y 11 52 00:04:50,949 --> 00:04:53,310 Pero arriba nunca me saldrá el 10 53 00:04:53,310 --> 00:04:54,430 Si me puede salir el 0 54 00:04:54,430 --> 00:04:56,550 Vas a ver cuando 55 00:04:56,550 --> 00:04:59,329 ¿Vale? Bueno pues 56 00:04:59,329 --> 00:05:06,170 con esto que os acabo de contar sí que os voy a pedir que hagáis un reto bueno pues aquí tenemos 57 00:05:06,170 --> 00:05:13,670 el reto que os propongo que es que es un programa que simule un juego de cara o cruz entonces fijaros 58 00:05:13,670 --> 00:05:27,149 aquí tenéis el resultado del programa y bueno pues si pulso 1 me tiene que pedir el dato si 59 00:05:27,149 --> 00:05:28,670 Pulsurnos que estoy eligiendo cara 60 00:05:28,670 --> 00:05:29,769 Uno 61 00:05:29,769 --> 00:05:32,350 Lo siento, he perdido 62 00:05:32,350 --> 00:05:36,490 Y si elijo uno otra vez 63 00:05:36,490 --> 00:05:38,170 Vuelvo a perder 64 00:05:38,170 --> 00:05:40,850 Y si elijo uno otra vez 65 00:05:40,850 --> 00:05:42,250 He ganado 66 00:05:42,250 --> 00:05:48,829 De esto se trata, a ver si sois capaces vosotros solos de hacer este programa 67 00:05:48,829 --> 00:05:52,550 Lo que sí que tendrás que recordar para hacer este reto 68 00:05:52,550 --> 00:05:56,209 Es que habrá que utilizar una estructura de programación condicional 69 00:05:56,209 --> 00:06:02,410 y que tendrás que guardar la entrada, el dato este que entra, en una variable, probablemente, ¿no? 70 00:06:02,589 --> 00:06:05,709 Una variable de número entero. ¿De acuerdo? 71 00:06:07,230 --> 00:06:14,470 Vamos a ver ahora una serie de funciones que se pueden utilizar para manejar cadenas de caracteres. 72 00:06:14,529 --> 00:06:18,170 Vamos a empezar por esta primera longitud. Bueno, vamos a ir viendo todas estas que vienen aquí. 73 00:06:19,029 --> 00:06:20,970 Vamos a ir viendo esta primera longitud. 74 00:06:20,970 --> 00:06:27,290 si la hacemos correr, lo que nos va a escribir como salida va a ser el número de caracteres que tenga la cadena. 75 00:06:28,870 --> 00:06:31,009 En este caso, 32 caracteres. 76 00:06:31,629 --> 00:06:37,930 Vamos a ver cómo, si añado, por ejemplo, un espacio antes de las últimas comillas, 77 00:06:38,290 --> 00:06:40,649 dos espacios añadidos, ahora tendría que darme 34. 78 00:06:42,470 --> 00:06:43,769 Efectivamente, 34. 79 00:06:44,129 --> 00:06:47,170 O sea, que lo que mide es todos los caracteres, incluidos los huecos. 80 00:06:47,170 --> 00:07:00,230 Tenemos la función subcadena, lo que nos da es la cadena que queda desde esta posición que hayamos marcado como inicial hasta la posición que hayamos marcado como final. 81 00:07:00,769 --> 00:07:09,610 Hay que tener en cuenta que el primer carácter empieza a contabilizar con el número 0, o sea que la S aquí sería el 0, 0 la S, 1 la U, 2 la P, 82 00:07:09,610 --> 00:07:28,350 Así que la P sería la primera letra que escribiría de la cadena y luego va hasta la posición, aquí he puesto 3, voy a poner la posición 6 porque si no está muy cerca, hasta la posición 6, que sería la P es la 2, 3, 4, 5, 6, la A, ¿vale? 83 00:07:28,350 --> 00:07:44,189 Bueno, pues entonces corremos el programa y perca, o sea que nos ha dado justo desde la posición 2 hasta la posición 6, teniendo en cuenta, ya os digo, que la S ocupa la posición 0. 84 00:07:44,189 --> 00:08:03,949 Bueno, pues concatenar sirve para unir dos cadenas, ¿vale? Aquí lo que he hecho yo ha sido crear una variable de texto, como carácter, ¿ves? Cosa, que es una variable tipo carácter, y meter dentro de esa variable lo que sale de la operación subcadena supercalifragilístico 26, ¿vale? 85 00:08:03,949 --> 00:08:24,850 Y entonces cuando concatenamos se van a unir dos cadenas, la cadena esto es una con la cadena cosa, entonces si hacemos correr el programa pues sale la cadena esto es una perca, una perca porque perca es lo que corresponde o lo que hay dentro de la variable cosa. 86 00:08:24,850 --> 00:08:43,149 ¿Vale? También se podría poner simplemente una cadena, por ejemplo, si escribo aquí la palabra perca, bueno, vamos a escribir otra cosa diferente, casa, pues ahora la salida será esto es una casa, esto es una casa, ¿vale? 87 00:08:43,149 --> 00:08:56,529 Si intento introducir tres cadenas dentro de la orden concatenar, no me deja, dice que la cantidad de argumentos es incorrecta, ¿vale? O sea que solo se pueden sumar dos cadenas con esta operación. 88 00:08:56,529 --> 00:09:14,889 Bien, las órdenes mayúsculas y minúsculas se pueden cambiar de minúsculas a mayúsculas o de mayúsculas a minúsculas según el caso. Si hacemos correr el programa, vemos que Pepe, que estaba en minúsculas, lo ha escrito en mayúsculas y Juan, que estaba en mayúsculas, lo ha escrito en minúsculas. 89 00:09:14,889 --> 00:09:18,590 para terminar con las funciones de cadena 90 00:09:18,590 --> 00:09:21,970 vamos a ver como convertir a número transforma a una cadena 91 00:09:21,970 --> 00:09:24,570 en la que solo haya números en números 92 00:09:24,570 --> 00:09:28,309 y convertir a texto transforma a una cadena de números 93 00:09:28,309 --> 00:09:30,970 un número lo transforma en una cadena de texto 94 00:09:30,970 --> 00:09:34,509 aunque esto cuando corremos el programa no lo diferenciamos 95 00:09:34,509 --> 00:09:37,049 lo cierto es que con este número de arriba 96 00:09:37,049 --> 00:09:38,629 ahora se podría operar 97 00:09:38,629 --> 00:09:41,730 mientras que con el número de abajo no se puede operar matemáticamente 98 00:09:41,730 --> 00:09:43,629 porque se ha convertido en una cadena de texto 99 00:09:43,629 --> 00:09:47,710 Bueno, pues como reto tenéis que hacer lo siguiente 100 00:09:47,710 --> 00:09:51,470 No es fácil, para vosotros no va a ser fácil 101 00:09:51,470 --> 00:09:56,129 Un programa en el que yo escribo una palabra 102 00:09:56,129 --> 00:09:58,129 Por ejemplo, yo que sé, murciélago 103 00:09:58,129 --> 00:10:00,830 Y el programa me tiene que devolver la misma palabra 104 00:10:00,830 --> 00:10:05,230 Pero con la primera y la última letra escritas en mayúsculas 105 00:10:05,230 --> 00:10:07,210 ¿Vale? Eso es lo que tiene que hacer el programa 106 00:10:07,210 --> 00:10:11,289 Para daros una pista os voy a dejar ver el diagrama de flujo que tengo aquí 107 00:10:11,289 --> 00:10:13,529 Lo voy a hacer un poquito más grande para que se vea mejor 108 00:10:13,529 --> 00:10:18,490 veis todo lo que he hecho 109 00:10:18,490 --> 00:10:21,730 y vosotros tenéis que escribir el programa 110 00:10:21,730 --> 00:10:25,669 intentad entender lo que estáis haciendo 111 00:10:25,669 --> 00:10:29,049 primero definimos una serie de variables 112 00:10:29,049 --> 00:10:31,029 donde almacenamos información que nos interesa 113 00:10:31,029 --> 00:10:32,210 y luego operamos con ellas 114 00:10:32,210 --> 00:10:36,809 la cosa no tiene demasiada dificultad 115 00:10:36,809 --> 00:10:41,210 salvo que hay que aprender a pensar como un programador