Logo Passei Direto
Buscar

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Pontifícia Universidade Católica de Goiás PUC GOIÁS 
Departamento de Computação
Informática 
e 
Computação
Professor: MSc. Mário Oliveira Orsi
Cesar Augusto da Rocha Magalhães
1
CONTROLE DE FLUXO
ESTRUTURA CONDICIONAL 1
INFORMÁTICA E COMPUTAÇÃO
CMP 1060
AULA 6 
Os programas que vimos até agora têm a seguinte estrutura:
main( ) 
{ 
 	declarações 
	instrução 1 
	instrução 2 
	instrução 3
	... 
 instrução N 
} 
ESTRUTURA SEQUENCIAL
O caso geral da instrução if - else:
if ( expressão ) 
 instrução1 ;
 else instrução2 ;
If Se a (expressão) entre os parenteses for VERDADEIRA
executo a instrução 1 
 else  senão executo
	a instrução 2
Exemplo:
If (X > Y)
X = Y
else X = X +1
Estrutura Condicional
// se for verdade que o valor de X é maior que Y 
 // atribui o valor de Y para X
// senão adciono 1 ao valor de X 
O caso geral da instrução if - else:
if ( expressão ) 
 instrução1 ;
 else instrução2 ;
O comando else não é obrigatório:
if ( expressão ) // se a expressao for verdadeira
 instrução1 ; // executo a instrução 1 e sigo a execução
If Se a (expressão) entre os parenteses for VERDADEIRA
executo a instrução 1 
 else  senão executo
	a instrução 2
Estrutura Condicional
Símbolo
Significado
<
menor
>
maior
<=
menor ou igual
>=
maior ou igual
==
igual
!=
diferente
Símbolos Relacionais
Expressões Logicas: é a expressão cujo operadores são lógicos e cujos operandos são relações, constantes e/ou variáveis do tipo lógico.
Relações: X > Y o resultado será verdadeiro ou falso.
Estrutura Condicional
Exemplos: X + Y = Z , X e Y = Z
Operadores Lógicos
SÃO CONECTORES QUE RELACIONAM PROPOSIÇÕES QUE PODEM SER VERDADEIRAS OU FALSAS. 
e  conjunção (é verdadeira se e somente se ambas as proposições são verdadeiras).
ou  disjunção ( é verdadeira se pelo menos uma delas for verdadeira).
não  negação (é negação da expressão)
Estrutura Condicional
FALSO
VERDADEIRO
VERDADEIRO
VERDADEIRO
FALSO
VERDADEIRO
F
V
V
V
F
V
V
V
Estrutura Condicional
 
 
!(2 > 3)
NÃO
!
!(5>1)
!
(4> 2) || (10 > 5)
OU
||
(3> 1) || (10 > 11)
OU
||
(2 >1) && (10 > 9)
E
&&
(5 > 1) && (3>10)
E
&&
 
 
 
 
Exemplo
Descrição
Operador
NÃO
Resultado
Estrutura Condicional Simples
if ( expressão )
	instrução1 ;
	
Exemplo
Desenvolver um programa para entrar com um preço do carro e calcular o preço final de acordo com as opções do usuário com os opcionais de vidro elétrico, ar condicionado, trava central, pintura metálica e ar condicionado.
Desenvolver um programa para entrar com um preço do carro e calcular o preço final de acordo com as opções do usuário com os opcionais de vidro elétrico, ar condicionado, trava central, pintura metálica e ar condicionado.
Análise: 
Preço do carro 	 = 22000,00
Ar condicionado	 + 2500,00
Dir hidraulica + 2000,00
Pintura metálica + 650,00
Vidro elétrico	 + 500,00
Trava central 	 + 400,00 
Preço final carro 28050,00
Resposta:
‘s’ ‘n’ ‘S’ ‘N’
Entro com o valor do carro
Pergunto pelos opcionais:
 Tabela de Preços:
 Ar concionado R$ 2500,00
Dir . Hidraulica R$ 2000,00
Pintura metálica R$ 650,00
Vidro elétrico	 R$ 500,00
Trava central 	 R$ 400,00 
Desenvolver um programa para entrar com um preço do carro e calcular o preço final de acordo com as opções do usuário com os opcionais de vidro elétrico, ar condicionado, trava central, pintura metálica e ar condicionado.
Análise: 
Preço do carro 	 = 22000,00
Ar condicionado	 + 2500,00
Dir hidraulica + 2000,00
Pintura metálica + 650,00
Vidro elétrico	 + 500,00
Trava central 	 + 400,00 
Preço final carro 28050,00
Resposta:
‘s’ ‘n’ ‘S’ ‘N’
RESPAC
RESPDH
RESPPM
RESPVE
RESPTC
PRECOFINAL
DEFINIÇÃO DAS VARIÁVEIS 
Se não for adicionado nenhum opcional o PRECOFINAL é o valor do preço INICIAL do carro
// programa PRECOCARRO
#include <iostream>
using namespace std;
 main( )
{
char RESPAC, RESPDH, RESPPM, RESPVE, RESPTC;
float PRECOFINAL=0;						
//leia os dados de entrada
	cout << "Qual o preco inicial do carro";
	cin >> PRECOFINAL;
	cout << "Deseja Ar Condicionado (S/N) , (s/n)? ";
	cin >> RESPAC;
	cout << ”Deseja Direcao Hidraulica (S/N) , (s/n)? ";
	cin >> RESPDH;
	cout << "Deseja Pintura Metalica (S/N) , (s/n)? ";
	cin >> RESPPM;
	cout << "Deseja Vidros Eletricos (S/N) , (s/n)? ";
	cin >> RESPVE;
	cout << "Deseja Trava Central (S/N) , (s/n)? ";
	cin >> RESPTC;
// teste da resposta do cliente
											
RESPAC
RESPDH
RESPPM
RESPVE
RESPTC
PRECOFINAL
Resposta:
‘s’ ‘n’ ‘S’ ‘N’
O preço inicial do carro será = preço final sem nenhum opcional, entretanto existe a possibilidade de se querer comprar só item(s) opcionais  PRECOFINAL=preço do carro = 0
12
	
	if ( (RESPAC == 'S') || (RESPAC == 's') )
		PRECOFINAL = PRECOFINAL + 2500. ;
								
 if ( (RESPDH == 'S') || (RESPDH == 's') )
		PRECOFINAL = PRECOFINAL + 2000. ;
								
	if ( (RESPPM == 'S') || (RESPPM =='s') )
		PRECOFINAL = PRECOFINAL + 650. ;
	if( (RESPVE == 'S') || (RESPVE == 's') )
 	PRECOFINAL = PRECOFINAL + 500. ;							
	if ( (RESPTC == 'S') || (RESPTC == 's') )
 		PRECOFINAL = PRECOFINAL + 400. ;
								
	//exiba os resultados de saída							
	cout<< "R$ "<< PRECOFINAL<< " será o preço final do carro. \n“ ;
 system("PAUSE");
 
	}						
											
Preço do carro 	 = 22000,00
Ar condicionado	 + 2500,00
Dir hidraulica + 2000,00
Pintura metálica + 650,00
Vidro elétrico + 500,00
Trava central 	 + 400,00
Preço final do carro 28050,00
RESPAC
RESPDH
RESPPM
RESPVE
RESPTC
PRECOFINAL
Resposta:
‘s’ ‘n’ ‘S’ ‘N’
	// teste da resposta do cliente
#include <iostream>
using namespace std;
main( )
 { char RESPAC, RESPDH, RESPPM, RESPVE, RESPTC;
 float PRECOFINAL=0;						
	cout << "Qual o preco inicial do carro";
	cin >> PRECOFINAL;
	cout << "Deseja Ar Condicionado (S/N) , (s/n)? ";
	cin >> RESPAC;
	cout << ”Deseja Direcao Hidraulica (S/N) , (s/n)? ";
	cin >> RESPDH;
	cout << "Deseja Pintura Metalica (S/N) , (s/n)? ";
	cin >> RESPPM;
	cout << "Deseja Vidros Eletricos (S/N) , (s/n)? ";
	cin >> RESPVE;
	cout << "Deseja Trava Central (S/N) , (s/n)? ";
	cin >> RESPTC;
If ( (RESPAC == 'S') || (RESPAC == 's') )
		PRECOFINAL = PRECOFINAL + 2500. ;				
If ( (RESPDH == 'S') || (RESPDH == 's') ) 
		PRECOFINAL = PRECOFINAL + 2000. ;				
If ( (RESPPM == 'S') || (RESPPM =='s') )
		PRECOFINAL = PRECOFINAL + 650. ;
If ( (RESPVE == 'S') || (RESPVE == 's'))
 	PRECOFINAL = PRECOFINAL + 500. ;	
If ( (RESPTC == 'S') || (RESPTC == 's') )
 		PRECOFINAL = PRECOFINAL + 400. ;					
	cout<< "R$ "<< PRECOFINAL<< " será o preço final do carro. \n“ ;
 system("PAUSE"); 
}
	
											
RESPAC
RESPDH
RESPPM
RESPVE
RESPTC
PRECOFINAL
S
RASTREAMENTO
Preço do carro 	 = 22000,00
Ar condicionado	 + 2500,00
Dir hidraulica + 2000,00
Pintura metálica + 650,00
Vidro elétrico + 500,00
Trava central 	 + 400,00
Preço final do carro 28050,00
S
S
S
S
0
22000 
24500
26500
27150
27650
28050
carroaut.exe
Estrutura Condicional Composta
if ( expressão ) 
 instrução1 ;
 else instrução2 ;
Exemplo 1
Desenvolver um programa para entrar com dois números e exibir o maior entre eles.
#include <iostream> 
using namespace std;
main()
 {
 // define dois inteiros
 	int X, Y;
 // entra com dois números inteiros
 	cout <<“ Digite dois numeros inteiros diferentes: ”;
	cin >>X >> Y;
 //exibe uma mensagem dizendo qual número é maior 
	if (X > Y) {
		cout << X<<“ eh maior do que " << Y << endl;
		 }
	else {
	 cout << X << " eh menor do que " << Y << endl;
	 } 
	 system("PAUSE"); 
 }			
maior.exe
943
X
Y
 587
// prog para
exibir o maior de 2 numeros X e Y
RASTREAMENTO
#include <iostream>
using namespace std;
 main( )
 {
 int N; 
 cout << " Digite um numero inteiro: "; 
 cin >> N ; 
 if ( N % 2 == 0 )
 cout << N << " Eh par \n ";
 else cout<< N << " Eh impar \n "; system ("PAUSE")
} 		parimpar.exe
// programa que verifica se um número é par ou ímpar*/
Analise
N | 2 ` 
 0 quociente
PAR
ERROS FREQUENTES
if(...) 
 instrução1;
 instrução2;
Provavelmente aquilo que queriam fazer era:
if(...) {
 instrução1; 
 instrução2;
 } 
Se a (express..) 			verdadeira
Executo inst. 1 e 
 inst. 2
Desta forma :
Se a (expressão) for verdadeira
Executo apenas a inst. 1
Se for falsa pulo a inst. 1 e
Executo a instrução 2 
If ( expressão ) 
{ 
 instrução1;
 instrução2; 
 instrução3 ;
 instrução4 ;
} 
else
 {
 instrução5;
 instrução6 ;
 } 
Instrução7; 
Instrução8; 
SE EXISTIR MAIS DE UMA INSTRUÇÃO PARA SER EXECUTADA DENTRO DO COMANDO if 
OU DO else 
DEVEMOS COLOCAR AS CHAVES { 
		 }
		Condicional Simples
#include <iostream>
using namespace std;
main()
{
    int number = 75, nota;
 cout <<“Entre com sua nota, por favor \n";
 cin>>nota;
 if (nota >= number) {
	cout << "Incrivel, voce passou com merito.\n"); 
	}
system ("PAUSE")
}
Exemplos de uso de estrutura condicional simples X composta 
#include <iostream>	 Condicional Composta
using namespace std;
main()
{
    int number = 75, nota;
    cout << “ Entre com sua nota, por favor \n”;
    cin >> nota;
    if (nota >= number)
    	{
       	 cout << " Incrível, voce passou com mérito. \n";
    	}
 else
 	{
 	cout << " Que pena, voce reprovou. \n";
 	}
system ("PAUSE")
}
#include <iostream>
#include <cstdlib>
using namespace std;
main()
{
    int number = 75, nota;
    cout <<”Entre com sua nota, por favor \ n";
    cin >> nota;
    if (nota >= number)
     {
        cout <<"Incrivel, voce passou com merito. \n";
     }
 else if (nota >= 50)
     {
         cout<<”Você passou \n";
     }
     else 
     {
 cout<<”Que pena, você reprovou.\n";
 }
 system (“PAUSE”);
}
Condicional Composta Aninhada
#include <iostream>
#include <cstdlib>
using namespace std;
main()
{
    int number = 75, nota;
    cout <<”Entre com sua nota, por favor \ n";
    cin >> nota;
    if (nota >= number)
     {
        cout <<"Incrivel, voce passou com merito. \n";
     }
 else if (nota >= 50)
     {
         cout<<”Você passou \n";
     }
     else 
     {
 cout<<”Que pena, você reprovou.\n";
 }
 system (“PAUSE”);
}
Condicional Composta Aninhada

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?