SlideShare uma empresa Scribd logo
Disciplina: Constr. de Algoritmos e Prog. de Sistemas
Professor: Jeovane Reges
Caxias – MA
2016
ACULDADE DE CIÊNCIAS
E TECNOLOGIA DO
MARANHÃO
Link Drive
bit.ly/ads-algoritmos
2
3
Algoritmos
4
Controle de Fluxo
<Comandos de Repetições>
• Algoritmos
• Comandos de Repetições
• Introdução
• Na aula anterior, vimos como realizar desvios
condicionais em um algoritmo.
 Criamos algoritmos onde um bloco de comandos é
executado somente se determinada condição for atendida.
• Há casos em que um bloco de comandos deve ser
executado "mais de uma vez".
• Tal repetição ocorrerá enquanto (ou até que) uma
dada condição seja satisfazível.
5
6
O objetivo de tais comandos é executar
uma instrução (ou conjunto de instruções)
repetidas vezes, enquanto (ou até que)
uma dada condição seja satisfeita.
• Algoritmos
• Exemplo:
• Algoritmo que escreva cinco vezes a frase:
"Programação", de que forma você faria?
7
algoritmo "Repete Frase"
var
inicio
escreval("Programação")
escreval("Programação")
escreval("Programação")
escreval("Programação")
escreval("Programação")
fimalgoritmo
• Algoritmos
• Comandos de Repetições
• Exemplo:
• Parece simples, não? Mas, e se mudássemos o
número de repetições?
• Se, ao invés de cinco mensagens, tivéssemos
que imprimir cem mensagens? Ou cinco mil
mensagens?
• Seria um tanto exaustivo ficar digitando tantas
vezes o mesmo comando.
8
9
A solução para esse impasse é a
utilização dos comandos de
repetições.
• Algoritmos
• Comandos de Repetições
• Introdução
• Os comandos de repetição classificam-se em:
 Comando com teste condicional no início;
• <comandos ENQUANTO ... FAÇA>
 Comando com variável de controle.
• <comandos PARA>
 Comando com teste condicional no final; e
• <comandos REPITA ... ATÉ>
10
11
Comandos de Repetições
<enquanto>
• Algoritmos
• Comandos de Repetições
• Comando enquanto
 Sintaxe
12
enquanto ([expressão]) faca
// Instruções lógicas abaixo.
[bloco de instruções]
fimenquanto
É obrigatório o espaço existente entre a expressão e os
comandos enquanto e faca.
• Algoritmos
• Comandos de Repetições
• Comando enquanto
• Se a expressão for considerada verdadeira, a
sequência de comandos será executada.
 O "teste" volta a ser realizado sempre que os blocos
de comandos definidos no enquanto são executados.
• Se a expressão for considerada falsa, a
sequência de comandos não será executada.
 O que significa que ela jamais pode ser executada.
13
14
Enquanto (eu for estudante) faca
escreval("Sou liso!")
fimenquanto
• Algoritmos
• Exemplo:
• Faça um algoritmo que escreva cinco vezes a
frase: "Programação".
15
algoritmo "Repete Frase"
var
contador: inteiro
inicio
contador ← 1
enquanto (contador <= 5) faca
escreval("Programação")
contador ← contador + 1
fimenquanto
fimalgoritmo
16
Problema I
Faça um algoritmo que imprima os
números no intervalo de 1 à 10 na tela.
• Algoritmos
• Comandos de Repetições
 Resolução do Problema I
17
algoritmo "Problema 01"
var
contador: inteiro
inicio
contador ← 1
enquanto (contador <= 10) faca
escreval(contador)
contador ← contador + 1
fimenquanto
fimalgoritmo
18
Problema II
Faça um algoritmo que apresente
os valores contidos no intervalo de
1 até onde o usuário "desejar".
• Algoritmos
• Comandos de Repetições
 Resolução do Problema II
19
algoritmo "Problema 02"
var
contador, valor: inteiro
inicio
contador ← 1
escreva("Quer contar até quanto? ")
leia(valor)
enquanto (contador <= valor) faca
escreval(contador)
contador ← contador + 1
fimenquanto
fimalgoritmo
20
Problema III
Faça um algoritmo que realize a
soma dos valores contidos no
intervalo de 1 à 5.
• Algoritmos
• Comandos de Repetições
 Resolução do Problema III
21
algoritmo "Problema 03"
var
contador, soma: inteiro
inicio
contador ← 1
soma ← 0
enquanto (contador <= 5) faca
soma ← soma + contador
contador ← contador + 1
fimenquanto
escreval(soma)
fimalgoritmo
22
Problema IV
Faça um algoritmo que dados cinco
valores "fornecidos" pelo usuário,
apresente o maior valor digitado.
• Algoritmos
23
algoritmo "Problema 04"
var
// mv → maior valor
contador, valor, mv: inteiro
inicio
escreva("Digite um valor: ")
leia(valor)
mv ← valor
contador ← 2
enquanto (contador <= 5) faca
escreva("Digite um valor: ")
leia(valor)
se (valor > mv) entao
mv ← valor
fimse
contador ← contador + 1
fimenquanto
escreval(mv)
fimalgoritmo
ResoluçãodoProblemaIV
24
O comando ENQUANTO testa uma
condição e, enquanto essa condição for
verdadeira, as instruções associadas
ao comando serão executadas.
25
Comandos de Repetições
<Para>
• Algoritmos
• Comandos de Repetições
• Comando para
• O comando para é muito similar ao comando
enquanto, visto anteriormente.
• Basicamente, o comando para é usado para
repetir um comando ou uma sequência de
comandos diversas vezes.
26
• Algoritmos
• Comandos de Repetições
• Comando para
• A quantidade de execuções (repetições) que o
comando irá repetir é conhecida previamente.
 Há uma variável que funciona como contador para
essas repetições.
 Esta variável deve cessar a repetição no momento
em que a contagem chegar ao final.
 Há, também, um valor de incremento, que define de
quantas em quantas unidades a repetição executará.
27
• Algoritmos
• Comandos de Repetições
• Comando para
 Sintaxes:
 VInt ← variável inteiro, VI ← valor inicial, VF ← valor final e
VInc ← valor de incremento.
28
para <VInt> de <VI> ate <VF> [passo <VInc>] faca
<bloco de instruções>
fimpara
OU
para <VInt> de <VI> ate <VF> faca
<bloco de instruções>
fimpara
"Opcional"
• Algoritmos
• Comandos de Repetições
• Exemplo:
• Faça um algoritmo que escreva cinco vezes a
frase: "Programação".
29
algoritmo "Repete Frase"
var
contador: inteiro
inicio
para contador de 1 ate 5 faca
escreval("Programação")
fimpara
fimalgoritmo
• Algoritmos
• Comandos de Repetições
• Comando para
 A variável de controle deve ser uma variável
numérica do tipo inteiro.
 O valor inicial corresponde ao valor de inicialização
da variável antes da primeira repetição.
 O valor final corresponde ao valor máximo que a
variável pode alcançar.
 Se o valor de incremento NÃO for definido,
assume-se o valor = 1.
 Pode ser atribuído um valor negativo ao valor de
incremento. 30
31
Problema V
Faça um algoritmo que imprima os
números no intervalo de 1 à 10 na tela.
• Algoritmos
• Comandos de Repetições
 Resolução do Problema V
// Utilizando enquanto...
32
// Utilizando o "Enquanto"
contador ← 1
enquanto (contador <= 10) faca
escreval(contador)
contador ← contador + 1
fimenquanto
• Algoritmos
• Comandos de Repetições
 Resolução do Problema V
 Saída:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
33
algoritmo "Problema 05"
var
contador: inteiro
inicio
para contador de 1 ate 10 faca
escreval(contador)
fimpara
fimalgoritmo
34
Problema VI
Faça um algoritmo que apresente
os valores contidos no intervalo de
1 até onde o usuário "desejar".
• Algoritmos
• Comandos de Repetições
 Resolução do Problema VI
35
algoritmo "Problema 06"
var
contador, valor: inteiro
inicio
escreva("Deseja contar até quanto? ")
leia(valor)
para contador de 1 ate valor faca
escreval(contador)
fimpara
fimalgoritmo
36
Problema VII
Faça um algoritmo que realize a
soma dos valores contidos no
intervalo de 1 à 5.
• Algoritmos
• Comandos de Repetições
 Resolução do Problema VII
37
algoritmo "Problema 07"
var
contador, soma: inteiro
inicio
soma ← 0
para contador de 1 ate 5 faca
soma ← soma + contador
fimpara
escreval(soma)
fimalgoritmo
38
Problema VIII
Faça um algoritmo que dados cinco
valores "fornecidos" pelo usuário,
apresente o maior valor digitado.
• Algoritmos
39
algoritmo "Problema 08"
Var
// mv → maior valor
contador, valor, mv: inteiro
inicio
escreva("Digite um valor: ")
leia(valor)
mv ← valor
para contador de 2 ate 5 faca
escreva("Digite um valor: ")
leia(valor)
se (valor > mv) entao
mv ← valor
fimse
fimpara
escreval(mv)
fimalgoritmo
ResoluçãodoProblemaVIII
40
Comandos de Repetições
<Repita>
• Algoritmos
• Comandos de Repetições
• Comando repita
 Sintaxe
41
repita
// Instruções lógicas abaixo.
[bloco de instruções]
ate ([expressão])
Esta expressão será avaliada após a execução das instruções
contidas no laço. Caso a expressão seja VERDADEIRA, então o
laço terá sua execução INTERROMPIDA.
• Algoritmos
• Comandos de Repetições
• ER com teste condicional no final
• Este tipo de laço executa o bloco de comandos e
em seguida avalia a expressão condicional.
• A repetição ocorre se o valor dessa expressão
for falso.
• Se esse valor for verdadeiro, a execução
prossegue adiante (encerra).
42
43
Enquanto (eu for estudante) faca
escreval("Sou liso!")
fimenquanto
Repita
escreval("É liso!")
ate (você é analista?)
44
Problema IX
Faça um algoritmo que faça a leitura de
vários números digitados pelo usuário,
até que se digite um número negativo.
• Algoritmos
• Comandos de Repetições
 Resolução do Problema IX
45
algoritmo "Problema 09"
var
valor: inteiro
inicio
repita
escreva("Digite um valor: ")
leia(valor)
ate(valor < 0)
fimalgoritmo
46
Problema X
Dadas várias idades digitadas pelo usuário diga
quantas idades são "maiores do que 18 anos e
quantas são menores do que 18". O algoritmo
encerra quando for digitada uma idade NEGATIVA.
• Algoritmos
• Comandos de Repetições
47
algoritmo "Problema 10"
var
idade, menores, maiores: inteiro
inicio
repita
escreva("Digite uma idade: ")
leia(idade)
se (idade >= 18) entao
maiores ← maiores + 1
senão
se (idade > 0) entao
menores ← menores + 1
fimse
fimse
ate(idade < 0)
// resultado final
fimalgoritmo
ResoluçãodoProblemaX
48
O comando REPITA executa as instruções até
que a condição seja verdadeira. Ou seja, se a
condição for falsa, o ciclo continua, caso
contrário, a repetição é encerrada.

Mais conteúdo relacionado

Mais procurados (20)

PPTX
Construcao de Algoritmos - Aula 11
Facema - Faculdade de Ciências e Tecnologia do Maranhão
 
PPTX
Introdução a Algoritmos: Conceitos Básicos
Elaine Cecília Gatto
 
PDF
53392229 apostila-de-algoritmo-2009
starley lobo
 
PDF
Aula 1 aed - lógica de programação
Elaine Cecília Gatto
 
PPTX
Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição
André Constantino da Silva
 
PPT
Algoritmos Aula 08
IBTA Turma de TI 2009
 
PPTX
Algoritmos - Lógica de Programação
Elaine Cecília Gatto
 
PPT
Material de Apoio de Algoritmo e Lógica de Programação
rodfernandes
 
PPTX
Aula 1 lpa
ProfRenatasssantana
 
PDF
Lista de exercicios algoritmos resolvida-
Mauro Pereira
 
PDF
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
André Constantino da Silva
 
PDF
03 algoritmos basicos
Leandro Barbosa
 
PPTX
Aula 04 Estruturas de repetição 02 - Para Faça
Eder Samaniego
 
PPT
Logica Algoritmo 05 Repeticao
Regis Magalhães
 
PDF
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Gercélia Ramos
 
PDF
Descritiva Narrativa (Lógica de Programação)
Gercélia Ramos
 
PDF
Curso De Algoritmo Aula 9
Felipe Santos
 
PDF
Aula 04 estruturas de repetição
Tácito Graça
 
PDF
Apresentação 20130805 algoritmos
João moreira
 
PPT
Aula 3 algoritmos
Patrick_turma10
 
Introdução a Algoritmos: Conceitos Básicos
Elaine Cecília Gatto
 
53392229 apostila-de-algoritmo-2009
starley lobo
 
Aula 1 aed - lógica de programação
Elaine Cecília Gatto
 
Aula 10 - Comando de Decisão Múltipla e Comandos de Repetição
André Constantino da Silva
 
Algoritmos Aula 08
IBTA Turma de TI 2009
 
Algoritmos - Lógica de Programação
Elaine Cecília Gatto
 
Material de Apoio de Algoritmo e Lógica de Programação
rodfernandes
 
Lista de exercicios algoritmos resolvida-
Mauro Pereira
 
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
André Constantino da Silva
 
03 algoritmos basicos
Leandro Barbosa
 
Aula 04 Estruturas de repetição 02 - Para Faça
Eder Samaniego
 
Logica Algoritmo 05 Repeticao
Regis Magalhães
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Gercélia Ramos
 
Descritiva Narrativa (Lógica de Programação)
Gercélia Ramos
 
Curso De Algoritmo Aula 9
Felipe Santos
 
Aula 04 estruturas de repetição
Tácito Graça
 
Apresentação 20130805 algoritmos
João moreira
 
Aula 3 algoritmos
Patrick_turma10
 

Destaque (20)

PDF
Omnichannel For Government
Phase2
 
PDF
Dialnet formas de Integracion de las empresas -4021250
Ismael Antonio
 
PDF
Eξορθολογισμός διαχείριση διδακτέας υλης για το μάθημα των κοινωνικών επιστημών
George Giotis
 
PPTX
Entregable 4
Eduardo Fermin
 
PPTX
Modulo 3 Gestión del Riesgo y Recomendaciones
Academia Telecentros Chile
 
PDF
ABC del Ecommerce
sallegro
 
PDF
Comercio electrónico en méxico
Omar Sánchez
 
PDF
Auditorias de imagen, trabajo
elizabets
 
PPTX
Modulo 3 Cómo enfrentar situaciones de catástrofe y recomendaciones
Academia Telecentros Chile
 
PPTX
Acordeon
Betzab XD
 
PDF
Regimen Academico Y Disciplinario
Universidad FESU
 
PDF
Guia del Premio
InstitutoCalidad
 
PPT
2º fundamentos3
María José Gómez Redondo
 
PPT
Presentacioncableadoestructurado 130620221834-phpapp02
MEP en imágenes
 
PDF
Innovando en clase
Franco Mana
 
PDF
Herramientas para la BIBLIOTECA escolar II - La biblioteca como espacio peda...
Portal Educativo Colombia Aprende
 
DOC
11 creatividad empresarial trabajo
jose
 
PDF
Servicios ConsultoríA Procesos Global V1
javferbuj
 
DOCX
Trabajo de investigacion
289a
 
Omnichannel For Government
Phase2
 
Dialnet formas de Integracion de las empresas -4021250
Ismael Antonio
 
Eξορθολογισμός διαχείριση διδακτέας υλης για το μάθημα των κοινωνικών επιστημών
George Giotis
 
Entregable 4
Eduardo Fermin
 
Modulo 3 Gestión del Riesgo y Recomendaciones
Academia Telecentros Chile
 
ABC del Ecommerce
sallegro
 
Comercio electrónico en méxico
Omar Sánchez
 
Auditorias de imagen, trabajo
elizabets
 
Modulo 3 Cómo enfrentar situaciones de catástrofe y recomendaciones
Academia Telecentros Chile
 
Acordeon
Betzab XD
 
Regimen Academico Y Disciplinario
Universidad FESU
 
Guia del Premio
InstitutoCalidad
 
2º fundamentos3
María José Gómez Redondo
 
Presentacioncableadoestructurado 130620221834-phpapp02
MEP en imágenes
 
Innovando en clase
Franco Mana
 
Herramientas para la BIBLIOTECA escolar II - La biblioteca como espacio peda...
Portal Educativo Colombia Aprende
 
11 creatividad empresarial trabajo
jose
 
Servicios ConsultoríA Procesos Global V1
javferbuj
 
Trabajo de investigacion
289a
 
Anúncio

Semelhante a Construcao de Algoritmos - Aula 08 (20)

PDF
Aula 05 - Comandos de repeticao - JAVA.pdf
CarlosCarlos73688
 
PPTX
Algoritmos - Aula 07 A - Lacos
Rodrigo Kiyoshi Saito
 
PDF
EstrutControleC.pdf
RogerioMilagres1
 
PPTX
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
Mirlem Pereira
 
PDF
Aula 11
graconlima
 
PPTX
Introducao a Lógica de Programação
Marcelo Rodrigues
 
PDF
Alg aula 05-1 - estruturas de-repeticao tp1 (repita e enquanto)
Thalles Anderson
 
PDF
Algoritmos e Programação: Estruturas de repetição
Alex Camargo
 
PPT
ESTRUTURAS_DE_REPETICAO.ppt
FabianoVilhete3
 
PPTX
Processamento da informacao - Estrutura de repeticao
SidneySantana16
 
PPTX
14 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
PPTX
Algoritmos 01 - Semana 08 - Estruturas de repetição
Eder Samaniego
 
PDF
Alg aula 05-2 - estruturas de-repeticao tp1 (para)
Thalles Anderson
 
PPT
Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Daniel Elektron !
 
PPTX
Repetir
Eder Samaniego
 
PPTX
15 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
PPTX
Estruturas de repetição (parte 01)
Eder Samaniego
 
PPTX
13 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
PDF
Conceitos e técnicas de programação aula 5
Robson Ferreira
 
PDF
Laços de Repetição
Sidney Roberto
 
Aula 05 - Comandos de repeticao - JAVA.pdf
CarlosCarlos73688
 
Algoritmos - Aula 07 A - Lacos
Rodrigo Kiyoshi Saito
 
EstrutControleC.pdf
RogerioMilagres1
 
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
Mirlem Pereira
 
Aula 11
graconlima
 
Introducao a Lógica de Programação
Marcelo Rodrigues
 
Alg aula 05-1 - estruturas de-repeticao tp1 (repita e enquanto)
Thalles Anderson
 
Algoritmos e Programação: Estruturas de repetição
Alex Camargo
 
ESTRUTURAS_DE_REPETICAO.ppt
FabianoVilhete3
 
Processamento da informacao - Estrutura de repeticao
SidneySantana16
 
14 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
Algoritmos 01 - Semana 08 - Estruturas de repetição
Eder Samaniego
 
Alg aula 05-2 - estruturas de-repeticao tp1 (para)
Thalles Anderson
 
Capítulo 08 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Daniel Elektron !
 
15 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
Estruturas de repetição (parte 01)
Eder Samaniego
 
13 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
Conceitos e técnicas de programação aula 5
Robson Ferreira
 
Laços de Repetição
Sidney Roberto
 
Anúncio

Último (20)

PDF
FICHA FINANÇAS: como controlar meu dinheiro
Professor Belinaso
 
PDF
Mat - Seguindo as setas adição subtração multplicação e divisão.
Mary Alvarenga
 
PPTX
ESTUDO 25 - O PLANO DIVINO DOS SECULOS.pptx
Pr Davi Passos - Estudos Bíblicos
 
PDF
BIOLOGIA CELULAR - Biologia | Primeiro Ano Ens. Médio
islaineeli
 
PDF
Matéria e Ambiente - BIOLOGIA - Terceiro Ano do Ens. Médio
islaineeli
 
PPT
AVALIAÇÕES DE SISTEMA DE ENSINO.ppt reformas
SANDRAMENDES689114
 
DOCX
Mapa Histórico da Oceania Impérios e Reinos .docx
Doug Caesar
 
PDF
O sonho do campo.pdf, com animais e pessoas
biblioteca123
 
PDF
Lecionando Inglês com o Scratch: uma mediação da linguagem de programação .
Maria das Graças Machado Rodrigues
 
PPTX
slide de historia sobre o descobrimento do brasil
speedgames391
 
PDF
Inteligência Artificial Generativa - CMMG.pdf
Ana Paula Coelho Barbosa
 
DOCX
Mapa da Nova Zelândia - Mapa dos Países do Mundo .docx
Doug Caesar
 
PPTX
DERIVA URBANA EM FEIRA DE SANTANA BAHIA.pptx
JanmileSilva1
 
PDF
Reflexão_Uma análise às licenciaturas que permitem aceder aos mestrados de en...
Nelson Santos
 
DOCX
Mapa de Nauru - Mapa dos Países do Mundo
Doug Caesar
 
PPTX
MUNCK TREINAMENTO DE MAQUINAS PESADAS...
consultoriagestaosst
 
DOCX
Mapa da Regionalização da América do Norte.docx
Doug Caesar
 
PDF
🧑Entrevista de trabalho.pdf para um lugar
biblioteca123
 
PDF
4-Curriculo-no-contexto-da-Formacao.447.pdf
HelcimarSilva1
 
PDF
🎨 DiálogoGraça Morais.pdfartista plástica
biblioteca123
 
FICHA FINANÇAS: como controlar meu dinheiro
Professor Belinaso
 
Mat - Seguindo as setas adição subtração multplicação e divisão.
Mary Alvarenga
 
ESTUDO 25 - O PLANO DIVINO DOS SECULOS.pptx
Pr Davi Passos - Estudos Bíblicos
 
BIOLOGIA CELULAR - Biologia | Primeiro Ano Ens. Médio
islaineeli
 
Matéria e Ambiente - BIOLOGIA - Terceiro Ano do Ens. Médio
islaineeli
 
AVALIAÇÕES DE SISTEMA DE ENSINO.ppt reformas
SANDRAMENDES689114
 
Mapa Histórico da Oceania Impérios e Reinos .docx
Doug Caesar
 
O sonho do campo.pdf, com animais e pessoas
biblioteca123
 
Lecionando Inglês com o Scratch: uma mediação da linguagem de programação .
Maria das Graças Machado Rodrigues
 
slide de historia sobre o descobrimento do brasil
speedgames391
 
Inteligência Artificial Generativa - CMMG.pdf
Ana Paula Coelho Barbosa
 
Mapa da Nova Zelândia - Mapa dos Países do Mundo .docx
Doug Caesar
 
DERIVA URBANA EM FEIRA DE SANTANA BAHIA.pptx
JanmileSilva1
 
Reflexão_Uma análise às licenciaturas que permitem aceder aos mestrados de en...
Nelson Santos
 
Mapa de Nauru - Mapa dos Países do Mundo
Doug Caesar
 
MUNCK TREINAMENTO DE MAQUINAS PESADAS...
consultoriagestaosst
 
Mapa da Regionalização da América do Norte.docx
Doug Caesar
 
🧑Entrevista de trabalho.pdf para um lugar
biblioteca123
 
4-Curriculo-no-contexto-da-Formacao.447.pdf
HelcimarSilva1
 
🎨 DiálogoGraça Morais.pdfartista plástica
biblioteca123
 

Construcao de Algoritmos - Aula 08

  • 1. Disciplina: Constr. de Algoritmos e Prog. de Sistemas Professor: Jeovane Reges Caxias – MA 2016 ACULDADE DE CIÊNCIAS E TECNOLOGIA DO MARANHÃO
  • 4. 4 Controle de Fluxo <Comandos de Repetições>
  • 5. • Algoritmos • Comandos de Repetições • Introdução • Na aula anterior, vimos como realizar desvios condicionais em um algoritmo.  Criamos algoritmos onde um bloco de comandos é executado somente se determinada condição for atendida. • Há casos em que um bloco de comandos deve ser executado "mais de uma vez". • Tal repetição ocorrerá enquanto (ou até que) uma dada condição seja satisfazível. 5
  • 6. 6 O objetivo de tais comandos é executar uma instrução (ou conjunto de instruções) repetidas vezes, enquanto (ou até que) uma dada condição seja satisfeita.
  • 7. • Algoritmos • Exemplo: • Algoritmo que escreva cinco vezes a frase: "Programação", de que forma você faria? 7 algoritmo "Repete Frase" var inicio escreval("Programação") escreval("Programação") escreval("Programação") escreval("Programação") escreval("Programação") fimalgoritmo
  • 8. • Algoritmos • Comandos de Repetições • Exemplo: • Parece simples, não? Mas, e se mudássemos o número de repetições? • Se, ao invés de cinco mensagens, tivéssemos que imprimir cem mensagens? Ou cinco mil mensagens? • Seria um tanto exaustivo ficar digitando tantas vezes o mesmo comando. 8
  • 9. 9 A solução para esse impasse é a utilização dos comandos de repetições.
  • 10. • Algoritmos • Comandos de Repetições • Introdução • Os comandos de repetição classificam-se em:  Comando com teste condicional no início; • <comandos ENQUANTO ... FAÇA>  Comando com variável de controle. • <comandos PARA>  Comando com teste condicional no final; e • <comandos REPITA ... ATÉ> 10
  • 12. • Algoritmos • Comandos de Repetições • Comando enquanto  Sintaxe 12 enquanto ([expressão]) faca // Instruções lógicas abaixo. [bloco de instruções] fimenquanto É obrigatório o espaço existente entre a expressão e os comandos enquanto e faca.
  • 13. • Algoritmos • Comandos de Repetições • Comando enquanto • Se a expressão for considerada verdadeira, a sequência de comandos será executada.  O "teste" volta a ser realizado sempre que os blocos de comandos definidos no enquanto são executados. • Se a expressão for considerada falsa, a sequência de comandos não será executada.  O que significa que ela jamais pode ser executada. 13
  • 14. 14 Enquanto (eu for estudante) faca escreval("Sou liso!") fimenquanto
  • 15. • Algoritmos • Exemplo: • Faça um algoritmo que escreva cinco vezes a frase: "Programação". 15 algoritmo "Repete Frase" var contador: inteiro inicio contador ← 1 enquanto (contador <= 5) faca escreval("Programação") contador ← contador + 1 fimenquanto fimalgoritmo
  • 16. 16 Problema I Faça um algoritmo que imprima os números no intervalo de 1 à 10 na tela.
  • 17. • Algoritmos • Comandos de Repetições  Resolução do Problema I 17 algoritmo "Problema 01" var contador: inteiro inicio contador ← 1 enquanto (contador <= 10) faca escreval(contador) contador ← contador + 1 fimenquanto fimalgoritmo
  • 18. 18 Problema II Faça um algoritmo que apresente os valores contidos no intervalo de 1 até onde o usuário "desejar".
  • 19. • Algoritmos • Comandos de Repetições  Resolução do Problema II 19 algoritmo "Problema 02" var contador, valor: inteiro inicio contador ← 1 escreva("Quer contar até quanto? ") leia(valor) enquanto (contador <= valor) faca escreval(contador) contador ← contador + 1 fimenquanto fimalgoritmo
  • 20. 20 Problema III Faça um algoritmo que realize a soma dos valores contidos no intervalo de 1 à 5.
  • 21. • Algoritmos • Comandos de Repetições  Resolução do Problema III 21 algoritmo "Problema 03" var contador, soma: inteiro inicio contador ← 1 soma ← 0 enquanto (contador <= 5) faca soma ← soma + contador contador ← contador + 1 fimenquanto escreval(soma) fimalgoritmo
  • 22. 22 Problema IV Faça um algoritmo que dados cinco valores "fornecidos" pelo usuário, apresente o maior valor digitado.
  • 23. • Algoritmos 23 algoritmo "Problema 04" var // mv → maior valor contador, valor, mv: inteiro inicio escreva("Digite um valor: ") leia(valor) mv ← valor contador ← 2 enquanto (contador <= 5) faca escreva("Digite um valor: ") leia(valor) se (valor > mv) entao mv ← valor fimse contador ← contador + 1 fimenquanto escreval(mv) fimalgoritmo ResoluçãodoProblemaIV
  • 24. 24 O comando ENQUANTO testa uma condição e, enquanto essa condição for verdadeira, as instruções associadas ao comando serão executadas.
  • 26. • Algoritmos • Comandos de Repetições • Comando para • O comando para é muito similar ao comando enquanto, visto anteriormente. • Basicamente, o comando para é usado para repetir um comando ou uma sequência de comandos diversas vezes. 26
  • 27. • Algoritmos • Comandos de Repetições • Comando para • A quantidade de execuções (repetições) que o comando irá repetir é conhecida previamente.  Há uma variável que funciona como contador para essas repetições.  Esta variável deve cessar a repetição no momento em que a contagem chegar ao final.  Há, também, um valor de incremento, que define de quantas em quantas unidades a repetição executará. 27
  • 28. • Algoritmos • Comandos de Repetições • Comando para  Sintaxes:  VInt ← variável inteiro, VI ← valor inicial, VF ← valor final e VInc ← valor de incremento. 28 para <VInt> de <VI> ate <VF> [passo <VInc>] faca <bloco de instruções> fimpara OU para <VInt> de <VI> ate <VF> faca <bloco de instruções> fimpara "Opcional"
  • 29. • Algoritmos • Comandos de Repetições • Exemplo: • Faça um algoritmo que escreva cinco vezes a frase: "Programação". 29 algoritmo "Repete Frase" var contador: inteiro inicio para contador de 1 ate 5 faca escreval("Programação") fimpara fimalgoritmo
  • 30. • Algoritmos • Comandos de Repetições • Comando para  A variável de controle deve ser uma variável numérica do tipo inteiro.  O valor inicial corresponde ao valor de inicialização da variável antes da primeira repetição.  O valor final corresponde ao valor máximo que a variável pode alcançar.  Se o valor de incremento NÃO for definido, assume-se o valor = 1.  Pode ser atribuído um valor negativo ao valor de incremento. 30
  • 31. 31 Problema V Faça um algoritmo que imprima os números no intervalo de 1 à 10 na tela.
  • 32. • Algoritmos • Comandos de Repetições  Resolução do Problema V // Utilizando enquanto... 32 // Utilizando o "Enquanto" contador ← 1 enquanto (contador <= 10) faca escreval(contador) contador ← contador + 1 fimenquanto
  • 33. • Algoritmos • Comandos de Repetições  Resolução do Problema V  Saída: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 33 algoritmo "Problema 05" var contador: inteiro inicio para contador de 1 ate 10 faca escreval(contador) fimpara fimalgoritmo
  • 34. 34 Problema VI Faça um algoritmo que apresente os valores contidos no intervalo de 1 até onde o usuário "desejar".
  • 35. • Algoritmos • Comandos de Repetições  Resolução do Problema VI 35 algoritmo "Problema 06" var contador, valor: inteiro inicio escreva("Deseja contar até quanto? ") leia(valor) para contador de 1 ate valor faca escreval(contador) fimpara fimalgoritmo
  • 36. 36 Problema VII Faça um algoritmo que realize a soma dos valores contidos no intervalo de 1 à 5.
  • 37. • Algoritmos • Comandos de Repetições  Resolução do Problema VII 37 algoritmo "Problema 07" var contador, soma: inteiro inicio soma ← 0 para contador de 1 ate 5 faca soma ← soma + contador fimpara escreval(soma) fimalgoritmo
  • 38. 38 Problema VIII Faça um algoritmo que dados cinco valores "fornecidos" pelo usuário, apresente o maior valor digitado.
  • 39. • Algoritmos 39 algoritmo "Problema 08" Var // mv → maior valor contador, valor, mv: inteiro inicio escreva("Digite um valor: ") leia(valor) mv ← valor para contador de 2 ate 5 faca escreva("Digite um valor: ") leia(valor) se (valor > mv) entao mv ← valor fimse fimpara escreval(mv) fimalgoritmo ResoluçãodoProblemaVIII
  • 41. • Algoritmos • Comandos de Repetições • Comando repita  Sintaxe 41 repita // Instruções lógicas abaixo. [bloco de instruções] ate ([expressão]) Esta expressão será avaliada após a execução das instruções contidas no laço. Caso a expressão seja VERDADEIRA, então o laço terá sua execução INTERROMPIDA.
  • 42. • Algoritmos • Comandos de Repetições • ER com teste condicional no final • Este tipo de laço executa o bloco de comandos e em seguida avalia a expressão condicional. • A repetição ocorre se o valor dessa expressão for falso. • Se esse valor for verdadeiro, a execução prossegue adiante (encerra). 42
  • 43. 43 Enquanto (eu for estudante) faca escreval("Sou liso!") fimenquanto Repita escreval("É liso!") ate (você é analista?)
  • 44. 44 Problema IX Faça um algoritmo que faça a leitura de vários números digitados pelo usuário, até que se digite um número negativo.
  • 45. • Algoritmos • Comandos de Repetições  Resolução do Problema IX 45 algoritmo "Problema 09" var valor: inteiro inicio repita escreva("Digite um valor: ") leia(valor) ate(valor < 0) fimalgoritmo
  • 46. 46 Problema X Dadas várias idades digitadas pelo usuário diga quantas idades são "maiores do que 18 anos e quantas são menores do que 18". O algoritmo encerra quando for digitada uma idade NEGATIVA.
  • 47. • Algoritmos • Comandos de Repetições 47 algoritmo "Problema 10" var idade, menores, maiores: inteiro inicio repita escreva("Digite uma idade: ") leia(idade) se (idade >= 18) entao maiores ← maiores + 1 senão se (idade > 0) entao menores ← menores + 1 fimse fimse ate(idade < 0) // resultado final fimalgoritmo ResoluçãodoProblemaX
  • 48. 48 O comando REPITA executa as instruções até que a condição seja verdadeira. Ou seja, se a condição for falsa, o ciclo continua, caso contrário, a repetição é encerrada.