Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- /* Allan Rossi Gomes RA:157654
- Programa que verifica, dado um mRNA e um oligonucleotídeo, se o gene correspondente foi silenciado ou não.
- */
- /*
- Recebe o mRNA (com tamanho R) e Oligonucleotideo (com tamanho O)
- a ser comparados, e retorna:
- - caso o mRNA seja silenciado, retornar a primeira posicao inicial
- para o mRNA em que os trechos sao iguais;
- - caso nao haja trecho em comum, retornar -1.
- */
- int ComparaRNA(char rna[], int R, char oligo[], int O){
- int j, k, l, m, n, indice;
- for(j = 0; j < O; j++){
- if(oligo[j] == 'A')
- oligo[j] = 'U';
- else if(oligo[j] == 'U')
- oligo[j] = 'A';
- else if(oligo[j] == 'C')
- oligo[j] = 'G';
- else if(oligo[j] == 'G')
- oligo[j] = 'C';
- }
- for(k = 0; k < R; k++)
- printf("%c", rna[k]);
- printf("\n");
- for(l = 0; l < O; l++)
- printf("%c", oligo[l]);
- printf("\n");
- for(m = 0; ; m++){
- if(oligo[m] == rna[m]){
- indice = m;
- for(n = m; ; n++){
- if(oligo[n] != rna[n]){
- break;
- }
- else if((oligo[n] == '\0') || (rna[n] == '\0')){
- return indice;
- }
- }
- }
- else if((oligo[m] == '\0') || (rna[m] == '\0')){
- return -1;
- }
- }
- }
- int main(){
- int R, O, i, j, resultado;
- char rna[101], oligo[26];
- char troca;
- scanf("%d %d", &R, &O);
- scanf("%s", rna);
- scanf("%s", oligo);
- i = 0;
- j = O - 1;
- while(i < j){
- troca = oligo[i];
- oligo[i] = oligo[j];
- oligo[j] = troca;
- i++;
- j--;
- }
- resultado = ComparaRNA(rna, R, oligo, O);
- if(resultado != -1)
- printf("Silenciado em %d", resultado + 1);
- else
- printf("Nao silenciado");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement