Estruturas de controle - loops
Apresentação
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
-
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.
-
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.
-
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”.