Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Conceptos Generales
A continuación, nos referiremos a los aspectos generales teóricos, necesarios para poder
abordar la última tarea del curso de programación estructurada.
Definiciones
ADN A = { a,c,g,t|u }
Proteínas A = { a,c,d,e,f,g,h,i,k,l,m,n,p,q,r,s,t,v,w,y }
Existen diversos alfabetos (carácter químico, funcional, estructural, etc.) en función de lo que se
desea expresar y mecanismos de traducción entre alfabetos.
La comparación
Figura 1.0
Algoritmo: Desplazar una de las secuencias debajo de la otra y contabilizar los residuos que
coinciden. El mejor alineamiento corresponde a la posición en que este valor es máximo (indicado al
lado derecho entre paréntesis)
Como buenos compañeros de Facultad, hemos decidido poner en práctica las competencias
aprendidas en el curso de programación estructurada.
Se requiere realizar un programa escrito en C el cuál está dividido en dos partes:
El programa debe permitir el ingreso de dos secuencias X (Puede utilizar las secuencias de
prueba adjuntadas al final de este documento) a las cuales, les llamaremos la secuencia A y B, de esta
manera, debemos realizar un alineamiento de las secuencias con el algoritmo mostrado en la Figura 1.0.
Se espera que, al término de dicho alineamiento, se le muestre al usuario el mayor número de
ocurrencias analizado por el programa y el significado de este bajo las siguientes clasificaciones:
Nota: las secuencias tendrán como tamaño máximo 400 caracteres y serán de igual tamaño.
Una expresión regular, a menudo llamado también patrón, es una expresión que describe un
conjunto de cadenas sin enumerar sus elementos. Específicamente, las expresiones regulares se
construyen utilizando los operadores unión, concatenación y clausura de Kleene.
Cuantificación: Un cuantificador tras un carácter especifica la frecuencia con la que éste puede
ocurrir. Los cuantificadores más comunes son +, ? y *:
• +: El signo más indica que el carácter al que sigue debe aparecer al menos una vez. Por
ejemplo, "GA+TA" describe el conjunto infinito GATA, GAATA, GAAAAATA etcétera.
• ?: El signo de interrogación indica que el carácter al que sigue puede aparecer como mucho
una vez. Por ejemplo, "GA?TATA" concuerda con ATATA o CCTATA.
• *: El asterisco indica que el carácter que lo precede puede aparecer cero, una, o más veces.
Por ejemplo, "G*AT" describe AT, GAT, GGAT, GGGAT, etcétera.
El programa debe permitir el ingreso de un patrón con los operadores anteriormente descritos
(?,*) de hasta 5 caracteres más el operador (el operador + es opcional, no intente realizarlo si no ha
hecho los operadores anteriores), en otras palabras consideramos un arreglo de tamaño 5:
0 1 2 3 4 5
G A T * A T
<1>Ingresar secuencia A
<2>Ingresar secuencia B
<3>Comparación de A con B
<4>Ingresar patrón
Opción: X
Opcional con estrella: (no intente realizar esta actividad si no ha resuelto el problema anterior)
1. Agregue la opción: -a por argumento a su programa la cual permita cargar las secuencias por
argumento (modo de ejecución: mi_programa.exe -a acgtatat actatagt)
2. Agregue la opción: -ac por argumento la cual permita cargar las secuencias a y b y compararlas
(modo de ejecución mi_programa.exe -ac acgtatat actatagt)
3. Agregue la opción: -h por argumento la cual despliega la ayuda y comandos disponibles para su
programa.
Considerar que : 1) acgtatat representa una secuencia A y 2) actatagt representa una secuencia B.
Entrega final
La entrega final de la tarea debe hacerse a más tardar en la fecha y horas indicadas:
• Una descripción de la estrategia utilizada para resolver el problema, incluyendo la descripción de variables importantes y la forma en que el
programa interactúa con el usuario.
• No se aceptarán tareas fuera de plazo, por lo que trate de entregar su tarea antes de la fecha límite.
• Su proyecto debe ser implementado con funciones, y las estructuras vistas en clases.
• Se utilizará un programa para la comprobación de similitud de código, trabajos con más del 30% serán calificados con la nota mínima 1.0, así
también cualquier otro intento de copia.
• La presente tarea es individual.
• Las Fuentes que no compilen serán calificadas con la nota mínima.
• Recordar de usa el estándar K&R de indentación así también de comentar su código, y no declarar variables que no utilizará, ya que, será
penalizado.
• En la plataforma educandus, usted deberá subir un archivo.zip con su código.c con el siguiente nombre: apellido_nombre.c y el informe (Debe
especificar si realizó el opcional de su proyecto).
SEC_A: ATATATATGCGCGTACTGATCGAAATCGAAAAT
SEC_B: AAACCGTGTGCACACTTTTTGAAAACTTTGAC