Examen Final - 75.14. Lenguajes Formales - 08/05/07 [Foros-FIUBA::Wiki]
 

Examen Final - 75.14. Lenguajes Formales - 08/05/07

Cátedra: Monica Kuhn
Fecha: 1º Oportunidad - 1º Cuatrimestre 2007
Día: 08/05/2007

Esta página está incompleta; podés ayudar completando el material.

Enunciado

Funcional

Dado el siguiente ambiente (un entero y una matriz representada a traves de listas, donde cada lista es una fila de la matriz):

< Ente  < <12 21 35> <41 57 86> <17 18 25> <...> > >

Se pide generar una función que devuelva solo los númeos de columnas cuya sumatoria de sus números supere al entero en cuestión.

No se puede utilizar ni recursividad ni While.

EJ:

< 84  < <11 22 23> <41 15 16> <17 18 25> <15 30 35> > >

Resultado:

< 2 3>

APL

Dada una matriz cuadrada numérica M, escribir una expresión en APL para obtener la matriz resultante de poner en cero las posiciones de M que pertenezcan al “diamante central”.

Ejemplos:

M <- 9 9 p 7?9
M

<tex>\begin{array}{c c c c c c c c c}8 & 4 & 6 & 7 & 2 & 5 & 3 & 8 & 4 \\6 & 7 & 2 & 5 & 3 & 8 & 4 & 6 & 7 \\2 & 5 & 3 & 8 & 4 & 6 & 7 & 2 & 5 \\8 & 4 & 6 & 7 & 2 & 5 & 3 & 8 & 4 \\6 & 7 & 2 & 5 & 3 & 8 & 4 & 6 & 7 \\2 & 5 & 3 & 8 & 4 & 6 & 7 & 2 & 5 \\8 & 4 & 6 & 7 & 2 & 5 & 3 & 8 & 4 \\6 & 7 & 2 & 5 & 3 & 8 & 4 & 6 & 7 \\2 & 5 & 3 & 8 & 4 & 6 & 7 & 2 & 5 \\\end{array}</tex> Resulta en : <tex>\begin{array}{c c c c c c c c c}8 & 4 & 6 & 7 & 0 & 5 & 3 & 8 & 4 \\6 & 7 & 2 & 0 & 0 & 0 & 4 & 6 & 7 \\2 & 5 & 0 & 0 & 0 & 0 & 0 & 2 & 5 \\8 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 4 \\0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\2 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 5 \\8 & 4 & 0 & 0 & 0 & 0 & 0 & 8 & 4 \\6 & 7 & 2 & 0 & 0 & 0 & 4 & 6 & 7 \\2 & 5 & 3 & 8 & 0 & 6 & 7 & 2 & 5 \\\end{array}</tex>

M <- 6 6 p 7?9
M

<tex>\begin{array}{c c c c c c c c c}7 & 2 & 5 & 3 & 8 & 4 \\5 & 3 & 8 & 4 & 6 & 7 \\8 & 4 & 6 & 7 & 2 & 5 \\7 & 2 & 5 & 3 & 8 & 4 \\5 & 3 & 8 & 4 & 6 & 7 \\8 & 4 & 6 & 7 & 2 & 5 \\\end{array}</tex> Resulta en : <tex>\begin{array}{c c c c c c c c c}7 & 2 & 0 & 0 & 8 & 4 \\5 & 0 & 0 & 0 & 0 & 7 \\0 & 0 & 0 & 0 & 0 & 0 \\0 & 0 & 0 & 0 & 0 & 0 \\5 & 0 & 0 & 0 & 0 & 7 \\8 & 4 & 0 & 0 & 2 & 5 \\\end{array}</tex>

Resolución

Funcional

def suma_columnas = alpha (+/)

def numerar_vector = trans o [iota o length, id]

def select = great o [2 o 1, 1 o 2] -> appendl o [2 o 2, 1 o 1];2

def resultado = 2 o /select o appendr o [numerar_vector o suma_columnas o 2,[1,~<>]]

APL

(,(1+⌈a)≥(W,V)∘.+W←(⍳⌈A),V←⌽⍳⌈(A←0.5×(⍴M)[0])-1)/M

Discusión

Si ves algo que te parece incorrecto en la resolución y no te animás a cambiarlo, dejá tu comentario acá.
materias/75/14/parcial_20070508_1.txt · Última modificación: 2013/04/23 23:46 por loonatic
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia: CC Attribution-Noncommercial-Share Alike 3.0 Unported


Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki