230 likes | 375 Views
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. INFORMÁTICA E COMPUTAÇÃO CMP 1060 AULA 6. CONTROLE DE FLUXO ESTRUTURA CONDICIONAL 1.
E N D
Pontifícia Universidade Católica de Goiás PUC GOIÁS Departamento de ComputaçãoInformática e Computação Professor: MSc. Mário Oliveira Orsi Cesar Augusto da Rocha Magalhães
INFORMÁTICA E COMPUTAÇÃOCMP 1060 AULA 6 CONTROLE DE FLUXO ESTRUTURA CONDICIONAL 1
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
Estrutura Condicional O caso geral da instrução if - else: if ( expressão ) instrução1 ; else instrução2 ; IfSe a(expressão) entre osparenteses for VERDADEIRA executo a instrução 1 else senãoexecuto a instrução 2 Exemplo: If(X > Y) X = Y else X = X +1 // 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
Estrutura Condicional O caso geral da instrução if - else: if ( expressão ) instrução1 ; else instrução2 ; IfSe a(expressão) entre osparenteses for VERDADEIRA executo a instrução 1 else senãoexecuto a instrução 2 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
Estrutura Condicional 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. Exemplos: X + Y = Z , X e Y = Z Relações: X > Y o resultado será verdadeiro ou falso. Símbolos Relacionais
Estrutura Condicional Operadores LógicosSÃ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)
Operador Descrição Exemplo && E (5 > 1) && (3>10) && E (2 >1) && (10 > 9) || OU (3> 1) || (10 > 11) || OU (4> 2) || (10 > 5) ! !(5>1) F ! NÃO !(2 > 3) V V V F V V V Estrutura Condicional Resultado FALSO VERDADEIRO VERDADEIRO VERDADEIRO FALSO VERDADEIRO NÃO
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. Entrocom o valor do carro Análise: Preço do carro = 22000,00 Arcondicionado + 2500,00 Dir hidraulica + 2000,00 Pinturametálica + 650,00 Vidroelétrico + 500,00 Trava central + 400,00 Preço final carro 28050,00 Perguntopelosopcionais: Tabela de Preços: Arconcionado R$ 2500,00 Dir . Hidraulica R$ 2000,00 Pinturametálica R$ 650,00 Vidroelétrico R$ 500,00 Trava central R$ 400,00 ‘s’ ‘n’ ‘S’ ‘N’
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. Se não for adicionadonenhumopcional o PRECOFINAL é o valor do preço INICIAL do carro DEFINIÇÃO DAS VARIÁVEIS 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 ‘s’ ‘n’ ‘S’ ‘N’
O preçoinicial do carroserá = preço final semnenhumopcional, entretantoexiste a possibilidade de se querercomprarsó item(s) opcionais PRECOFINAL=preço do carro = 0 // programa PRECOCARRO #include <iostream> usingnamespacestd; 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 DirecaoHidraulica (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 ‘s’ ‘n’ ‘S’ ‘N’
‘s’ ‘n’ ‘S’ ‘N’ // teste da resposta do cliente 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
RASTREAMENTO #include <iostream> usingnamespacestd; 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 DirecaoHidraulica (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"); } 28050 22000 24500 26500 27150 27650 0 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 carroaut.exe
Estrutura Condicional Composta if ( expressão ) instrução1 ; else instrução2; Exemplo 1 Desenvolver um programa para entrar comdois números e exibir omaiorentre 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 // prog para exibir o maior de 2 numeros X e Y RASTREAMENTO 587 943
// programa que verifica se um número é par ou ímpar*/ #include <iostream> usingnamespacestd; main( ) { int N; cout << " Digite um numero inteiro: "; cin >> N ; if ( N % 2 == 0 ) cout << N << " Eh par \n "; elsecout<< N << " Eh impar \n "; system ("PAUSE") } parimpar.exe Analise N| 2 ` 0 quociente PAR
ERROS FREQUENTES Provavelmente aquilo que queriam fazer era: if(...) { instrução1; instrução2; } Se a (express..) verdadeira Executo inst. 1 e inst. 2 if(...) instrução1; instrução2; Desta forma : Se a (expressão) for verdadeira Executoapenas a inst. 1 Se for falsapulo 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 { }
Exemplos de uso de estrutura condicional simples X composta Condicional Simples #include <iostream> usingnamespacestd; main(){ intnumber = 75, nota; cout<<“Entre com sua nota, por favor \n"; cin>>nota; if (nota >= number) { cout << "Incrivel, voce passou com merito.\n"); } system ("PAUSE") }
#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> usingnamespacestd; main(){ intnumber = 75, nota;cout <<”Entre com sua nota, por favor \ n";cin >> nota;if (nota >= number){cout <<"Incrivel, voce passou com merito. \n"; } elseif (nota >= 50) {cout<<”Você passou \n"; }else{ cout<<”Que pena, você reprovou.\n"; } system (“PAUSE”); } Condicional Composta Aninhada
#include <iostream> #include <cstdlib> usingnamespacestd; main(){ intnumber = 75, nota;cout <<”Entre com sua nota, por favor \ n";cin >> nota;if (nota >= number){cout <<"Incrivel, voce passou com merito. \n"; } elseif (nota >= 50) {cout<<”Você passou \n"; }else{ cout<<”Que pena, você reprovou.\n"; } system (“PAUSE”); } Condicional Composta Aninhada