Algoritmos e Lógica de Programação
-
Upload
jose-augusto-cintra -
Category
Education
-
view
795 -
download
3
Transcript of Algoritmos e Lógica de Programação
![Page 1: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/1.jpg)
Algoritmos e
Lógica de Programação
Notas de Aula
![Page 2: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/2.jpg)
Parte I
Conceitos de Algoritmos
2
![Page 3: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/3.jpg)
Algoritmos
Algoritmo
=
Sequência lógica e não ambígua
de instruções que leva à
solução de um problema
em um tempo finito.
3
![Page 4: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/4.jpg)
Algoritmos
Um algoritmo não representa, necessariamente,
um programa de computador e sim os passos
necessários para realizar uma tarefa. Sua
implementação pode ser feita por um
computador, por um robô ou mesmo por um ser
humano. Diferentes algoritmos podem realizar
a mesma tarefa usando um conjunto
diferenciado de instruções em mais ou menos
tempo, espaço ou esforço do que outros.
https://pt.wikipedia.org/wiki/Algoritmo
4
![Page 5: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/5.jpg)
Algoritmos - Exemplo
Algoritmo: Sacar dinheiro
INÍCIO
1. Ir até o caixa eletrônico.
2. Colocar o cartão.
3. Digitar a senha.
4. Solicitar o saldo.
5. Se o saldo for maior ou igual à quantia
desejada, sacar a quantia desejada; caso
contrário sacar o valor do saldo.
6. Retirar dinheiro e cartão.
FIM.
5
![Page 6: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/6.jpg)
Algoritmos – Características básicas
Seqüência lógica
As instruções devem ser definidas em uma
ordem correta.
Não ambígua
A seqüência lógica e as instruções não
devem dar margem à dupla interpretação.
Solução de um problema
A seqüência lógica deve resolver
exatamente o problema identificado.
Tempo finito
A seqüência lógica não deve possuir
iterações infinitas.
6
![Page 7: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/7.jpg)
Algoritmo ambíguo
• Modo de preparo:
– Bata a margarina, as gemas e o açúcar até
ficar cremoso
– Junte o leite, o coco e a farinha e continue
batendo
– Acrescente o fermento e as claras em neve
– Unte uma forma com manteiga e leve ao forno
para assar
Quão cremoso?!?
Quanto tempo?!?
De uma vez só?!?
Quanto tempo?!?
7
![Page 8: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/8.jpg)
Algoritmo refinado
• Modo de preparo:
– Bata a margarina, as gemas e o açúcar por 15
minutos
– Junte o leite, o coco e a farinha e continue
batendo por mais 15 minutos
– Acrescente 20 g de fermento e, por último,
as claras em neve
– Unte uma forma com manteiga e leve ao forno
para assar por 30 minutos
8
![Page 9: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/9.jpg)
Algoritmo – Estruturas básicas
Seqüência – Início/Fim
Define uma estrutura onde as instruções
serão executadas na ordem que aparecem.
Seleção – Se-Então/Senão
Define uma estrutura condicional que, dada
a sua avaliação (V ou F), determina qual
“caminho” do algoritmo será executado.
Repetição – Repita, Enquanto ou Para
Define uma estrutura de iteração
condicional (V ou F) ou contada
(predefinida) de instruções que irão se
repetir.
9
![Page 10: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/10.jpg)
Algoritmo – Estruturas básicas
Algoritmo para ligar de um telefone público
Seqüência:
INÍCIO
1. Tirar o fone do gancho;
2. Ouvir o sinal de linha;
3. Introduzir o cartão;
4. Teclar o número desejado;
5. Conversar;
6. Desligar;
7. Retirar o cartão;
FIM10
![Page 11: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/11.jpg)
Algoritmo – Estruturas básicas
Algoritmo para ligar de um telefone público
INÍCIO
1. Tirar o fone do gancho;
2. Se ouvir o sinal de linha, então:
1.Introduzir o cartão;
2.Teclar o número desejado;
3.Conversar;
4.Desligar;
5.Retirar o cartão;
3. Senão
1.Ir para o próximo telefone;
FIM11
![Page 12: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/12.jpg)
Algoritmo – Estruturas básicas
Algoritmo para ligar de um telefone público
INÍCIO
1. Repita
1.Tirar o fone do gancho;
2.Se ouvir o sinal de linha então
1.Introduzir o cartão;
2.Teclar o número desejado;
3.Conversar;
4.Desligar;
5.Retirar o cartão;
3.Senão
Ir para o próximo telefone;
2. Até ouvir o sinal de linha
FIM Este algoritmo usa uma
estrutura de repetição
“Repita/Até”12
![Page 13: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/13.jpg)
Conclusão
Escrever algoritmos e, por fim programar,
consiste em dividir qualquer problema em
vários passos menores, usando uma ou mais
formas de representação.
Esses passos que compõem o algoritmo são
denominados de comandos, que por sua vez,
seguem uma ordem de execução determinada por
estruturas de controle.
Os elementos (informações) manipulados por
esses comandos são os dados que são
organizados em estruturas de dados
13
![Page 14: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/14.jpg)
Parte II
Introdução aos
Algoritmos Computacionais
com VisualG
14
![Page 15: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/15.jpg)
Algoritmos com VisualG
Para estudar a construção de algoritmos para
serem resolvidos pelo computador,
utilizaremos um código que é chamado de
pseudocódigo, também conhecido como português
estruturado ou portugol.
Vamos escrever sequências de instruções que
possam ser entendidas por qualquer
programador, independente da linguagem de
programação utilizada.
A estrutura da linguagem aqui apresentada
está baseada no programa VisualG, um
interpretador de algoritmos desenvolvido no
Brasil
15
![Page 16: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/16.jpg)
Algoritmos – ciclo básico
Os dados são armazenados na memória e depois
recuperados para serem processados ou
impressos
Entrada Processamento Saída
Memória
16
![Page 17: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/17.jpg)
Forma geral de um algoritmo
Algoritmo “NomeDoAlgoritmo”
var
Aqui são declaradas os dados, as informações
a serem utilizadas
inicio
Aqui inserimos as instruções a serem
seguidas, ou seja o algoritmo propriamente
dito
fimalgoritmo
17
![Page 18: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/18.jpg)
Forma geral de um algoritmo
As palavras ou comandos usados na linguagem
são padronizadas e, por isso, são chamadas de
palavras reservadas.
As palavras algoritmo e fimalgoritmo
delimitam o início e o fim de um algoritmo;
Após a palavra var, descreveremos os dados
que serão utilizados pelo algoritmo;
Entre as palavras reservadas inicio e
fimalgoritmo definimos a lista de comandos;
18
![Page 19: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/19.jpg)
Variáveis
Algoritmos trabalham com dados (valores)
Esses valores precisam ser armazenados pelo
computador para serem processados;
Uma varíável representa uma posição na
memória, onde pode ser armazenado um dado;
Uma variável possui um nome e um valor de um
determinado tipo para que possa ser
identificada.
Durante a execução do algoritmo, a variável
pode ter seu valor alterado (seu valor pode
variar)
Mudanças no valor das variáveis:
Por entrada de dados (digitação)
Por atribuição de valor
19
![Page 20: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/20.jpg)
Tipos de Dados
Toda variável é associada a um tipo de valor;
O tipo de dado de uma variável identifica o
tipo de valor (faixa de valores) que ela
poderá receber, bem como as operações que
poderão ser realizadas com essa variável;
20
![Page 21: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/21.jpg)
TIPO DESCRIÇÃO
InteiroRepresenta valores inteiros
Ex.: 2, 5, -3, 100, -151...
RealRepresenta valores reais
Ex.: 10.0, 5.6, -3.45....
Caractere
Representa texto entre aspas
duplas
Ex.: “Corinthians”, “B”, “1234”
LogicoRepresenta os valores lógicos
VERDADEIRO ou FALSO
Tipos de Dados
![Page 22: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/22.jpg)
Fonte: UFABC22
![Page 23: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/23.jpg)
Declaração de variáveis
Antes de usarmos uma variável, precisamos
declará-la, ou seja, definir o seu nome e
tipo.
Declaramos variáveis logo após a palavra
reservada var;
Ex.:
var idade: inteiro
nota1, nota2: real
23
![Page 24: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/24.jpg)
Declaração de variáveis
Regras para identificação das variáveis:
Nomes de variáveis não podem ser iguais a
palavras reservadas;
Nomes de variáveis devem possuir como
primeiro caractere uma letra ou sublinhado.
Os demais caracteres podem ser letras,
números ou sublinhado;
Nomes devem ter no máximo 127 caracteres;
Nomes não podem ter espaços em branco;
Não há diferença entre letras maiúsculas e
minúsculas;24
![Page 25: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/25.jpg)
Declaração de variáveis
Exemplos:
Identificadores válidos:
nome, telefone, endereco, idade_filho
Identificadores inválidos:
3endereco, algoritmo, 4titulos
25
![Page 26: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/26.jpg)
Declaração de variáveis
Exemplo:
algoritmo “dados”
var nome: caractere
idade: inteiro
altura: real
nota_1, nota_2: real
inicio
fimalgoritmo
26
![Page 27: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/27.jpg)
Operação de atribuição
A operação de atribuição consiste em
armazenar um valor em uma variável via
código;
Para isso, utilizamos o operador de
atribuição representado por uma seta
apontando para a esquerda (<-);
Só podemos atribuir valores do mesmo tipo da
variável;
27
![Page 28: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/28.jpg)
Operador de atribuição
Exemplo:
algoritmo “exemplo”
var nome: caractere
idade: inteiro
inicio
nome <- “José da Silva”
idade <- 27
fimalgoritmo
28
![Page 29: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/29.jpg)
Operador de atribuição
Exemplo de erros de atribuição:
algoritmo “exemplo”
var
nome: caractere
idade: inteiro
inicio
nome <- José da Silva
idade <- 27.34
fimalgoritmo
29
![Page 30: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/30.jpg)
Entrada de Dados
A operação de leitura é usada para obter um
valor digitado pelo usuário
Sintaxe leia (<lista de variáveis>)
Exemplo:
leia (numero)
O valor digitado será armazenado na
variável numero.
30
![Page 31: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/31.jpg)
Saída de Dados
O comando de impressão é utilizado para
“imprimir” valores no dispositivo de saída de
dados (normalmente, o monitor).
Sintaxe escreva (<lista-de-variáveis>)
Exemplos:
escreva (numero1)
Será mostrado na tela o conteúdo da variável
numero1.
escreva (“O texto digitado foi ”, k)
Será mostrado o texto entre “” e depois o
conteúdo da variável k. 31
![Page 32: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/32.jpg)
Para a construção de algoritmos que realizam
cálculo matemáticos, todas as expressões
aritméticas devem ser linearizadas;
Devendo também ser feito o mapeamento dos
operadores da aritmética tradicional para os
do Português Estruturado.
Operações matemáticas
32
![Page 33: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/33.jpg)
Operações matemáticas
Exemplos:
3/4+5 = 5.75 3/(4+5) = 0.33333333
3\2*9 = 9 11%3^2 = 2
11%(3^2) = 2 (11%3)^2 = 4
3\2+(65-40)^(1/2) = 633
![Page 34: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/34.jpg)
Comentários
O VisuAlg permite a inclusão de comentários:
qualquer texto precedido de "//" é ignorado,
até se atingir o final da sua linha.
Por este motivo, os comentários não se estendem
por mais de uma linha: quando se deseja
escrever comentários mais longos, que ocupem
várias linhas, cada uma delas deverá começar
por "//".
34
![Page 35: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/35.jpg)
Exemplo de algoritmo
Construa um algoritmo em pseudocódigo para
calcular e exibir a média entre 2 números
informados pelo usuário
Resolução a seguir
35
![Page 36: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/36.jpg)
Exemplo de algoritmo - Resolução
algoritmo "calcula_media"
// Objetivo: Calcular a média aritmética de 2 números
// informados pelo usuário
var
numero1,numero2 : real
media : real
inicio
// Entrada de dados
escreva("Digite o primeiro número: ")
leia(numero1)
escreva("Digite o segundo numero: ")
leia(numero2)
//Cálculo e impressão da média
media <- (numero1 + numero2) / 2
escreva("Média = ", media)
fimalgoritmo 36
![Page 37: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/37.jpg)
Parte III
Estruturas de Decisão
37
![Page 38: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/38.jpg)
Fluxogramas
Fluxograma: Representação gráfica da
solução algorítmica de um problema por
meio de símbolos geométricos
38
![Page 39: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/39.jpg)
Fluxogramas
Fluxograma: Símbolos alternativos
39
![Page 40: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/40.jpg)
Fluxogramas
Algoritmo para calcular o dobro de um
número:
40
![Page 41: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/41.jpg)
Estruturas de controle de fluxo
Os algoritmos desenvolvidos até o momento
constituem uma seqüência de ações que
sempre são executadas em sua totalidade de
forma sequencial independentemente do valor
da entrada de dados.
Para a resolução de determinados problemas
pode ser necessário executar fluxos
diferentes, baseado em uma decisão.
Exemplo: um algoritmo capaz de efetuar o
cálculo do imposto de renda de um
determinado contribuinte. Neste caso
dependendo da quantidade de dependentes, do
valor de sua renda e outros fatores o
cálculo será feito de formas distintas.
41
![Page 42: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/42.jpg)
Estruturas de decisão
Na vida real tomamos decisões a todo
momento baseadas em escolhas;
Em algoritmos, chamamos tais decisões de
condições;
Associada a uma condição, existirá uma
possível alternativa;
Ex.: Se o Corinthians não vencer o Santos
na próxima partida, então o técnico será
demitido.
42
![Page 43: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/43.jpg)
Estruturas de decisão
Os operadores relacionais realizam a comparação entre dois operandos ou
duas expressões e resultam em valores lógicos (VERDADEIRO ou FALSO).
Exemplo: Sejam duas variáveis, A = 5 e B = 3:
43
![Page 44: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/44.jpg)
Estruturas de decisão
Considere um problema que exija umadecisão.
Tomemos como exemplo uma divisão, onde hajaa necessidade de que o algoritmo verifiquese o divisor é igual ou diferente de zero.Se for igual não é possível dividir. Se fordiferente é possível dividir.
Sintaxe:
se (<expressão-lógica>) então
<sequência de comandos>
senão
<seqüência de comandos>
fimse
44
![Page 45: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/45.jpg)
Estruturas de decisão
Algoritmo em Portugol
algoritmo "Divisao"
varnumero1, numero2: realresultado: real
inicioescreva ("Digite o dividendo ==> ")leia (numero1)escreva ("Digite o divisor ==> ")leia (numero2)se (numero2 = 0) entao
escreva ("impossivel dividir por 0")senao
resultado <- numero1/numero2escreva ("O resultado eh ==>", resultado)
fimsefimalgoritmo
45
![Page 46: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/46.jpg)
Estruturas de decisão
Estrutura de decisão em fluxograma
verda
deiro
fal
so
46
![Page 47: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/47.jpg)
Estruturas de decisão
Fluxograma para o problema da divisão
apresentado anteriormente
47
![Page 48: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/48.jpg)
Expressões lógicas
Operadores lógicos combinam resultados
lógicos, gerando novos valores lógicos
(verdadeiro ou falso). A “tabela-
verdade” abaixo mostra todos os valores
possíveis:
T = Verdade
F = Falso
AND = E
OR = OU
NOT = NÃO
48
![Page 49: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/49.jpg)
Expressões lógicas
Combinando operadores relacionais e operadores
lógicos criamos expressões lógicas, que produzirão
resultados lógicos (verdadeiro ou falso).
Por exemplo, se A = 5, B = 8 e C = 1:
(A = B) E (B > C) é falso (f e v)
(A <> B) OU (B < C) é verdadeiro (v ou f)
NÃO (A > B) é verdadeiro (não f)
(A < B) E (B > C) é verdadeiro (v e v)
(A >= B) OU (B = C) é falso (f ou f)
NÃO (A <= B) é falso (não v)
São usadas em decisões nos algoritmos...
49
![Page 50: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/50.jpg)
Parte IV
Estruturas de Repetição
Enquanto/Repita
50
![Page 51: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/51.jpg)
Estruturas de repetição
Em alguns algoritmos, é necessário executar
uma mesma tarefa por um número determinado
ou indeterminado de vezes.
Exemplos:
Escrever na tela os números de 1 a 10
Escrever na tela a tabuada do número 2
Calcular a média de todos os alunos de uma classe
Essa necessidade gerou a criação das
estruturas de repetição
51
![Page 52: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/52.jpg)
Estrutura de repetição ENQUANTO
Neste caso, uma tarefa será repetida enquanto
uma determinada condição for verdadeira.
Sintaxe:
enquanto (<expressão lógica>) faca
<sequência de comandos>
fimenquanto
52
![Page 53: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/53.jpg)
Estrutura de repetição ENQUANTO
Observações:
A expressão lógica é avaliada antes de cada
repetição do laço. Enquanto seu resultado
for VERDADEIRO, a sequência de comando será
executada. Por isso é chamada de condição
de parada.
Normalmente é usada uma ou mais variáveis
para compor a condição de parada. Essas
variáveis são chamadas de variáveis de
controle
Para que o laço tenha fim, a condição de
parada, em algum momento deve ser atendida,
caso contrário, teremos um laço de
repetição infinito53
![Page 54: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/54.jpg)
Estrutura de repetição ENQUANTO
algoritmo "Conta10_com_Enquanto"
//Este algoritmo exibirá os número de 1 até 10
var
contador : inteiro //Variável de controle
inicio
contador <- 1 //Valor de início da contagem
//Laço de repetição
enquanto (contador <= 10) faca
escreval(contador)
contador <- contador + 1
fimenquanto
fimalgoritmo
Condição de
parada
Comando que
força o fim do
laço 54
![Page 55: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/55.jpg)
Representação em fluxograma
55
![Page 56: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/56.jpg)
Estrutura de repetição REPITA
Semelhante à instrução ENQUANTO só que,
neste caso, o teste de parada é feito no
final e, portanto, o bloco de comando será
executado pelo menos uma vez
Sintaxe:
repita
<seqüência de comandos>
ate (<expressão lógica ou relacional>)
56
![Page 57: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/57.jpg)
Estrutura de repetição REPITA
algoritmo "Conta10_com_Repita"
var
contador:inteiro //Variável de controle
inicio
contador <- 1 //Início da contagem
repita //Inicio do laço de repetição
escreval(contador)
contador <- contador + 1
ate (contador > 10)
fimalgoritmo
Repare que a condição é
inversa a da estrutura
ENQUANTO
![Page 58: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/58.jpg)
Parte V
Estruturas de Repetição
PARA
![Page 59: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/59.jpg)
Tem o seu funcionamento controlado por uma
variável denominada contador;
Executa um conjunto de instruções um
determinado número de vezes;
Utilizado quando se sabe previamente o
número de vezes que uma seqüência de
instruções deverá ser executada.
Estrutura de repetição PARA
59
![Page 60: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/60.jpg)
para <variável> de <inicio> ate <fim> passo
<incremento> faca
<lista de comandos>
fimpara
Estrutura de repetição PARA
60
![Page 61: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/61.jpg)
Estrutura de repetição PARA
algoritmo "Conta10_com_PARA"
//Este algoritmo exibirá os número de 1 até 10
var
contador : inteiro //Variável de controle
inicio
//Laço de repetição
para contador de 1 ate 10 passo 1 faca
escreval(contador)
fimpara
fimalgoritmo
61
![Page 62: Algoritmos e Lógica de Programação](https://reader034.fdocument.pub/reader034/viewer/2022052216/589ef17a1a28abe97f8b6899/html5/thumbnails/62.jpg)
Saiba mais...
Estas notas de aula foram adaptadas e
compiladas a partir dos seguintes textos
disponíveis na Internet:
www.xiscanoe.org
www.facape.br/carlos/al/
www.inf.ufsc.br/~vania/teaching/ine5201/index.html
thyagomaia.net/algoritmos/
www.univasf.edu.br/~mario.godoy/Disciplina-Algoritmos.htm
Prof. Carlos Alberto - FACAPE
Consulte o blog para materiais complementares e
exercícios resolvidos
http://www.josecintra.com/blog