Introducción a la Programación

Documentos relacionados
Maribel Martínez y Ginés Ciudad-Real Fichas para mejorar la atención MATRIZ DE LETRAS

El determinante de una matriz se escribe como. Para una matriz, el valor se calcula como:

EL TABLERO. El tablero está dividido en sesenta y cuatro (64) casillas o escaques alternando los colores blancos con los negros.

Retículos y Álgebras de Boole

Funciones y Condicionales Introducción a la Programación

Materia: Matemática de Tercer Año Tema: Pendiente

Ejemplo de formato condicional según contenido de la celda

Del mismo modo, si el coche empieza a descender por una colina, todavía se puede determinar la pendiente.

Programación I: Matrices - Arreglos bidimensionales

ACTIVIDAD CURSO 1 DE LOS ESFUERZOS 2013 PROFESOR: DANIEL C. M.

OLIMPÍADA JUVENIL DE MATEMÁTICA 2015 CANGURO MATEMÁTICO PRIMER AÑO

Curso 1º Sistemas Microinformáticos y redes Módulo: Aplicaciones Ofimáticas Sesión 1: Creamos el tablero de ajedrez con Python

CO-BRANDING APLICACIONES HORIZONTALES

Resolución de cubo de Rubik

Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Programación de Computadores Proyecto de curso,

58 Juegos de intercambio

EJERCICIOS PAU MATEMÁTICAS II ARAGÓN Autor: Fernando J. Nora Costa-Ribeiro Más ejercicios y soluciones en fisicaymat.wordpress.com

Programación 1 - Práctica 0, recargada.

Lección 10: Representación gráfica de algunas expresiones algebraicas

PSICOTÉCNICOS SUB24 EJERCICIO Nº 1 INSTRUCCIONES

Truco para encontrar y reemplazar líneas manuales por marcas de párrafo

Reglamento de Juego. Cubo Gusano. Santiago del Estero 2829 (C.P. 3000) Santa Fe

Taller de Listas Introducción a la Programación

Fila: Es un conjunto de varias celdas dispuestas en sentido horizontal.

PROGRAMACIÓN EN PYTHON 2. Clara Higuera Laboratorio Integrado de Biofísica y Bioinformática Nov-2015

Guía para el estudiante

6. FORMAS Y SUPERFICIES

INSTRUCCIONES AJEDREZ

GEOMETRÍA ANALÍTICA. La idea de línea recta es uno de los conceptos intuitivos de la Geometría (como son también el punto y el plano).

Empieza a leer... Cuboku

USO DE LOS JUEGOS DE MESA EN EL AULA

FABRICA TU TABLERO. Consigue: - Cartulina quadrada de 40 cms de lado. - Regla de por lo menos 5 cms. - Lápiz.

Charla N 7: Impresión.

CUADERNO DE CÁLCULO:

Forma Lados Ángulos. Nombre: Geometría Formas en dos dimensiones. Trabajo en clase. Tacha la forma que no corresponda a cada fila.

Pasos para cambiar la orientación de la página

Juegos y Estrategias de resolución

19 a Competencia de MateClubes Primera Ronda Nivel Preolímpico

MÓDULO DIDÁCTICO PARA LA ENSEÑANZA Y EL APRENDIZAJE DE LA ASIGNATURA DE MATEMÁTICA EN ESCUELAS RURALES MULTIGRADO

import math # Importa la libreria math, que permite utilizar operaciones y funciones matematicas

Resolución del cubo de 4x4x4. Ibero Rubik

Escribe adiciones y sustracciones sobre los dibujos. a) b)


Programación I: Funciones y módulos

Matrices y Sistemas Lineales

MATEMÁTICAS III CUADERNILLO DE ACTIVIDADES Y TAREAS. Bachillerato General, Modalidad Mixta

4 o Grado. Multiplicación y la División. Revisión de Multiplicación. Relación entre la. Slide 2 / 105. Slide 1 / 105. Slide 4 / 105.

Microsoft Excel. Manejo de Software para Microcomputadoras

Matrices y Sistemas Lineales

Líneas paralelas, perpendiculares y secantes

Los Puntos Cardinales

PRÁCTICAS DE EXCEL PARTE 1

CURSO DE EXCEL EMPEZANDO A TRABAJAR CON EXCEL

Enunciado unidades fraccionarias fracción fracciones equivalentes comparar operaciones aritméticas fracciones propias Qué hacer deslizador vertical

Problema de las N Reinas. Resolución paralela

Operación de Microsoft Excel

Recursividad. Introducción a la programación

Textos descriptivos. Marcela

Matrices: Conceptos y Operaciones Básicas

REGLAMENTO DEL AJEDREZ. Tablero cuadrado 8x8 de 64 casillas con colores alternados (típicamente blanco y negro).

1. Colorea las pelotas que están delante del arco y coloca una X sobre las pelotas que están detrás.

100(n + 2) + 10(n + 1) + n. Análogamente, para el número que se obtiene al invertir las cifras del primero, resulta: 100 n + 10(n + 1) + (n + 2)

Clases y objetos en python (Programacion Orientada a Objetos)

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas

Prueba N o 1. Programación II

Trabajo Práctico N 5: ESPACIOS VECTORIALES. Ejercicio 1:

Matrices. Observación: Es usual designar una matriz por letras mayúsculas: A, B, C,... 3 B =

Ing. Ramón Morales Higuera

Actividades de refuerzo

Tema: Los números naturales menores que un millón

02-A-1/8. Nombre: Dividir es repartir a partes iguales. Una división es exacta cuando el resto es igual a cero.

Juegos. Speak. Cómo jugar. En esta actividad aparecerá una cara que te dirá lo que tu escribas.

PRIMER AÑO DE SECUNDARIA

Constantes. Las constantes no cambian durante la ejecucion de un programa en C++, en C++ existen 4 tipos de constantes:

FUNCIONES EN EXCEL III

EXAMEN DEPARTAMENTAL DE CÁLCULO DIFERENCIAL MUESTRA FIN TECATE UABC

FUNCIÓN LINEAL. Ejemplos. 1. Encuentre el criterio de la función lineal cuya gráfica pasa por los puntos 8. Solución. Se conocen dos de sus puntos.

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Determinantes y Desarrollo por Cofactores

Introducción a Microsoft Paint

Instructivo para diligenciar el Formato de Informe Decreto 514

Mapa semántico Débora De Sá

Elementos de un programa en C

Matemáticas Discretas TC1003

Materia: Matemática de 5to Tema: Vectores en el Espacio. Marco Teórico

SOLUCIONARIO Medidas de tendencia central y posición

EFECTOS TRIDIMENSIONALES

open green road Guía Matemática VECTORES tutora: Jacky Moreno .co

Contenido. Introducción Usando di Monitoring como un usuario normal Uso de di Monitoring como un operador de entrada de datos...

Curso Taller de Matemáticas Olímpicas. Principio Fundamental del Conteo

2. Inserta la tabla. Para comenzar el proceso de creación de la tabla, tendrás que insertar una en tu hoja de cálculo.

EJERCICIOS DE EXCEL BÁSICO

Longitud Lado 1 Longitud Lado 2 Perímetro Área. En base a lo anterior, Cuál es la decisión que debe tomar Romualdo?

1. Base: En todo momento un máximo de 50cm x 50 cm x 30 cm.

Soluciones - Primer Nivel Juvenil

Ajedrez. Cómo jugar Autor: Erick López

Programación Dinámica

GUIA DE EJERCICIOS N 1 LENGUAJE C# Página 1 de 5. Instructor: Ing. Néstor Raúl Suarez Perpiñan

Transcripción:

Cali Cali Introducción a la Programación Noviembre 27 de 2006 Nombre: Pregunta 1 2 3 Total Puntos 30 30 50 110 Cal. 1 (30 Puntos) Un pirata necesita encontrar un tesoro en una isla, para hacerlo cuenta con una pista inicial y una serie de convenciones. La idea es que a través de esta pista encontrará nuevas pistas que lo irán llevando hasta encontrar el tesoro. Suponga que la isla está representada por una matriz y que la pista inicial no es más que la posición en la isla donde va a encontrar la siguiente pista. Las convenciones traducen lo que el pirata encuentra en la isla a las acciones que debe tomar para seguir buscando. Escriba una función en python que le ayude al pirata a encontrar el tesoro. Debido a que el pirata sufre de mala memoria, esta función debe retornar la lista de las posiciones por donde pasó el pirata para llegar al tesoro. Pista oeste-5 este-8 norte-7 sur-1 tesoro Acción Caminar 5 pasos al oeste Caminar 8 pasos al este Caminar 7 pasos al norte Caminar 1 pasos al sur El tesoro fue encontrado! ##Version i t e r a t i v a def t e s o r o (M, i, j ) : while M[ i ] [ j ]!= t e s o r o : p = M[ i ] [ j ] i f p == este 8 : j = j + 8 e l i f p == oeste 5 : j = j 5 e l i f p == sur 1 : i = i + 1 e l i f p == norte 7 : Página 1 de 6

i = i 7 else : print Error en l a s p i s t a s return [ i, j ] 2 (30 Puntos) Un cubo de Rubik es un rompecabezas mecánico donde cada uno de sus 6 lados está a su vez dividido en 9 partes (3 3). Cada una de estas partes tienen un color que puede ser: rojo, naranja, amarillo, blanco, verde, azul. La idea del juego es, a partir de un cubo con todos los colores mezclados, llegar a un cubo donde cada cara tenga un color uniforme. A continuación se presenta la definición de un cubo de Rubik en python. Cada uno de los campos del registro es una matriz de 3 3 que corresponde a la cara. Los colores se representan mediante letras. Rojo: R, Naranja: N, Amarillo: A, Blanco: B, Verde: V, Azul: Z. from record import class cubo ( record ) : r o j o =[[ V, B, V ], [ R, R, N ], [ N, A, R ] ] naranja =[[ R, R, A ], [ A, N, V ], [ B, A, A ] ] a m a r i l l o =[[ B, Z, Z ], [ A, A, V ], [ Z, Z, N ] ] blanco =[[ N, V, N ], [ N, B, B ], [ V, B, R ] ] verde =[[ Z, Z, A ], [ B, V, V ], [ V, N, A ] ] azul =[[ Z, Z, V ], [ R, Z, N ], [ R, R, B ] ] Escriba una función en python que, dado un cubo de Rubik, calcule cuál es la cara más armada. Es decir, la cara en donde la mayoría de sus partes están en su lugar. Una parte está en su lugar si su color coincide con el color que debe tener la cara. Para el ejemplo de la definición, la cara de color rojo tiene solamente dos partes en el lugar correcto: (1, 0), (1, 1), (2, 2). from record import class rubik ( r e c ord ) : r o j o = [ ] naranja = [ ] a m a r i l l o = [ ] blanco = [ ] verde = [ ] azul = [ ] def c a r a c o r r e c t o s (C, c o l o r ) : Página 2 de 6

c o r r e c t o s = 0 for X in C: for Y in X: i f Y == c o l o r : c o r r e c t o s = c o r r e c t o s + 1 return c o r r e c t o s def cara mas armada (Cb ) : cmp = [ ] cmp. append ( [ r o j o, c a r a c o r r e c t o s (Cb. rojo, R ) ] ) cmp. append ( [ naranja, c a r a c o r r e c t o s (Cb. naranja, N ) ] ) cmp. append ( [ a m a r i l l o, c a r a c o r r e c t o s (Cb. amarillo, A ) ] ) cmp. append ( [ blanco, c a r a c o r r e c t o s (Cb. blanco, B ) ] ) cmp. append ( [ verde, c a r a c o r r e c t o s (Cb. verde, V ) ] ) cmp. append ( [ azul, c a r a c o r r e c t o s (Cb. azul, Z ) ] ) cara = cmp [ 0 ] [ 0 ] c o r r e c t o s = cmp [ 0 ] [ 1 ] for X in cmp : i f X[ 1 ] > c o r r e c t o s : c o r r e c t o s = X[ 1 ] cara = X[ 0 ] return [ cara, c o r r e c t o s ] 3 () Se tienen ubicadas n reinas en un tablero de ajedrez de tamaño n n, y se desea saber si estas reinas están ubicadas de tal forma que no se atacan entre ellas. Las posiciones en las que existen reinas contienen la letra R, mientras que las que no tienen reina contienen la letra B. La Figura presenta el caso de un tablero de 8 8, en la parte izquierda las reinas están bien ubicadas (no se atacan), en la derecha las reinas se atacan (algunos ataques están representados por flechas). Recuerde que en el ajedrez la reina se puede mover en todas las direcciones (horizontal, vertical, diagonal) las casillas que quiera. Página 3 de 6

(a) 10 Puntos Escriba una función en python que dado un tablero de ajedrez y una fila, verifique si en esa fila del tablero existen reinas que se atacan. def h o r i z o n t a l (M, i ) : for X in M[ i ] : i f X == R : (b) 10 Puntos Escriba una función en python que dado un tablero de ajedrez y una columna, verifique si en esa columna del tablero existen reinas que se atacan. def v e r t i c a l (M, j ) : for X in range ( f i l a s (M) ) : i f M[X ] [ j ] == R : (c) 10 Puntos Escriba una función en python que dado un tablero de ajedrez y las coordenadas donde inicia una diagonal, verifique si en esa diagonal del tablero existen reinas que se atacan. def d i a g o n a l (M, i, j ) : Página 4 de 6

f i = i ; f j = j bi = i ; bj = j while f i < f i l a s (M) and f j < columnas (M) : i f M[ f i ] [ f j ] == R : f j = f j + 1 f i = f i + 1 i f r e i n a s > 1 : return True while bi >= 0 and bj >= 0 : i f M[ bi ] [ bj ] == R : bj = bj 1 bi = bi 1 def d i a g o n a l i n v (M, i, j ) : f i = i ; f j = j bi = i ; bj = j while f i < f i l a s (M) and f j >= 0 : i f M[ f i ] [ f j ] == R : f j = f j 1 f i = f i + 1 i f r e i n a s > 1 : return True while b i >= 0 and b j < columnas (M) : i f M[ bi ] [ bj ] == R : bj = bj + 1 bi = bi 1 (d) 20 Puntos Escriba un programa en python que dado un tablero de ajedrez de dimensiones n n, representado por una matriz, verifique si las reinas que hay en el tablero se atacan o no. Para esto utilice las funciones definidas anteriormente. Página 5 de 6

def queens (M) : for x in range ( f i l a s (M) ) : i f h o r i z o n t a l (M, x ) or v e r t i c a l (M, x ) : return False for y in range ( columnas (M) ) : i f M[ x ] [ y ] == R : return True i f d i a g o n a l (M, x, y ) or d i a g o n a l i n v (M, x, y ) : return False Página 6 de 6