sábado, 1 de março de 2008

PDA - Aula 07: Desvios Condicionais

* Esta obra é uma adptação do autor desse blog da disciplina de Fundamento de Algoritmo para Computação do curso de Tecnologia em Sistemas de Computacão/Cederj UFF das aulas originais cujo os autores são: Adriano Cruz e Jonas Knopman.

Conteúdo:
  1. Objetivos
  2. Comando de desvio
  3. Comando de desvio aninhado
1. Objetivos
  • Apresentar o comando de desvio
  • Apresentar o funcionamento dos comandos de desvio aninhados
2. Comando de desvio
  • Permite que o algoritmo decida autonomamente entre dois caminhos possíveis, qual irá executar.
Traga a cesta com as batatas Se a roupa é clara então coloque avental Fim se Descasque as batatas

Bloco de comandos
  • Os comandos na nossa linguagem são escritos um por linha
  • Não há nenhum sinal de pontuação ao final da linha
  • Um bloco de comandos é uma série de comandos
  • Em um bloco ou todos os comandos são executados ou nenhum é.
leia n1, n2
media <- (n1+n2)/2 imprima 'A média vale ', media

Fluxograma do desvio
  • Somente um dos blocos de comando é executado.


se então bloco de comandos 1 senão bloco de comandos 2 fim se

Comando se simplificado
  • Caso o bloco de comandos depois do senão seja vazio, esta parte pode ser omitida
  • A forma geral simplificada é:
se então bloco de comandos fim se

Fluxograma se simplificado
  • Neste caso o bloco de comandos é executado somente se a condição for verdadeira
  • Caso contrário o algoritmo prossegue normalmente


início
acorde
se estiver fazendo sol então
vai à praia
senão
lê jornal
dorme
acorda
fim se
almoça
fim

Sequencia de ações

Se estiver fazendo sol
acorda
vai à praia
almoça

Senão
acorda
lê jornal
dorme
acorda
almoça

Exemplo algoritmo

Ler dois números e imprimir o maior
início
imprima 'Primeiro número?'
leia num1
imprima 'Segundo número?'
leia num2
se num1 > num2 então
imprima 'O maior é ', num1
senão
imprima 'O maior é ', num2
fim se
fim

Comando se aninhado
  • As duas formas do comando se podem aparecer dentro de outros comando se.
  • Diz-se que o comando se interno está aninhado no comando se externo.

se estiver sol então
se eu tiver dinheiro então
Vou à praia
fim se
fim se

  • Como o computador liga um fim se a um se?
  • A indentação não é significativa para os compiladores!
  • O fim se estará relacionado com o se mais próximo.
Usando comando se aninhado
  • Observe as seguintes construções:
se estiver sol então
se eu tiver dinheiro então
vou à praia
fim se
fim se
ou
se estiver sol e
eu tiver dinheiro
então
vou à praia
fim se
  • As duas construções são equivalentes. Então, quando usar comandos aninhados?
Quando usar comando aninhado?

  • Quando tivermos de executar blocos de comandos diferentes para a cláusula senão das duas condições.

se estiver sol então
se eu tiver dinheiro então
Vou à Fazenda Felicidade
senão
Vou à praia
fim se
senão
Vou dormir
fim se

Como construir sem aninhamento?

  • Construir o exemplo anterior sem aninhamento.
  • Construir o exemplo anterior sem aninhamento.

se estiver sol e tiver dinheiro então Vou à Fazenda Felicidade
fim se

se estiver sol e não tiver dinheiro
então Vou à praia
fim se

se não estiver sol então
Vou dormir
fim se

Um exemplo

  • Exemplo: Uma empresa vai dar um abono aos empregados que tenham mais de 1 ano de casa: 10% para os que tenham menos de 10 anos e 25% para os demais. Calcule o abono de um dado funcionário, dado o seu salário e o tempo de casa




Exemplo: Solução

início
imprima 'Entre com o salario: '
leia salario
imprima 'Entre com o tempo de servico:'
leia tempo
se tempo > 1 então
se tempo < style="font-weight: bold;">Outro exemplo

  • Sistema de controle de temperatura

Nenhum comentário: