Upload
vutruc
View
214
Download
0
Embed Size (px)
Citation preview
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
ESTRUTURAS DE DECISÃO (SELEÇÃO)
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
São muito comuns em programação — assim como na nossa prática em geral — situações em que decidimos por um ou outro procedimento, de acordo com certas condições.
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
SE estiver chovendo
ENTÃO pegue o guarda-chuva
Ao sair de casa...
Estáchovendo?
Peque o guarda-chuva
V
F
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
SE estiver chovendo
ENTÃO pegue o guarda-chuva
Ao sair de casa...
Realizaremos a ação <pegar o guarda-chuva> somente se determinada condição for verdadeira.
Caso contrário, nenhuma ação será feita.
Estáchovendo?
Peque o guarda-chuva
V
F
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
SE a piscina está livre ENTÃO faça nataçãoSENÃO faça uma caminhada
Em alguns casos, queremos especificar também o que será feito, caso a condição não se verifique...
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
SE a piscina está livre ENTÃO faça nataçãoSENÃO faça uma caminhada
Em alguns casos, queremos especificar também o que será feito, caso a condição não se verifique...
a piscinaestá livre?
VF
Faça uma caminhada Faça natação
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
SE a piscina está livre ENTÃO faça nataçãoSENÃO faça uma caminhada
Em alguns casos, queremos especificar também o que será feito, caso a condição não se verifique...
a piscinaestá livre?
VF
Faça uma caminhada Faça natação
Agora, uma das duas ações será realizada, dependendo da condição.
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
SE a piscina está livre ENTÃO faça nataçãoSENÃO faça uma caminhada
Em alguns casos, queremos especificar também o que será feito, caso a condição não se verifique...
a piscinaestá livre?
VF
Faça uma caminhada Faça natação
Note que somente um dos dois caminhos será percorrido...
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
SE a piscina está livre ENTÃO faça nataçãoSENÃO faça uma caminhada
Em alguns casos, queremos especificar também o que será feito, caso a condição não se verifique...
a piscinaestá livre?
VF
Faça uma caminhada Faça natação
Somente um dos dois caminhos será percorrido...
este...
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
SE a piscina está livre ENTÃO faça nataçãoSENÃO faça uma caminhada
Em alguns casos, queremos especificar também o que será feito, caso a condição não se verifique...
a piscinaestá livre?
VF
Faça uma caminhada Faça natação
Somente um dos dois caminhos será percorrido...
ou este.
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
SE CONDENTÃO AÇÃO1SENÃO AÇÃO2
Assim, o formato básico das estruturas de decisão (ou seleção) será:
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
SE CONDENTÃO AÇÃO1SENÃO AÇÃO2
Assim, o formato básico das estruturas de decisão (ou seleção) será:
SE CONDENTÃO AÇÃO
Ou...
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
SE CONDENTÃO AÇÃO1SENÃO AÇÃO2
Assim, o formato básico das estruturas de decisão (ou seleção) será:
SE CONDENTÃO AÇÃO
Ou...
O segundo formato é um caso particular do primeiro.
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
AExemplos em programaçãoprogram conversao;var Tf,Tc:real;begin write('Forneça a temperatura em celsius: '); readln(Tc); Tf := 9*Tc/5+32; {conversão para fahrenheit} writeln('Temperatura em Fahrenheit: ',Tf:4:2); if Tf > 200 then write('Atenção – temperatura muito elevada!!'); end.
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
AExemplos em programaçãoprogram identifica_maior;var n1,n2: real;begin write('Forneça dois números: '); readln(n1,n2); if n1>n2 then writeln(´Maior: ´,n1) else writeln(´Maior: ´,n2);end.
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
EXECUÇÃO
program identifica_maior;
var
n1,n2: real;
begin
writeln('Forneça dois números:');
readln(n1,n2);
if n1>n2 then
writeln(´Maior: ´,n1)
else writeln(´Maior: ´,n2);
end.
n1 n2
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
EXECUÇÃO
program identifica_maior;
var
n1,n2: real;
begin
writeln('Forneça dois números:');
readln(n1,n2);
if n1>n2 then
writeln(´Maior: ´,n1)
else writeln(´Maior: ´,n2);
end.
n1 n2
Forneça dois números:
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
EXECUÇÃO
program identifica_maior;
var
n1,n2: real;
begin
writeln('Forneça dois números:');
readln(n1,n2);
if n1>n2 then
writeln(´Maior: ´,n1)
else writeln(´Maior: ´,n2);
end.
n1 n2
Forneça dois números:
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
EXECUÇÃO
program identifica_maior;
var
n1,n2: real;
begin
writeln('Forneça dois números:');
readln(n1,n2);
if n1>n2 then
writeln(´Maior: ´,n1)
else writeln(´Maior: ´,n2);
end.
n1 n2
Forneça dois números:
2 3
2 3
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
EXECUÇÃO
program identifica_maior;
var
n1,n2: real;
begin
writeln('Forneça dois números:');
readln(n1,n2);
if n1>n2 then
writeln(´Maior: ´,n1)
else writeln(´Maior: ´,n2);
end.
n1 n2
Forneça dois números:
2 3
2 3
F
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
EXECUÇÃO
program identifica_maior;
var
n1,n2: real;
begin
writeln('Forneça dois números:');
readln(n1,n2);
if n1>n2 then
writeln(´Maior: ´,n1)
else writeln(´Maior: ´,n2);
end.
n1 n2
Forneça dois números:
2 3
2 3
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
EXECUÇÃO
program identifica_maior;
var
n1,n2: real;
begin
writeln('Forneça dois números:');
readln(n1,n2);
if n1>n2 then
writeln(´Maior: ´,n1)
else writeln(´Maior: ´,n2);
end.
n1 n2
Forneça dois números:
2 3
2 3Maior: 3
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
program identifica_maior;
var
n1,n2: real;
begin
writeln('Forneça dois números:');
readln(n1,n2);
if n1>n2 then
writeln(´Maior: ´,n1)
else writeln(´Maior: ´,n2);
end.
n1 n2
EXECUÇÃO 2
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
program identifica_maior;
var
n1,n2: real;
begin
writeln('Forneça dois números:');
readln(n1,n2);
if n1>n2 then
writeln(´Maior: ´,n1)
else writeln(´Maior: ´,n2);
end.
n1 n2
Forneça dois números:EXECUÇÃO 2
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
program identifica_maior;
var
n1,n2: real;
begin
writeln('Forneça dois números:');
readln(n1,n2);
if n1>n2 then
writeln(´Maior: ´,n1)
else writeln(´Maior: ´,n2);
end.
n1 n2
Forneça dois números:EXECUÇÃO 2
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
program identifica_maior;
var
n1,n2: real;
begin
writeln('Forneça dois números:');
readln(n1,n2);
if n1>n2 then
writeln(´Maior: ´,n1)
else writeln(´Maior: ´,n2);
end.
n1 n2
Forneça dois números:
7 3
7 3EXECUÇÃO 2
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
program identifica_maior;
var
n1,n2: real;
begin
writeln('Forneça dois números:');
readln(n1,n2);
if n1>n2 then
writeln(´Maior: ´,n1)
else writeln(´Maior: ´,n2);
end.
n1 n2
Forneça dois números:
7 3
7 3EXECUÇÃO 2
V
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
program identifica_maior;
var
n1,n2: real;
begin
writeln('Forneça dois números:');
readln(n1,n2);
if n1>n2 then
writeln(´Maior: ´,n1)
else writeln(´Maior: ´,n2);
end.
n1 n2
Forneça dois números:
3
7 3EXECUÇÃO 2
7
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
program identifica_maior;
var
n1,n2: real;
begin
writeln('Forneça dois números:');
readln(n1,n2);
if n1>n2 then
writeln(´Maior: ´,n1)
else writeln(´Maior: ´,n2);
end.
n1 n2
Forneça dois números:
3
7 3Maior: 7
EXECUÇÃO 2
7
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Formação de blocos
Há muitos casos em que, dependendo da condição ser verdadeira (ou falsa), queremos que sejam executados vários comandos.
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Há muitos casos em que, dependendo da condição ser verdadeira (ou falsa), queremos que sejam executados vários comandos.
Isso se resolve da seguinte forma: em vez de um comando, coloca-se um bloco (em Pascal, delimitado por begin..end).
Formação de blocos
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
if <Cond> then begin <Comando1> <Comando2> : <ComandoN> end else begin <ComandoN+1> <ComandoN+2> : <ComandoM> end;
Formato:
Formação de blocos
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
if Delta = 0
then begin
raiz := (-1)*B/(2*A); writeln('Há 2 raízes reais e iguais.');
write('Valor: ', raiz); end
else begin
raiz1 = ((-1)*B+sqrt(Delta))/(2*A);
raiz2 = ((-1)*B-sqrt(Delta))/(2*A); writeln('Há 2 raízes reais distintas.');
write('Valores: ', raiz1,' e ',raiz2);
end;
Exemplo:
Formação de blocos
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
if Delta = 0
then begin
raiz := (-1)*B/(2*A); writeln('Há 2 raízes reais e iguais.');
write('Valor: ', raiz); end
else begin
raiz1 = ((-1)*B+sqrt(Delta))/(2*A);
raiz2 = ((-1)*B-sqrt(Delta))/(2*A); writeln('Há 2 raízes reais distintas.');
write('Valores: ', raiz1,' e ',raiz2);
end;
Exemplo:
Formação de blocos
Por simplificação, adotamos que Delta nunca será negativo. Assim, se Delta = 0 for falso, necessariamente Delta será positivo e o segundo bloco (do else) será executado.
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Operadores lógicos
Em certas situações a execução ou não de certo comando (ou bloco) será dependente de mais de uma condição.
Uma maneira de articular várias condições são os operadores lógicos. Os mais empregados são AND (E) e OR (OU).
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Operadores lógicos e seu significado
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
AND
Empregamos esse operador quando queremos que certo comando seja executado quando duas (ou mais) condições sejam verdadeiras ao mesmo tempo. Ex:
readln(Idade);if (Idade>10) AND (Idade<20) then
write('Adolescente');
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
AND
readln(Idade);if (Idade>10) AND (Idade<20) then
write('Adolescente');
Empregamos esse operador quando queremos que certo comando seja executado quando duas (ou mais) condições sejam verdadeiras ao mesmo tempo. Ex:
Somente quando as duas condições são verdadeiras, a pessoa será considerada adolescente (idade de 11 até 19).
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
OR
Empregamos esse operador quando queremos que certo comando seja executado quando uma das condições (ou ambas) sejam verdadeiras. Ex:
readln(Temperat);if (Temperat < 10) OR (Temperat > 38) then
write('Temperatura inadequada');
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
OR
Empregamos esse operador quando queremos que certo comando seja executado quando uma das condições (ou ambas) sejam verdadeiras. Ex:
readln(Temperat);if (Temperat < 10) OR (Temperat > 38) then
write('Temperatura inadequada');
Neste caso, espera-se que a temperatura se mantenha entre 10 e 38 graus. Para temperaturas abaixo ou acima dessa faixa, uma mensagem de advertência será dada.
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
NOT
O operador NOT produz o contrário do operando, que poderá ser uma variável lógica ou uma outra operação lógica.
readln(Temperat);if (NOT Temperat > 45) then
write('Temperatura adequada')
else write('Temperatura inadequada');
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
NOT
O operador NOT produz o contrário do operando, que poderá ser uma variável lógica ou uma outra operação lógica.
readln(Temperat);if (NOT Temperat > 45) then
write('Temperatura adequada')
else write('Temperatura inadequada');
A temperatura adequada não pode ultrapassar 45 graus...
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
NOT
O operador NOT produz o contrário do operando, que poderá ser uma variável lógica ou uma outra operação lógica.
readln(Temperat);if (NOT Temperat > 45) then
write('Temperatura adequada')
else write('Temperatura inadequada');
A temperatura adequada não pode ultrapassar 45 graus...
Uma temperatura superior (50 p. ex.) produzirá V no teste Temperat>45.
V
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
NOT
O operador NOT produz o contrário do operando, que poderá ser uma variável lógica ou uma outra operação lógica.
readln(Temperat);if (NOT Temperat > 45) then
write('Temperatura adequada')
else write('Temperatura inadequada');
A temperatura adequada não pode ultrapassar 45 graus...
Uma temperatura superior (50 p. ex.) produzirá V no teste Temperat>45. Com a aplicação do NOT, o resultado será F, com execução do segundo comando (else).
F
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
NOT
O operador NOT produz o contrário do operando, que poderá ser uma variável lógica ou uma outra operação lógica.
readln(Temperat);if (NOT Temperat > 45) then
write('Temperatura adequada')
else write('Temperatura inadequada');
Uma construção equivalente seria...
readln(Temperat);if (Temperat <= 45) then
write('Temperatura adequada')else write('Temperatura inadequada');
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
NOT
O operador NOT produz o contrário do operando, que poderá ser uma variável lógica ou uma outra operação lógica.
readln(Temperat);if (NOT Temperat > 45) then
write('Temperatura adequada')
else write('Temperatura inadequada');
Uma construção equivalente seria...
readln(Temperat);if (Temperat <= 45) then
write('Temperatura adequada')else write('Temperatura inadequada');
Observe que o oposto de maior é
menor-ou-igual...
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Tabela-verdade
~A (negação/NOT): operador unário (um só operando) que produz sempre o inverso do valor do operando.
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Tabela-verdade
A^B (conjunção/AND): será verdadeiro somente quando o valor dos dois operandos for verdadeiro.
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Tabela-verdade
AᐯB (disjunção/OR): será falso somente quando o valor dos dois operandos for falso.
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Tabela-verdade
AᐯB (ou exclusivo/XOR): será verdadeiro quando os operandos forem diferentes; ou seja, apenas um verdadeiro.
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Várias condições articuladas
Em um posto de saúde, de todos os atendidos, as mulheres que tenham idade entre 15 e 49 anos deverão ser vacinadas
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Várias condições articuladas
Em um posto de saúde, de todos os atendidos, as mulheres que tenham idade entre 15 e 49 anos deverão ser vacinadas
...readln(idade,sexo);
if (sexo='F') AND (idade>14) AND (idade<50) then
write('Indicação para vacinação');...
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Várias condições articuladas
Em um posto de saúde, de todos os atendidos, as mulheres que tenham idade entre 15 e 49 anos deverão ser vacinadas
...readln(idade,sexo);
if (sexo='F') AND (idade>14) AND (idade<50) then
write('Indicação para vacinação');...
Somente quando todas as condições forem verdadeiras, a mensagem será executada.
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Várias condições articuladas
Supor agora que os homens é que serão vacinados, mas somente aqueles com menos de 20 anos, ou então com mais de 60 anos
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Várias condições articuladas
...
readln(idade,sexo);
if (sexo='M') AND (idade<20) OR (idade>60) then write('Indicação para vacinação');
...
Supor agora que os homens é que serão vacinados, mas somente aqueles com menos de 20 anos, ou então com mais de 60 anos
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Várias condições articuladas
...
readln(idade,sexo);
if (sexo='M') AND (idade<20) OR (idade>60) then write('Indicação para vacinação');
...
O que temos acima é um erro de programação.
Supor agora que os homens é que serão vacinados, mas somente aqueles com menos de 20 anos, ou então com mais de 60 anos
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Várias condições articuladas
...
readln(idade,sexo);
if (sexo='M') AND (idade<20) OR (idade>60) then write('Indicação para vacinação');
...
O que temos acima é um erro de programação.
Vejamos as prioridades entre os operadores...
Supor agora que os homens é que serão vacinados, mas somente aqueles com menos de 20 anos, ou então com mais de 60 anos
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Prioridade mais alta: NOT
Prioridade média: AND
Prioridade mais baixa: OR - XOR
Prioridade entre operadores lógicos
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Prioridade mais alta: NOT
Prioridade média: AND
Prioridade mais baixa: OR - XOR
Prioridade entre operadores lógicos
OBS: a aplicação de parênteses altera essas regras, forçando uma ordem de execução desejada.
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Prioridade entre operadores lógicos
...
readln(idade,sexo);
if (sexo='M') AND (idade<20) OR (idade>60) then write('Indicação para vacinação');
...
Assim, no código antes apresentado...
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Prioridade entre operadores lógicos
...
readln(idade,sexo);
if (sexo='M') AND (idade<20) OR (idade>60) then write('Indicação para vacinação');
...
As operações serão agrupadas desta forma.
Assim, no código antes apresentado...
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Prioridade entre operadores lógicos
...
readln(idade,sexo);
if (sexo='M') AND (idade<20) OR (idade>60) then write('Indicação para vacinação');
...
As operações serão agrupadas desta forma.
Assim, no código antes apresentado...
O resultado é que homens com menos de 20 anos serão indicados...
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Prioridade entre operadores lógicos
...
readln(idade,sexo);
if (sexo='M') AND (idade<20) OR (idade>60) then write('Indicação para vacinação');
...
As operações serão agrupadas desta forma.
O resultado é que homens com menos de 20 anos serão indicados...
Assim, no código antes apresentado...
...assim como as pessoas acima de 60 anos (de qualquer sexo).
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Prioridade entre operadores lógicos
...
readln(idade,sexo);
if (sexo='M') AND (idade<20) OR (idade>60) then write('Indicação para vacinação');
...
Ver esta situação, por exemplo:
sexo idade
F 65
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Prioridade entre operadores lógicos
...
readln(idade,sexo);
if (sexo='M') AND (idade<20) OR (idade>60) then write('Indicação para vacinação');
...
Ver esta situação, por exemplo:
sexo idade
F 65
falso falso falso E falso ⇒ falso
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Prioridade entre operadores lógicos
...
readln(idade,sexo);
if (sexo='M') AND (idade<20) OR (idade>60) then write('Indicação para vacinação');
...
Ver esta situação, por exemplo:
sexo idade
F 65
falso verdadeiro
falso OU verdadeiro ⇒ verdadeiro
(indicação para vacinação...)
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Prioridade entre operadores lógicos
...
readln(idade,sexo);
if (sexo='M') AND (idade<20) OR (idade>60) then write('Indicação para vacinação');
...
Para que a intenção original fosse alcançada...
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Prioridade entre operadores lógicos
...
readln(idade,sexo);
if (sexo='M') AND ((idade<20) OR (idade>60)) then write('Indicação para vacinação');
...
Para que a intenção original fosse alcançada...
Um par de parênteses deveria indicar a ordem de execução desejada.
PROGRAMA DE FORMAÇÃO/CERTIFICAÇÃO EMFUNDAMENTOS DE PROGRAMAÇÃO IMPERATIVA
ESTRUTURAS DE DECISÃO
Pro
f. B
ened
ito F
err
eira
- U
FP
A
Prioridade entre operadores lógicos
...
readln(idade,sexo);
if (sexo='M') AND ((idade<20) OR (idade>60)) then write('Indicação para vacinação');
...
Para que a intenção original fosse alcançada...
Agora as operações serão agrupadas conforme indicado acima.