Este problema es el único canal disponible para realizar la entrega definitiva de la práctica y también la entrega de los materiales para evaluar la competencia transversal “Treball en equip”. Tened en cuenta que
El plazo de entrega acaba el martes 29 de noviembre, a las 22h.
Esta es la entrega que dará lugar a la mayor parte de la nota de la práctica (90%); la nota de la entrega tendrá una parte procedente de corrección automática y otra procedente de corrección manual (consultad los detalles en el pdf sobre evaluación en el apartado “Pràctica” de la web de PRO2)
No superar ningún juego de pruebas conllevará un cero en la nota de la entrega
En esta entrega pedimos más cosas, que detallamos a continuación en negrita, además del código de la práctica y el Makefile, de las que se pedían en la entrega provisional
Pueden realizarse tantas entregas como se quiera, pero solo se tendrá en cuenta la más reciente
El problema de la entrega final provisional seguirá disponible hasta horas antes del fin del plazo de entrega. De hecho, recomendamos usarlo para probar el código mientras no tengáis preparado el material adicional que pedimos
El Jutge prueba vuestras entregas mediante 4 juegos de pruebas:
sample: el juego de pruebas público
privat1: situaciones que no aparecen en el público
privat2: mucho de todo: alfabetos, mensajes y operaciones de codificar/decodificar
privat3: mensajes grandes
En un fichero llamado practica.tar tenéis
que entregar
Los ficheros .hh y .cc de las clases y el programa principal con los comentarios Doxygen correspondientes. No incluyáis ficheros .o, .exe y similares
El fichero Makefile, que usaremos para generar y probar el ejecutable; un Makefile incorrecto puede dar lugar a malos resultados en el Jutge o a penalización en la nota manual
Un fichero html.zip,
obtenido comprimiendo la carpeta html del Doxygen generado a partir de
los .hh y .cc anteriores. Dicha documentación
no solo ha de incluir la parte pública de las clases (como en la entrega
de la especificación) sino también la parte privada (atributos y métodos
privados) y la implementación de todas las
operaciones
Un único integrante de cada equipo ha de entregar un fichero .zip con los materiales requeridos para evaluar la competencia “Treball en equip”, siguiendo las instrucciones contenidas en el documento correspondiente, disponible en el apartado “Pràctica” de la página web de la asignatura
Tened en cuenta las siguientes restricciones:
El fichero que contiene el programa principal se ha de llamar
program.cc
El Makefile ha de generar un ejecutable llamado
program.exe
Es importante que uséis las opciones de compilación del Jutge de PRO2 (ved Documentation Compilers PRO2 a www.jutge.org)
No usar la opción -D_GLIBCXX_DEBUG o
usarla de forma incorrecta podrá ser penalizado
Si no se entrega la documentación generada por el
Doxygen, o ésta es incompleta (por ejemplo, si no se pueden ver los
elementos privados o la implementación de todas las operaciones), la
nota de la corrección manual será cero. Comprobad que vuestra
documentación es correcta antes de la entrega. Es necesario usar un
Doxyfile basado en el de la sesión 10 de
laboratorio para generar correctamente la
documentación
Producid el fichero practica.tar con la
instrucción Linux
tar -cvf practica.tar fitxer1 fitxer2 fitxer3 ...
desde el directorio/carpeta donde tengáis los ficheros que vais a
entregar. Incluid esta instrucción en vuestro Makefile, de forma que el
.tar se pueda generar ejecutando
make practica.tar. Con eso reduciréis el
riesgo de error en sucesivas entregas. El Jutge no acepta
.tar donde los ficheros estén dentro de
carpetas. Recomendamos usar GNU tar para
reducir el riesgo de que el fichero
practica.tar sea incompatible con el Jutge. No
es necesario incluir BinTree.hh en
practica.tar.
Input
6
abc
abc
BASE_ADN
GATC
BASE_ARN
ACGU
minusculas
abcdefghijklmnopqrstuvwxyz
full_interv
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
full_no_interv
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@
8
hell minusculas
dont worry if there is a hell below we are all going to go
Resistire full_interv
Cuando pierda todas las partidas / Cuando duerma con la soledad / Cuando se me cierren las salidas / Y la noche no me deje en paz.
Qualsevol_nit full_interv
Fa una nit clara i tranquila, hi ha la lluna que fa llum / Els convidats van arribant i van omplint tota la casa / De colors i de perfums.
DNA_string_1 BASE_ADN
ATGGCATTAATGGCATTAATGGCATTA
DNA_string_2 BASE_ADN
CATTAATGGCATTACATTAATGGCATTA
RNA_string_1 BASE_ARN
AAGAUGCCGUAAGAUGCCGUAAGAUGCCGU
Contrato_frances_1 full_interv
Le contrat d'ouverture d'un livret A prevu a l'article R. 221-1 rappelle les memes exigences ainsi que les sanctions encourues a raison de leur meconnaissance. Il informe egalement le client des modalites selon lesquelles s'effectue la procedure de verification prevue a l'article L. 221-38
Assembler1 full_interv
switch_to_pm: / cli / lgdt [gdt_descriptor] / mov eax, cr0 / or eax, 1 / mov cr0,eax / jmp CODE_SEG:init_pm // Let's start with / cli. This instruction basically disables interrupts. We have to do this, because if an interrupt fires while we are in protected mode, but before we have installed the IDT, the CPU will triple fault and reset. The problem is, there is literally no standard C code that emits this instruction, so we are going to have to use inline assembly here. The same applies to lgdt [gdt_descriptor]
listar_alfabetos
listar_mensajes
nuevo_mensaje
Contrato_frances_2 full_no_interv
Le contrat d'ouverture d'un livret A prevu a l'article R. 221-1 rappelle les memes exigences ainsi que les sanctions encourues a raison de leur meconnaissance. Il informe egalement le client des modalites selon lesquelles s'effectue la procedure de verification prevue a l'article L. 221-38
nuevo_mensaje
RNA_string_2 BASE_ARN
CCGUAAGAUGCCCCGUAAGAUGCC
nm RNA_string_2
BASE_ARN
AAGAUGCCCCGUAAGAUGCCCCGUCGU
nm acb acb
acb
nuevo_alfabeto bca
bca
na
abc
abc
borra_mensaje
DNA_string_2
bm
DNA_string_2
codificar_sustitucion_guardado
hell
curtis mayfield
csg Resistire
Duo Dinamico
csg
DNA_string_2
GGGG
codificar_sustitucion
minusculas
esto es una clave
humanidad yo te amo porque estas todo el tiempo metiendo el secreto de la vida en tus pantalones y olvidando que estas alla y sentandote sobre el
cs
mayusculas
CLAVE
YO LA AME Y ELLA NO ME AMO YO LE DI MI ALMA Y ELLA SE BURLO
decodificar_sustitucion
minusculas
esto es una clave
lleommv xmynbdeueqfscnvhtymervlsuxsvgndprsbrmoqkmzxmwfrndwkteebtptidhwsz dmhxn dpktowdgtasecngrsz kofzmvtacsrpnr dudamdecdozbrry t poonidjgpqirde
ds
mayusculas
CLAVE
Z FEBLMZD KEFPCKNIDOP VQQKYIDNP YMBXIUENXAUBBPLFEBCEUFWBLI
codificar_permutacion_guardado
DNA_string_2
5
cpg RNA_string_2
100
cpg RNA_string_2 100
codificar_permutacion
20
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~*+,-./:;<=>?@[\]^_`{|}~ !"#$%&'()*+,-.
cp 20
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~*+,-./:;<=>?@[\]^_`{|}~ !"#$%&'()*+,-.
decodificar_permutacion
200
iE" rDSUEIeE ePSl TacC,o O MSA LSnmLyaycsuuA saAER,SDl USvOMosAb MBSnN S.eOi"
dp 200
iE" rDSUEIeE ePSl TacC,o O MSA LSnmLyaycsuuA saAER,SDl USvOMosAb MBSnN S.eOi"
borra_alfabeto
mayusculas
ba BASE_ADN
borra_mensaje DNA_string_1
borra_alfabeto BASE_ADN
la
lm
fin
Output
#listar_alfabetos
1. BASE_ADN
normal "GATC" 2 mensajes
2. BASE_ARN
normal "ACGU" 1 mensajes
3. abc
especial [a..c] 0 mensajes
4. full_interv
especial [ ..~] 4 mensajes
5. full_no_interv
normal "ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@" 0 mensajes
6. minusculas
normal "abcdefghijklmnopqrstuvwxyz " 1 mensajes
#listar_mensajes
1. Assembler1
full_interv
"switch_to_pm: / cli / lgdt [gdt_descriptor] / mov eax, cr0 / or eax, 1 / mov cr0,eax / jmp CODE_SEG:init_pm // Let's start with / cli. This instruction basically disables interrupts. We have to do this, because if an interrupt fires while we are in protected mode, but before we have installed the IDT, the CPU will triple fault and reset. The problem is, there is literally no standard C code that emits this instruction, so we are going to have to use inline assembly here. The same applies to lgdt [gdt_descriptor]"
2. Contrato_frances_1
full_interv
"Le contrat d'ouverture d'un livret A prevu a l'article R. 221-1 rappelle les memes exigences ainsi que les sanctions encourues a raison de leur meconnaissance. Il informe egalement le client des modalites selon lesquelles s'effectue la procedure de verification prevue a l'article L. 221-38"
3. DNA_string_1
BASE_ADN
"ATGGCATTAATGGCATTAATGGCATTA"
4. DNA_string_2
BASE_ADN
"CATTAATGGCATTACATTAATGGCATTA"
5. Qualsevol_nit
full_interv
"Fa una nit clara i tranquila, hi ha la lluna que fa llum / Els convidats van arribant i van omplint tota la casa / De colors i de perfums."
6. RNA_string_1
BASE_ARN
"AAGAUGCCGUAAGAUGCCGUAAGAUGCCGU"
7. Resistire
full_interv
"Cuando pierda todas las partidas / Cuando duerma con la soledad / Cuando se me cierren las salidas / Y la noche no me deje en paz."
8. hell
minusculas
"dont worry if there is a hell below we are all going to go"
#nuevo_mensaje Contrato_frances_2 full_no_interv
9
#nuevo_mensaje RNA_string_2 BASE_ARN
10
#nm RNA_string_2 BASE_ARN
error: ya existe un mensaje con ese identificador
#nm acb acb
error: el alfabeto no existe
#nuevo_alfabeto bca
7
#na abc
error: el alfabeto ya existe
#borra_mensaje DNA_string_2
9
#bm DNA_string_2
error: el mensaje no existe
#codificar_sustitucion_guardado hell "curtis mayfield"
"fhdlhnncrveqjkwjyhxh rlaxmmpwcdybgdrvq ywmdlontxgqefltleos"
#csg Resistire "Duo Dinamico"
"gkQn)YnRWOVT&udo)KbaZKWo5Wbt.NPUmxc3:W^d4iSWS\QQDY_nDVPaaYPU)WT Si2WOXH_DiU 2OnEWOVb*dol&]nUOVMT&io/DCnNOiR_(^U 3YnOSiHU/[oe3i_Chw"
#csg DNA_string_2 "GGGG"
error: el mensaje no existe
#codificar_sustitucion minusculas "esto es una clave"
"lleommv xmynbdeueqfscnvhtymervlsuxsvgndprsbrmoqkmzxmwfrndwkteebtptidhwsz dmhxn dpktowdgtasecngrsz kofzmvtacsrpnr dudamdecdozbrry t poonidjgpqirde"
#cs mayusculas "CLAVE"
error: el alfabeto no existe
#decodificar_sustitucion minusculas "esto es una clave"
"humanidad yo te amo porque estas todo el tiempo metiendo el secreto de la vida en tus pantalones y olvidando que estas alla y sentandote sobre el"
#ds mayusculas "CLAVE"
error: el alfabeto no existe
#codificar_permutacion_guardado DNA_string_2 5
error: el mensaje no existe
#cpg RNA_string_2 100
"UCUCAAGAGGCCUCUCAACAGCGG"
#cpg RNA_string_2 100
"UCUCAAGAGGCCUCUCAACAGCGG"
#codificar_permutacion 20
""& #.'!%(),;*-$<:+/=@^>[+_?]`{~.|*\/-},:=[;>}\<@]^{!_|?" `~#'%,$()-+&*."
#cp 20
""& #.'!%(),;*-$<:+/=@^>[+_?]`{~.|*\/-},:=[;>}\<@]^{!_|?" `~#'%,$()-+&*."
#decodificar_permutacion 200
""Si PUEDES leer ESTO, con COMILLAS y mayusculas ABSURDAS, vas MAS o MENOS bien.""
#dp 200
""Si PUEDES leer ESTO, con COMILLAS y mayusculas ABSURDAS, vas MAS o MENOS bien.""
#borra_alfabeto mayusculas
error: el alfabeto no existe
#ba BASE_ADN
error: hay mensajes guardados con el alfabeto
#borra_mensaje DNA_string_1
8
#borra_alfabeto BASE_ADN
6
#la
1. BASE_ARN
normal "ACGU" 2 mensajes
2. abc
especial [a..c] 0 mensajes
3. bca
normal "bca" 0 mensajes
4. full_interv
especial [ ..~] 4 mensajes
5. full_no_interv
normal "ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@" 1 mensajes
6. minusculas
normal "abcdefghijklmnopqrstuvwxyz " 1 mensajes
#lm
1. Assembler1
full_interv
"switch_to_pm: / cli / lgdt [gdt_descriptor] / mov eax, cr0 / or eax, 1 / mov cr0,eax / jmp CODE_SEG:init_pm // Let's start with / cli. This instruction basically disables interrupts. We have to do this, because if an interrupt fires while we are in protected mode, but before we have installed the IDT, the CPU will triple fault and reset. The problem is, there is literally no standard C code that emits this instruction, so we are going to have to use inline assembly here. The same applies to lgdt [gdt_descriptor]"
2. Contrato_frances_1
full_interv
"Le contrat d'ouverture d'un livret A prevu a l'article R. 221-1 rappelle les memes exigences ainsi que les sanctions encourues a raison de leur meconnaissance. Il informe egalement le client des modalites selon lesquelles s'effectue la procedure de verification prevue a l'article L. 221-38"
3. Contrato_frances_2
full_no_interv
"Le contrat d'ouverture d'un livret A prevu a l'article R. 221-1 rappelle les memes exigences ainsi que les sanctions encourues a raison de leur meconnaissance. Il informe egalement le client des modalites selon lesquelles s'effectue la procedure de verification prevue a l'article L. 221-38"
4. Qualsevol_nit
full_interv
"Fa una nit clara i tranquila, hi ha la lluna que fa llum / Els convidats van arribant i van omplint tota la casa / De colors i de perfums."
5. RNA_string_1
BASE_ARN
"AAGAUGCCGUAAGAUGCCGUAAGAUGCCGU"
6. RNA_string_2
BASE_ARN
"CCGUAAGAUGCCCCGUAAGAUGCC"
7. Resistire
full_interv
"Cuando pierda todas las partidas / Cuando duerma con la soledad / Cuando se me cierren las salidas / Y la noche no me deje en paz."
8. hell
minusculas
"dont worry if there is a hell below we are all going to go"