Buscar

Logica de Programao Aula3

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

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

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ê viu 3, do total de 58 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

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

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ê viu 6, do total de 58 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

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

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ê viu 9, do total de 58 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

Prévia do material em texto

Lógica de Programação
Aula 3
Estrutura de Controle
Prof Carlos Lahoz
Baseada no Livro de André Forbellone & Henri Eberspacher, 
Person, São Paulo, 2005
Estrutura de Controle
Para que este conjunto de ações se torne viável deve existir uma 
lógica de forma a representar como as ações devem ser executadas, 
chamado de fluxo de execução. 
Por meio das estruturas básicas de controle do fluxo de execução:
•Sequenciação
•Seleção e 
•Repetição
e da combinação delas, pode-se criar algoritmos para solucionar 
qualquer tipo de problema. 
Estrutura de Controle
SEQUENCIAÇÃO
O conjunto de ações primitivas será executado em uma sequencia 
linear de cima para baixo e da esquerda para a direita, isto é, da 
maneira em que foram escritas.
As ações serão seguidas de um ponto e virgula (;) a fim de separar 
uma ação de outra. Quando é encontrado um (;) deve-se executar o 
próximo comando da sequencia. 
Estrutura de Controle
SEQUENCIAÇÃO – Exemplo 1:
inicio // identificação do inicio do bloco corresponde ao algoritmo
// declaração de variaveis
inteiro: x, y;
// corpo do algoritmo
Ação 1;
Ação 2;
Ação 3;
Ação n
fim. // fim do algoritmo
Estrutura de Controle
SEQUENCIAÇÃO
Exemplo 2
(media aritmética):
Estrutura de Controle
SEQUENCIAÇÃO. Exercício: construa um algoritmo que calcule a 
quantidade de latas de tinta necessárias e o custo para pintar tanques 
cilíndricos de combustível, em que são fornecidos a altura e o raio 
deste cilindro.
Sabendo que: 
A lata de tinta custa R$ 50,00
Cada lata contém 5 litros
Cada litro de tinta pinta 3 
metros quadrados
Dados de entrada: altura (H) e 
raio (R)
Dados de saida: custo (C) e 
quantidade (QTDE)
Sabendo por eng. reversa que: 
O custo é qtde de latas * R$ 50,00
A quantidade latas é total de litros /5
Area cilindro é area base + area lateral
Area base é PI * pot (R,2)
Area lateral é altura * comprimento 
(2 * PI * R * H)
Sendo que R (raio) e H (altura) são 
entradas e PI é constante 3,1415
Estrutura de Controle
SEQUENCIAÇÃO. Exercício: construa um algoritmo que calcule a 
quantidade de latas de tinta necessárias e o custo para pintar tanques 
cilíndricos de combustível, em que são fornecidos a altura e o raio 
deste cilindro.
Estrutura de Controle
SELEÇÃO
Permite a escolha de um grupo de ações (bloco) a ser executado 
quando determinadas condições representadas por expressões 
lógicas ou relacionais são ou não satisfeitas.
Seleção simples
Seleção composta
Seleção encadeada
Estrutura de Controle
SELEÇÃO SIMPLES
Quando precisamos testar uma certa condição antes de executar uma 
ação, usamos uma seleção simples:
se <condição>
então
comando; //comando unico 
fimse; 
Onde <condição> é uma expressão logica que, quando inspecionada, 
pode gerar um resultado Falso ou Verdadeiro
Estrutura de Controle
SELEÇÃO SIMPLES
se <condição>
então
inicio // inicio do bloco Verdade
C1; // sequencia de comandos
C2; 
Cn;
fim; // fim do bloco Verdade
fimse;
Se <condição> for verdadeira, então sai executando o bloco Verdade 
(sequencia C1, C2, .., Cn), caso contrario, nada é executado (fimse).
Estrutura de Controle
SELEÇÃO SIMPLES
Exemplo da 
contabilizacao de 
4 notas anuais do 
aluno e seleção 
de resultado 
(aprovado se 
media igual ou 
superior a 7)
Estrutura de Controle
SELEÇÃO COMPOSTA
Situações em que duas alternativas dependem de uma mesma 
condição: uma de condição Verdade, outra de Falso. 
se <condição>
então
inicio // inicio do bloco Verdade
C1; // sequencia de comandos
C2; 
Cn;
fim; // fim do bloco Verdade
senão
C; // ação da condição de Falso
fimse;
Estrutura de Controle
SELEÇÃO COMPOSTA
Situação com bloco V e bloco F 
se <condição>
então
inicio // inicio do bloco Verdade
C1; // sequencia de comandos
C2; 
fim; // fim do bloco Verdade
senão
inicio // inicio do bloco Falso
C1; // sequencia comandos
C2;
fim // fim do bloco Falso
fimse;
Estrutura de Controle
SELEÇÃO ENCADEADA
Quando pela necessidade do processamento são agrupadas várias 
seleções. Normalmente ocorre quando uma ação ou bloco deve ser 
executado se um grande conjunto de possibilidades ou combinações 
de situações forem satisfeitos.
Dois tipos:
•Seleção encadeada heterogênea
•Seleção encadeada homogênea
Estrutura de Controle
Estruturas de CONTROLE HETEROGENEA
Quando não conseguimos identificar um padrão lógico de construção 
de uma estrutura de seleção encadeada. 
Seleção encadeada homogênea:
Quando conseguimos identificar um padrão lógico de construção de 
uma estrutura de seleção encadeada
Estrutura de Controle
Estruturas de 
CONTROLE 
HETEROGENEA
se <condição 1>
então
se <condição 2>
então
inicio // inicio do bloco V de 1 
C1; C2; Cn // sequencia comandos
fim // fim do bloco V de 1
fimse; // fim condição 2
senão 
se <condição 3>
então 
inicio // inicio bloco V de 2
C1; C2; // sequencia comandos
fim // fim do bloco V de 2
senão 
se <condição 4>
então 
se < condição 5>;
então
C2; //comando V
fimse; // fim condição 5
senão
C1; // comando F
fimse; //fim condição 4
fimse; //fim condição 3
fimse; //fim condição 1
Tabela Verdade
Condição Ação
1 2 3 4 5 executada 
_________________________
V V - - - bloco V 1
F - V - - bloco V 2
F - F V V comando V
F - F F - comando F
Estrutura de Controle
Exercicio
Dado tres valores A, B e C, verificar se eles podem ser os
comprimentos dos lados de um triangulo, se forem, verificar se
compõem um triangulo equilátero, isósceles ou escaleno. Informar se
não compuserem nenhum triangulo.
Dados de entrada: três lados de um suposto triangulo (A, B, C)
Dados de saída: mensagens: não compõem triangulo, equilátero,
isósceles, escaleno.
Estrutura de Controle
Exercicio (cont)
O que é Triangulo?
Triangulo equilátero?
Triangulo isósceles?
Triangulo escaleno?
R: Figura geométrica fechada de três
lados, em que cada um é menor que a
soma dos outros dois.
R: Um triangulo com três lados iguais
R: Um triangulo com dois lados iguais.
R: Um triangulo com dois lados
diferentes.
Estrutura de Controle
Exercicio (cont)
TABELA VERDADE para solução do problema
É triangulo? É equilátero? É isósceles? É escaleno? Ações
V V F F “EQUILÁTERO”
V F V - “ISÓSCELES”
V F F V “ESCALENO”
F - - - “NÃO É 
TRIANGULO”
Estrutura de Controle
Exercicio (cont)
algoritmo ”triangulo"
//Dados 3 valores A, B e C, verificar se
// eles podem ser um triângulo e,
//se forem, verificar qual tipo: equilátero,
//isósceles ou escaleno
// ou se não são nenhum //triângulo.
var
A, B, C: real
validade: logico
inicio
escreva ("Insira o lado 1 do triângulo: ")
leia (A)
escreva ("Insira o lado 2 do triângulo: ")
leia (B)
escreva ("Insira o lado 3 do triângulo: ")
leia (C)
se (A < (B + C)) e (B < (A + C)) e (C < (A + B))
entao
se (A = B) e (B = C) então
escreva ("Triângulo equilátero")
senao
se (A = B) xou (A = C) xou (B = C) então
escreva ("Triângulo isóceles")
senao
escreva ("Triângulo escaleno")
fimse
fimse
senao
escreva ("Não é um triângulo")
fimse
fimalgoritmo
Estrutura de Controle
Exercicio (cont)
se (A < (B + C)) e (B < (A + C)) e (C < (lA + B)) entao
se (A = B) e (B = C) entao
escreva ("Triângulo equilátero")
senao
se (A = B) xou (A = C) xou (B = C) então
escreva ("Triângulo isóceles")
senao
escreva ("Triângulo escaleno")
fimse
fimsesenao
escreva ("Não é um triângulo")
fimse
fimalgoritmo
Estrutura de Controle
Estruturas de CONTROLE HOMOGENEA
Esta construção segue um padrão. Após cada então existe um se, 
não existe senão. O comando W só será executado quando todas as 
condições forem ao mesmo tempo verdadeiras.
se <condição 1>
então se <condição 2>
então se <condição 3>
então se <condição 4>
entao W;
fimse; //fim condição 4
fimse; //fim condição 3
fimse; //fim condição 2
fimse; //fim condição 2
Seria o mesmo que escrever
se ( <condição 1> e <condição 2> e <condição 3> e <condição 4>)
entao W;
fimse
Tabela Verdade
Condição Ação
1 2 3 4 executada
V V V V - W
Estrutura de Controle
Estruturas de CONTROLE HOMOGENEA
Se senao se: Vamos supor que um determinado 
algoritmo uma variavel X possa assumir apenas 
quatro valores, V1, V2, V3 e V4, e que exista um 
comando diferente que será executado para cada 
valor armazenado em X. 
Teremos a seguinte situação:
se (X=V1) 
então
C1;
fimse;
se (X=V2) 
então
C2;
fimse;
se (X=V3)
então
C3;
fimse;
se (X=V4)
então
C4;
fimse;
Estrutura de Controle
Estruturas de CONTROLE HOMOGENEA
Se senao se: somente um, e apenas um, comando pode ser 
executado – situação excludente (excludente). Não se trata de 
uma estrutura encadeada, pois as seleções não estão 
interligadas. 
Por isso, todas as condições (X-
Vn) serão avaliadas e ocorrerão 
testes desnecessários. 
Para diminuir a quantidade de 
testes, é possivel transformar 
em uma seleção encadeada.
se (X=V1) 
então C1;
senão se (X=V2) 
então C2;
senao se (X=V3)
então C3;
senao se (X=V4)
então C4;
fimse;
fimse;
fimse;
fimse; 
Estrutura de Controle
Estruturas de CONTROLE HOMOGENEA
Se senao se: nesta estrutura, o numero médio de casos de teste a 
serem executados foi reduzido. Se o conteudo de X for igual a V2, 
serã executados apenas dois testes(x-v1) e (x-v2) e um comando 
(C2), enquanto que na estrutura anterior serão inspecionados 
quatro condições, embora um único comando (C2) tenha sido 
executado.
Padrão de construção: após cada senao existe um se, e depois 
do entao existe uma ação.
Estrutura de Controle
Estruturas de controle homogenea
Como a situação da MULTIPLA ESCOLHA é muito frequente em 
algoritmos que dependem de alternativas, pode-se utilizar também 
a construção de multipla escolha.
escolha X
caso V1:C1;
caso V2, C2;
caso V3: C3;
caso V4: C4;
fimescolha;
No exemplo , caso o conteúdo da 
variável X seja igual ao valor Vn então, o 
comando Cn será executado, caso 
contrário, serão inspecionados os outros 
casos até se encontrar uma igualdade 
ou terminarem os casos.
Estrutura de Controle
Estruturas de controle homogenea
MULTIPLA ESCOLHA: para executar um comando que possui 
mais de um valor em que verifica sua necessidade, agrupamos 
todos esses valores em um único caso. 
E para executar um comando de exceção, utiliza-se o comando 
caso contrário.
No proximo slide um exemplo de estrutura de seleção encadeada
homogênea e outro de comando de exceção caso contrario
Estrutura de Controle
Múltipla Escolha:
escolha X
caso V1:C1;
caso V2, V3: C2;
caso V4: C3;
caso V5: C4;
casocontrario C5;
fimescolha;
se (X=V1) 
então C1;
senão se (X=V2) 
então C2;
senao se (X=V3)
então C2;
senao se (X=V4)
então C3;
senao se (X=V5)
então C4;
senao C5;
fimse;
fimse;
fimse;
fimse;
fimse; 
seleção encadeada homogênea
comando de exceção caso 
contrário.
Estrutura de Controle
Exercicio:
Construa um algoritmo que tendo como dados de entrada o preço
de um produto e seu codigo de origem, mostre o preço junto de
sua procedência. Caso o codigo não seja nenhum dos
especificados, o produto deve ser encarado como importado.
Cod Procedencia
1 Sul
2 Norte
3 Leste
4 Oeste
5 e 6 Nordeste
7,8 e 9 Sudeste
10 -20 Centro-Oeste
25-30 Nordeste
Estrutura de Controle
Exercicio: Algoritmo Produto, preço e procedência. 
Estrutura de Controle
Exercicio: 
Dado o algoritmo a seguir:
Que comandos serão executados se
a) A=V; B=V; C=F
b) A=F; B=V; C=F
c) A=F; B=V; C=V
Quais são os valores de A, B, C para que:
d) somente os commandos C5 e C6 sejam
executados?
e)somente o commando C6 seja executado? 
C1, C6
C3, C4, C5, C6
C2, C5, C6
A=F; B=F; C =não importa
não existe combinação para que só o 
C6 seja executado
Estrutura de Controle
Exercicio: 
Tendo como dados de entrada a altura e o sexo de uma pessoa, 
construa um algoritmo que calcule seu peso ideal, utilizando as 
seguintes formulas:
homens: (72,7 * h) – 58.
mulheres (62,1 * h) - 44.7
Estrutura de Controle
Exercicio: 
Escreva um algoritmo que leia o codigo de um determinado 
produto e mostre a sua classificação, Codigo classificação
1 Alimento não perecível
2,3 ou 4 alimento perecível
5 e 6 vestuário
7 higiene pessoal
8 a 15 limpeza
Outro cod inválido
Estrutura de Controle
Estrutura de REPETIÇÃO 
Estrutura de controle do fluxo de execução que permite repetir 
diversas vezes um mesmo trecho do algoritmo.
Laços de repetição também são conhecidos como loops ou 
looping. Lembram uma execução finita em circulos, que depois 
segue seu curso normal.
Estrutura de Controle
REPETIÇÃO COM TESTE NO INICIO 
Verifica antes de cada execução se é “permitido” executar o 
mesmo trecho.
Para executar a repetição com teste de inicio, utilizamos a 
estrutura enquanto que permite que um bloco ou uma ação 
primitiva seja repetida enquanto uma determinada <condição> for 
verdadeira.
enquanto <condição> faça
C1;
C2;
.
Cn;
fimenquanto;
Estrutura de Controle
REPETIÇÃO COM TESTE NO INICIO 
Quando o resultado da <condição> for Falso, o comando de 
repetição é abandonado. Se já da primeira vez o resultado é 
Falso, os comandos não são executados nenhuma vez, o que 
representa característica principal deste modelo de repetição.
Muitas vezes, para se alterar a <condição>, é usado o recurso de 
um contador.
O contador é uma variável com um dado valor inicial, o qual é 
incrementado a cada ciclo de repetição.
Estrutura de Controle
REPETIÇÃO COM TESTE NO INICIO 
Incrementar significa somar um valor (geralmente) constante a 
uma mesma variável.
Exemplo:
Inteiro: CON; // declaração do contador
CON  0; // inicialização
CON CON + 1 //incremento de valor
Estrutura de Controle
REPETIÇÃO COM TESTE NO INICIO 
Exemplo
Incrementa-
ção 
Estrutura de Controle
REPETIÇÃO COM TESTE NO INICIO 
Pode-se usar também uma variável de acumulação, o 
acumulador.
O processo do acumulador é simular ao processo do contador.
A única diferença é que acumulador o valor adicionado pode 
variar.
No exemplo anterior, se quiser saber qual seria a média anual 
(MA) dos 50 alunos matriculados, seria adequado usar um 
acumulador para gravar o valor total das MAs somadas.
Estrutura de Controle
REPETIÇÃO COM TESTE NO INICIO 
Exemplo de acumulador
Estrutura de Controle
REPETIÇÃO COM QUANTIDADE INDETERMINADA 
Pode-se usar também laços de repetição para quantidades 
indeterminadas de vezes. 
É necessário então, outro critério de parade . Pode ser feito com 
um valor pré-definido como finalizador.
Estrutura de Controle
REPETIÇÃO COM QUANTIDADE INDETERMINADA 
Estrutura de Controle
Exercicio de REPETIÇÃO (qtdade INDETERMINADA) 
Construa um algoritmo que calcule a media aritmética de um 
conjunto de numeros pares que forem fornecidos pelos usuários.O valor da finalização será a entrada do número “0”. 
Observe que nada impede que o usuário forneça quanto números 
impares quiser, desde que não sejam acumulados.
Estrutura de Controle
Exercicio de REPETIÇÃO (qtdade INDETERMINADA) 
Estrutura de Controle
REPETIÇÃO COM TESTE FINAL
Utilizamos a estrutura repita que permite que um bloco ou ação 
seja repetida até que uma determinada condição seja Verdadeira.
Modelo genérico:
Pela sintaxe da estrutura, observa-se que que o bloco (C1, C2, 
Cn)é executado pelo menos uma vez, independente da validade 
da condição.
repita
C1;
C2;
.
Cn;
ate < condição> ;
Estrutura de Controle
REPETIÇÃO COM TESTE FINAL
Exercicio: Reescreva o algoritmo da media anual dos alunos e 
calcule a media geral da turma, utilizando a estrutura de repetição 
com teste no final.
Estrutura de Controle
REPETIÇÃO COM TESTE FINAL
Exercicio: Imagine uma brincadeira entre dois colegas, no qual um 
“pensa” um número e o outro tenta adivinhar qual é, até acertar. 
Como dica, a cada tentativa, é dito se o numero sugerido é maior 
ou menor do que o primeiro pensou. 
Elabore um algoritmo que leia o numero imaginado e os “chutes” e 
ao final, mostre quantas tentativas foram feitas para descobrir o 
numero.
Dica: Use o comando “limpatela” para não ficar mostrando o valor 
“pensado”.
Estrutura de Controle
REPETIÇÃO COM TESTE FINAL
Exercicio: “chute” de 
número
//limpe a tela (limpatela)
Estrutura de Controle
REPETIÇÃO COM VARIAVEL DE CONTROLE
Ela é usada para os casos em que é dificil de determinar o 
numero de vezes em que o bloco será executado. Quando 
sabemos quantas vezes ele será executado usamos a estrutura 
do enquanto (enquanto uma condição for satisfeita) e repita, até 
que uma condição seja satisfeita.
A estrutura para é diferente, já que sempre repete a execução do 
bloco, pois não prevê uma condição e possui limites fixos.
Estrutura de Controle
REPETIÇÃO COM VARIAVEL DE CONTROLE
V é a variavel de controle
vi é o valor inicial da variável V
vf é o valor final da variável V
p é o valor do incremento dado
a variavel V
para V de vi até vf passo p faça
C1;
C2;
.
Cn;
fimpara
Estrutura de Controle
REPETIÇÃO COM VARIAVEL DE CONTROLE
Exemplo da media de notas da turma de alunos 
Estrutura de Controle
REPETIÇÃO COM VARIAVEL DE CONTROLE
Exercicio: Elabore um algoritmo que efetue a soma de todos os números 
impares que são multiplos de 3 e que se encontram no conjunto dos 
números de 1 até 50
Estrutura de Controle
REPETIÇÃO COM VARIÁVEL DE CONTROLE
Obsservações sobre esta estrutura:
Nem sempre a variável de controle atinge o valor final 
estabelecido. Isto pode ocorrer quando é utilizado um passo maior 
que 1 e, esse caso, a repetição termina quando a variável de 
controle for ultrapassar o valor final. Exemplo: para i de 1 até 10 , 
passo 2; a variavel i vai chegar até 9.
O laço de execução será executado pelo menos uma vez, porque 
no mínimo ocorrerá a atribuição do valor inicial para a variável de 
controle. Exemplo: para i de 1 até 10 , passo 10; a variavel i vai 
chegar até 1.
Estrutura de Controle
REPETIÇÃO COM VARIÁVEL DE CONTROLE
Exercicio: Elabore um algoritmo que simule uma contagem 
regressiva de 10 minutos, iu seja, mostre 10:00, e então 9:59, 
9:58…9:00, 8:58…Até 0:00
Estrutura de Controle
REPETIÇÃO COM VARIAVEL DE CONTROLE
Exercicio: comentário.
O passo utilizado foi negativo (-1), significando que cada iteração 
dos laços de repetição as variáveis de controle MIN e SEG 
estarão sendo decrementadas de 1. O valor do passo é unitário e 
negativo.
Para mostrar a contagem regressiva utiliza-se dois laços de 
repetição, sendo que o mais interno, responsável pelos segundos, 
completa um conjunto de 60 iterações para cada minuto, que 
posrsua vez, executa apenas 10 iterações.
Estrutura de Controle
COMPARAÇÃO ENTRE ESTRUTURAS DE REPETIÇÃO
Todas as estruturas tem o papel de criar laços de repetição dentro 
de um algoritmo. Convém conhecer bem as caracteristicas de 
cada uma e o tipo de problema que se quer resolver, para melhor 
utilizá-las.
Estrutura de Controle
ESTRUTURAS DE REPETIÇÃO
Exercicio: Elabore algoritmos com as tres estruturas de repetição 
para imprimir a tabuada do número 5.
utilizando enquanto
utilizando repita
utilizando para
Estrutura de Controle
ESTRUTURAS DE REPETIÇÃO
Exercicio: Sendo H = 1+1/2+1/3+1/4+..+1/N, escreve um algoritmo 
para gerar o numero H. O numero N é fornecido pelo usuario
// trocar H por N

Outros materiais