Buscar

Slides de Aula - Parte II

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

Prévia do material em texto

8/30/2014
1
ESTRUTURA CONDICIONAL
A
U
LA
 6
130ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 131
Tem como objetivo executar um conjunto de comandos
caso uma condição lógica seja atendida. Quando a
resposta lógica for falsa, nada será executado.
Sintaxe
Se CONDIÇÃO
ENTÃO
COMANDO
Estruturas de tomada de decisão
A pergunta lógica deve ser formulada
para que haja apenas duas respostas
válidas (Verdadeiro ou Falso)
Exemplo:
A > B?
X <= 0?
NOME = “JOSE”
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
132
Sintaxe
SE condição
ENTÃO
INÍCIO
comando1
comando2
comando3
FIM
Os comandos 1, 2 e 3 só serão executados se a condição for
verdadeira As palavras início e fim serão necessárias apenas
quando dois ou mais comandos forem executados
Estruturas de tomada de decisão
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 133
Exemplo em linguagem C/C++
if (condição)
comando;
O comando só será executado se a condição for
verdadeira
Estruturas de tomada de decisão
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
134
Exemplo em linguagem C/C++
if (condição)
{
comando1;
comando2;
comando3;
}
Em C/C++, torna-se obrigatória a utilização de chaves
quando existe mais de um comando a executar. Os
comandos entre chaves { } só serão executados se a
condição for verdadeira.
Estruturas de tomada de decisão
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 135
Na estrutura composta, quando a resposta da pergunta
lógica for falsa, um outro bloco de comandos será
executado
SE condição
ENTÃO
comando1
SENÃO
comando2
Se a condição for verdadeira, será executado o
comando1; caso contrário, será executado o comando2.
Estruturas de tomada de decisão
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
8/30/2014
2
136
SE condição
ENTÃO
INÍCIO
comando1
comando2
fim
SENÃO
INÍCIO
comando3
comando4
fim
Estruturas de tomada de decisão
VERDADEIRO
FALSO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 137
Observe, no exemplo anterior, que se a condição for
verdadeira, o comando1 e o comando2 serão executados;
caso contrario, o comando3 e o comando4 serão
executados.
Estruturas de tomada de decisão
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
138
Em linguagem C/C++ a estrutura condicional composta
segue a seguinte estrutura
if (condição)
comando1;
else
comando2;
Se a condição for verdadeira, apenas o comando1 será
executado, caso contrário apenas o comando2 será
executado.
Observe ainda que em cada bloco só existe um comando
e por isso não é necessário delimitar entre chaves.
Estruturas de tomada de decisão
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 139
Exemplo
if (condição)
{
comando1;
comando2;
}
else
{
comando3;
comando4;
}
Estruturas de tomada de decisão
VERDADEIRO
FALSO
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
140
Na estrutura aninhada, os blocos de comandos possuem
outra estrutura condicional. Isso poderá ocorrer dentro
do se e/ou dentro do senão.
A estrutura interna poderá ser uma estrutura condicional
simples ou composta, devendo o programador analisar
cada caso.
Estruturas de tomada de decisão
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 141
SE condiçãoA
ENTÃO
inicio
comando1A
SE condiçãoB
comando1B
SENÃO
comando2B
fim
SENÃO
comando2A
Estruturas de tomada de decisão
V V
V
V F
F
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
8/30/2014
3
142
Exemplo em C/C++
if (A > B)
{
cout << “o valor de A e maior que o valor de B”;
if (B > 0)
cout << “o valores das variaveis A e B são positivos”;
else
cout << “o valor de B nao e positivo”;
}
else
cout << “o valor de A não e maior que o valor de B”;
Estruturas de tomada de decisão
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 143
Os operadores lógicos são usados para fazer conjunção
(e), disjunção (ou) além da negação (não)
Exemplos:
SE ((A>B) e (A>C))
Observe que a condição só será atendida caso as duas condições
sejam verdadeiras.
SE ((A>B) ou (A>C))
Observe que, para que a condição seja atendida, basta que uma
das duas condições seja verdadeira.
SE (A≠0)
Observe que a condição será aceita caso o valor de A seja
diferente de 0.
Operadores Lógicos
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
144
Tabela verdade dos operadores lógicos
Operadores Lógicos
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 145
Em linguagem C/C++ usamos as simbologias:
E &&
ou ||
Não !
Exemplo:
if ((a>b) && (a>c))  A condição será atendida caso a seja maior
que b e maior que c
if ((a>b) || (c>b))  A condição será atendida caso a seja maior que
b ou c seja maior que b
if (x!=y)  A condição será atendida caso x não seja igual a y
Operadores Lógicos
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
146
Dado o seguinte algoritmo:
se media >= 5
então imprima "Aprovado" 
senão imprima "Reprovado" 
fim se
Identifique qual a estrutura de controle utilizada
( ) Condicional simples
( X) Condicional composta
( ) Condicional aninhada
( ) Condicional múltipla escolha
( ) Condicional de repetição
Exercício resolvido
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 147
Qual o resultado da variável Z após a execução do código abaixo?
x = 5; y = 7; z = 3;
if ((x-1) > 2)
y = y + 1;
else
y = y – 1;
z = z + x + y;
( ) 11
( ) 13
( X) 16
( ) 17
( ) 20
Exercício resolvido
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
8/30/2014
4
148
Faça um algoritmo que leia duas notas e mostre qual foi a maior nota
digitada. Logo após transforme esse algoritmo em um programa C++
Algoritmo
declare nota1, nota2 : Real;
escreva (“Informe a primeira nota”);
leia (nota1);
escreva (“Informe a segunda nota”);
leia (nota2);
se (nota1 > nota2) então
escreva (“A primeira nota foi maior”);
senão
se (nota1 < nota2) então
escreva (“A segunda nota foi maior”);
senao
escreva (“As notas foram iguais”);
fim se
fim se
Fim algoritmo
Exercício resolvido
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 149
Faça um algoritmo que descubra se um ano é bissexto deve-se verificar
se ele é divisível por 4. Entretanto, os anos divisíveis por 100 (apesar de
divisíveis por 4) são exceção: eles não são bissextos. Os anos divisíveis
por 400 (apesar de divisíveis por 100) são a exceção da exceção: eles
também são bissextos.
Por exemplo:
1996 é bissexto (divisível por 4)
1900 não é bissexto (divisível por 4, seria bissexto, mas é também
divisível por 100)
2000 é bissexto (apesar de divisível por 100, não seria bissexto, mas
é também divisível por 400)
Exercício resolvido
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
150
algoritmo "Descobrir se o ano é bissexto“
declare ano inteiro
Inicio
escreva("Digite o ano: ")
leia(ano)
se (ano % 4) = 0
entao
se (ano % 100) = 0
então
se (ano % 400) = 0
então escreva("Ano bissexto")
senão
escreva ("Ano não é bissexto")
fimse
senão
escreva("Ano bissexto")
fimse
fimse
Fim algoritmo
Exercício resolvido (solução)
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 151
A nota final de um estudante é calculada a partir de três
notas atribuídas, respectivamente, a um trabalho de
laboratório, a uma avaliação semestral e a um exame
final. Amédia das três notas mencionadas obedece aos
pesos a seguir
Faça um programa que receba as três notas, calcule e
mostre a media ponderada e o conceito conforme a tabela a
seguir
Exercício resolvido
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
152
ALGORITMO
DECLARE nota_trab, aval_sem, exame, media NUMÉRICO
ESCREVA "Digite a nota do trabalho de laboratório: "
LEIA nota_trab
ESCREVA "Digite a nota da avaliação semestral: "
LEIA aval_sem
ESCREVA "Digite a nota do exame final: "
LEIA exame
media (nota_trab* 2 + aval_sem * 3 + exame * 5 ) / 10
ESCREVA "Média ponderada:.“ , media
SE media >= 8 E media <= 10
ENTÃO
ESCREVA "Obteve conceito A“
SE media >= 7 E media < 8
ENTÃO ESCREVA "Obteve conceito B“
SE media >= 6 E media < 7
ENTÃO ESCREVA "Obteve conceito C“
SE media >= 5 E media < 6
ENTÃO ESCREVA "Obteve conceito D“
SE media >= 0 E media < 5
ENTÃO ESCREVA "Obteve conceito E“
FIM_ALGORITMO.
Exercício (solução)
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 153
Faça um programa que receba três notas de um aluno,
calcule e mostre a média aritmética e a mensagem
constante na tabela a seguir. Aos alunos que ficaram para
exame, calcule e mostre a nota que deverão tirar para
serem aprovados, considerando que a média exigida é
6,0.
Exercício resolvido
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
8/30/2014
5
154
ALGORITMO
DECLARE nota1, nota2, nota3, media, nota_exame NUMÉRICO
ESCREVA "Digite a primeira nota: "
LEIA nota1
ESCREVA "Digite a segunda nota: “
LEIA nota2
ESCREVA "Digite a terceira nota: “
LEIA nota3
media (nota1+ nota2 + nota3) / 3
ESCREVA "Média aritmética:",media
SE media >= 0 E media < 3
ENTÃO ESCREVA "Reprovado“
SE media >= 3 E media < 7
ENTÃO
INÍCIO
ESCREVA "Exame" nota_exame 12 – media
ESCREVA "Deve tirarnota", nota_exame, "para ser aprovado"
FIM
SE media >= 7 E media <= 10
ENTÃO ESCREVA "Aprovado"
FIM_ALGORITMO.
Exercício (solução)
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 155
Observe os valores abaixo e responda com int (inteira),
Double (real), char (caracter), String (conjunto de
caracteres) e boolean (lógica).
Observe os nomes abaixo e responda com V, se forem
nomes válidos para identificadores e com NV, se forem
nomes inválidos.
Exercício resolvido
21 ( int ) 3.5 ( float ) false ( bool )
“BOLA” ( string ) “true” ( string ) ‘@’ ( char )
A ( V ) B-2 ( NV ) TESTE ( V )
A_2 ( V ) C#2 ( NV ) void ( NV )
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
156
Sabendo que a tarefa de processar o dado é executar com
ele uma ação que produza algum tipo de resultado, entre
as tarefas comuns a esta função identifique como
verdadeiras ou falsas as afirmações abaixo
Exercício resolvido
Operações aritméticas: somar, subtrair, 
multiplicar, dividir, ...;(V)
Movimentação de dados: memória-CPU, 
CPU-memória, registrador-registrador, 
...;(V)
Operação física de energia(F) Desvios: alteração da sequência de 
execução das instruções, Operações de 
entrada ou saída;(V)
Operações lógicas: and, or, xor, not,... ;(V)
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 157
Dados X = 2, Y = 5, Z = 9, variável nome contendo MARIA
e variável SIM contendo false, responda se as expressões
são V ou F
Exercício resolvido
(X + Y > Z) && (nome == “MARIA”) (F) SIM || (Y <= Z) (V)
!(Z < 10) || (X * Y > Z) (V) !(NOME == “MARIA”) && SIM (F)
((X != 2) || (Y < Z)) && (Z > X + Y) (V)
Precedências  (), !, * / %, + -, < > <= >=, == !=, &&, ||
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
158
Dadas as variáveis numéricas A e B, contendo os valores 2
e 6, respectivamente; a variável L, contendo o literal
FALSO; e a variável lógica V, contendo o valor lógico
verdadeiro, assinale a expressão lógica cujo resultado
possui valor lógico falso
Exercício resolvido
A > B ou V ( ) A > B e V ou L = "FALSO” ( )
A > B ou L = "FALSO" ( ) A - B < 2 e L ≠ "VERDADEIRO" e V ( )
A < B e L = "LITERAL" (X)
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 159
Dados os seguintes valores das variáveis: A=3 e B=-2,
assinale respectivamente o resultado das três expressões
relacionais:
A ≠ B
A >= B
B <= A
Exercício resolvido
Falso, Verdadeiro, Falso ( ) Verdadeiro, Falso, Verdadeiro ( )
Verdadeiro, Verdadeiro, Falso ( ) Falso, Falso, Falso ( )
Verdadeiro, Verdadeiro, Verdadeiro (X)
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
8/30/2014
6
160
A execução de uma expressão lógica obedece como
prioridade a ordem dos operadores:
Exercício resolvido
OR, AND e NOT (F) AND, OR e NOT (F)
NOT, AND e OR (V) NOT, OR e AND (F)
AND, NOT e OR (F)
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 161
Uma bomba é acionada quando a caixa d´agua possui
menos de 3000 litros de água e a cisterna possui mais de
1000 litros de água. Também é possível acionar a bomba
caso haja menos de 3000 litros de água na caixa, mais de
300 litros de água na cisterna e a vazão de entrada for de,
pelo menos, 3m3 por segundo. Crie a expressão lógica
para identificar se a bomba será acionada ou não.
Exercício
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
162
A ponte que liga o nada a lugar algum está com o
tráfego controlado, sendo liberado para passar até 5
caminhões por vez. Poderá ser liberada também se
houver até 15 carros ou ainda até 10 carros e 2
caminhões. Crie a expressão lógica para identificar se
a ponte poderá ser liberada ou não.
Exercício
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
ESTRUTURA CONDICIONAL MÚLTIPLA 
ESCOLHAA
U
LA
 7
163ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
164
Muitos programas são desenvolvidos de modo que eles
possam realizar varias tarefas (condições),
independentemente.
Por exemplo, um programa que gerencie um caixa
eletrônico de um banco deve oferecer ao usuário algumas
opções em relação a ação que ele pretende realizar na
sua conta como a
Emissão do saldo atual;
Emissão de um extrato;
Realização de um saque;
Realização de um depósito.
ESTRUTURA MÚLTIPLA ESCOLHA
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 165
Um menu de opções com a indicação das diversas tarefas
que o programa pode executar e a permissão de que o
usuário escolha a tarefa pretendida.
Como, em geral, são varias as opções disponíveis (cada
uma delas com uma sequência especifica de comandos) e
só uma das opções será a escolhida, e necessária uma
estrutura que decide entre varias sequencias de
comandos qual vai ser executada ou quais vão ser
executadas.
O comando switch tem este objetivo.
ESTRUTURA MÚLTIPLA ESCOLHA
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
8/30/2014
7
166
ESTRUTURA MÚLTIPLA ESCOLHA
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
escolha(opção)
inicio
caso 1:
inicio
bloco de comandos
fim
caso 2:
inicio
bloco de comandos
fim
senao:
inicio
bloco de comandos
fim
fim_escolha
switch( variável int n ou char )
{
case op1 : 
{
bloco de comandos;
break;
}
case op2: 
{
bloco de comandos;
break;
}
default : 
{
bloco de comandos;
} 
}
COMPARAÇÃO DA SINTAXE ENTRE PSEUDOCÓDIGO X C++
167
A condição argumento do comando deve resultar num
valor do tipo int ou num valor do tipo chare,
opcionalmente, a ultima instrução de cada uma das
sequencias.
A semântica é que a condição é avaliada e as sequencias
de instruções situadas entre o valor da condição
apresentado nos cases e um comando break ou o
delimitador do comando são executadas.
ESTRUTURA MÚLTIPLA ESCOLHA
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
168
Se o valor da condição for diferente de todas as opções
dadas pelas constantes associadas aos cases, a sequência
de instruções vinculada ao default será executada.
ESTRUTURA MÚLTIPLA ESCOLHA
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 169
Exemplo
#include<iostream>
using namespace std;
int main(){
int numero;
cout<<"Digite um numero: ";
cin>>numero;
switch(numero){
case 1:
cout<<"Voce digitou 1";
break;
case 2:
cout<<"Voce digitou 2";
break;
case 3:
cout<<"Voce digitou 3";
break;
default:
cout<<"Opcao Invalida!";
}
system("pause");
EXIT_SUCCESS;
}
ESTRUTURA MÚLTIPLA ESCOLHA
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
170
Exemplo
#include<iostream>
using namespace std;
int main(){
int numero;
cout<<"Digite um numero: ";
cin>>numero;
switch(numero){
case 1: case 2: case 3:
cout<<"Primeiro trimestre";
break;
case 4: case 5: case 6:
cout<<"Segundo trimestre";
break;
case 7: case 8: case 9:
cout<<"Terceiro trimestre";
break;
case 10: case 11: case 12:
cout<<"Quarto trimestre";
break;
}
system("pause");
EXIT_SUCCESS; }
ESTRUTURA MÚLTIPLA ESCOLHA
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba 171
Exemplo
#include<iostream>
using namespace std;
int main()
{
int x;
cout<<"Digite um número inteiro entre 1 e 5 \n";
cin>>x;
switch (x)
{
case 1:
cout<<"Valor de x: "<< x;
break;
case 2:
cout<<"Valor do dobro de x: " << 2*x;
break;
case 3:
cout<<"Valor do triplo de x: "<< 3*x;
break;
default: cout<<"Valor digitado: "<< x;
}
system("pause"); }
ESTRUTURA MÚLTIPLA ESCOLHA
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba
8/30/2014
8
172
A sequencia de instruções vinculada a uma opção case
pode ser vazia, caso em que, evidentemente, nada e
executado;
Se apenas uma sequência de comandos deve ser
executada, deve-se encerra-la com um break;
A opção default e opcional: se ela não aparece na
estrutura e o valor da condição for diferente de todos os
valores disponíveis, nada e executado e a instrução logo
após o comando switch passa a ser executada.
ESTRUTURA MÚLTIPLA ESCOLHA
ENGENHARIAS – LÓGICA DE PROGRAMAÇÃO – Henry Lubanco / Joelio Piraciaba

Outros materiais