Estruturas de controle - loops

Apresentação

aula06.pdf

Exemplos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# exemplo01
# calcular a media de tamanho das sequencias em um array

@seqs = ("ATGGCGTAGATCG", "TAAGCCCCGGTATATTTGACCCCGAT", "GATAGAG");

# Passo 1: acessar elementos do array, calcular e armazenar comprimentos

$tamanho = # completar com os comandos;

# Passo 2: calcular a media

$media = # completar com os comandos;

# Passo 3: Imprimir resultado

print "\nExemplo 01:\n";

print "Media de tamanho = $media\n";

exit;

========

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# exemplo03 
# for() para imprimir conteudo de arrays

@seqs = ("ATGGCGTAGATCG", "TAAGCCCCGGTATATTTGACCCCGAT", "GATAGAG");

$seqs = @seqs; #numero de elementos do array

print "\nExemplo 12:\n";

print "Numero de sequencias = $seqs\n";

for ( $i = 0; $i < $seqs; $i++ ) {

    print ">Gene$i\n$seqs[$i]\n\n" ; 

}  
exit;

========

1
2
3
4
5
6
7
8
9
10
# exemplo05
# foreach() para imprimir conteudo de arrays

print "\nExemplo 05:\n";

foreach $seq (@seqs) {

    print "$seq\n\n" ; 

}

========

1
2
3
4
5
6
7
8
9
10
11
12
# exemplo07
# foreach() para imprimir conteudo de hashes

%seqs = ("Gene25", "ATGGCGTAGATCG",            
         "Gene49", "TAAGCCCCGGTATATTTGACCCCGAT", 
         "Gene03", "GATAGAG");
         
print "\nExemplo 07:\n";

#comandos         

exit;

========

1
2
3
4
5
6
7
8
9
10
11
12
13
# exemplo 09
# foreach() para encontrar um valor especifico em hashes

print "\nExemplo 09:\n";

$seq_alvo = "GATAGAG"; # esta presente?

foreach $gene (keys(%seqs)) {

    if ($seqs{$gene} eq $seq_alvo) {
        print "Sequencia encontrada: $gene.\n\n"; 
    }
}

========

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# exemplo11 
# formas de imprimir arrays

@seqs = ("ATGGCGTAGATCG","TAAGCCCCGGTATATTTGACCCT", "GATAGAG");

# for
$seqs = @seqs;

print "\nExemplo 11 (for):\n";

for ( $i = 0; $i < $seqs; $i++ ) {
    print "$seqs[$i]\n" ; 
}

# foreach 

print "\nExemplo 11 (foreach):\n";

foreach $seq (@seqs) {
    print "$seq\n" ; 
}

# while
#$n_seqs = @seqs;

#$i = 0;

#print "\nExemplo 11 (while):\n";

#while ( $i < $n_seqs ) {
#    print "$seqs[$i]\n"; 
#}

========

Exercício

Exercício para entrega via e-mail. Informar os comandos para todos os itens. O exercício deverá estar em um arquivo no formato txt, como o nome NomeSobrenomeE04.txt (substituir NomeSobrenome pelo próprio nome, por exemplo, TatianaTorresE04.txt). Prazo: 21/09/2018

  1. Você tem um hash chamado %alunos que contém o nome (key) e o número USP de cada aluno da disciplina. Como você faria para determinar se o “Joaozinho” é um dos alunos? Se ele for aluno, imprima o número USP dele.

  2. Você tem um array que contém todas as cartas de um baralho (já embaralhadas). Escreva um script para distribuir cinco cartas para cada um dos jogadores, @Huguinho, @Zezinho e @Luizinho.

  3. A partir de duas listas de palavras @lista1 e @lista2, escreva um script para descobrir se existem palavras duplicadas nos arrays usando foreach. Guarde as palavras duplicadas em um terceiro array, @lista3. Se houverem palavras duplicadas imprima todas encontradas, senão, imprima “Nao ha nenhuma palavra duplicada”.