Buscar

Pratica 11 INF

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Prática 11 – INF100 – 2014/II – Valor: 1 ponto
Página 1 de 2
INF100 – Introdução à Programação I
Roteiro Prática 10 a 14 de Novembro de 2014
Nome do arquivo a ser entregue: p11.cpp
O programa disponível na página de entrega constrói e exibe na tela um arranjo contendo uma sequência
aleatória de n bases proteicas encontradas em compostos de DNA e RNA.
Compile e rode esse programa para ver se está se comportando corretamente. Estude o código dele para ver há
alguma dúvida no entendimento dele. Aguarde até que todas as dúvidas tenham sido sanadas com o professor.
Agora altere esse programa da seguinte forma:
1. Transforme as linhas de código:
cout << "Entre com o valor de n (1..100): ";
cin >> n;
em uma função chamada leia_n() contendo esses dois comandos e mais o código necessário para
efetuar a validação da entrada dentro do intervalo mostrado, e retornar o valor de n lido. Com isso, dentro
da função main() você poderá substituir essas duas linhas por:
n = leia_n();
2. Crie uma função que receba como parâmetro um valor do tipo char contendo uma base proteica e retorne
outro valor do tipo char contendo o complemento dessa base, a saber:
Base Complemento
'A' 'T'
'C' 'G'
'G' 'C'
'T' 'A'
3. Declare um novo arranjo rna2[100] no programa e insira código no final da função main() (antes do
“return 0”) para preencher esse novo arranjo com o complemento do rna1, usando a função criada no
item 2. Depois, o programa deve escrever o conteúdo do arranjo rna2 logo abaixo do rna1.
4. Em seguida, o programa deve escrever na tela um histograma mostrando as quantidades de bases “casadas”
(complementares). O histograma deve conter um asterisco ‘*’ para cada unidade formada por uma base e
seu complemento (veja exemplos abaixo). Obs.: como os complementos de cada base são sempre os
mesmos, você só precisa fazer a contagem das bases de rna1.
Dica que pode facilitar a implementação (mas não é obrigatório): use um arranjo declarado e inicializado
dessa forma:
int nBase[4] = {0, 0, 0, 0};
para conter as contagens de cada base. Desse modo, tanto a contagem das bases como a produção do
histograma podem ser feitos com comandos for em vez de ser um por um. Por exemplo, para contar a
frequência de cada base e colocar os resultados dentro do arranjo acima, você pode fazer assim:
para i = 0 até n-1 faça: // para cada base contida em rna1
para j = 0 até 3 faça: // percorra todas as bases possíveis
se (rna1[i] = base[j]) // se combinar...
nBase[j]++; // ...incremente o contador da base
Prática 11 – INF100 – 2014/II – Valor: 1 ponto
Página 2 de 2
Seguem abaixo dois exemplos de execução do programa. Os valores mostrados por seu programa serão
diferentes devido à geração dos dados aleatórios.
Entre com o valor de n (1..100): 10
TTACGATTCT
AATGCTAAGA
A: ** (2 = 20%)
C: ** (2 = 20%)
G: * (1 = 10%)
T: ***** (5 = 50%)
Entre com o valor de n (1..100): 0
Entre com o valor de n (1..100): -1
Entre com o valor de n (1..100): 110
Entre com o valor de n (1..100): 60
GCTGGAGTTGACTAACCCGTCTCCGCGATCTGTAAAAACCCCTGGAATATCGGCGTACCA
CGACCTCAACTGATTGGGCAGAGGCGCTAGACATTTTTGGGGACCTTATAGCCGCATGGT
A: *************** (15 = 25%)
C: ****************** (18 = 30%)
G: ************** (14 = 23.3333%)
T: ************* (13 = 21.6667%)
 Cuidado com a indentação do código!
Após certificar-se que seu programa está correto, envie o arquivo do programa fonte (somente o arquivop11.cpp). Use o atalho existente no desktop (área de trabalho) para abrir a página de entrega.

Outros materiais

Perguntas Recentes