Parceiro: Camisetas Hacker

Camisetas para Nerds & Hackers

terça-feira, 10 de janeiro de 2012

Aprenda a programa $Part - 08

Olá algoritmizeiros, chegamos hoje ao oitavo post de nosso curso/série/aula (como queiram chamar =) sobre algoritmos.
Para quem não conhece ainda, o ‘Aprenda a Programar‘, é uma série de posts lançados toda semana, geralmente na terça ou quarta-feira, ensinando uma linguagem de cunho didático para que se possa iniciar no fantástico mundo da programação. Essa linguagem chama-se Portugol.
Você pode ver todos os posts já lançados clicando aqui, ou no menu lateral do site.
Então vamos ao que interessa!!!
No último post, aprendemos sobre estrutura condicional, quando e como utilizar o operador SE-ENTAO-SENAO, porém, dependendo da ocasião, quando se há muitas escolhas diferentes, nosso código pode ficar grande, e de difícil leitura…
Nesse caso, entra mais uma função em nosso querido algoritmo, o ESCOLHA… CASO… CASO… OUTROCASO… =)
Ele é tão simples quanto o SE, e acredito que não deve haver tantas dúvidas.
Abaixo tem um algoritmo, sobre a classificação de atletas pela sua faixa etária, este exemplo, poderia ter sido feito utilizando a estrutura condicional se – então, mas aqui utilizarei o escolha – caso, para que vocês entendam como funciona o mesmo.
Mas antes do algoritmo…

Futebol, religião, fofoca…
Não, não é nada disso!
os comentários que direi agora, são trechos no código em que podemos escrever algo sem que o interpretador ache que isso é uma linha de código.
Em portugol, nossos comentários são tudo aquilo precedido por // (duas barras)

Os comentários em um código, serve para facilitar o entendimento por outros programadores. Não podemos ser egoístas em pensar que apenas você que o escreveu deve entende-lo, outras pessoas mais cedo ou mais tarde, precisarão ter acesso ao código para dar manutenção ao mesmo, seja elesoftware livre ou não.

algoritmo “Classificação de Atletas”
var
nome, categoria: caractere
idade: inteiro
inicio
escreva(“Digite o nome do atleta: “)
leia(nome)
escreva(“Informe a idade do atleta: “)
leia(idade)
// Até aqui tudo bem, ele pede o nome e idade, lê os valores e joga nas respectivas variáveis
escolha idade
// A função escolha irá interpretar os casos abaixo em cima da variável idade
caso 5,6,7,8,9,10
// Caso a variável idade receba os valores de 5 a 10, irá atribuir na variável categoria o valor:infantil
…. categoria <- “infantil”
caso 11,12,13,14,15
// Caso a variável idade receba os valores de 11 a 15, irá atribuir na variável categoria o valor:juvenil
…. categoria <- “juvenil”
caso 16,17,18,19,20
// Caso a variável idade receba os valores de 16 a 20, irá atribuir na variável categoria o valor:junior
…. categoria <- “junior”
caso 21,22,23,24,25
// Caso a variável idade receba os valores de 21 a 25, irá atribuir na variável categoria o valor:profissional
…. categoria <- “profissional”
outrocaso
// E se a variável idade não receber nenhum dos valores acima mencionados, vamos atribuir a variável categoria o valor: inválido
…. categoria <- “INVALIDO”
fimescolha
// O fimescolha finaliza a função que abrimos anteriormente
escreva(“Categoria: “,categoria)
// E este último escreva, serve para que possamos mostrar o resultado ao usuário
fimalgoritmo

Aprenda a programa $Part - 07

Vejamos…
Se “o Flamengo vencer” entao
…. “ele será campeão da libertadores”
fimse
=D
Sim, na vida, as vezes nos deparamos em situações na qual precisamos escolher algo somente seoutra coisa acontecer…
Chamamos isso de condição.
Nos algoritmos, também utilizaremos isto, como vocês notaram no começo do post, o que utilizei ali, foi uma estrutura condicional. Observem bem, o que está em negrito, as palavras se, entao, fimse. Elas serão importantíssimas em nosso algoritmo…
então, poderia basicamente dizer que em um algoritmo a sintaxe seria a seguinte:
se <condição> entao
…. <ações a serem realizadas se a condição for verdadeira> //pode ser uma ou mais
fimse

Esse foi um exemplo bem didático, mas em portugol, seria mais ou menos o seguinte:
se (vencedor = “Flamengo”) entao
…. escreva(“Flamengo será o campeão da Libertadores!!!”)
fimse

Não, esses quatro pontos, é um artifício que estou usando aqui no blog para indicar que ali, existe um espaço ou uma tabulação, já que se eu simplesmente der o espaço aqui no blog, ele não irá interpretar e ficará como se não houvesse nada…

Esse espaço, é o que chamamos de identação, que além de ser uma questão de ética entre os programadores, ele vai servir para que seu código tenha uma melhor aparência, e fique mais fácil para entendê-lo e dar manutenção.

“Se você não mandar o computador fazer nada, ele nada fará!” (by eu)
Nesse caso, podemos fazer nosso algoritmo de duas maneiras:
1 – utilizar dois condicionais SE.
Um exemplo bem didático e de fácil entendimento:
  1. se dinheiro >= 30 entao
  2. …. ir_ao_cinema <- verdadeiro
  3. …. assistir_tv <- falso
  4. fimse
  5. se dinheiro < 30 entao
  6. …. ir_ao_cinema <- falso
  7. …. assistir_tv <- verdadeiro
  8. fimse
e a segunda opção, que é bem melhor e de mais agradável leitura…
  1. se dinheiro >= 30 entao
  2. …. ir_ao_cinema <- verdadeiro
  3. …. assistir_tv <- falso
  4. senao
  5. …. ir_ao_cinema <- falso
  6. …. assistir_tv <- verdadeiro
  7. fimse
Observem que agora na linha quatro, apareceu uma palavrinha nova para nós… O senao

senao, será executado sempre que o resultado do “se” for falso.
No exemplo acima, o interpretador fez uma pergunta, “o dinheiro é maior ou igual a 30?”
Caso fosse, a variavel “ir_ao_cinema” receberia o valor verdadeiro, e a variável “assistir_tv” receberia o valor falso.
Se o dinheiro não fosse maior que 30, ou seja, caso ele fosse menor, o valor recebido das variáveis “ir_ao_cinema” e “assistir_tv” seriam outros.

Fácil não?

Agora, um algoritmo facin facin, para que vocês entendam por vez, como funciona a estrutura condicional se.
Como desafio de hoje…
Tentem entender o algoritmo acima sem copia-lo no VisualG. E caso não tenham conseguido entender, pode postar nos comentários que explicarei linha por linha
E mais dois desafios extras… =)
  1. Faça um algoritmo que receba um número e mostre uma mensagem caso este número seja maior que 10.
  2. Faça um algoritmo que receba um número, e informe se este número está no intervalo de 100 a 200.