Upload
vitorino-borges-castro
View
234
Download
6
Embed Size (px)
Citation preview
2
Estruturas de ControleTomada de Decisão
• Desvio Condicional Simples (se... então... fim_se.)
• Sendo a condição verdadeira serão executadas as instruções entre a instrução então e a instrução fim_se.
• Sendo a condição falsa serão executadas as instruções após a instrução fim_se.
se <condicao> entãoinstrucoes para condicao verdadeira
fim_seinstrucoes para condicao falsa ou
após ser verdadeira
3
Estruturas de ControleTomada de Decisão
• Desvio Condicional Simples
condição
Instruções executadas quando condição
verdadeira
Instruções executadas quando condição
falsa ou após ser verdadeira
SN
4
Desvio condicional SimplesExemplo
• Leia dois valores numéricos, somá-los e apresentar o resultado caso este seja maior que 10.
programa SOMANUMEROSvar
X: inteiroA: inteiroB: inteiro
inícioleia Aleia BX ← A + Bse (X > 10) então
escreva Xfim_se
fim
5
Operadores Relacionais = Igual a
<> Diferente de> Maior que< Menor que
>= Maior ou igual a<= Menor ou igual a
6
Estruturas de ControleTomada de Decisão
• Desvio Condicional Composto (se... então... senão... fim_se.)
• Sendo a condição verdadeira serão executadas as instruções entre a instrução então e a instrução senão.
• Sendo a condição falsa serão executadas as instruções entre a instrução senão e a instrução fim_se.
se <condicao> entãoinstrucoes para condicao verdadeira
senãoinstrucoes para condicao falsa
fim_se
7
Estruturas de ControleTomada de Decisão
• Desvio Condicional Composto
condição
Instruções executadas quando condição
verdadeira
SN
Instruções executadas quando condição
falsa
8
Desvio condicional CompostoExemplo
• Leia dois valores numéricos e efetuar a adição. Caso o valor somado seja maior ou igual a 10, deverá ser apresentado somando a ele mais 5; caso o valor somado não seja maior ou igual a 10, ele deverá ser apresentado subtraindo 7.
programa SOMANUMEROSvar
X: inteiroA: inteiroB: inteiro
R: inteiroinício
leia A,BX ← A + Bse (X >= 10) então
R ← X + 5senão
R ← X – 7fim_seescreva R
fim
9
Estruturas de ControleTomada de Decisão
• Desvio Condicional Encadeado ou Aninhado– Equivale a uma estrutura condicional dependente de outra, ou
ainda, dentro da outra.se <condicao1> então
instrucoes para condicao1 verdadeirasenão
se <condicao2> entãoinstrucoes para condicao2
verdadeira, porém condicao1 falsa
senãoinstrucoes para condicao1 e condicao2
falsafim_se
fim_se
10
Estruturas de ControleTomada de Decisão
• Desvio Condicional Encadeado ou Aninhado
condição1
Instruções executadas quando condição1
verdadeira
Instruções executadas quando condição1 e
condição2 Falsa
SN
Instruções executadas quando condição1 é
falsa, mas a condição2é verdadeira
condição2
11
Desvio condicional Encadeado Exemplo
• Elaborar um programa que efetue o cálculo do reajuste de salário de um funcionário. Considere que o funcionário deverá receber um reajuste de 15% caso seu salário seja menor que 500. Se o salário for menor ou igual a 500, mas menor ou igual a 1000, seu reajuste será de 10%; caso seja ainda maior que 1000 o reajuste deverá ser de 5%.
programa REAJUSTE_SALÁRIOvar
NOVOSALARIO: realSALARIO: real
inícioleia SALARIOse (SALARIO < 500) então
NOVOSALARIO ← SALARIO * 1.15senão
se (SALARIO <= 1000) entãoNOVOSALARIO ← SALARIO * 1.10
senãoNOVOSALARIO ← SALARIO * 1.05
fim_sefim_seescreva NOVOSALARIO
fim
12
Operadores Lógicos
• Viabiliza a utilização de mais de uma condição na mesma instrução se;
• .e. , .ou. e .não.• Pode evitar o uso de instruções se
encadeadas
13
Operador Lógico .e.
• Utilizado quando dois ou mais relacionamentos lógicos de uma determinada condição necessitam ser verdadeiros.
Condição1 Condição2 ResultadoFalsa Falsa Falso
Verdadeira Falsa FalsoFalsa Verdadeira Falso
Verdadeira Verdadeira Verdadeiro
14
Operador Lógico .e.se <condicao1> .e. <condicao2> entãoinstrucoes executadas se condicao1 e condicao2 verdadeiras
fim_se
15
Operador Lógico .e.Exemplo
programa TESTA_LOGICA_EvarNUMERO: inteiro
inícioleia NUMEROse (NUMERO >= 20) .e. (NUMERO <= 90) então
escreva "O número está na faixa de 20 a 90"senão
escreva "O número está fora da faixa de 20 a 90"fim_se
fim
16
Operador Lógico .ou.
• Utilizado quando pelo menos um dos relacionamentos lógicos de uma determinada condição necessita ser verdadeiro.
Condição1 Condição2 ResultadoFalsa Falsa Falso
Verdadeira Falsa VerdadeiroFalsa Verdadeira Verdadeiro
Verdadeira Verdadeira Verdadeiro
17
Operador Lógico .ou.se <condicao1> .ou. <condicao2> entãoinstrucoes executadas se condicao1 verdadeira ou condicao2 verdadeira
fim_se
18
Operador Lógico .ou.Exemplo
programa TESTA_LOGICA_OUvarSEXO: caractere
inícioleia SEXOse (SEXO = “masculino”) .ou. (SEXO = “feminino”) então
escreva "O seu sexo é valido"senão
escreva "O seu sexo é inválido"fim_se
fim
19
Operador Lógico .não.
• Utilizado quando houver necessidade de se inverter o resultado lógico de uma condição.
• Se a condição for verdadeira será considerada falsa e se for falsa será considerada verdadeira.
Condição ResultadoVerdadeira Falso
Falsa Verdadeiro
20
Operador Lógico .ou.se .não.<condicao1> entãoinstrucoes executadas se condicao for falsa
fim_se
21
Operador Lógico .ou.Exemplo
programa TESTA_LOGICA_NAOvarA, B, C, D: inteiro
inícioleia A, B, Xse .não.(X > 5) então
C (A + B) * Xsenão
C (A - B) * Xfim_seescreva C
fim
22
Exercícios1. Determine o resultado lógico das expressões abaixo. Considere
os seguintes valores: X=1, A=3, B=5, C=8 e D=7.
a) .não.(X > 3) Verdadeiro( ) Falso( )
b) (X < 1) .e. .não. (B > D)Verdadeiro( ) Falso( )
c) .não.(D < 0) .e. (C > 5)Verdadeiro( ) Falso( )
d) .não. (X > 3) .ou. (C < 7)Verdadeiro( ) Falso( )
e) (A > B) .ou. (C > B)Verdadeiro( ) Falso( )
23
Exercíciosf) (X >= 2)Verdadeiro( ) Falso( )
g) (X < 1) .e. (B >= D)Verdadeiro( ) Falso( )
h) (D < 0) .ou. (C > 5)Verdadeiro( ) Falso( )
i) .não.(D > 3) .ou. .não.(B < 7)Verdadeiro( ) Falso( )
j) (A > B) .ou. .não. (C > B)Verdadeiro( ) Falso( )
24
Exercícios2. Indique o valor da variável X nos trechos de programas abaixo. Considere A=2, B=3, C=5 e D=9.
a) se .não. (D > 5) então X ← (A + B) * Dsenão X ← (A - B) / Cfim_seescreva X
b) se (A > 2) .e. (B < 7) então X ← (A + 2) * (B - 2)senão X ← (A + B) / D * (C + D)fim_seescreva X
c) se (A = 2) .ou. (B < 7) então X ← (A + 2) * (B - 2)senão X ← (A + B) / D * (C + D)fim_seescreva X
25
Exercícios
d) se (A > 2) .ou. .não.(B < 7) então X ← A + B - 2senão X ← A - B fim_seescreva X
e) se .não.(A > 2) .ou. .não.(B < 7) então X ← A + Bsenão X ← A / B fim_seescreva X
f) se .não.(A > 3) .e. .não.(B < 5) então X ← A + Dsenão X ← D / B fim_seescreva X
26
Exercíciosg) se (C >= 2) .e. (B <= 7) então
X ← (A + D) / 2 senão X ← D * C fim_se escreva X
h) se (A >= 2) .ou. (C <= 1) então X ← (A + D) / 2 senão X ← D * C fim_se escreva X
27
Exercícios3. Informe se é verdadeiro (V) ou falso (F) o que se afirma sobre o
diagrama de blocos abaixo. A seguir, indique a opção com a sequência correta.
C1
I1 I2
C2
I3 I4
Considere:C1 e C2 são condições.I1, I2, I3 e I4 são instruções.
( ) I1 executa se C1 for falsa.( ) I2 somente executa se C2 for verdadeira( ) Se C1 e C2 forem falsas a I3 executa( ) I4 sempre executa, independente de C1 e C2
a) V – F – V – V b) F – F – F – V c) V – F – V – Fd) F – V – V – F
S
S
N
N
28
Exercícios4. Verifique o resultado lógico das expressões de programação mencionadas
abaixo, marque se é verdadeiro (V) ou falso (F). A seguir, assinale a opção com a sequência correta. Considere para as respostas os seguintes valores: X=1; Y=5.
( ) (X < 1) .e. (X > Y) ( ) (Y > 5) .ou. (X = 1) ( ) .não.(X >= Y)
a) F – V – V b) V – F – F c) F – V – Fd) V – F – V
5. Marque a alternativa que identifica o tipo de operador lógico utilizado na tabelaAbaixo.
Condição1 Condição2 ResultadoFalsa Falsa Falso
Verdadeira Falsa Falso
Falsa Verdadeira Falso
Verdadeira Verdadeira Verdadeiro
a) .ou. b) .if. c) .e.d) .não.
29
Exercícios6. Indique a opção que contém o valor final da variável X, após a execução do
trecho de programa em português estruturado mostrado abaixo. Considere os seguintes valores para as variáveis: A=3; B=2; C=8; D=7.
se .não.(A > 3) .e. .não.(B < 5) entãoX ← 10
senãose (A >= 2) .ou. (C <= 1) então
X ← (A + D) / 2senão
se (A = 2) .ou. (B < 7) entãoX ← (A + 2) * (B - 2)
senãoX ← ((A + C) / B) * (C + D)
fim_sefim_se
fim_se
a) 10 b) 0 c) 15d) 5
30
Gabarito
1. a) Verdadeirob) Falsoc) Verdadeirod) Verdadeiroe) Verdadeirof) Falsog) Falsoh) Verdadeiroi) Falsoj) Falso
2. a) -0.2b) 7.77c) 4d) -1e) 0.66f) 3g) 45h) 4.5
3. C4. A5. C6. D
31
Estruturas de ControleLaços ou Malhas de Repetição
• Utilizado quando é necessário efetuar a repetição de um trecho de programa um determinado numero de vezes.
• Também chamado de looping ou iteração
32
Repetição com teste lógico no início do looping
• Um teste lógico é efetuado no início de um looping, verificando se é permitido executar um trecho de instruções subordinado a esse looping.
• enquanto... faça... fim_enquanto
N
S
33
Repetição com teste lógico no início do looping
programa LOOPING_EXEMPLO1var
X, R : inteiroCONT : inteiro
inícioCONT ← 1enquanto (CONT <= 5) faça
leia XR ← X * 3escreva RCONT ← CONT + 1
fim_enquantofim
34
Repetição com teste lógico no início do looping
programa LOOPING_EXEMPLO2var
X, R : inteiroRESP : caractere
inícioRESP ← “SIM”enquanto (RESP = “SIM”) faça
leia XR ← X * 3escreva Rescreva “Deseja continuar?”leia RESP
fim_enquantofim
35
Repetição com teste lógico no fim do looping
• Efetua um teste lógico no fim de um looping.• As instruções subordinadas a condição estabelecida serão executadas pelo
menos uma vez antes ser feito o primeiro teste lógico.• repita... até_que... • A instrução repita tem seu funcionamento em sentido contrário a
enquanto, pois sempre irá processar um conjunto de instruções até que uma condição se torne verdadeira, isto é, instruções são executadas enquanto uma condição é falsa e até que se torne verdadeira.
N
S
36
Repetição com teste lógico no fim do looping
programa LOOPING_EXEMPLO3var
X, R : inteiroCONT : inteiro
início CONT ← 1repita
leia XR ← X * 3escreva RCONT ← CONT + 1
até_que (CONT > 5)fim
37
Repetição com teste lógico no fim do looping
programa LOOPING_EXEMPLO4var
X, R : inteiroRESP : caractere
iníciorepita
leia XR ← X * 3escreva Rescreva “Deseja continuar?”leia RESP
até_que (RESP <> “SIM”)fim
38
Repetição com Variável de Controle
• Normalmente usamos o enquanto e o repita quando não sabemos previamente a quantidade de vezes que queremos executar um looping.
• Quando conhecemos a quantidade de vezes que queremos executar o looping, isto é, quando o looping é finito utilizamos a instrução para.
• para... de... até... passo... faça... fim_para
39
Repetição com Variável de Controle
var ←Inicio, fim
incremento
Instruções
para <variável> de <início> até <fim> passo <incremento> faça<instruções>
fim_para
40
Repetição com Variável de Controle (Exemplo)
• Pedir a leitura de um valor para a variável X, multiplicar esse valor por 3, implicando à variável de resposta R e apresentar o valor obtido, repetindo esta sequência por cinco vezes.
programa LOOPING_PARAvar
X, R : inteiroCONT : inteiro
iníciopara CONT de 1 até 5 passo 1 faça
leia XR ← X * 3escreva R
fim_parafim
41
Repetição com Variável de Controle (Exemplo)
• Pedir a leitura de um valor para a variável X, multiplicar esse valor por 3, implicando à variável de resposta R e apresentar o valor obtido, repetindo esta sequência por cinco vezes.
programa LOOPING_PARAvar
X, R : inteiroCONT : inteiro
iníciopara CONT de 1 até 5 passo 1 faça
leia XR ← X * 3escreva R
fim_parafim
42
Repetição com Variável de Controle (Exemplo)
início
CONT ← 1,5,1
X
R ← X * 3
R
fim
43
Exercícios1. Qual será o valor de X no momento da escrita.
programa CALCULOvar
X : inteiroCONT : inteiro
inícioX ← 1CONT ← 1enquanto (CONT <= 5) faça
X ← X * CONTCONT ← CONT + 1
fim_enquantoescreva "O valor de X é igual a: ", X
fim
44
Exercícios2. Apresentar o resultado de uma tabuada de 5.
5 x 1 = 55 x 2 = 10...5 x 10 = 50
3. Apresentar o total da soma dos 100 primeiros números inteiros.(1 + 2 + 3 + 4 + ... + 98 + 99 + 100)
4. Elaborar um programa que apresente o somatório dos números pares existentes na faixa de 1 até 500.
45
Exercícios5. Qual sequência numérica será impressa no programa abaixo.
programa PROVAvar
X ,R : inteiroCONT : inteiro
inícioCONT ← 1
X ← 0enquanto (CONT <= 5) faça
R ← X * 3
escreva ← R
CONT ← CONT + 1
X ← X + 1fim_enquanto
fim
46
Gabarito
1. 1205. 0,3,6,9,12
47
Estruturas de Controle Encadeadas
• enquanto com enquantoenquanto <condicao1> faça
enquanto <condicao2> faça<intrucoes>
fim_enquantofim_enquanto
C1
C2
Inst.
N
N
S
S
48
Estruturas de Controle Encadeadas
• enquanto com repitaenquanto <condicao1> faça
repita<intrucoes>
até_que <condicao2>fim_enquanto
C1
C2
Inst.
N
N
S
S
49
Estruturas de Controle Encadeadas • enquanto com paraenquanto <condicao> faça
para <var> de <inicio> até <fim> passo <incr> faça<intrucoes>
fim_parafim_enquanto Cond N
S
var ← inicio, fim,incremento
instruções
50
Estruturas de Controle Encadeadas • repita com repita
repitarepita
<instrucoes>até_que <condicao2>
até_que <condicao1>
Cond1
instruções
Cond2N
S
S
N
51
Estruturas de Controle Encadeadas • repita com enquanto
repitaenquanto <condicao2> faça
<instrucoes>fim_enquanto
até_que <condicao1>
Cond1
instruções
Cond2 N
S
S
N
52
Estruturas de Controle Encadeadas • para com parapara <var1> de <inicio> até <fim> passo <incr> faça
para <var2> de <inicio> até <fim> passo <incr> faça<instrucoes>
fim_parafim_para <condicao>
instruções
var1 ← inicio, fim,incremento
var2 ← inicio, fim,incremento
53
Estruturas de Controle Encadeadas • para com enquantopara <var> de <inicio> até <fim> passo <incr> faça
enquanto <condicao> faça<instrucoes>
fim_enquantofim_para
instruções
var ← inicio, fim,incremento
CondN
S
54
Estruturas de Controle Encadeadas • para com repitapara <var> de <inicio> até <fim> passo <incr> faça
repita<instrucoes>
até_que <condicao>fim_para
instruções
var ← inicio, fim,incremento
CondN
S
55
Exercícios1. Assinale a alternativa que o valor final da variável X, após a
execução do trecho de programa em Português Estruturado mostrado abaixo. Considere os seguintes valores iniciais para as variáveis: X=1;A=5.
enquanto (A < 9) façase (X < 6) então
X ← X * 2fim_seA ← A + 1
fim_enquantoescreva X
56
Exercícios
2. Elaborar um programa que apresente a tubuada de 1 a 10.
57
Gabarito
1. 8