QUÉ SON LOS SENSORES?

Tamaño: px
Comenzar la demostración a partir de la página:

Download "QUÉ SON LOS SENSORES?"

Transcripción

1

2 CONTENIDO QUÉ SON LOS SENSORES? 4 POR QUÉ KAREL NECESITA SENSORES? 4 LOS SENSORES DE KAREL 5 SENSOR DE ORIENTACIÓN 5 SENSOR DE PAREDES 6 SENSOR DE BEEPERS 6 LA INSTRUCCIÓN IF 7 CÓMO FUNCIONA? 7 CONDICIONALES 8 INSTRUCCIONES CONDICIONADAS 9 UNA FUNCIÓN PARA ORIENTARSE 9 LA SOLUCIÓN INTUITIVA 9 UNA SOLUCIÓN NO TAN INTUITIVA 10 EJERCICIO MENTAL 11 IF SIN LLAVES 11 LA INSTRUCCIÓN IF-ELSE 12 VERDADERA O FALSA 13 LA INFORMACIÓN DEL ELSE 14 ANIDANDO COMANDOS IF E IF-ELSE 15 EL RETO DE ANIDAR COMANDOS IF, IF-ELSE 15 CUÁNTOS BEEPERS TENGO EN LA MOCHILA 16 DESCRIPCIÓN 16 PROBLEMA 16 CONSIDERACIONES 16 EJEMPLO 16 SOLUCIÓN INTUITIVA 17 2

3 REPITIENDO CONDICIONALES 19 ORIENTARSE AL NORTE. OTRA MANERA DE PENSAR 19 KAREL, EL PEQUEÑO ESCAPISTA 20 DESCRIPCIÓN 20 PROBLEMA 20 CONSIDERACIONES 20 EJEMPLO 20 TIP 20 ESCENARIOS VARIABLES 21 CAMINANDO A LO MÁS 15 PASOS 22 DESCRIPCIÓN 22 PROBLEMA 22 CONSIDERACIONES 22 EJEMPLO 22 SOLUCIÓN 22 COMO SE EVALÚA UNA SOLUCIÓN 23 3

4 QUÉ SON LOS SENSORES? En la actualidad cualquier robot o máquina que necesite interactuar con su entorno, requiere de dispositivos o herramientas para poder hacerlo; estas herramientas regularmente son los sensores. Los sensores son dispositivos que pueden enviar diferente tipo información como la cantidad de luz (sensor de luz), que tan cerca está un objeto (sensor de proximidad), la temperatura o de humedad; los robots pueden recibir esta información, la cual procesan y analizan para tomar una decisión y finalmente realizar una acción. La cantidad de sensores que puede tener un robot es muy variable y depende enteramente de las actividades que vaya a realizar; por ello es importante analizar el objetivo que tendrá un robot para determinar cuáles sensores podrían ser útiles para su funcionamiento. POR QUÉ KAREL NECESITA SENSORES? Aunque has resuelto varios ejercicios y problemas de Karel, tal vez has pasado por alto un gran detalle: la posición y orientación de Karel, las paredes, la cantidad de beepers en las esquinas y la mochila son conocidos y nunca cambian. En estos momentos si tenemos un mundo inicial, programamos un código que resuelva el mundo y obtenemos un resultado; si el mundo inicial tiene alguna variación mínima, entonces el código también la tendrá. En pocas palabras un código resuelve únicamente un mundo inicial. Por lo anterior, a Karel se la ha proveído de sensores para ayudarte a desarrollar la habilidad de pensar en soluciones más generales que identifiquen las posibles variaciones de un mundo inicial y que estas pueden ser resueltas por un mismo código. Nuestro será entonces, programar un código que resuelva las variantes de un mundo inicial y obtenga su correspondiente mundo final. 4

5 LOS SENSORES DE KAREL Tal vez te parezca un poco raro, pero hasta ahora tú eres la única persona que sabe cómo será el mundo inicial en un ejercicio, pues hasta este momento Karel sólo se mueve de acuerdo con la información que tú posees. Tú sabes por donde debe moverse, donde están los beepers que debe recoger y en qué lugares debe dejar beepers y cuántos. Para ampliar el conocimiento del mundo, Karel debe comenzar por conocer su entorno, por ello aprenderás las diferentes formas en las que puede obtener información a través de los sensores de orientación, paredes y de beepers. Los sensores de Karel funcionan de una manera bastante simple: se les hace una pregunta y los sensores responderán únicamente sí o no. SENSOR DE ORIENTACIÓN Como su nombre lo indica, este sensor te ayudará a identificar la orientación de Karel. Para ello, es necesario aprender la forma correcta de preguntar para obtener la respuesta del sensor: La pregunta facingnorth facingsouth facingeast facingwest se utiliza para saber si Karel está orientado al norte está orientado al sur está orientado al este está orientado al oeste De manera complementaria también podemos hacer la pregunta negativa: La pregunta notfacingnorth notfacingsouth notfacingeast notfacingwest se utiliza para saber si Karel NO está orientado al norte NO está orientado al sur NO está orientado al este NO está orientado al oeste El beneficio más común de conocer la orientación actual es, que sin importar cuál sea la orientación puedes haces que siempre se oriente a una dirección específica. Por ejemplo, supongo que tienes una solución que funciona solamente si Karel está orientado al norte, entonces lo recomendable sería incluir al inicio de tu solución, lo necesario para forzar a Karel. La recomendación general es que eventualmente siempre tengas en tu arsenal de funciones una función que oriente a Karel, por ejemplo una función que se llame orientanorte();. 5

6 SENSOR DE PAREDES Este sensor será el primero que interactúa con uno de los objetos del mundo: las paredes. Como ya mencionamos anteriormente, las paredes impiden el libre movimiento de Karel entre una esquina y otra. Actualmente si intentamos avanzar a través de una pared, obtenemos un error de ejecución con la indicación de que Karel intento atravesar un muro. Lo anterior nos sucede por dos razones, la primera es que olvidamos o ignoramos alguna pared que estaba en el mundo inicial, y la segunda es que Karel no tienen información sobre las paredes que lo rodean. Además del sensor de orientación, Karel cuanta con un sensor de proximidad que le permite saber si tiene paredes a su alrededor. La pregunta frontisclear frontisblocked leftisclear leftisblocked rightisclear rightisblocked se utiliza para saber si Karel tiene el frente libre para poder avanzar UNA vez tiene una pared justo enfrente tiene libre de pared su izquierda tiene una pared justo a su izquierda tiene libre de pared su derecha tiene una pared justo a su derecha Particularmente conocer la respuesta a las preguntas anteriores, nos ayudará principalmente a dos cosas: para evitar tener un error ejecución y para ubicar la dirección hacia podemos seguir moviéndonos. SENSOR DE BEEPERS Finalmente, Karel también cuenta con un sensor que le permite obtener información sobre los beepers de la esquina donde se encuentra y sobre los beepers de su mochila. La pregunta se utiliza para saber si nexttoabeeper en la esquina donde está Karel hay AL MENOS UN beeper notnexttoabeeper en la esquina donde está Karel NO hay beepers anybeepersinbeeperbag en la mochila de Karel hay AL MENOS UN beeper nobeepersinbeeperbag la mochila está vacía De igual manera que el sensor de proximidad nos ayuda prevenir errores de ejecución para evitar chocar, el sensor de beepers nos ayuda prevenir errores de ejecución al tratar de recoger o dejar beepers. Además de prevenir errores de ejecución, una de las cosas que podrás aprender eventualmente es identificar la cantidad de beepers que hay una esquina. 6

7 LA INSTRUCCIÓN if El uso de los sensores requiere de aprender el comando adecuado para poder utilizar las preguntas antes mencionadas: este es la instrucción if. Esta instrucción permite realizar una pregunta y obtener la respuesta correspondiente; su estructura básica es como sigue: if( pregunta ) No lleva punto y coma Llaves para definir un nuevo bloque Aquí debes escribir las instrucciones que quieres que Karel haga en caso de la respuesta a la pregunta de arriba sea afirmativa La instrucción if debe ser minúsculas, la pregunta sólo puede ser alguna de las preguntas válidas que ya mencionamos, la cual debe ir entre paréntesis. Al igual que el comando iterate(), esta instrucción tampoco lleva punto y coma; también es necesario utilizar los símbolos llaves para definir un nuevo bloque. CÓMO FUNCIONA? La instrucción if permite condicionar la ejecución de un grupo de instrucciones, pues las instrucciones de su bloque sólo se ejecutarán si la respuesta a la pregunta es igual a SÍ. Por otro lado, si la respuesta a la pregunta es NO, entonces las instrucciones de su bloque no se realizan. Veamos un ejemplo: class program program() if( frontisclear ) move(); turnoff(); Mundo inicial - frente libre Mundo final - avanza y gira Mundo inicial - frentre bloqueado Mundo final - solo gira 7

8 En ejemplo se utiliza la instrucción para preguntar si el frente está libre (frontisclear): en el primer mundo inicial, Karel tiene el frente libre, por lo que la respuesta a la pregunta if( frontisclear ) será un SÍ, por lo tanto se realiza la instrucción move(); después de ejecutar el bloque del if, se ejecutan el resto de las instrucción, que en este ejemplo es turnleft(), y turnoff();, es por ello que Karel termina girando al final. Por otro lado, en el seguno mundo inicial, Karel tiene el frente bloqueado, por lo que la respuesta a la pregunta if( frontisclear ) será un NO, entonces la instrucción move(); no se realizará; sin embargo, las instrucciones y turnoff(); sí se realiza ya que estas instrucciones no están dentro del bloque del if. Veamos otro ejemplo con otra pregunta: class program program() move(); if( nexttoabeeper ) pickbeeper(); move(); turnoff(); Mundo inicial Mundo inicial Mundo final Mundo final Al igual que el ejercicio anterior, en el primer par de imágenes se muestra el mundo final cuando la respuesta a la pregunta if( nexttoabeeper ) es SÍ, y en el siguiente par de imágenes se muestra el mundo final cual la respuesta es NO. Condicionales El uso de la instrucción if combinado con las preguntas tienen un nombre en el ámbito de los programadores: son las bien conocidas instrucciones condicionales. De ahora en adelante les llamaremos de esta forma. Una condicional es una instrucción que te permite cuestionar la información para tomar una decisión, que normalmente consistirá en decidir si un grupo de instrucciones se hace o no; en otras palabras, se tienen que cumplir la condición para hacer ciertas instrucciones. 8

9 Regularmente cuando una condición tiene como respuesta que SÍ, decimos que la condición es VERDADERA y cuando la condición tiene como respuesta que NO, decimos que la condición es FALSA. Instrucciones condicionadas El término instrucciones condicionadas se le da a las instrucciones que pertenecen al bloque del if, y se les llama así debido a que la ejecución de estas instrucciones no está garantizada si que dependen (o están condicionadas) a que la condición del if sea verdadera. Por ejemplo, en el código anterior, las instrucciones pickbeeper(); y están condicionadas a que la condición if( nexttoabeeper ) sea verdadera. UNA FUNCIÓN PARA ORIENTARSE Uno de los primeros usos del uso de condicionales es crear una función que me permite orientarme hacia alguna dirección, por ejemplo, al norte. Supongamos que tenemos como objetivo crear una función que, sin importar la orientación de Karel, siempre se oriente al norte. class program define orientanorte() program() orientanorte(); turnoff(); La solución intuitiva Cómo deberíamos definir esta función? Nuestra intuición debería decirnos que sería bueno pensar en usar las condicionales que informan sobre la orientación de Karel. Para resolverlo, vamos a intentarlo primeramente por el camino intuitivo. Intenta contestar la siguiente pregunta: si supieras que Karel está orientado al este Qué harías para orientarlo al norte? Dedica unos segundos para encontrar la respuesta. La respuesta debería ser: girar a la izquierda. Ahora, Qué harías si supieras que Karel está orientado al sur? Girar dos veces a la izquierda (o dar media vuelta). Y si estuvieras al oeste? giraríamos a la derecha. Finalmente Y si estuviera al norte? Nada. En cada uno de los 4 escenarios, debemos estar seguros en cuál orientación está Karel; pero eso lo podemos averiguar fácilmente, utilizando las condicionales facingeast, facingsouth, facingwest y facingnorth. Resolvamos escenario por escenario dentro de la función orientanorte();. 9

10 class program define orientanorte() if( facingeast ) if( facingsouth ) if( facingwest ) iterate(3) program() orientanorte(); turnoff(); Veamos por qué definir de esta manera la función es suficiente para resuelve los 4 escenarios: Si Karel inicia orientado al este, significa que cuando se ejecute la función orientanorte(); la condición if( facingeast ) será verdadera, por lo que Karel girará a la izquierda y quedará orientado al norte. Ya orientado al norte, la condición if( facingsouth ) será falsa y continuará para verificar la tercer condición if( facingwest ) la cual también será falsa; para finalmente dejar a Karel orientado al norte. De manera similar, si Karel inicia orientado al sur, la primera condición if( facingeast ) será falsa y continuará con la segunda condición if( facingsouth ) que será verdadera y Karel girará dos veces a la izquierda con lo cual quedará orientado al norte. Al continuar con la tercera condición if( facingwest ) pasará lo mismo que en el escenario anterior y al terminar la función, Karel quedará orientado al norte. El tercer escenario, cuando Karel inicia orientado al oeste, las dos primeras condiciones if( facingeast ) y if( facingsouth ) serán falsas y por lo tanto Karel no girará, pero al llegar a la tercera condición if( facingwest ) será verdadera y Karel girará a la derecha, terminando orientado al norte. En el último escenario, dado que Karel está orientado al norte, las tres condicionales serán falsas y mantendrá su misma orientación inicial, así que al final quedará como esperamos. Una solución no tan intuitiva Si definimos de la siguiente manera la función orientanorte(); también obtenemos el mismo resultado que en la definición anterior de esta misma función, pero Por qué funciona?. Como dice el título, esta solución no es tan intuitiva y puede parecer un poco difícil de entender. La idea detrás de esta idea se encuentra en pensar en el peor escenario, es decir, cuando necesita girar tres veces, luego pensar en el escenario donde requiere gira dos veces y finalmente en el escenario donde gira una vez. define orientanorte() if( facingwest ) if( facingsouth ) if( facingeast ) 10

11 Observa que el escenario cuando Karel está orientado al oeste, la primera condicional if( facingwest ) es verdadera y girará a la izquierda; después de girar, Karel estará ahora en el escenario cuando está orientado al sur, entonces la segunda condicional if( facingsouth ) será verdadera y girará a la izquierda; con este giro, Karel ahora estará en el escenario cuando está orientado al este y la tercera condición if( facingeast ) será verdadera y girará a la izquierda, para finalmente quedar orientado al norte. Ejercicio mental Para complementar tu aprendizaje hasta este punto, te dejaremos como ejercicio que revises como trabaja la función: Cuando Karel está inicialmente orientado al sur. Cuando está inicialmente orientado al este. Cuando ya estaba orientado al norte. Si en la nueva definición de orientanorte(); se cambiara el orden de las condicionales La función cumpliría su objetivo en todos los escenarios? if SIN LLAVES De la misma manera que es posible crear un bloque sin llaves en un iterate(), también es posible hacerlo con el comando if. Si la instrucción que va a estar condicionada sólo es una instrucción, es posible omitir las llaves. La razón por la cual no se menciona esto antes es porque es importante que te familiarices primero con el uso del if y el uso de los bloques. El no utilizar llaves es une extra que te ayudará a ahorrar algo de tiempo cuando comiences a programar códigos más grandes, pero cuando inicias en el ámbito de la programación es recomendable utilizar siempre las llaves. Recordando un poco el último código para orientarse al norte, hemos definido la función que orienta al sur utilizando el mismo razonamiento. Observa que cada una de las condicionales sólo tiene una instrucción condicionada:. define orientasur() if( facingeast ) if( facingnorth ) if( facingwest ) 11

12 LA INSTRUCCIÓN if-else La abuela de Karel le ha pedido que por favor revise como están los beepergochis que tiene en la esquina (1, 1), y en caso de que no tengan comida, Karel debe dejarles un beeper para comer; por otro lado, si los beepergochis ya tenían comida (un beeper) pero no se la han terminado, debe recogerla para evitar que la comida se desperdicie. Con este ejemplo, introduciremos una extensión de la instrucción if. Utilizando lo que sabemos, intentemos definir la función ponoquita(); que tendrá el objetivo de poner un beeper si hace falta o, de quitarlo si ya había uno. Supongamos que Karel ya está en la esquina (1, 1). Nuestro primer paso será resolver el escenario cuando en la posición de Karel hay un beeper, para ello utilizaremos la condicional nexttoabeeper que nos indicará si hay al menos un beeper en la esquina donde estamos. Si Karel inicia encima de un beeper, al ejecutar la instrucción ponoquita(); la condición if( nexttoabeeper ) será verdadera y entonces recogerá el beeper. Hasta aquí parece funcionar para este primer escenario. Siguiendo la forma de codificar del ejercicio de la orientación, después de esta condicional, deberíamos intentar resolver el siguiente escenario. Para el segundo escenario, dado que nos interesa saber si no hay beepers, podemos utilizar la condicional notnexttoabeeper, para agregarla después de la primera condicional. Si Karel iniciará sobre una esquina vacía, la primera condicional if( nexttoabeeper ) sería falsa, entonces continuaría con la siguiente condicional if( notnexttoabeeper ) la cual sería verdadera y pondría un beeper. Al parecer funciona también con el segundo escenario, pero la función ya no es la misma que hace rato. Cuando codificamos la función pensando en los dos escenarios por separado, la función parecía cumplir su objetivo, sin embargo, con la versión de final de la función no podemos asegurarlo. class program define ponoquita() if( nexttoabeeper ) pickbeeper(); program() ponoquita(); turnoff(); class program define ponoquita() if( nexttoabeeper ) pickbeeper(); if( notnexttoabeeper ) putbeeper(); program() ponoquita(); turnoff(); Sabemos que la nueva versión de la función cumple su objetivo si Karel inicia en una esquina vacía. Veamos ahora que sucede con el primer escenario, cuando Karel inicia encima de un beeper. 12

13 Al iniciar encima de un beeper, la primera condicional if( nexttoabeeper ) sería verdadera y quitaría el beeper; después de quitarlo, continuaría con la segunda condicional if( notnexttoabeeper ), la cual sería verdadera pues Karel acaba de quitar el beeper, entonces se encuentra en una esquina vacía, por lo tanto pondría un beeper nuevamente. Entonces, lo que se obtiene cuando Karel inicia encima de un beeper, es a Karel nuevamente encima de un beeper. Ante el resultado obtenido, podrías considerar la posibilidad de invertir el orden de las condicionales esperando que esto resuelva el dilema, sin embargo, tampoco lo resolverá. Te dejamos como ejercicio revisar que pasa si en la función ponoquita(); se invierte el orden de las condicionales y queda como en el código de la derecha. Te darás cuenta que los papeles se invierten y el resultado en ambos escenarios es el inverso. class program define ponoquita() if( notnexttoabeeper ) putbeeper(); if( nexttoabeeper ) pickbeeper(); El problema central en esta forma de resolverlo es que, al ser condicionales separadas, si la primera condicional modifica la situación actual de Karel (poniendo o quitando beepers), la segunda condicional no tiene manera de saber lo que ha hecho la primera, es decir, no sabe si la primera condicional fue verdadera o falsa. program() ponoquita(); turnoff(); Imaginemos por un momento que tenemos la posibilidad no sólo de saber si una condicional es verdadera, sino también cuando es falsa. Si lo anterior fuera posible, podríamos utilizar la condicional if( nexttoabeeper ) y si es verdadera entonces quitamos el beeper, pero si es falsa, entonces ponemos un beeper. Lo anterior es cierto, dado que la condicional nexttoabeeper pregunta si hay al menos un beeper, y si es falsa significa que no hay beepers y por lo tanto debemos dejar un beeper. VERDADERA O FALSA La instrucción if tiene una extensión que nos permite saber también cuando la condición es falsa y con ello tomar una decisión en dicho caso. El comando else, le permite a la instrucción if ejecutar un grupo instrucciones si la condición del if es falsa. Este comando se puede utilizar sólo si viene en compañía de un if, no puedo utilizarse de manera independiente. En algunos lenguajes de programación a esta extensión del if, le llaman instrucción if-else. if( condicional ) Estas instrucciones se ejecutarán si la condición es VERDADERA else Estás instrucciones se realizarán si la condición es FALSA 13

14 Con esta estructura tenemos también la posibilidad de condicionar instrucciones cuando una condicional es falsa. Generalmente llamaremos bloque verdadero al grupo de instrucciones que se ejecutan cuando la condicional es verdadera, y llamaremos bloque falso al grupo de instrucciones que se ejecutan cuando la condicional es falsa. Del ejercicio anterior, redefinamos la función ponoquita(); incluyendo ahora el comando else con su respectivo bloque. En este ejemplo, el objetivo del comando else será detectar cuando no haya beepers en la esquina de Karel para así dejar un beeper. En este punto lo más importante a notar es que la condicional sólo puede ser verdadera o falsa, y nunca ambas al mismo tiempo. define ponoquita() if( nexttoabeeper ) pickbeeper(); else putbeeper(); El hecho de que la condicional sólo pueda ser verdadera o falsa, implica que cuando sólo se ejecutará el bloque verdadero o el bloque falso, pero nunca ambos. Debes tener en cuenta esto al momento de programar tus soluciones, pues necesitarás identificar muy bien cuales condicionales debes usar y que instrucciones harás tanto en el resultado verdadero como en el falso. LA INFORMACIÓN DEL else Debería ser intuitivo reconocer que cuando utilizamos el comando else, tenemos información del mundo aunque no hayamos hecho una pregunta directamente en el bloque else. Por ejemplo, si tenemos un comando if-else en el que la condicional es anybeepersinbeeperbag, si resulta que es falsa, en el bloque else sabríamos que no tenemos beepers en la mochila y con esta información podemos decidir que instrucciones realizar. Dependiendo la pregunta que hagas, en la parte del else obtendrás la información complementaria a la pregunta que hiciste. Te mostramos algunos ejemplos para que te quede más claro este punto: Si la condicional es en el bloque else sabrías frontisclear que tienes el frente bloqueado. rightisblocked que puedes moverte a la derecha porque está libre de pared. facingnorth que NO estás orientado al norte. notfacingsouth que estás orientado al sur. nobeepersinbeeperbag que tienes al menos un beeper en la mochila. notnexttoabeeper que en la esquina donde está Karel, hay al menos un beeper. Siempre que utilices un comando if-else recuerda que en el bloque falso también tienes información directamente relacionada con la condicional que hayas utilizado. 14

15 ANIDANDO COMANDOS if E if-else De manera general, cualquier comando que requiera de crear un nuevo bloque, es posible crear otro bloque dentro de otro. El comando if e if-else no es la excepción, sólo es necesario seguir las mismas reglas de siempre, crear el bloque con las llaves y colocar las instrucciones if o if-else que requieras. Al igual que con el comando iterate(), se pueden anidar tantos if o if-else como se requiera. En el ejemplo de la derecha se tiene un if-else en el bloque verdadero de la condicional if( frontisclear ), esto significa que para que para que se ejecute la instrucción halfturn(); será necesario que la condicional if( frontisclear ) sea verdadera y una vez dentro del bloque verdadero, será necesario que la condicional if( nexttoabeeper ) sea falsa para que se ejecute el bloque falso de esta condicional Por otro lado, si se ejecuta la instrucción putbeeper(); tuvo que ser necesario que la condicional if( frontisclear ) sea falsa para ejecutar el bloque falso y después tendría que haber sido verdadera la condicional if( frontisblocked ). Con práctica y tenacidad, anidar comandos se convertirá en lo más natural del mundo. if( frontisclear ) move(); if( nexttoabeeper ) move(); else halfturn(); else if( frontisblocked ) putbeeper(); Te recomendamos ampliamente que siempre utilices las llaves, indentación y un código ordenado para que sea fácil revisarlo y corregir los posibles errores que pueda tener. EL RETO DE ANIDAR COMANDOS if, if-else Conocer la teoría y las reglas para anidar comandos es el primer paso, sin embargo, conocer sólo los conceptos no es suficiente; el reto al que te enfrentarás será dedicarle tiempo a pensar cuáles, cómo y en qué orden debes poner tus condicionales para que el código resuelva el mundo inicial y sus posibles variantes. Hasta este momento, debería ser claro para ti, que las condicionales se utilizan cuando no podemos estar 100% seguros de la situación de Karel en el mundo actual, por eso es necesario hacer preguntas para tomar decisiones. Por ejemplo, si al hacer una pregunta y obtener la respuesta (verdadera o falsa), no tienes la certeza al 100% de la situación de Karel, entonces será necesario hacer otra pregunta, aquí precisamente es cuando existe la posibilidad de anidar if o if-else; pero al final será tú quien decida la forma de resolver la situación de Karel. 15

16 Uno de los ejercicios más comunes donde necesitas anidar if o if-else es cuando intentas determinar cuántos beepers tiene Karel en la mochila. CUÁNTOS BEEPERS TENGO EN LA MOCHILA Descripción Karel quiere comprar el más reciente comic de su superhéroe favorito: SuperKarel. El comic tiene una promoción, si llevas beepers a la tienda te harán un descuento. Hay descuentos por llevar un beeper, por llevar dos beepers y por llevar 3 beepers. Si no llevas beepers no hay descuento. Problema Ayuda a Karel a determinar el descuento que va a recibir, para ello necesita averiguar cuántos beepers hay en su mochila. Consideraciones Karel inicia en una esquina con orientación desconocida. En su mochila puede tener 0, 1, 2, o 3 beepers. Si Karel tiene 0 beepers en su mochila, que se oriente al norte; si tiene un beeper, que se oriente al sur; si tiene 2 beepers que se oriente al este; y si tienen 3 beepers que se oriente al oeste. En la esquina donde está Karel no hay beepers. No importa la posición final de Karel ni los beepers que dejes en el mundo. Ejemplo Mundo inicial 1 Mundo final 1 Mundo inicial 2 Mundo final 2 16

17 Solución intuitiva Aunque existen múltiples formas de resolver este ejercicio, lo haremos anidando if e if-else que desde nuestro punto de vista es la más intuitiva. De los cuatro posibles escenarios de beepers en la mochila, aquel donde Karel tiene 0 beepers en la mochila, es el más simple de procesar pues basta utilizar la condicional if( nobeepersinbeeperbag ) para determinar si no tiene beepers en la mochila. Si la condición if( nobeepersinbeeperbag ) es verdadera, volteamos al norte y listo. Si la condición es falsa, significa que en la mochila de Karel hay beepers. Cómo saber si hay 1, 2, o 3 beepers? Pensemos de la siguiente manera, si supiera que tengo un beeper, entonces sólo podría poner un beeper; si tuviera 2 beepers podría poner un beeper primero y luego otro después; y finalmente si tuviera 3 beepers podría poner un beeper y dos más después. Del punto anterior, siempre podría poner un beeper sin problema. Después de dejar un beeper Qué significaría si Karel ya no tiene beepers? Significaría que Karel sólo tenía un beeper en la mochila. Podemos usar nuevamente la condición nobeepersinbeeperbag para determinar si sólo era un beeper en la mochila; si la condicional es verdadera entonces era un beeper y hay que orientar a Karel al sur. Para orientarnos al sur, utilizaremos la función orientanorte(); para no tener que definir la función orientasur();. Si la condición es falsa, significa que en la mochila todavía hay beepers, por lo que inicialmente en la mochila había 2 o 3 beepers, pero como ya dejamos un beeper, entonces en la mochila sólo debe haber 1 o 2 beepers. if( nobeepersinbeeperbag ) orientanorte(); else putbeeper(); if( nobeepersinbeeperbag ) orientanorte(); halfturn(); else Código parcial - resuelve cuando hay cero o un beeper en la mochila. Aquí podemos repetir la idea de dejar un beeper. Si dejamos otro beeper (sería el segundo beeper que dejamos) y con ayuda de la condicional if( nobeepersinbeeperbag ) determinaremos si Karel ya no tiene beepers en la mochila. Si la condición es verdadera, significa que inicialmente Karel tenía dos beepers en su mochila, por lo tanto hay que orientarlo al este. Si la condición anterior es falsa, significa que hay otro beeper en la mochila, lo cual indica que inicialmente había 3 beepers en la mochila, así que hay que orientar a Karel al oeste. La razón por la que usamos if anidados en esta solución es que, aunque tenemos la información aportada por una condiciona, existen escenarios donde no basta con usar una sola condicional, sino hasta 3 condicionales anidadas, como lo es en esta forma de resolver el ejercicio. 17

18 A continuación, mostramos dos soluciones completas: una intuitiva y una no tan intuitiva. Orientarlo al este Orientarlo al oeste if( nobeepersinbeeperbag ) orientanorte(); else putbeeper(); if( nobeepersinbeeperbag ) orientanorte(); halfturn(); else putbeeper(); if( nobeepersinbeeperbag ) orientanorte(); turnright(); else orientanorte(); Solución intuitiva Orientarlo al sur orientanorte(); if( anybeepersinbeeperbag ) putbeeper(); if( anybeepersinbeeperbag ) putbeeper(); if( anybeepersinbeeperbag ) else turnright(); else halfturn(); Orientarlo al sur Solución no tan intuitiva Orientarlo al oeste Orientarlo al este Te recomendamos programar ambos códigos y ejecutarlos paso a paso para que puedas ver su funcionamiento. Asegúrate de probar el código con diferentes orientaciones y cantidades diferentes de beepers en la mochila. 18

19 REPITIENDO CONDICIONALES El título hace referencia a utilizar un ciclo iterate() para repetir instrucciones if o if-else. Hasta ahora, cuando utilizábamos el comando iterate() nos había servido para ejecutar instrucciones sin preocuparnos por la orientación, paredes ni beepers, porque en los primeros ejercicios teníamos toda la información necesario para movernos, esquivar paredes, recoger y dejar beepers, sin cometer errores de ejecución. Teóricamente Incluir instrucciones if dentro de un iterate() no debería ser un conflicto, pues las instrucciones if, al final son instrucciones las cuales podemos incluir en el program(), en una función y naturalmente en un ciclo. Lo que sí podría ser un conflicto es determinar cuándo debo incluirlas. La unión de estos dos temas es muy importante ya que es un paso previo para introducir al siguiente tipo de ciclos. Para comenzar veamos cómo resolver el problema de orientarse al norte, utilizando ciclos y condicionales. ORIENTARSE AL NORTE. OTRA MANERA DE PENSAR En la primera versión de la función orientanorte(); nuestra idea principal fue revisar escenario por escenario, es decir, orientación por orientación. Esta forma de pensar está relacionada con la idea de qué hago si supiera mí orientación? Normalmente hacemos esto porque es más sencillo concentrarse en las situaciones donde tenemos información más clara, en este caso, conocer la orientación actual de Karel me ayuda a determinar cuántas veces debo girar a la izquierda. Cambiemos un poco nuestra regular de pensar y cambiemos la pregunta Qué tengo que hacer, sí estoy seguro que NO estoy orientado al norte? Es un poco rara la pregunta, pero dentro de ella se encuentra la idea que nos ayudará a resolver más fácilmente el problema. Si estoy seguro que no estoy orientado al norte, entonces estoy seguro que es necesario girar a la izquierda. Si después de girar a la izquierda, me doy cuenta que otra vez no estoy orientado al norte, entonces es necesario volver a girar. Dado que la única forma de orientarse al norte es girando cuál sería la máxima cantidad de giros a la izquierda que tengo que hacer para garantizar que estoy al norte? La máxima cantidad de giros es tres. De los puntos anteriores Cómo podemos preguntar si Karel no está orientado al norte? La respuesta: con la condicional notfacingnorth. Con esta idea, es necesario preguntar máximo en tres ocasiones si no está orientado al norte y en cada ocasión, si la condición es verdadera debemos girar una vez a la izquierda. iterate(3) if( notfacingnorth ) Orientarse al norte usando iterate() 19

20 En el siguiente ejercicio, podrás practicar nuevas formas de pensar. Te recomendamos resolverlo de diferentes maneras, ya que cada una de ellas es una forma de pensar y de analizar el problema. KAREL, EL PEQUEÑO ESCAPISTA Descripción Karel está practicando como ser un escapista, pero para empezar necesita primero practicar con cosas sencillas. Se ha metido en un cuarto de 1 x 1 que está rodeado por paredes excepto de un lado. Problema Ayuda a Karel a salir del cuarto. Consideraciones Karel está en algún lugar del mundo y se encuentra rodeado por 3 paredes. Desconoces la orientación inicial de Karel. Karel debe terminar en la esquina que se encuentra aún paso de la salida. La salida es la esquina donde no hay pared. No tiene beepers en su mochila y no hay más paredes en el mundo. No importa la orientación final de Karel. Ejemplo Mundo inicial Mundo final Tip Una primera idea que se te puede ocurrir es Qué hago si enfrente de mi está la salida? Sin embargo, trata de pensar de otra manera, por ejemplo Qué hago si enfrente de mi no está la salida? 20

21 ESCENARIOS VARIABLES Con los últimos ejercicios, podemos ver más claramente de que va este concepto. Cuando se presenta un ejercicio de Karel, se plantea una situación general y con ayuda de las consideraciones podemos imaginarnos algunos mundos iniciales particulares, los cuales deben ser resueltos por un mismo código. Entre las muchas cosas que puedes aprender de Karel, se encuentra una muy particular que tiene como objetivo ayudarte a construir la solución a un problema para que pueda resolver la mayor cantidad de casos particulares de dicho problema, siempre y cuando esos casos particulares estén relacionados con el problema original. A partir de ahora, la descripción de los ejercicios será un tanto genérica, de tal manera que existan muchos mundos que cumplan con las condiciones y consideraciones de dicho ejercicio. Por ejemplo, en el problema de Karel, el pequeño escapista, se plantea de manera general que Karel está en un cuarto encerrado por tres paredes y que desconoces su orientación; entonces cualquiera de los siguientes mundos iniciales es un caso particular de este problema: Si pudieras dibujar todos los posibles mundos iniciales que son casos particulares del este problema, te darías cuenta que son 16 mundos; pues para cada una de las cuatro orientaciones, las tres paredes del cuarto pueden estar acomodas en cuatro formas distintas (una por cada lugar donde puede estar la salida). Particularmente, la sección ejemplo de los problemas, ahora tendrá el objetivo de mostrarte un caso particular de mundo inicial. En el siguiente problema, trata de encontrar todos los mundos particulares: 21

22 CAMINANDO A LO MÁS 15 PASOS Descripción Ahora es cuestión de caminar sin chocar. Karel está iniciando su entrenamiento para convertirse en un gran robot. Para ello necesita practicar como avanzar y avanzar sin chocar. Karel quiere avanzar hasta encontrar una pared que ese encuentra a lo más a 15 pasos de distancia Problema Ayuda a Karel a llegar a la pared. Consideraciones Karel inicia en la calle 1, avenida 1, orientado hacia el este. En la calle 1, en alguna avenida, hay una pared de alto 1. Karel debe llegar a la esquina que esta justo a la izquierda de esta pared. Recuerda que la pared se encuentra A LO MÁS de 15 pasos de distancia. No hay paredes en el mundo, salvo la que se encuentra a unos pasos de Karel. No importa la orientación final de Karel. Ejemplo Mundo inicial Solución Mundo final Dado que Karel siempre está en la esquina (1, 1) y la única restricción del problema es que hay una pared en la calle 1, en algún lugar entre la avenida 1 y 15, significa que sólo hay 15 casos particulares; cada uno de ellos con una pared en diferente avenida. Una posible solución a este problema es utilizando el ciclo iterate() y la condicional frontisclear. Repetimos sólo 14 veces, ya que si iniciamos en la avenida 1, se llega a la avenida 15 después de 14 moves();. iterate(14) if( frontisclear ) move(); 22

23 Condicionar la instrucción move(); en cada iteración, evita que Karel choque cuando la pared se encuentre antes de las 14 esquinas. Si la pared se encuentra antes de los 14 pasos, supongamos en la avenida 10, significa que en las primeras 9 iteraciones la condicional if( frontisclear ) fue verdadera y Karel se movió en cada una; y en las últimas 5 iteraciones, la condicional fue falsa y Karel ya no se movió, entonces nunca choca. COMO SE EVALÚA UNA SOLUCIÓN En este tipo de ejercicios cuando existen varios posibles mundos iniciales, la manera de evaluar es que se eligen al azar algunos de esos mundos iniciales y se pone a prueba tu código para resolver cada mundo inicial elegido. Si tu código resuelve todos los mundos iniciales de prueba, se considera que tu solución es correcta. Si tu código resuelve algunos de los mundos iniciales de prueba, se considera que tu solución está parcialmente correcta. Si no puedes resolver ningún mundo inicial, se considera que tu solución es incorrecta. El puntaje que obtienes en la plataforma de OmegaUp depende de la cantidad de mundos iniciales de prueba que hayas resuelto correctamente. 23

Repetir. Por ejemplo, para indicarle a Karel que debe caminar cinco posiciones hacia adelante, debemos escribir:

Repetir. Por ejemplo, para indicarle a Karel que debe caminar cinco posiciones hacia adelante, debemos escribir: Repetir En Karel, además de las instrucciones básicas, también existe una instrucción que le dice a Karel que ejecute varias veces una o más instrucciones, y se escribe como a continuación: repetir

Más detalles

Requisitos para presentar 4ª 5ª y/o 6ª oportunidad del semestre Enero Junio 2016

Requisitos para presentar 4ª 5ª y/o 6ª oportunidad del semestre Enero Junio 2016 UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN PREPARATORIA 8 Requisitos para presentar 4ª 5ª y/o 6ª oportunidad del semestre Enero Junio 2016 Materia: Tecnología de la Información y la Comunicación II (TIC 2) Coordinador:

Más detalles

Requisitos para presentar 3ª 5ª y/o 6ª oportunidad Semestre Enero Junio 2016

Requisitos para presentar 3ª 5ª y/o 6ª oportunidad Semestre Enero Junio 2016 UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN PREPARATORIA 8 Requisitos para presentar 3ª 5ª y/o 6ª oportunidad Semestre Enero Junio 2016 Materia: Tecnología de la Información y la Comunicación II (TIC 2) Coordinador:

Más detalles

L A B O R A T O R I O T I C 2

L A B O R A T O R I O T I C 2 U N I V E R S I D A D A U T Ó N O M A D E N U E V O L E Ó N P R E P A R A T O R I A L A B O R A T O R I O T I C 2 Nombre del Alumno: Grupo: Mat. UNIDAD 1 I. DESCRIBE BREVEMENTE EL NOMBRE Y LA FUNCIÓN DE

Más detalles

Portafolio Segunda oportunidad Introducción a la programación y Robot Karel

Portafolio Segunda oportunidad Introducción a la programación y Robot Karel Tecnología de la Información y de la Comunicación II Portafolio Segunda oportunidad Introducción a la programación y Robot Karel 1 Etapa 1 ACTIVIDAD No. 1 Instrucciones: El alumno identificará los conceptos

Más detalles

Laboratorio Tic 2 para el 2do. Parcial

Laboratorio Tic 2 para el 2do. Parcial Laboratorio Tic 2 para el 2do. Parcial Nombre: Grupo: ETAPA 3: PROGRAMACIÓN BÁSICA EN ROBOT KAREL Instrucciones: Relaciona las dos columnas B C 1)Avenidas y calles 2)Programa en ejecución 3)Mensaje de

Más detalles

Requisitos para presentar 3ª 5ª y/o 6ª oportunidad Semestre Enero Junio 2018

Requisitos para presentar 3ª 5ª y/o 6ª oportunidad Semestre Enero Junio 2018 UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN PREPARATORIA 8 Requisitos para presentar 3ª 5ª y/o 6ª oportunidad Semestre Enero Junio 2018 Materia: Tecnología de la Información y de la Comunicación 2 (TIC 2) Coordinador:

Más detalles

1.1 INSTRUCCIONES CONDICIONALES

1.1 INSTRUCCIONES CONDICIONALES 1.1 INSTRUCCIONES CONDICIONALES En la Programación Orientada a Objetos con fundamento en Karel, inicialmente la posición exacta de un robot era conocida en el comienzo de una tarea específica. Hoy cuando

Más detalles

Lenguaje de Programación: Usos comunes de la Recursión

Lenguaje de Programación: Usos comunes de la Recursión UG KAREL Lenguaje de Programación: Usos comunes de la Universidad de Guanajuato Agosto 2010 Lenguaje de Programación: Usos comunes de la Propiedades de las funciones recursivas El proceso para escribir

Más detalles

UANL UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN PREPARATORIA NO. 23

UANL UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN PREPARATORIA NO. 23 FORMATO DE SOLICITUD DE PORTAFOLIO UNIDAD DE APRENDIZAJE: TIC II OPORTUNIDAD: 3era, 4ta, 5ta y 6ta VALOR PORCENTUAL: 40 FECHA DE EXAMEN Y ENTREGA DE PORTAFOLIO: de 2016 ESPECIFICACIONES: 1. Presentarse

Más detalles

Lenguaje de Programación: Extendiendo el lenguaje de Karel

Lenguaje de Programación: Extendiendo el lenguaje de Karel UG Lenguaje de Programación: Extendiendo el lenguaje de Karel Universidad de Guanajuato Agosto 2010 Creando más palabras en el vocabulario de Karel El tamaño de nuestro código crece a medida que le pedimos

Más detalles

Programación Orientada a Objetos en el Micro mundo del Robot Karel. Libro No 2

Programación Orientada a Objetos en el Micro mundo del Robot Karel. Libro No 2 Programación Orientada a Objetos en el Micro mundo del Robot Karel. Libro No 2 Wladimir Rodríguez Gratérol Doctorado en Ciencias Aplicadas Hernando Castañeda Marín Estudiante de doctorado en Ciencias Aplicadas

Más detalles

Estuardo Roehrs # Cristian Chau # Algoritmos y Programación básica. Sección 60

Estuardo Roehrs # Cristian Chau # Algoritmos y Programación básica. Sección 60 Estuardo Roehrs #11240 Cristian Chau #11239 Algoritmos y Programación básica Sección 60 Índice: 1. Instalación e Introducción 2. Mundo RUR-PLE y sus comandos 3. Instrucciones de uso 4. Dar indicaciones

Más detalles

SECCION REALIMENTACIÓN.

SECCION REALIMENTACIÓN. EVALUACIÓN BLOQUE DE KAREL Docente: L.I. Verónica Gutiérrez Nafarrate Materia: Aplicar funciones del Sistema Operativo Grupo: 357 Elabora un manual de usuario tamaño media carta tipo folleto que incluya

Más detalles

El mundo de Karel las calles Se le llama esquina

El mundo de Karel las calles Se le llama esquina ROBOT KAREL Un Robot simple que vive en un mundo simple. Debido a que Karel y su mundo son simulados, nosotros podemos realmente ver los resultados de un programa en acción! El lenguaje con el que programaremos

Más detalles

El comité de la Olimpiada de Informática del estado de Guanajuato te da la bienvenida a la X Olimpiada de Informática del Estado de Guanajuato.

El comité de la Olimpiada de Informática del estado de Guanajuato te da la bienvenida a la X Olimpiada de Informática del Estado de Guanajuato. El comité de la Olimpiada de Informática del estado de Guanajuato te da la bienvenida a la X Olimpiada de Informática del Estado de Guanajuato. 1. El examen tiene una duración de 4 horas y media. 2. El

Más detalles

2. INSTRUCCIONES DE REPETICION

2. INSTRUCCIONES DE REPETICION . INSTRUCCIONES DE REPETICION Objetivo. Este capítulo termina la discusión de las instrucciones construidas en el vocabulario del lenguaje de programación del robot. Las dos nuevas instrucciones que se

Más detalles

KARELEANDO Jugando a programar Por: Fernando Guzmán

KARELEANDO Jugando a programar Por: Fernando Guzmán KARELEANDO Jugando a programar Por: Fernando Guzmán omijal@gmail.com El presente documento surge de la inquietud de ofrecer un manual de introducción básico donde el lector pueda de inmediato poder realizar

Más detalles

Programar en TortuBots

Programar en TortuBots Módulo 2 Programación y robótica Capítulo 2 Agenda Las expresiones y los tipos de datos. Comandos y sensado. Variables en TortuBots. Estructuras de control. Estructuras de selección. Estructuras de iteración.

Más detalles

Sentencias de control de flujo

Sentencias de control de flujo Bucles Sentencias de control de flujo Departamento de Electrónica Fundación San Valero Bucles Hasta ahora los programas que hemos visto eran lineales. Comenzaban por la primera instrucción y acababan por

Más detalles

SEGUNDO SEMESTRE PORTAFOLIO DE SEGUNDA OPORTUNIDAD

SEGUNDO SEMESTRE PORTAFOLIO DE SEGUNDA OPORTUNIDAD SEGUNDO SEMESTRE PORTAFOLIO DE SEGUNDA OPORTUNIDAD ING. ALMA ABBYGAIL BENAVIDES ESCAMILLA ACADEMIA DE TECNOLOGÍA DE LA INFORMACIÓN Y COMUNICACIÓN Enero Junio 2016 CONTESTA LAS SIGUIETES PREGUNTAS SOBRE

Más detalles

EXAMEN DE KAREL. El examen consta de 3 problemas que se deberán resolver en un tiempo de 3 horas.

EXAMEN DE KAREL. El examen consta de 3 problemas que se deberán resolver en un tiempo de 3 horas. SEMIFINAL ESTATAL 2009 EXAMEN DE KAREL Estas a un paso de la final, suerte en este examen, calculamos que con problema y medio resuelto estarías en la final, pero claro eres OMIJal, se realista y haz lo

Más detalles

PYTHON. Programación estructurada

PYTHON. Programación estructurada PYTHON Programación estructurada Estructuras selectivas Hasta ahora los programas que hemos hecho siguen todos una secuencia fija de operaciones: muestran datos por pantalla y/o piden datos al usuario,

Más detalles

Algoritmos y Programación Orientada a Objetos I. Contenedoras de tamaño fijo

Algoritmos y Programación Orientada a Objetos I. Contenedoras de tamaño fijo Algoritmos y Programación Orientada a Objetos I Contenedoras de tamaño fijo Agenda Motivación Contenedoras de tamaño fijo Instrucciones repetitivas Agenda Motivación Contenedoras de tamaño fijo Instrucciones

Más detalles

Problemando Avanzado 1

Problemando Avanzado 1 ndo Avanzado 1 55 La fila de las tortillas Medio 56 Cuenta beepers Medio 57 Caminos Medio 58 Árbol de navidad Avanzado 59 Baches Avanzado 60 Siguiendo Una Línea Avanzado 61 Pozos Avanzado 62 Nivelando

Más detalles

MÉTODO PRINCIPIANTE PARA RESOLVER EL CUBO RUBIK RESOLUCIÓN DE LA PRIMERA CAPA. (Elegimos el color blanco. Se puede coger otro)

MÉTODO PRINCIPIANTE PARA RESOLVER EL CUBO RUBIK RESOLUCIÓN DE LA PRIMERA CAPA. (Elegimos el color blanco. Se puede coger otro) MÉTODO PRINCIPIANTE PARA RESOLVER EL CUBO RUBIK RESOLUCIÓN DE LA PRIMERA CAPA (Elegimos el color blanco. Se puede coger otro) A).- Hacemos una cruz blanca con sus cuatro aristas bien orientadas, así: -Colocamos

Más detalles

MÉTODO PRINCIPIANTE PARA RESOLVER EL CUBO RUBIK

MÉTODO PRINCIPIANTE PARA RESOLVER EL CUBO RUBIK MÉTODO PRINCIPIANTE PARA RESOLVER EL CUBO RUBIK Amigo Martín: Antes de empezar fíjate bien en las piezas del CUBO. Son 26. La que están en el centro de un solo color. Son seis y se llaman ejes: Blancoamarillo;

Más detalles

RAZONAMIENTO LÓGICO MATEMÁTICO.

RAZONAMIENTO LÓGICO MATEMÁTICO. RAZONAMIENTO LÓGICO MATEMÁTICO. En este apartado pondrás a prueba tus habilidades de razonamiento matemático y lógico con unos simples ejercicios mentales, el objetivo de estos ejercicios es desarrollar

Más detalles

Colegio Agustiniano Ciudad Salitre Área de Tecnología e Informática Guía de Apoyo 2017 Bimestre: III Grado: Cuarto Docente: Jorge Torres

Colegio Agustiniano Ciudad Salitre Área de Tecnología e Informática Guía de Apoyo 2017 Bimestre: III Grado: Cuarto Docente: Jorge Torres Colegio Agustiniano Ciudad Salitre Área de Tecnología e Informática Guía de Apoyo 2017 Bimestre: III Grado: Cuarto Docente: Jorge Torres UNIDAD TEMÁTICA: PROGRAMACION PARA NIÑOS Logro: Identifica las herramientas

Más detalles

Métodos con Parámetros

Métodos con Parámetros Métodos con Parámetros Hasta ahora, nuestra clase RobotInspector todavía no es muy útil. Ejemplo para colocar dos conos hicimos esto en la clase anterior. Lo que lográbamos es que el robot coloque dos

Más detalles

Sentencia for : Ejemplo de Uso

Sentencia for : Ejemplo de Uso ESTRUCTURAS REPETITIVAS: for Anteriormente se discutió a la sentencias while y do-while que se utilizan en C++ para programar la ejecución de ciclos; existe sin embargo otra forma de representar sentencias

Más detalles

Un Robot llamado Karel

Un Robot llamado Karel Un Robot llamado Karel Materiales de apoyo para el instructor de un taller presencial sobre el Robot Karel Elaborado por Tecnología Educativa Galileo SA de CV Enero de 2008 Notas aclaratorias: Este documento

Más detalles

Cuáles son los lenguajes que pueden utilizarse para programar Karel?

Cuáles son los lenguajes que pueden utilizarse para programar Karel? EXAMEN NIVEL OMI Cuáles son las ventanas del programa de karel? a) Mundo, Programa, Ejecutar y Ayuda. b) Nueva, Abrir, Guardar, Guardar como y compilar. c) Muros y zumbadores. d) Todos los anteriores.

Más detalles

El bloque switch (Interruptor) - LEGO MINDSTORMS EV3

El bloque switch (Interruptor) - LEGO MINDSTORMS EV3 El bloque switch (Interruptor) - LEGO MINDSTORMS EV3 El bloque switch es uno de los bloques de flujo (naranjas) y sirve para dividir mi lista de instrucciones principal en distintos caminos posibles. La

Más detalles

Scratch: Técnicas de programación

Scratch: Técnicas de programación Scratch: Técnicas de programación Propósito: Comprende y aplica conceptos de programación usando el software Scratch Todo el mundo debería aprender a programar, porque eso te enseña a pensar Steve Jobs

Más detalles

ESTRUCTURAS DE CONTROL

ESTRUCTURAS DE CONTROL ESTRUCTURAS DE CONTROL En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa. Con las estructuras de control se puede: De

Más detalles

Aprende a contar ángulos dividiendo una circunferencia, realiza operaciones y busca patrones de repetición. Afna tu puntería, gira y dispara!

Aprende a contar ángulos dividiendo una circunferencia, realiza operaciones y busca patrones de repetición. Afna tu puntería, gira y dispara! Has jugado alguna vez al paintball? Este deporte consiste en librar batallas de disparos con armas de juguete utilizando como munición unas pelotas pequeñas rellenas de pintura que se rompen al impactar

Más detalles

Ejemplo Función anidada.

Ejemplo Función anidada. Ejemplo Función anidada. Función SI anidada La función SI es una de las funciones más utilizadas en Excel ya que nos ayuda a probar si una condición es verdadera o falsa. Si la condición es verdadera,

Más detalles

Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL

Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL Cualquier duda sobre el contenido de este tema se puede enviar al foro TEORIA2. 2.1.- El tipo de datos entero (byte,

Más detalles

Combinaciones y permutaciones

Combinaciones y permutaciones Combinaciones y permutaciones Prof Wilmer Adan Qué diferencia hay? Normalmente usamos la palabra "combinación" descuidadamente, sin pensar en si el orden de las cosas es importante. En otras palabras:

Más detalles

Sentencias iterativas

Sentencias iterativas Sentencias iterativas 1. Objetivos Al finalizar esta actividad, serás capaz de: 1. Utilizar adecuadamente la sentencia while para generar la repetición en la ejecución de grupos de sentencias 2. Motivación

Más detalles

PACMAN. Paso 1: moverse por un laberinto. Ejemplo del juego: https://www.youtube.com/watch?v=mvfejznexoq

PACMAN. Paso 1: moverse por un laberinto. Ejemplo del juego: https://www.youtube.com/watch?v=mvfejznexoq PACMAN Ejemplo del juego: https://www.youtube.com/watch?v=mvfejznexoq Paso 1: moverse por un laberinto Partiremos del proyecto disfraces-pacman 1 que contiene los objetos Pacman y Laberinto. Una vez dentro

Más detalles

Lektion 5: Programmierung - SCRATCH SENCILLOS Lección 5: Programación SCRATCH SENCILLOS

Lektion 5: Programmierung - SCRATCH SENCILLOS Lección 5: Programación SCRATCH SENCILLOS Lektion 5: Programmierung - SCRATCH SENCILLOS Lección 5: Programación SCRATCH SENCILLOS El trabajo en este bloque del curso consiste en la realización de 10 ejercicios de programación sencillos con SCRATCH.

Más detalles

Instituto Tecnológico de Roque

Instituto Tecnológico de Roque Instituto Tecnológico de Roque Departamento de Sistemas y Computación Curso de nivelación: LÓGICA LÓGICA PROPOSICIONAL O LÓGICA DE ENUNCIADOS 1.- LOS SIGNOS Signo es todo aquello que, para alguien, representa

Más detalles

" Sabías que se puede nadar 0,83 Km en un minuto?" le pregunta Víctor a Carlos.

 Sabías que se puede nadar 0,83 Km en un minuto? le pregunta Víctor a Carlos. NÚMEROS RACIONALES. Una mañana en el barco de buceo, Carlos comenzó a hablar con otro niño llamado Víctor. Víctor y su familia eran de Falcón y Víctor era apenas dos años mayor que Carlos. Los chicos entablaron

Más detalles

Objetivos de la práctica: - Trabajar las estructuras de control repetitivas en la realización de programas.

Objetivos de la práctica: - Trabajar las estructuras de control repetitivas en la realización de programas. Objetivos de la práctica: - Trabajar las estructuras de control repetitivas en la realización de programas. Sentencias de Control repetitivas (o bucles) Al igual que las estructuras selectivas, el bucle

Más detalles

Es conveniente que el docente realice previamente todos los pasos solo, si nunca antes realizó una actividad de este tipo.

Es conveniente que el docente realice previamente todos los pasos solo, si nunca antes realizó una actividad de este tipo. Es conveniente que el docente realice previamente todos los pasos solo, si nunca antes realizó una actividad de este tipo. 1. Explicar qué es un laberinto y qué es el ente que recorre un laberinto. El

Más detalles

Ayuda a Ana a dar instrucciones precisas a Max en su búsqueda del códice secreto!

Ayuda a Ana a dar instrucciones precisas a Max en su búsqueda del códice secreto! Max se ha infiltrado en el Museo de Historia para tratar de consultar un antiguo códice que, como la piedra de Rosetta, le facilite la clave para descifrar los documentos encontrados en la Biblioteca.

Más detalles

Mostrar la ficha Programador en Excel 2010

Mostrar la ficha Programador en Excel 2010 Excel. Mostrar ficha programador Si quieres escribir una nueva macro o ejecutar una macro previamente creada, entonces debes habilitar la ficha Programador dentro de la cinta de opciones. Para mostrar

Más detalles

Contenido 3. CONCEPTOS BASICOS I. 3.1 Hola mundo. Como funciona.

Contenido 3. CONCEPTOS BASICOS I. 3.1 Hola mundo. Como funciona. Contenido 3. Conceptos básicos 3.1 Hola mundo. Como funciona 3.2 Primeros ejemplos 3.2.1 Imprimir un rombo 3.2.1 Primera letra de tu nombre 3.3 Funciones I 3.3.1 Declaración de funciones. Creación de una

Más detalles

Ejercicio de algoritmia resuelto con Visual Basic: ordenar series de series de números. (CU00356A)

Ejercicio de algoritmia resuelto con Visual Basic: ordenar series de series de números. (CU00356A) aprenderaprogramar.com Ejercicio de algoritmia resuelto con Visual Basic: ordenar series de series de números. (CU00356A) Sección: Cursos Categoría: Curso Visual Basic Nivel I Fecha revisión: 2029 Autor:

Más detalles

Ibero Rubik Megaminx Método sencillo

Ibero Rubik Megaminx Método sencillo Ibero Rubik Megaminx Método sencillo Versión 2. Actualizado el 12/04/2016. Introducción Antes de comenzar con la guía recomendamos activamente visitar la guía de nomenclatura que podréis encontrar en nuestra

Más detalles

Guía de estilo y buenas prácticas de programación en C/C++

Guía de estilo y buenas prácticas de programación en C/C++ Guía de estilo y buenas prácticas de programación en C/C++ Introducción A la hora de escribir código fuente en un determinado lenguaje de programación es aconsejable seguir unas guías de estilo. Esto te

Más detalles

Clase 2: El Lenguaje Python

Clase 2: El Lenguaje Python Agosto 2012 Clase 2 Temario Consideraciones generales Operadores y expresiones Variables y Tipos Funciones Las Estructuras de Control Guía práctica Primer curso de programación usando robots y Python Objetivos

Más detalles

Diagramas de secuencia

Diagramas de secuencia Facultad de Ingeniería Departamento de Ingeniería de Sistemas y Computación Diagramas de secuencia Fragmentos Combinados: caminos alternativos Departamento de Ingeniería de Sistemas y Computación - Universidad

Más detalles

Diseño Estructurado de Algoritmos

Diseño Estructurado de Algoritmos Diseño Estructurado de Algoritmos 1 Sesión No. 11 Nombre: Estructuras algorítmicas. Tercera parte. Objetivo de la sesión: Al concluir la sesión el estudiante aplicará las estructuras algorítmicas repetitivas

Más detalles

TEMA 7: INICIO A LA PROGRAMACIÓN CON SCRATCH

TEMA 7: INICIO A LA PROGRAMACIÓN CON SCRATCH TEMA 7: INICIO A LA PROGRAMACIÓN CON SCRATCH Scrath es un entorno de programación visual y multimedia destinado a la realización de secuencias animadas con o sin sonido y al aprendizaje de la programación.

Más detalles

Operadores. Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.

Operadores. Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++. Operadores Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++. Operadores aritméticos Son operadores binarios (requieren siempre dos operandos) que realizan las operaciones aritméticas

Más detalles

Agentes Inteligentes. Agentes Reflexivos RobotC. Manuel Aínza Carrillo Luis Enrique Garay Olmos Rocío García Estrada

Agentes Inteligentes. Agentes Reflexivos RobotC. Manuel Aínza Carrillo Luis Enrique Garay Olmos Rocío García Estrada Agentes Inteligentes Agentes Reflexivos RobotC Manuel Aínza Carrillo AGENTES REFLEXIVOS ROBOTC 1 INTRODUCCIÓN Los ejercicios de la práctica de agentes reflexivos utilizando RobotC fueron para familiarizarnos

Más detalles

Programación 2. Guía de estilo y buenas prácticas de programación en C/C++

Programación 2. Guía de estilo y buenas prácticas de programación en C/C++ Programación 2 Guía de estilo y buenas prácticas de programación en C/C++ Introducción A la hora de escribir código fuente en un determinado lenguaje de programación es aconsejable seguir unas guías de

Más detalles

" Sabías que los delfines pueden nadar 1,33 Km en un minuto?" Cheo preguntó Carlos.

 Sabías que los delfines pueden nadar 1,33 Km en un minuto? Cheo preguntó Carlos. CONCEPTO DE FRACCIÓN Una mañana, en el barco, en una clase de buceo, Carlos comenzó a hablar con otro niño llamado Cheo. Cheo y su familia eran de Maracaibo y Cheo era apenas dos años mayor que Carlos.

Más detalles

Algoritmo. Programa. Lenguaje algorítmico

Algoritmo. Programa. Lenguaje algorítmico ESCUELA DE EDUCACION SECUNDARIA TECNICA N 3 LENGUAJE ELECTRONICO PROFESOR: PAOLO, MARCOS GERMAN TEMA: ALGORITMOS Algoritmo Es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y

Más detalles

Sentencias de Procesamiento Iterativo: while y do-while

Sentencias de Procesamiento Iterativo: while y do-while ESTRUCTURAS CÍCLICAS Se discuten en este documento las sentencias que se utilizan en el lenguaje C++ para representar la tercera de las estructuras utilizadas en la programación estructurada: La Estructura

Más detalles

Y alternativamente se presentarán soluciones de problemas donde se utilicen:

Y alternativamente se presentarán soluciones de problemas donde se utilicen: Herramientas Para implementar la solución de un problema mediante el uso de una computadora es necesario establecer una serie de pasos que permitan resolver el problema, a este conjunto de pasos se le

Más detalles

Guía de trabajo individual / parejas Uso de Variables y Condicionales

Guía de trabajo individual / parejas Uso de Variables y Condicionales Guía de trabajo individual / parejas Uso de Variables y Condicionales Esta guía de trabajo está enfocada en la labor del alumno (o de la pareja de alumnos) de tal manera de exponer los conceptos de uso

Más detalles

Tema 8: Funciones I. Características.

Tema 8: Funciones I. Características. Tema 8: Funciones I. Características. Iniciamos la primera parte de los dos temas que vamos a dedicar al bloque de análisis, en el cual vamos a conocer y definir el concepto de función y los principales

Más detalles

EJERCICIOS RESUELTOS EN C CON IF THEN ELSE. PAR O IMPAR. ECUACIÓN CUADRÁTICA. PARADOJAS. (CU00530F)

EJERCICIOS RESUELTOS EN C CON IF THEN ELSE. PAR O IMPAR. ECUACIÓN CUADRÁTICA. PARADOJAS. (CU00530F) APRENDERAPROGRAMAR.COM EJERCICIOS RESUELTOS EN C CON IF THEN ELSE. PAR O IMPAR. ECUACIÓN CUADRÁTICA. PARADOJAS. (CU00530F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde cero

Más detalles

Objetivos. Temas a tratar. Capitulo 5 Repaso

Objetivos. Temas a tratar. Capitulo 5 Repaso Capítulo 5 Repaso Objetivos Hasta ahora se ha deido la manera de escribir programas utilizando el lenguaje del robot. También se ha presentado la sintaxis utilizada que permite trasladar al robot, recoger

Más detalles

Vemos, pues, que esta forma de organizar los datos es mucho más potente que utilizando las tabulaciones u otros métodos.

Vemos, pues, que esta forma de organizar los datos es mucho más potente que utilizando las tabulaciones u otros métodos. Unidad 8. Tablas (I) Las tablas permiten organizar la información en filas y columnas, de forma que se pueden realizar operaciones y tratamientos sobre las filas y columnas. Por ejemplo, obtener el valor

Más detalles

Como programar en Karel

Como programar en Karel Como programar en Karel Karel tiene un editor en el cual podemos programar, para acceder a él hay que dar click en la pestaña Programa. Despues de esto, debemos seleccionar el lenguaje a utilizar (Pascal

Más detalles

VI Olimpiada de Informática del estado de Guanajuato Examen: Karel en la Feria

VI Olimpiada de Informática del estado de Guanajuato Examen: Karel en la Feria El comité organizador te da la bienvenida al Examen Práctico de la VI Olimpiada de Informática del Estado de Guanajuato. 1) El examen tiene una duración de 4:30 horas. 2) El examen consiste en 4 problemas

Más detalles

Consulta Avanzado. Objetivo. Contenido. Consulta avanzado. Sesión 1. Aprender a usar las funciones consultav, consulta H, Si y es Error.

Consulta Avanzado. Objetivo. Contenido. Consulta avanzado. Sesión 1. Aprender a usar las funciones consultav, consulta H, Si y es Error. Consulta Avanzado Objetivo Aprender a usar las funciones consultav, consulta H, Si y es Error. Contenido Combinación de funciones: CONSULTAV, CONSULTAH, SI, ESERROR Búsqueda Múltiple. Consulta avanzado

Más detalles

Sesión 18 Ensamble de Pinza

Sesión 18 Ensamble de Pinza Sesión 18 Ensamble de Pinza (Guía del formador secundaria) Meta En esta sesión vamos a ensamblar la pinza y colocarla en nuestro Innobot, Luego de esto, realizaremos un pequeño programa para agarrar objetos

Más detalles

IF ELSE, IF ELSE IF JAVASCRIPT. CONDICIONALES DEL FLUJO O ESTRUCTURAS DE DECISIÓN. EJEMPLOS. EJERCICIOS. (CU01119E)

IF ELSE, IF ELSE IF JAVASCRIPT. CONDICIONALES DEL FLUJO O ESTRUCTURAS DE DECISIÓN. EJEMPLOS. EJERCICIOS. (CU01119E) APRENDERAPROGRAMAR.COM IF ELSE, IF ELSE IF JAVASCRIPT. CONDICIONALES DEL FLUJO O ESTRUCTURAS DE DECISIÓN. EJEMPLOS. EJERCICIOS. (CU01119E) Sección: Cursos Categoría: Tutorial básico del programador web:

Más detalles

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO Control de Flujo Estructuras de Control Experiencia Educativa de Algorítmica 1 Introducción El estilo de como escribimos y analizamos un algoritmo se convierte en una de las principales características

Más detalles

Programación Orientada Objetos. Estructuras de control if, If else, switch

Programación Orientada Objetos. Estructuras de control if, If else, switch Programación Orientada Objetos Estructuras de control if, If else, switch Estructuras de control Las estructuras condicionales controlan si una sentencia o bloque de sentencias se ejecutan, en función

Más detalles

LISTA PARA VALIDACIÓN DE DATOS EN EXCEL

LISTA PARA VALIDACIÓN DE DATOS EN EXCEL LISTA PARA VALIDACIÓN DE DATOS EN EXCEL Cuando compartes tus libros de Excel con otras personas y ellos introducen información en las hojas que has preparado con tanto esfuerzo, es de suma importancia

Más detalles

Lógica. Conectivas y tablas de verdad. Elementos de Programación y Lógica. Unidad 2 - Clase 2

Lógica. Conectivas y tablas de verdad. Elementos de Programación y Lógica. Unidad 2 - Clase 2 Lógica Conectivas y tablas de verdad Elementos de Programación y Lógica Unidad 2 - Clase 2 1 Valores de verdad (Booleanos) 2 Preguntas usando la lógica 3 Formalismos lógicos Conectivas Tablas de Verdad

Más detalles

A continuación se describirán el problema, el análisis del algoritmo, sus propiedades y los

A continuación se describirán el problema, el análisis del algoritmo, sus propiedades y los 3.- Descripción y análisis del algoritmo A continuación se describirán el problema, el análisis del algoritmo, sus propiedades y los resultados al aplicarlo a las matrices de entrada de los casos de uso.

Más detalles

NOCIONES BASICAS DE Miguel Iván Bobadilla

NOCIONES BASICAS DE Miguel Iván Bobadilla NOCIONES BASICAS DE Miguel Iván Bobadilla ~ 1 ~ Indice Introducción... 4 Sintaxis de Python... 6 Datos... 6 Tipos de datos básicos... 7 Asignando valores, variables y constantes... 8 Salida de datos...

Más detalles

Bloque 2. Algoritmos y pseudocódigo

Bloque 2. Algoritmos y pseudocódigo Bloque 2. Algoritmos y pseudocódigo Autores Manuel José Blanco Bargé Todo el documento está sujeto a los siguientes términos de la licencia Creative Commons Reconocimiento-CompartirIgual 4.0 Internacional

Más detalles

Programación. Clase 5 Qué es la programación? Primeros autómatas. Universidad Nacional de Quilmes

Programación. Clase 5 Qué es la programación? Primeros autómatas. Universidad Nacional de Quilmes Programación Clase 5 Qué es la programación? Primeros autómatas Universidad Nacional de Quilmes Qué es la programación? Programar: Programar es comunicar descripciones de soluciones a problemas en el lenguaje

Más detalles

Robótica. Un robot...

Robótica. Un robot... Robótica Un robot... La palabra robot está a la orden del día y muchas veces al escucharla nos imaginamos una máquina con forma humana que camina, habla, gesticula pero en realidad es algo mucho más sencillo.

Más detalles

media = ( temp0 + temp1 + temp2 + temp3 + temp temp23 ) / 24; printf( "\nla temperatura media es %f\n", media );

media = ( temp0 + temp1 + temp2 + temp3 + temp temp23 ) / 24; printf( \nla temperatura media es %f\n, media ); Arrays en el lenguaje C Introducción Una posible definición de array sería: Un conjunto de datos del mismo tipo, identificados por el mismo nombre, y que se pueden distinguir mediante un número de índice.

Más detalles

Introducción a la programación del robot moway

Introducción a la programación del robot moway Introducción a la programación del robot moway Índice Introducción... 2 Diagramas de flujo... 2 Bloques de Movimiento... 5 Condicionales... 6 Bucles... 7 Operadores AND / OR... 8 Orden en los diagramas...

Más detalles

Pseudocódigo. La forma en que se escribe un pseudocódigo es la siguiente:

Pseudocódigo. La forma en que se escribe un pseudocódigo es la siguiente: Pseudocódigo El pseudocódigo o pseudolenguaje, son una serie de instrucciones en nuestro lenguaje natural (español, ingles, etc.) y expresiones que representan cada uno de los pasos que resuelven un problema

Más detalles

Materia: Matemática de séptimo Tema: El Concepto de Fracciones

Materia: Matemática de séptimo Tema: El Concepto de Fracciones Materia: Matemática de séptimo Tema: El Concepto de Fracciones Una mañana, en el barco de buceo, Cameron comenzó a hablar con otro niño llamado Chet. Chet y su familia eran de Colorado y Chet era apenas

Más detalles

Construye y programa tu radar de tramo

Construye y programa tu radar de tramo Construye y programa tu radar de tramo Breve descripción del proyecto Materiales: En este proyecto vas a descubrir cómo construir y programar tu propio radar de tramo para poder medir la velocidad a la

Más detalles

fundamentos de programación (unidad 4) programación estructurada en Java

fundamentos de programación (unidad 4) programación estructurada en Java fundamentos de programación (unidad 4) programación estructurada en Java Para ver una copia completa de la licencia, acudir a la dirección http://creativecommons.org/licenses/by-nc-sa/2.5/es/legalcode.es

Más detalles

12 a OLIMPIADA MEXICANA DE INFORMÁTICA EXAMEN FINAL (PRIMERA PARTE) 24 DE MARZO 2007

12 a OLIMPIADA MEXICANA DE INFORMÁTICA EXAMEN FINAL (PRIMERA PARTE) 24 DE MARZO 2007 1) El examen tiene una duración de 4.5 horas. 2) No puedes introducir a material impreso ni dispositivos electrónicos, como calculadoras, teléfonos celulares, discos flexibles, discos compactos, etc. 3)

Más detalles

Manual de acceso al curso de Certificación de Inscripción

Manual de acceso al curso de Certificación de Inscripción Manual de acceso al curso de Certificación de Inscripción Delegación de la Coordinación Nacional del Programa de Desarrollo Humano Oportunidades en Veracruz Acceso al Portal Para acceder a la página del

Más detalles

Introducción a Scratch

Introducción a Scratch Guía del maestro: Introducción a Scratch Introducción a Scratch Scratch es una herramienta potente y versátil para iniciarse en el mundo de la programación. Se utiliza de forma fácil e intuitiva, con un

Más detalles

LA VACA Y EL SATÉLITE

LA VACA Y EL SATÉLITE 3 LA VACA Y EL SATÉLITE Un juego clásico que funcionaba ya en las primeras computadoras, pero con los personajes de Huayra. Que no se caiga el satélite! 1- Entramos a Scratch y borramos al gato haciendo

Más detalles

Sistemas secuenciales síncronos: la tabla de estados de un control de volumen

Sistemas secuenciales síncronos: la tabla de estados de un control de volumen Sistemas secuenciales síncronos: la tabla de estados de un control de volumen Apellidos, nombre Martí Campoy, Antonio (amarti@disca.upv.es) Departamento Centro Informàtica de Sistemes i Computadors Escola

Más detalles

Resolución de Problemas y Algoritmos

Resolución de Problemas y Algoritmos RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS CLASE 8 Resolución de problemas utilizando recursión Luciano H. Tamargo http://cs.uns.edu.ar/~lt Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional

Más detalles

Resolución de Problemas y Algoritmos

Resolución de Problemas y Algoritmos RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS CLASE Estructura de control condicional. Luciano H. Tamargo http://cs.uns.edu.ar/~lt Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur,

Más detalles

Centenas Decenas Unidades

Centenas Decenas Unidades OPERACIONES EN Z (Números Enteros) Alguna vez has estado en un zoológico? Alguna vez has tenido que sumar números enteros para resolver un problema? Sumar números enteros es una habilidad que puede ayudarte

Más detalles

Karel el Robot. Materiales de Apoyo. Talleres de preparación OMI para alumnos de Educación Secundaria Técnica del D.F. Febrero 2010.

Karel el Robot. Materiales de Apoyo. Talleres de preparación OMI para alumnos de Educación Secundaria Técnica del D.F. Febrero 2010. Karel el Robot Talleres de preparación OMI para alumnos de Educación Secundaria Técnica del D.F Materiales de Apoyo Febrero 2010. Índice de contenido Karel el Robot Introducción 1 Karel el Robot 4 1.1

Más detalles