Parceiro: Camisetas Hacker

Camisetas para Nerds & Hackers

terça-feira, 10 de janeiro de 2012

Aprenda a programa $Part - 09

Bem vindo algoritmizeiros…
Parece que foi ontem que começamos nossa série de posts sobre algoritmos, na tentativa de fazer esse mundo melhor com mais programadores =D
Agora, no nono post da série, vamos aprender sobre estruturas de repetição.

Bom, até o momento, sempre fizemos algoritmos lineares, ou seja, ele possui um começo, meio e fim, e segue essa ordem…
As estruturas de repetição, irão repetir determinados comandos, até que uma comparação lógica se torne verdadeira ou falsa.
Vou explicar com exemplos, assim o entendimento se tornará mais fácil.
O Algoritmo abaixo, lê o nome e a nota de três provas de três alunos diferentes…
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
33
34
35
36
37
38
39
40
41
42
43
Algoritmo "MediaHarmonica"
 
var
a, b, c, MH: real
nome: caractere
 
inicio
 
escreva ("Entre com o nome do aluno: ")
leia (nome)
escreval ("Entre com as notas das três provas")
escreva ("Digite a primeira nota: ")
leia (a)
escreva ("Digite a segunda nota: ")
leia (b)
escreva ("Digite a terceira nota: ")
leia (c)
MH <- 3/(1/a + 1/b +1/c)
escreval ("A média harmônica do aluno: ", NOME, " é ", MH)
escreva ("Entre com o nome do aluno: ")
leia (nome)
escreval ("Entre com as notas das três provas")
escreva ("Digite a primeira nota: ")
leia (a)
escreva ("Digite a segunda nota: ")
leia (b)
escreva ("Digite a terceira nota: ")
leia (c)
MH <- 3/(1/a + 1/b +1/c)
escreval ("A média harmônica do aluno: ", NOME, " é ", MH)
escreva ("Entre com o nome do aluno: ")
leia (nome)
escreval ("Entre com as notas das três provas")
escreva ("Digite a primeira nota: ")
leia (a)
escreva ("Digite a segunda nota: ")
leia (b)
escreva ("Digite a terceira nota: ")
leia (c)
MH <- 3/(1/a + 1/b +1/c)
escreval ("A média harmônica do aluno: ", NOME, " é ", MH)
 
fimalgoritmo

Ainda bem que só tínhamos três alunos…
E se fosse uma turma de 40 alunos?
Para isso vamos utilizar estruturas de repetição =)

Na estrutura repita – ate, todos os comandos serão executados e, ao final, haverá uma expressão lógica, para que avalie a repetição, esta que somente irá cessar quando essa expressão for verdadeira.
1
2
3
4
// sintaxe da estrutura de repetição
repita
    
ate
Agora um exemplo didático…
1
2
3
4
5
6
7
8
9
10
11
12
13
14
algoritmo "DemonstraRepeticao"
 
var
i: inteiro
 
inicio
 
i <- 1
repita
    escreva(i)
    i <- i + 1
ate i > 10
 
fimalgoritmo
Este algoritmo irá retornar na tela do usuário os números: 1 2 3 4 5 6 7 8 9 10

Mais porquê?

Primeiramente foi declarado a variável i como inteiro, logo em seguida utilizamos uma estrutura de repetição, o repita-ate, pedimos para escrever o valor de i e acrescentamos ao seu valor mais uma unidade, ou seja, i + 1.

e até quando isso será repetido?

Até que o valor de i seja maior que 10…
Então quando o valor de i chegou a 11, ele perguntou se i era maior que 10, como a resposta foi verdadeira, ele encerrou a repetição e foi para o próximo comando…
Como não temos mais nada, encerramos nosso algoritmo.

Só que dessa vez, nós teremos 40 alunos em nossa classe!

Não! Agora que já sabemos utilizar uma estrutura de repetição, vamos poupar trabalho e resumir nosso algoritmo!
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
Algoritmo "MediaHarmonica"
 
var
a, b, c, MH, i: real
NOME: caractere
 
inicio
 
i <- 1
Repita
    escreva("Entre com o nome do aluno: ")
    leia(nome)
    escreval ("Entre com as notas das três provas")
    escreva("Digite a primeira nota: ")
    leia(a)
    escreva("Digite a segunda nota: ")
    leia(b)
    escreva("Digite a terceira nota: ")
    leia(c)
    MH <- 3/(1/a + 1/b +1/c)
    escreval("A média harmônica do aluno: ", NOME, " é ", MH)
    i <- i + 1
ate i > 40
 
FimAlgoritmo

Um comentário:

............