martes, 4 de diciembre de 2012

Nuevas instrucciones, recursividad y variables

Variables en Karel ¿Mito o Realidad?

Tal vez te sorprenda esto, pero Karel tiene soporte para variables; sin embargo, dicho soporte esta bastante limitado; ya que solo se puede utilizar una variable por función, dicha variable se pasa como
parámetro.

Aunque no es posible hacer asignaciones directamente a una variable, existen 3 funciones de Karel que operan con variables:

● precede(x) devuelve x1.
● sucede(x) devuelve x+1
● siescero( x) devuelve verdadero si x=0 y falso en caso contrario

Al declarar una función en Karel es bastante facil permitirle que use una variable como parametro:

definenuevainstruccion funcion(nombredelavariable) como

Para llamar a una función con un parámetro declarado, se puede hacer de la siguiente manera:

funcion(valordelparametro);

Ahora es posible utilizar la variable en la expresión repetir de la siguiente manera:
repetir nombredelavariable veces

En la expresión si de la siguiente manera:
si siescero( nombredelavariable) entonces

o bien

si no(siescero( nombredelavariable)) entonces

Estos usos, aunque pueden ahorrar código, no ayudan de manera significativa para resolver problemas.

La principal utilidad de las variables en Karel, es la capacidad que tienen para incrementarse o decrementarse al pasarlas como parámetros en una recursión. Para entender mejor esto, es conveniente ver un ejemplo práctico.


PROBLEMA DE EJEMPLO






SOLUCION


miércoles, 7 de noviembre de 2012

Problemas clásicos

A continuación se proponen dos problemas, tu tarea consiste en traducirlos y en resolverlos de manera DETALLADA, indicando todos los pasos que es necesario seguir, desde el principio hasta el final.

PROBLEM: HOW TO CROSS THE RIVER?

A farmer with a fox, a goose, and a sack of corn needs to cross a river. The farmer has a rowboat, but there is room for only the farmer and one of his three items. Unfortunately, both the fox and the goose are hungry. The fox cannot be left alone with the goose, or the fox will eat the goose. Likewise, the goose cannot be left alone with the sack of corn, or the goose will eat the corn. How does the farmer get everything across the river?

PROBLEM: COMPLETING A SUDOKU SQUARE

A 9×9 grid is partially filled with single digits (from 1–9), and the player must fill in the empty squares while meeting certain constraints: In each row and column, each digit must appear exactly once, and further, in each marked 3×3 area, each digit must appear exactly once.


miércoles, 26 de septiembre de 2012

Examen de Prueba - Olimpiada de Informática



Instrucciones. Resuelve los siguientes ejercicios y envìa tus resultados a informaticacobach29@gmail.com

RAZONAMIENTO MATEMÁTICO
En este tema se plantean problemas cuya resolución requiere que el problema se modele utilizando alguna herramienta matemática. Ninguno de los problemas matemáticos que se presenten requerirán de conocimientos superiores de matemáticas. Sin embargo para resolver estos problemas se requiere que entiendas perfectamente lo que se te esta pidiendo y seas capaz de expresarlo de manera matemática.
Recuerda escribir solamente el resultado del problema y ningún otro caracter.
1.- LLENANDO UNA ALBERCA
Tienes que llenar una alberca y tienes dos mangueras de diferente grosor. Si utilizas la manguera ancha tardaras 240 minutos (4 horas) en llenar la alberca. Si utilizas la manguera delgada tardaras 360 minutos (6 horas) en llenarla. ¿Cuánto tardarás en llenarla si utilizas las dos mangueras? (Escribe tu resultado en minutos).
RESULTADO: 

2.- LAS NARANJAS DEL GRANJERO
Un granjero tiene una canasta de naranjas que desea vender, en la primera casa a la que llega, vende la mitad de las naranjas mas una, en la segunda casa vende igualmente la mitad de las naranjas que le quedan, mas una, del mismo modo en la tercera y la cuarta. Cuando llega a la quinta casa, le resulta imposible vender la mitad de sus naranjas mas una, por lo que contento decide regresar a su casa. ¿Cuantas naranjas tenia el granjero?
RESULTADO: 

3.- LA EDAD DE MARTHA
María tiene 4 años, su hermana Martha tiene tres veces su edad. ¿Que edad tendrá Martha cuando su edad sea el doble de la de María?
RESULTADO:


RAZONAMIENTO LÓGICO
En el tema de razonamiento lógico se plantean problemas para cuya solución se requiere seguir un razonamiento lógico basado en los datos con los que se cuenta para el problema.
Es muy importante que antes de iniciar a resolver el problema te asegures que entiendes perfectamente que es lo que se te esta pidiendo. Posteriormente toma los datos que se te dan y trata de establecer una relación lógica entre ellos y el resultado al que quieres llegar.

4.- ¿QUIÉN ES MÁS RÁPIDA?
Vero es más rápida que Liz, y Ruth es mas lenta que Vero. Cual de los siguientes enunciados es correcto:
a) Ruth es más rápida que Liz.
b) Ruth es más lenta que Liz.
c) Ruth es tan rápida como Liz.
d) Es imposible saber quien es más rápida de Ruth o de Liz.

5.- ¿SERÁ CIERTO?
Supongamos que los siguientes argumentos son verdaderos:
I .- Todos los desarrolladores son ingenieros.
II .- Todos los ingenieros son listos.
Si concluimos que "Todos los dearrolladores son listos", nuestra conclusión sería
a) Correcta
b) Incorrecta
c) No se puede saber

6.- LAS HIJAS DEL PROFESOR
Cierto día se encontraron en la universidad dos profesores amigos, el primero daba clase de música y el segundo de matemáticas. Tras platicar un rato el profesor de música dijo que tenía que irse porque era el cumpleaños de una de sus hijas y tenía que ir a comprar un regalo. El profesor de matemáticas le pregunto la edad de sus hijas. Como a ambos les gustaban los acertijos, el profesor de música dijo:
- Te voy a plantear un acertijo, y si lo resuelves sabrás la edad de mis hijas.
- Muy bien - dijo el profesor de matemáticas.
- Tengo 3 hijas, y el producto de sus edades es 36 y la suma es igual al número de ventanas de ese edificio.
- El profesor de matemáticas lo pensó un momento y dijo: "Me hace falta un dato"
- Es cierto - dijo el profesor de música - La mayor de ellas toca el piano.
¿Qué edad tienen las hijas del profesor de música?
Escribe tu respuesta comenzando por la hija mayor y separando cada número por una coma, en la forma a,b,c
RESPUESTA: