1. Expresiones Booleanas

Imagina que tienes un tablero de ajedrez totalmente vacío. En él colocarás una pieza del ajedrez en la posición (f1,c1) para moverla a la posición (f2,c2) mediante un movimiento legal. Se pide que expreses mediante una expresión booleana el movimiento legal para cada una de las siguientes situaciones:

Movimiento de la torre

El movimiento es legal si la segunda casilla se encuentra en la misma fila o columna que la primera.

Movimiento del álfil

El movimiento es legal si la segunda casilla se encuentra en la misma diagonal que la primera.

Movimiento de la reina

Los movimientos de la reina son la de la torre y el álfil juntos.

Movimiento del rey

Solo se puede mover a una casilla contigua.


2. Estructuras condicionales

Dados 3 valores numéricos almacenados en las variables a, b y c, ordena los valores de tal forma que al finalizar el proceso se cumpla que a < b < c.

Imprime el mensaje correspondien junto con los valores de a, b y c antes y después de la ordenación, utilizando una función que se encargue de ello.


Programa el siguiente juego.

De forma aleatoria aparece una letra en la parte superior de la ventana gráfica para a continuación descender verticalmente en cada frame hasta desparecer por la parte inferior. Durante la caída, si el usuario pulsa la tecla coincidente con la letra que aperece en la pantalla entonces el usuario gana un punto y vuelve a aparecer una letra nueva que hará el mismo recorrido expuesto anteriormente, en un lugar necesarimente diferente, pero con una velocidad un poco mayor. Pero si la tecla pulsada no coincide con la letra que aparece en la pantalla el usuario pierde un punto. Finalmente, si la letra desaparece por la parte inferior de la ventana gráfica antes de que el jugador pulse la tecla correspondiente entonces el juego finaliza.

  • Requisitos: Implementa las funciones encargadas de (1) generar una carácter al azar (las letras minúsculas a-z y los números) y (2) seleccionar aleatoriamente una columna de descenso diferente dada la letra anterior.

  • Una ayuda: Te puede ser muy útil usar la variable global key en la función keyReleased.

  • Una curiosidad: este es el fundamento del juego Tux Typing para aprender a mecanografiar.


3. Estructuras repetitivas

Se sabe que la función trigonométrica sen(x) se pueda aproximar mediante la serie:

\[sen(x) \approx \sum_{k=0}^n \frac{(-1)^k}{(2k+1)!} x^{2k+1}\]
  • Crea una función que aproxime el seno de un número real (radianes) para un 'n' dado de acuerdo a la expresión anterior.

  • Crea una función que indique el error cometido entre la función sin(x) implementada en Processing y tu función (para un n dado).

  • Crea una función que indique cuántas iteraciones tiene que hacer tu función para que se aproxime a la evaluación de Processing con un error inferior a un valor \(\epsilon\) dado.


  • Crea una función que indique cuándo un número es primo.

    Un número primo es un número natural mayor que 1 que tiene únicamente dos divisores distintos: él mismo y el 1.

  • Crea una función que indique cuántas cifras tiene un número entero. Tanto 315 como -623 tienen 3 cifras.

    Pista: Las unidades de un número natural se obtienen dividiendo por 10.

  • Crea una función que indique si la cantidad de cifras de un número entero es primo.

  • Crea una función que indique cuántas cifras de un número son números primos.


Crea un programa resolviendo los siguientes problemas (funciones).

  • Contar los múltiplos de n entre dos valores inf y sup (asegurate de que en la función inf<sup).

  • Sumar los múltiplos de n entre dos valores inf y sup (asegurate de que en la función inf<sup).

  • Una función que imprima tanto el conteo como la suma de los múltiplos de n.

  • Modifica el programa anterior para que los valores n, inf y sup vengan dados por el usuario. Asegurate de que en los datos solicitados inf<sup.

Nota: recuerda que retornar (calcular) no es imprimir.


4. Bucles anidados

Dibuja en la consola de texto un triángulo de altura n.

  • Solicita la altura al usuario.

  • Usa una función para imprimir el triángulo.

  • Cuando funcione, sustituye el bucle anidado por una función que imprima las almohadillas que se correspondan con la línea k-ésima del triángulo.

Ejemplos:

  • De altura 3.

  #
 # #
#####
  • De altura 5.

    #
   # #
  #   #
 #     #
#########

  • Haz un programa que imprima el triángulo de Floyd.

  • Solicita al usuario la cantidad de números a mostrar en el triángulo. Asegurate de que te suministra un valor correcto.

  • Cuando funcione, sustituye el bucle anidado por una función encargada de imprimir cada línea.

Ejemplos:

  • floyd(3).

1
2 3
  • floyd(6).

1
2 3
4 5 6
  • floyd(8).

1
2 3
4 5 6
7 8

Haz un programa con los siguientes requisitos:

  1. Debe tener una función que determine si un número es primo o no.

  2. Otra función que haga lo siguiente. Para un número natural dado buscará los k-primeros números primos que sean mayores o iguales a dicho número. También imprimirá a cada uno de ellos junto con los cuadrados perfectos inferiores a dicho número primo, mostrando también la suma de dichos cuadrados perfectos.

  3. Contendrá una función que invocará a la función anterior para n-números aleatorios.

Recuerda las siguientes definiciones:

  • Un número primo es un número natural mayor que 1 que tiene únicamente dos divisores distintos: él mismo y el 1.

  • Un número es cuadrado perfecto si es un número entero que es el cuadrado de algún otro (o si se prefiere, es un número cuya raíz cuadrada es un número entero).

Ejemplo

El 11 es un número primo y son cuadrados perfectos inferiores a dicho número el 1, el 4 y el 9. El mensaje en el que se muestre el número primo, los cuadrados perfectos y su suma puede ser el siguiente:

11: 1+4+9=14

Así, en el caso de que nos pidieran ejectuar la segunda función para el número 4 o el número 5 con 'k=3', tendrás que mostra el mensaje anterior correspondiente a los primos: 5, 7 y 11.