Buscar

Estruturas Condicionais e de Repetição em Programação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 40 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 40 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 40 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Algoritmos e 
Lógica de 
Programação I
Unidade 02
Estruturas 
Condicionais
Compostas
Prof. Rogério Napoleão Júnior
• Testa uma condição e, caso ela seja verdadeira, executa um bloco de comandos, 
senão, executa outro bloco
• Sintaxe em pseudocódigo
Se (<expressão lógica>) então
<sequência de comandos 1>
Senão
<sequência de comandos 2>
Fim_se
Estrutura Condicional Composta
Algoritmo parOuImpar1
Var numero, resto: inteiro
Inicio
leia(numero)
resto ← numero / 2
resto ← numero – (resto * 2) 
Se (resto = 0) então
escreva(“O número é par”) 
Senão
escreva(“O número é ímpar”)
Fim_se
Fim
Exemplo – Versão 1 
Algoritmo parOuImpar2
Var numero, resto: inteiro
Inicio
leia(numero)
resto ← numero MOD 2 
Se (resto = 0) então
escreva(“O número é par”) 
Senão
escreva(“O número é ímpar”) 
Fim_se
Fim
Exemplo – Versão 2
Unidade 02
Estruturas 
Condicionais
Aninhadas
Prof. Rogério Napoleão Júnior
• Pode-secomporumaestruturacondicionalmais complexa
• Coloca-se um“Se-Então-[Senão]”dentro do outro, de acordo com a necessidade do 
algoritmo
• Pode-seutilizarestruturascondicionaissimples, compostas e múltiplas, todas elas de 
maneira aninhada
• Criam-se vários níveis de deciso ̃es em que, a decisão mais interna so ́ será conferida
caso a decisão mais externa tenha resultado verdadeiro
Estrutura Condicional Aninhadas
Se (<expressão lógica 1>) então
Se (<expressão lógica 2>) então
<sequê ncia de comandos 1> 
Senão
<sequê ncia de comandos 2> 
Fim_se
Senão
Se (<expressão lógica 3>) então
<sequê ncia de comandos 3> 
Fim_se
Fim-se 
Estrutura Condicional Aninhadas
• Construa um algoritmo que receba, como entrada, a média final de um aluno: 
• Imprima “Aprovado” caso a nota seja maior ou igual a 7.; 
• “Exame” se a média for maior ou igual a 4, porém menor que 7; 
• Imprima“Reprovado”casoamédiasejamenor que 4. 
Exemplo
Algoritmo notas
Var media: real 
Início
leia(media)
Se (media >= 7.0) então
escreva(“Aprovado”) 
Senão
Se (media >= 4.0) 
escreva(“Exame”) 
Senão
escreva(“Reprovado”)
Fim_se
Fim_se
Fim
Exemplo
Unidade 02
Estruturas 
Condicionais
Multiplas
Prof. Rogério Napoleão Júnior
• Há situac ̧o ̃es em que uma mesma variável pode gerar condic ̧o ̃es múltiplas
• A mesma condic ̧ão pode levar a mais de dois caminhos diferentes
• Geralmente uma única variável acaba controlando os vários caminhos diferentes
• É como se fosse um “menu” de opc ̧o ̃es
• Basicamente, substitui uma sequência de condições simples 
baseadas (Se-Então) em uma única variável
Estrutura Condicional Múltipla
Caso (<variável>) 
Seja <valor 1> faç a <comandos 1> 
Seja <valor 2> faç a <comandos 2> 
Seja <valor 3> faç a <comandos 3> 
⁞ 
Seja <valor N> faç a <comandos N> 
Senão <lista de comandos padrão> 
Fim_caso
Estrutura Condicional Múltipla
Desenvolva um algoritmo que, dependendo do valor (número inteiro) digitado pelo
usuário, imprimir na tela dia da semana correspondente àquele número: 
1 → domingo
2 → segunda-feira
3 → terc ̧a-feira
4 → quarta-feira
5 → quinta-feira
6 → sexta-feira
7 → sábado
Exemplo
Algoritmo diaDaSemana
Var dia: inteiro
Início
leia(dia) 
Caso (dia) 
Seja 1 faç a escreva(“Domingo”) 
Seja 2 faç a escreva(“Segunda”) 
Seja 3 faç a escreva(“Terç a”) 
Seja 4 faç a escreva(“Quarta”) 
Seja 5 faç a escreva(“Quinta”) 
Seja 6 faç a escreva(“Sexta”) 
Seja 7 faç a escreva(“Sábado”) 
Senão escreva (“Valor Inválido”) 
Fim_caso
Fim
Exemplo
Unidade 03
Estrutura de 
Repetição
Prof. Rogério Napoleão Júnior
• Computadores sa ̃o muito eficientes em realizar operações repetitivas. 
• Pense no seguinte problema: 
• Imprimir “Aguarde...”, por cem vezes, na tela! 
• Uma estrutura de repetiça ̃o permite repetir um bloco comandos sem a 
necessidade de replicar código-fonte. 
• Observaça ̃o: repetic ̧a ̃o e iterac ̧a ̃o têm o mesmo significado. 
Introdução
• Imprimindo “Aguarde...” por cem vezes: 
Algoritmo imprimeAguarde
Início
escreva(“Aguarde...”) 
escreva(“Aguarde...”) 
escreva(“Aguarde...”)
// ... até a centésima impressão escreva(“Aguarde...”) 
Fim
Introdução
• É interessante replicar o mesmo co ́digo para repetir a mesma tarefa? 
• Exemplo anterior: utilizar a função escreva() por 100 vezes, 
em sequência... 
• É oneroso e deselegante
• Existem comandos que permitem que a máquina execute tarefas repetitivas, sem que 
seja necessário replicar co ́digo. 
• ESTRUTURAS DE REPETIC ̧A ̃O! 
Introdução
• Conhecidos também como Laços ou Loops
• Utilidade: iterar um bloco de commandos
• Toda estrutura de repetição possui um critério de parade
• Crítério de parada pode ser falho: loop infinito
• Possível travamento/crash do programa
Estruturas de Repetição
Unidade 03
Estrutura “Para”
Prof. Rogério Napoleão Júnior
• Repetição por Contagem
• Repete um bloco de commandos por um número finito de vezes
• A quantia de repetições é controlada por uma variável
• Gera-se uma sequência númerica
• Variável contadora (laço contado)
• Geralmente tem-se uma variável númerica (normalente inteiro) para realizar a 
contagem
Estrutura “Para”
Para <v> de <i> até <f> passo <p> faç a
<sequê ncia de comandos> 
Fim_para
• Exemplo
Algoritmo aguardando
Var cont: inteiro
Início
Para cont de 1 até 100 passo 1 faç a
escreva(“Aguarde...”)
Fim_para
Fim
Estrutura “Para”
• A variável de controle gera uma sequência numérica (variável cont, do exemplo
anterior) 
• É como um contador: 
1 – Executa pela primeira vez
2 – Executa pela segunda vez
3 – Executa pela terceira vez
... 
8 – Executa pela oitava vez
9 – Executa pela nona vez
10 – Executa pela décima vez
... e assim por diante ... 
Estrutura “Para”
• Toda sequência numérica possui: 
• Um valor inicial
• Um valor final 
• Um valor de incremento/decremento
• Exemplo
• Valor inicial = 1 
• Valor final = 5 
• Incremento = +1 
• Sequência gerada: 1, 2, 3, 4, 5 
• Quando não for explicitado, o valor de incremento assume-se +1 por padra ̃o
Estrutura “Para”
Sequências mais comuns na repetiça ̃o por contagem: 
a) Valor inicial = 0 e incremento = +1: 0, 1, 2, 3, 4... 
b) Valor inicial = 1 e incremento = +1: 1, 2, 3, 4, 5... 
c) Valor inicial = N e decremento = -1: Por ex. com N = 5: 5, 4, 3, 2, 1, 0 
Estrutura “Para”
Unidade 03
Estrutura 
“Enquanto”
Prof. Rogério Napoleão Júnior
• Repetição por Condição
• Em muitas situac ̧ões na computac ̧a ̃o precisamos repetir operac ̧ões apenas enquanto uma
condic ̧a ̃o for verdadeira.
• Os commandos sa ̃o repetidos ate ́ que a condic ̧ão seja quebrada – condic ̧a ̃o testada no 
ini ́cio
• Muitas vezes é impossível prever quando a condic ̧a ̃o sera ́ quebrada
• Condic ̧a ̃o: expressa ̃o lógico-relacional
Estrutura “Enquanto”
Enquanto (<expressão lógica>) faç a
<sequê ncia de comandos> 
Fim_enquanto
• Exemplo
Algoritmo aguardando2 
Var cont: inteiro
Inicio
cont ← 0
Enquanto (cont < 100) faç a
escreva(“Aguarde...”); 
cont ← cont + 1 
Fim_enquanto
Fim
Estrutura “Enquanto”
• Imagine o seguinte problema: 
• Escrever um algoritmo para descobrir quantas vezes é
possível subtrair o valor 2 de um número N qualquer
(informado pelo usuário), antes que o resultado das 
subtrações se torne negativo. 
• A interação com o usuário faz com que seja difícil prever quantas vezes o laço deverá
se repetir
Estrutura “Enquanto”
• Desenvolver um algoritmo que pec ̧a ao usuário que informe valores e se encerre
quando a soma dos valores informados for maior do que 100. 
Algoritmo somaValores
Var val, soma: inteiro
Inicio
soma ← 0
Enquanto (soma < 100) faç a
leia(val) 
soma ← soma + val
Fim_enquanto
Fim
Exemplo
Unidade 03
Estrutura “Repita”
Prof. Rogério Napoleão Júnior
• Estrutura de repetic ̧ão por condic ̧ão, similar ao “Enquanto”, com algumas diferenc ̧as
fundamentais: 
• O teste condicional éverificado somente ao final do laço
• O bloco de comandos é executado, obrigatoriamente, por pelo menos
uma vez
• A lógica condicional é invertida, quando comparada ao enquanto
• O laço de repetição é iterado até que a condição seja atendida
Estrutura “Repita”
Repita
<sequê ncia de comandos> 
Até_que (<expressão lógica>) 
• Exemplo
Algoritmo aguardando3 
Var cont: inteiro
Inicio
cont ← 1 
Repita
escreva(“Aguarde...”); 
cont ← cont + 1 
Até_que (cont > 100) 
Fim
Estrutura “Repita”
Unidade 03
Estrutura de 
Repetição 
Aninhadas
Prof. Rogério Napoleão Júnior
• Em algumas situac ̧o ̃es observa-se a necessidade de se aninhar uma estrutura de 
repetic ̧ão dentro da outra; 
• Pode-se aninhar quantas estruturas de repetic ̧ão quanto for necessário, e de qualquer
tipo; 
• Geralmente, o aninhamento de estruturas de repetic ̧ão está relacionado a algoritmos
que envolvem matrizes. 
Estrutura de Repetição Aninhadas
Para var de inicio até fim passo incr faç a
<Bloco de comandos do PARA 1>
Repita
<Bloco de comandos do REPITA 1> 
Enquanto (<condição1>) faç a
<Bloco de comandos do ENQUANTO> 
Fim_enquanto
<Bloco de comandos do REPITA 2> 
Até_que (<condição2>)
<Bloco de comandos do PARA 2> 
Fim_para
Estrutura de Repetição Aninhadas
Quando é indicada a utilizac ̧ão de uma estrutura Para? 
• Para repetir um bloco de comandos repetidamente, quando se sabe, de antemão, quantas
vezes o bloco deverá ser repetido
• Explorar padrões de sequências numéricas
• Para realizar contagens
• Para acumular valores
Síntese
Quando é indicada a utilizaça ̃o de uma estrutura Enquanto ou Repita? 
• Quando na ̃o é possi ́vel determinar previamente o número de repetições
a se realizar. 
• Quando deseja-se gerar sequências complexas, por exemplo, números
decimais, números múltiplos, etc. 
• Para repetir um conjunto de comandos por um número finito de vezes. 
• Tomar cuidado com a repetiça ̃o infinita (loop infinito): em algum
momento a condiça ̃o do devera ́ se fazer com que o laço se interrompa! 
Síntese

Continue navegando