Buscar

Introdução a lógica de programação

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 96 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 96 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 9, do total de 96 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

Prévia do material em texto

INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO
Prof. ANITA LOPES
OBJETIVOS
 Identificar quando utilizar uma estrutura de decisão;
 Operadores Relacionais;
 Operadores Lógicos;
 Implementar estruturas de decisão em C++.
Prof. ANITA LOPES
ESTRUTURAS DE DECISÃO
Qual o caminho? 
if(teste)
if (teste)else...
if(teste)else if(teste) ...
switch()
Qual escolher?
Prof. ANITA LOPES
ESTRUTURAS DE DECISÃO
 
 Muitas vezes em nossos programas precisaremos tomar uma decisão, ou várias, para que certas situações aconteçam.
Nesses momentos, teremos que fazer uso da estrutura de decisão.
Assim como em nossas vidas, muitas vezes nossos programas precisarão verificar condições para que possa decidir quais instruções deverão ser executadas. Em outras palavras: existem conjuntos diferentes de ações cuja execução de um deles depende do resultado de um teste.
 
Conhecido como estrutura de decisão, seleção ou condicional.
 
Mesmo para quem entende, reconheço que é muito mágico todo esse processo. Observe a sequência de figuras a seguir. 
Prof. ANITA LOPES
ESTRUTURAS DE DECISÃO
Você pressiona as teclas6789e pressiona a teclaenter.
O que você digitou é enviado através de um barramento até chegar ao registrador e, depois, armazenado na memória principal.
Nesse momento, começa a execução daestrutura doif. São várias etapas. Os dados e ordens são enviados paraUAL.
O detalhamento a seguir não implica que seja exatamente assim o envio do teste para UAL.
Prof. ANITA LOPES
ESTRUTURAS DE DECISÃO
Enviando a operação de comparação a ser realizada.
Enviando a senha que veio do Banco de Dados.
Retorno da “resposta” daUAL.
O detalhamento a seguir não implica que seja exatamente assim o envio do teste para UAL.
Prof. ANITA LOPES
ESTRUTURAS DE DECISÃO
Sinalizando para o usuário que a senha é inválida.
O detalhamento a seguir não implica que seja exatamente assim o envio do teste para UAL.
Prof. ANITA LOPES
ESTRUTURAS DE DECISÃO
Os matemáticos que contribuíram, significativamente, para a história da computação eram filósofos e foi aí que tive a certeza de que deveria começar filosofando sobre a conjunção subordinativa condicional/ partícula expletiva/ pronome reflexivo/ conectivo ou qualquer outra denominação que queiram dar a(o): se 
 
Fique pensando como seria a vida de cada um, se não tivesse acontecido isso, ou aquilo. Talvez alguns diriam que se não tivesse acontecido ... , então hoje eu não seria o que sou. Afirmativa reticente porque será que hoje ele é feliz, ou infeliz?
 
Você já contabilizou quantas vezes disse: se eu ganhar aumento, então ...; se eu não precisar fazer a terceira prova, então ...; se não chover, então ...; se eu conseguir que me emprestem um carro, então ...; se eu não for trabalhar nesse final de semana, então ...; se meu time vencer, então ...; se eu ganhar na mega-sena, então ...; se eu juntar dinheiro então compro 10 abadás e vou passar o carnaval na Bahia, ou então vou para Jeriquaquara, ou então para Porto das Galinhas ou então ... e tudo isso depende de um simples, se.
 
Quando estava escrevendo esse texto, lembrei-me de amigos de infância que trilharam caminhos diferentes dos meus e que, após muito tempo, nos encontramos e hoje caminhamos na mesma estrada. 
Prof. ANITA LOPES
ESTRUTURA DE DECISÃO - if
 
 Simples - quando somente será executado o bloco, que poderá ter somente uma instrução, se a condição lógica for verdadeira.
 Composta - quando desejarmos que um bloco seja executado quando a condição for verdadeira e um outro bloco quando a condição for falsa.
 Encadeadas – quando tivermos pelo menos três possibilidades de respostas.
Prof. ANITA LOPES
 
 Antes de apresentarmos as sintaxes dessas estruturas, estudaremos os operadores relacionais e lógicos. 
Obs: Todos têm a mesma hierarquia
ESTRUTURA DE DECISÃO - if
Prof. ANITA LOPES
 
 Antes de apresentarmos as sintaxes dessas estruturas, estudaremos os operadores relacionais e lógicos. 
Obs: Todos têm a mesma hierarquia
Obs: 
!(not) tem maior hierarquia, seguido do &&(and) e, depois,
 ||(or)
ESTRUTURA DE DECISÃO - if
Prof. ANITA LOPES
!
&&
||
 
 Antes de apresentarmos as sintaxes dessas estruturas, estudaremos os operadores relacionais e lógicos. 
Obs: 
!(not) tem maior hierarquia, seguido do &&(and) e, depois,
 ||(or)
E - entrada
S - saída
E1 – entrada 1
E2 - entrada2
S - saída
As duas precisam ser V
E1 – entrada 1
E2 - entrada2
S - saída
Somente uma precisa ser V
ESTRUTURA DE DECISÃO - if
Prof. ANITA LOPES
EXPRESSÕES RELACIONAIS 
Expressão relacional
notaProva >= 6 CERTA / valor = 0 ERRADA 
Prof. ANITA LOPES
Expressão relacional
salario >=1500 && salario < 2000 CERTA / letra >='A' && <= 'Z' ERRADA 
EXPRESSÕES RELACIONAIS e LÓGICAS 
Expressão relacional
notaProva >= 6 CERTA / valor = 0 ERRADA 
Prof. ANITA LOPES
Expressão relacional
notaProva >= 6 CERTA / valor == 0 CERTA 
salario >=1500 && salario < 2000 CERTA / letra >='A' && letra <='Z' CERTA
EXPRESSÕES RELACIONAIS e LÓGICAS 
Expressão relacional
Prof. ANITA LOPES
idade ≥ 18				idade >= 18
Se o sexo é feminino(F ou f)	sexo == 'F' || sexo == 'f‘ 
 					
					
IMC ≤ 24				IMC <= 24				
denominador ≠ 0			denominador != 0
100≤numero ≤ 999		numero > = 100 && numero <= 999
Teste para saber se é par ou ímpar	 numero % 2 == 0	
EXPRESSÕES RELACIONAIS e LÓGICAS - Praticando
ATENÇÃO para '
Prof. ANITA LOPES
idade ≥ 18				idade >= 18
Se o sexo é feminino(F ou f)	sexo == 'F' || sexo == 'f‘ 
 					sexo == 'F' || sexo == 'f'
					 
IMC ≤ 24				IMC <= 24				
denominador ≠ 0			denominador != 0
100≤numero ≤ 999		numero > = 100 && numero <= 999
Teste para saber se é par ou ímpar	 numero % 2 == 0	
EXPRESSÕES RELACIONAIS e LÓGICAS - Praticando
ATENÇÃO para '
Prof. ANITA LOPES
idade ≥ 18				idade >= 18
Se o sexo é feminino(F ou f)	
 					sexo == 'F' || sexo == 'f'
					 ou toupper(sexo) == 'F'
IMC ≤ 24				IMC <= 24				
denominador ≠ 0			denominador != 0
100≤numero ≤ 999		numero > = 100 && numero <= 999
Teste para saber se é par ou ímpar	 numero % 2 == 0	
UMA CURIOSIDADE – toupper()
Biblioteca cctype 
EXPRESSÕES RELACIONAIS e LÓGICAS - Praticando
Prof. ANITA LOPES
if(teste)
{
 ...
}
if SIMPLES
Prof. ANITA LOPES
Mais de
um
comando
OBRIGATÓRIAS
if(teste)
{
 ...
}
if SIMPLES
Prof. ANITA LOPES
Só
um
comando
DISPENSÁVEIS
if SIMPLES
if(teste)
 _;
Prof. ANITA LOPES
Construa um programa que receba o nome de uma pessoa que prestou concurso e o total de pontos que ela conseguiu nas provas.
O nome deverá ser exibido caso tenha alcançado 90, ou mais, pontos. 
if SIMPLES – Exemplo 1
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
int main()
{
 int pontos;
 string nome;
 cout<<"\nNome: "; getline(cin,nome);
 cout<<"\nPontos: "; cin>>pontos;
 if(pontos >= 80)
 { //Pode retirar
 cout<<"\n"<< nome<<"\n";
 } //Pode retirar
 system("pause");
} 
if SIMPLES – Exemplo 1
Prof. ANITA LOPES
Nome: JOAO RENATO
Pontos: 99
JOAO RENATO
Pressione qualquer tecla para continuar. . .
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
int main()
{
 int pontos;
 string nome;
 cout<<"\nNome: "; getline(cin,nome);
 cout<<"\nPontos: "; cin>>pontos;
 if(pontos >= 80)
 { //Pode retirar
 cout<<"\n"<< nome<<"\n";
 } //Pode retirar
 system("pause");
} 
if SIMPLES – Exemplo 1
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
int main()
{
 int pontos;
 string nome;
 cout<<"\nNome: "; getline(cin,nome);cout<<"\nPontos: "; cin>>pontos;
 if(pontos >= 80)
 { //Pode retirar
 cout<<"\n"<< nome<<"\n";
 } //Pode retirar
 system("pause");
} 
Nome: JOAO RENATO
Pontos: 99
JOAO RENATO
Pressione qualquer tecla para continuar. . .
Nome: RICARDO SM
Pontos: 29
Pressione qualquer tecla para continuar. . .
if SIMPLES – Exemplo 1
Prof. ANITA LOPES
Construa um programa que receba três valores reais e, através de uma comparação por combinação 2 a 2 com troca dos conteúdos das varáveis, exiba em ordem crescente.
if SIMPLES - Exemplo 2
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 double a,b,c, aux;
 cout<<"\nPrimeiro numero: "; cin>>a;
 cout<<"\nSegundo numero : "; cin>>b; 
 cout<<"\nTerceiro numero: "; cin>>c;
 if(a > b)
 { aux = a; a = b; b = aux; }
 if( a > c)
 { aux = a; a = c; c = aux; } 
 if( b > c)
 { aux = b; b = c; c = aux; } 
 cout<<"\n"<<a<<"\t"<<b<<"\t"<<c<<"\n"; 
 system("pause");
}
a
b
c
aux
23
6
18
if SIMPLES - Exemplo 2
Prof. ANITA LOPES
a
b
c
aux
23
6
18
23
if SIMPLES - Exemplo 2
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 double a,b,c, aux;
 cout<<"\nPrimeiro numero: "; cin>>a;
 cout<<"\nSegundo numero : "; cin>>b; 
 cout<<"\nTerceiro numero: "; cin>>c;
 if(a > b)
 { aux = a; a = b; b = aux; }
 if( a > c)
 { aux = a; a = c; c = aux; } 
 if( b > c)
 { aux = b; b = c; c = aux; } 
 cout<<"\n"<<a<<"\t"<<b<<"\t"<<c<<"\n"; 
 system("pause");
}
Prof. ANITA LOPES
a
b
c
aux
23
6
6
18
23
if SIMPLES - Exemplo 2
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 double a,b,c, aux;
 cout<<"\nPrimeiro numero: "; cin>>a;
 cout<<"\nSegundo numero : "; cin>>b; 
 cout<<"\nTerceiro numero: "; cin>>c;
 if(a > b)
 { aux = a; a = b; b = aux; }
 if( a > c)
 { aux = a; a = c; c = aux; } 
 if( b > c)
 { aux = b; b = c; c = aux; } 
 cout<<"\n"<<a<<"\t"<<b<<"\t"<<c<<"\n"; 
 system("pause");
}
Prof. ANITA LOPES
a
b
c
aux
23
6
6
23
18
23
if SIMPLES - Exemplo 2
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 double a,b,c, aux;
 cout<<"\nPrimeiro numero: "; cin>>a;
 cout<<"\nSegundo numero : "; cin>>b; 
 cout<<"\nTerceiro numero: "; cin>>c;
 if(a > b)
 { aux = a; a = b; b = aux; }
 if( a > c)
 { aux = a; a = c; c = aux; } 
 if( b > c)
 { aux = b; b = c; c = aux; } 
 cout<<"\n"<<a<<"\t"<<b<<"\t"<<c<<"\n"; 
 system("pause");
}
Prof. ANITA LOPES
a
b
c
aux
23
6
6
6
23
23
18
18
23
if SIMPLES - Exemplo 2
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 double a,b,c, aux;
 cout<<"\nPrimeiro numero: "; cin>>a;
 cout<<"\nSegundo numero : "; cin>>b; 
 cout<<"\nTerceiro numero: "; cin>>c;
 if(a > b)
 { aux = a; a = b; b = aux; }
 if( a > c)
 { aux = a; a = c; c = aux; } 
 if( b > c)
 { aux = b; b = c; c = aux; } 
 cout<<"\n"<<a<<"\t"<<b<<"\t"<<c<<"\n"; 
 system("pause");
}
Prof. ANITA LOPES
a
b
c
aux
23
6
6
6
6
23
23
18
18
23
23
if SIMPLES - Exemplo 2
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 double a,b,c, aux;
 cout<<"\nPrimeiro numero: "; cin>>a;
 cout<<"\nSegundo numero : "; cin>>b; 
 cout<<"\nTerceiro numero: "; cin>>c;
 if(a > b)
 { aux = a; a = b; b = aux; }
 if( a > c)
 { aux = a; a = c; c = aux; } 
 if( b > c)
 { aux = b; b = c; c = aux; } 
 cout<<"\n"<<a<<"\t"<<b<<"\t"<<c<<"\n"; 
 system("pause");
}
Prof. ANITA LOPES
a
b
c
aux
23
6
6
6
6
23
23
18
18
18
23
23
if SIMPLES - Exemplo 2
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 double a,b,c, aux;
 cout<<"\nPrimeiro numero: "; cin>>a;
 cout<<"\nSegundo numero : "; cin>>b; 
 cout<<"\nTerceiro numero: "; cin>>c;
 if(a > b)
 { aux = a; a = b; b = aux; }
 if( a > c)
 { aux = a; a = c; c = aux; } 
 if( b > c)
 { aux = b; b = c; c = aux; } 
 cout<<"\n"<<a<<"\t"<<b<<"\t"<<c<<"\n"; 
 system("pause");
}
Prof. ANITA LOPES
a
b
c
aux
23
6
6
6
6
23
23
18
18
18
23
23
23
if SIMPLES - Exemplo 2
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 double a,b,c, aux;
 cout<<"\nPrimeiro numero: "; cin>>a;
 cout<<"\nSegundo numero : "; cin>>b; 
 cout<<"\nTerceiro numero: "; cin>>c;
 if(a > b)
 { aux = a; a = b; b = aux; }
 if( a > c)
 { aux = a; a = c; c = aux; } 
 if( b > c)
 { aux = b; b = c; c = aux; } 
 cout<<"\n"<<a<<"\t"<<b<<"\t"<<c<<"\n"; 
 system("pause");
}
Prof. ANITA LOPES
if(teste)
{
 ...
}
else
{
 ...
}
if COMPOSTO
Prof. ANITA LOPES
OBRIGATÓRIAS
Mais de
um
comando
Mais de
um
comando
if(teste)
{
 ...
}
else
{
 ...
}
if COMPOSTO
Prof. ANITA LOPES
if(teste)
 _ ;
else
 _ ;
DISPENSÁVEIS
Só
um
comando
Só
um
comando
if COMPOSTO
Prof. ANITA LOPES
if(teste)
{
 ...
}
else
_ ;
DISPENSÁVEIS
Mais de
um
comando
Só
um
comando
OBRIGATÓRIAS
if COMPOSTO
Prof. ANITA LOPES
Só
um
comando
DISPENSÁVEIS
Mais de
um
comando
OBRIGATÓRIAS
if(teste)
_ ;
else
{
 ...
}
if COMPOSTO
Prof. ANITA LOPES
if COMPOSTO - Exemplo 1
Construa um programa que receba dois tempos de uma prova de nado livre e exiba o melhor tempo.
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 float tempo1, tempo2;
 cout<<"\nPrimeiro tempo: "; cin>>tempo1;
 cout<<"\nSegundo tempo: "; cin>>tempo2; 
 if( tempo1 < tempo2)
 cout<<"\n"<<tempo1;
 else
 cout<<"\n"<<tempo2;
 cout<<endl<<endl;
 system("pause");
}
if COMPOSTO - Exemplo 1
Prof. ANITA LOPES
Primeiro tempo: 27
Segundo tempo: 27.01
27
Pressione qualquer tecla para continuar. . .
if COMPOSTO - Exemplo 1
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 float tempo1, tempo2;
 cout<<"\nPrimeiro tempo: "; cin>>tempo1;
 cout<<"\nSegundo tempo: "; cin>>tempo2; 
 if( tempo1 < tempo2)
 cout<<"\n"<<tempo1;
 else
 cout<<"\n"<<tempo2;
 cout<<endl<<endl;
 system("pause");
}
Prof. ANITA LOPES
Primeiro tempo: 27.24
Segundo tempo: 27.123
27.123
Pressione qualquer tecla para continuar. . .
if COMPOSTO - Exemplo 1
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 float tempo1, tempo2;
 cout<<"\nPrimeiro tempo: "; cin>>tempo1;
 cout<<"\nSegundo tempo: "; cin>>tempo2; 
 if( tempo1 < tempo2)
 cout<<"\n"<<tempo1;
 else
 cout<<"\n"<<tempo2;
 cout<<endl<<endl;
 system("pause");
}
Primeiro tempo: 27
Segundo tempo: 27.01
27
Pressione qualquer tecla para continuar. . .
Prof. ANITA LOPES
Construa um programa que deixe entrar com número, obrigatoriamente positivo, com três algarismos e exiba uma das mensagens: Numero tem tres algarismos ou Numero nao tem tres algarismos.
if COMPOSTO - Exemplo 2
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 int n;
 cout<<"\nNumero com tres algarismos: "; cin>>n;
 if( n >= 100 && n <= 999)
 cout<<"\nNumero tem tres algarismos\n";
 else
 cout<<"\nNumero nao tem tres algarismos\n";
 cout<<"\n\n";
 system("pause");
} 
if COMPOSTO - Exemplo 2
Prof. ANITA LOPES
Numero com tres algarismos: 156
Numero tem tres algarismos
Pressione qualquer tecla para continuar. . .
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 int n;
 cout<<"\nNumero com tres algarismos: "; cin>>n;
 if( n >= 100 && n <= 999)
 cout<<"\nNumero tem tres algarismos\n";
 else
 cout<<"\nNumero nao tem tres algarismos\n";
 cout<<"\n\n";
 system("pause");
} 
if COMPOSTO - Exemplo 2
Prof. ANITA LOPES
Numero com tres algarismos: 1962
Numero naotem tres algarismos
Pressione qualquer tecla para continuar. . .
Numero com tres algarismos: 156
Numero tem tres algarismos
Pressione qualquer tecla para continuar. . .
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 int n;
 cout<<"\nNumero com tres algarismos: "; cin>>n;
 if( n >= 100 && n <= 999)
 cout<<"\nNumero tem tres algarismos\n";
 else
 cout<<"\nNumero nao tem tres algarismos\n";
 cout<<"\n\n";
 system("pause");
} 
if COMPOSTO - Exemplo 2
Prof. ANITA LOPES
Numero com tres algarismos: -156
Numero tem tres algarismos
Pressione qualquer tecla para continuar. . .
Numero com tres algarismos: -1962
Numero nao tem tres algarismos
Pressione qualquer tecla para continuar. . .
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 int n;
 cout<<"\nNumero com tres algarismos: "; cin>>n;
 if( abs(n) >= 100 && abs(n) <= 999)
 cout<<"\nNumero tem tres algarismos\n";
 else
 cout<<"\nNumero nao tem tres algarismos\n";
 cout<<"\n\n";
 system("pause");
} 
if COMPOSTO - Exemplo 2
UMA CURIOSIDADE – Usando a função abs( ), o programa aceita números negativos.
Prof. ANITA LOPES
ifs ENCADEADOS
if(teste)
{
...
}
else if(teste)
 {
 ...
 }
 else
 {
 ...
 }
Prof. ANITA LOPES
ifs ENCADEADOS
OBRIGATÓRIAS
Mais de
um
comando
Mais de
um
comando
Mais de
um
comando
if(teste)
{
...
}
else if(teste)
 {
 ...
 }
 else
 {
 ...
 }
Prof. ANITA LOPES
ifs ENCADEADOS
DISPENSÁVEIS
Só um comando
if(teste)
_ ;
else if(teste)
 _ ;
 else
 _ ;
Só um
comando
Só um
comando
Prof. ANITA LOPES
ifs ENCADEADOS
Desenvolva um programa em C++ que deixe entrar com três números e exiba o menor deles.
Desenvolva um programa em C++ que deixe entrar com três números e armazene em variáveis os dois maiores valores. Ao final, exiba os dois.
Prof. ANITA LOPES
ifs ENCADEADOS - Exemplos 1 e 2
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{ double a,b,c;
 cout<<"\n1o numero: "; cin>>a;
 cout<<"\n2o numero: "; cin>>b; 
 cout<<"\n3o numero: "; cin>>c;
 if( a < b && a < c )
 cout<<a<<"\n"; // { m1=b; m2=c;}
 else if( b < c )
 cout<<b<<"\n"; // { m1=a; m2=c;}
 else
 cout<<c<<"\n"; // { m1=a; m2=b;}
 //cout<<m1<< "\t" << m1 <<"\n"; 
system("pause");
}
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{ double a,b,c;
 cout<<"\n1o numero: "; cin>>a;
 cout<<"\n2o numero: "; cin>>b; 
 cout<<"\n3o numero: "; cin>>c;
 if( a < b && a < c )
 cout<<a<<"\n"; 
 else if( b < c )
 cout<<b<<"\n"; 
 else
 cout<<c<<"\n"; 
 system("pause");
}
ifs ENCADEADOS - Exemplo 1
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{ double a,b,c, m1, m2;
 cout<<"\n1o numero: "; cin>>a;
 cout<<"\n2o numero: "; cin>>b; 
 cout<<"\n3o numero: "; cin>>c;
 if( a < b && a < c )
 { m1=b; m2=c;}
 else if( b < c )
 { m1=a; m2=c;}
 else
 { m1=a; m2=b;}
 cout<<m1<< "\t" << m2 <<"\n"; 
system("pause");
}
ifs ENCADEADOS - Exemplo 2
Prof. ANITA LOPES
Construa um programa que receba que receba três valores reais e exiba em ordem crescente. 
ifs ENCADEADOS - Exemplo 3
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{ double a,b,c;
 cout<<"\nPrimeiro numero: "; cin>>a;
 cout<<"\nSegundo numero : "; cin>>b; 
 cout<<"\nTerceiro numero: "; cin>>c;
 if(a < b)
 {
 if(c < a)
 cout<<"\n"<<c<<"\t"<<a<<"\t"<<b<<"\n"; 
 else
 {
 if(c < b)
 cout<<"\n"<<a<<"\t"<<c<<"\t"<<b<<"\n"; 
 else
 cout<<"\n"<<a<<"\t"<<b<<"\t"<<c<<"\n"; 
 }
 }
ifs ENCADEADOS - Exemplo 3
Prof. ANITA LOPES
else
 {
 if(c < b)
 cout<<"\n"<<c<<"\t"<<b<<"\t"<<a<<"\n"; 
 else
 {
 if(c < a)
 cout<<"\n"<<b<<"\t"<<c<<"\t"<<a<<"\n"; 
 else
 cout<<"\n"<<b<<"\t"<<a<<"\t"<<c<<"\n"; 
 }
 }
 system("pause");
}
ifs ENCADEADOS - Exemplo 3
Prof. ANITA LOPES
else
 {
 if(c < b)
 cout<<"\n"<<c<<"\t"<<b<<"\t"<<a<<"\n"; 
 else
 {
 if(c < a)
 cout<<"\n"<<b<<"\t"<<c<<"\t"<<a<<"\n"; 
 else
 cout<<"\n"<<b<<"\t"<<a<<"\t"<<c<<"\n"; 
 }
 }
 system("pause");
}
ifs ENCADEADOS - Exemplo 3
UMA CURIOSIDADE 
Se trocarmos o operador < por >, teremos a ordem decrescente.
Prof. ANITA LOPES
Posso usar vários ifs simples ou misturar ifs simples com if composto para obter o mesmo resultado dos ifs encadeados? 
UMA DÚVIDA MUITO COMUM
Prof. ANITA LOPES
Misturar if simples com if composto, NÃO! Entretanto, não posso dizer que não se pode usar só ifs simples, mas isso torna seu programa mais lento pela quantidade de testes que serão sempre realizados.
Posso usar vários ifs simples ou misturar ifs simples com if composto para obter o mesmo resultado dos ifs encadeados? 
UMA DÚVIDA MUITO COMUM
Prof. ANITA LOPES
Claro!
Pode dar um exemplo? 
UMA DÚVIDA MUITO COMUM
Prof. ANITA LOPES
EXEMPLO : Testar um número para saber se é positivo negativo ou nulo
Ifs SIMPLES
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 double a;
 cout<<"\nNumero: "; cin>>a;
 if(a > 0 )
 cout<<"\nPOSITIVO\n";
 if( a == 0)
 cout<<"\nNULO\n"; 
 if( a < 0 )
 cout<<"\nNEGATIVO\n"; 
 system("pause");
}
if(num > 0)
 cout << "\nPositivo\n";
if(num < 0)
 cout << "\nNegativo\n";
if(num == 0)
 cout << "\nNulo\n";
Prof. ANITA LOPES
if(num > 0)
 cout << "\nPositivo\n";
else if(num < 0 )
 cout << "\nNegativo\n";
 else cout << "\nNulo\n“;
Ifs ENCADEADOS
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 double a;
 cout<<"\nNumero: "; cin>>a;
 if(a > 0 )
 cout<<"\nPOSITIVO\n";
 else if( a == 0)
 cout<<"\nNULO\n"; 
 else
 cout<<"\nNEGATIVO\n"; 
 system("pause");
}
EXEMPLO : Testar um número para saber se é positivo negativo ou nulo
Prof. ANITA LOPES
Ifs SIMPLES
Ambos exibem no display o resultado CORRETO, mas o segundo é mais eficiente, visto que só realiza um novo teste quando necessário.
EXEMPLO : Testar um número para saber se é positivo negativo ou nulo
if(num > 0)
 cout << "\nPositivo\n";
if(num < 0)
 cout << "\nNegativo\n";
if(num == 0)
 cout << "\nNulo\n";
if(num > 0)
 cout << "\nPositivo\n";
else if(num < 0 )
 cout << "\nNegativo\n";
 else cout << "\nNulo\n“;
Ifs ENCADEADOS
Prof. ANITA LOPES
if(num > 0)
 cout << "\nPositivo\n";
if(num < 0)
 cout << "\nNegativo\n";
else
 cout << "\nNegativo\n“; 
Ifs SIMPLES e if COMPOSTO
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 double a;
 cout<<"\nNumero: "; cin>>a;
 if(a > 0 )
 cout<<"\nPOSITIVO\n";
 if( a == 0)
 cout<<"\nNULO\n"; 
 else
 cout<<"\nNEGATIVO\n"; 
 system("pause");
}
EXEMPLO : Testar um número para saber se é positivo negativo ou nulo
Prof. ANITA LOPES
if(num > 0)
 cout << "\nPositivo\n";
else if(num < 0 )
 cout << "\nNegativo\n";
 else cout << "\nNulo\n“;
Ifs ENCADEADOS
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 double a;
 cout<<"\nNumero: "; cin>>a;
 if(a > 0 )
 cout<<"\nPOSITIVO\n";
 else if( a == 0)
 cout<<"\nNULO\n"; 
 else
 cout<<"\nNEGATIVO\n"; 
 system("pause");
}
EXEMPLO : Testar um número para saber se é positivo negativoou nulo
Prof. ANITA LOPES
PROBLEMA 
com if simples e if composto
if(num > 0)
 cout << "\nPositivo\n";
else if(num < 0 )
 cout << "\nNegativo\n";
 else cout << "\nNulo\n“;
Ifs ENCADEADOS
if(num > 0)
 cout << "\nPositivo\n";
if(num < 0)
 cout << "\nNegativo\n";
else
 cout << "\nNegativo\n“; 
Ifs SIMPLES e if COMPOSTO
EXEMPLO : Testar um número para saber se é positivo negativo ou nulo
Prof. ANITA LOPES
PROBLEMA 
com if simples e if composto
if(num > 0)
 cout << "\nPositivo\n";
else if(num < 0 )
 cout << "\nNegativo\n";
 else cout << "\nNulo\n“;
Ifs ENCADEADOS
Numero: 23
POSITIVO
NEGATIVO
Pressione qualquer tecla para continuar. . .
if(num > 0)
 cout << "\nPositivo\n";
if(num < 0)
 cout << "\nNegativo\n";
else
 cout << "\nNegativo\n“; 
Ifs SIMPLES e if COMPOSTO
EXEMPLO : Testar um número para saber se é positivo negativo ou nulo
Prof. ANITA LOPES
Por que não tem ; depois do if(teste) ?
OUTRA DÚVIDA MUITO COMUM
Prof. ANITA LOPES
Porque, se assim tivesse, tudo depois não diria respeito ao if, pois o ; na linguagem C++ finaliza qualquer instrução ou estrutura.
O trecho do if, ou do else, é finalizado com o ; de uma instrução ou com a } que fecha o bloco. 
OUTRA DÚVIDA MUITO COMUM
Por que não tem ; depois do if(teste) ?
Prof. ANITA LOPES
Pode me falar sobre OPERADOR TERNÁRIO?
UMA PERGUNTA: PODE EXPLICAR O OPERADOR TERNÁRIO?
Prof. ANITA LOPES
Pode me falar sobre OPERADOR TERNÁRIO?
A linguagem C++ tem muitas heranças da linguagem C.
Essa é uma das que acho mais elegante.
Irei aproveitar um exemplo dado nessa aula.
UMA PERGUNTA: PODE EXPLICAR O OPERADOR TERNÁRIO?
Prof. ANITA LOPES
Poderá, de forma mais simples, substituir a estrutura do if(teste) quando só existe uma instrução.
UMA PERGUNTA: PODE EXPLICAR O OPERADOR TERNÁRIO?
<teste> ? Expressão para Verdade : Expressão para Falso; 
Prof. ANITA LOPES
if( a < b && a < c )
 cout<<a<<"\n"; 
 else if( b < c )
 cout<<b<<"\n"; 
 else
 cout<<c<<"\n"; 
UMA PERGUNTA: PODE EXPLICAR O OPERADOR TERNÁRIO?
<teste> ? Expressão para Verdade : Expressão para Falso; 
Prof. ANITA LOPES
z= a < b && a < c ? a : b < c? b: c;
cout<<"\nMenor: "<< z <<"\n"; 
if( a < b && a < c )
 cout<<a<<"\n"; 
 else if( b < c )
 cout<<b<<"\n"; 
 else
 cout<<c<<"\n"; 
UMA PERGUNTA: PODE EXPLICAR O OPERADOR TERNÁRIO?
<teste> ? Expressão para Verdade : Expressão para Falso; 
Prof. ANITA LOPES
if( a < b && a < c )
 cout<<a<<"\n"; 
 else if( b < c )
 cout<<b<<"\n"; 
 else
 cout<<c<<"\n"; 
UMA PERGUNTA: PODE EXPLICAR O OPERADOR TERNÁRIO?
<teste> ? Expressão para Verdade : Expressão para Falso; 
 (a<b && a<c)? cout<<a<<"\n": (b<c)? cout<<b<<"\n": cout<<c<<"\n";
Você poderá exibir também sem armazenar em uma variável.
z= a < b && a < c ? a : b < c? b: c;
cout<<"\nMenor: "<< z <<"\n"; 
Prof. ANITA LOPES
<teste> ? Expressão para Verdade : Expressão para Falso; 
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{ double a,b,c;
 cout<<"\n1o numero: "; cin>>a;
 cout<<"\n2o numero: "; cin>>b; 
 cout<<"\n3o numero: "; cin>>c;
 (a<b && a<c)? cout<<a<<"\n": (b<c)? cout<<b<<"\n":cout<<c<<"\n";
 system( "pause>NULL" );
}
Prof. ANITA LOPES
ESTRUTURA ALTERNATIVA PARA ifs encadeados - switch()
switch( nomeVariavel )
{
 case <valor 1>: bloco 1 de comandos;
 break;
 case <valor 2>: bloco 2 de comandos;
 break;
 case <valor 3>: bloco 3 de comandos;
 break;
 case <valor n>: bloco n de comandos;
 break;
default: bloco;
}
Prof. ANITA LOPES
ESTRUTURA ALTERNATIVA PARA ifs encadeados - switch()
Quando poderei usar?
Prof. ANITA LOPES
ESTRUTURA ALTERNATIVA PARA ifs encadeados - switch()
Quando poderei usar?
Quando você puder responder SIM às três perguntas abaixo:
É a mesma variável em todos os testes?
 O tipo da variável é enumerável?
Operador Relacional é == ? **
Prof. ANITA LOPES
ESTRUTURA ALTERNATIVA PARA ifs encadeados - switch()
Prof. ANITA LOPES
SIM
SIM
ESTRUTURA ALTERNATIVA PARA ifs encadeados - switch()
SIM
Prof. ANITA LOPES
SIM
SIM
SIM
NÃO
SIM
NÃO
ESTRUTURA ALTERNATIVA PARA ifs encadeados - switch()
Prof. ANITA LOPES
SIM
NÃO
NÃO
SIM
NÃO
SIM
ESTRUTURA ALTERNATIVA PARA ifs encadeados - switch()
SIM
SIM
SIM
Prof. ANITA LOPES
ESTRUTURA switch() - Exemplo 1
Construa um programa que deixe entrar com uma idade e exiba a categoria ou a mensagem Nao existe categoria para essa idade.
 8 - 11 –> Mirim
12 - 15 –> Infantil
16 -18 –>Infanto 
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 int idade;
 cout<<"\nDigite Idade "; cin>>idade;
 switch(idade)
 {
 case 8: case 9: case 10: case 11: 
 cout<<"\nMirim\n"; 
 break;
 case 12: 
 case 13: 
 case 14: 
 case 15: cout<<"\nInfantil\n"; 
 break; 
 case 16: case 17: case 18: cout<<"\nInfanto\n"; break;
 default: cout<<"\nNao existe categoria para essa idade\n";
 } 
 system("pause");
}
ESTRUTURA switch() - Exemplo 1
Prof. ANITA LOPES
Digite Idade 15
Infantil
Pressione qualquer tecla para continuar. . .
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 int idade;
 cout<<"\nDigite Idade "; cin>>idade;
 switch(idade)
 {
 case 8: case 9: case 10: case 11: 
 cout<<"\nMirim\n"; 
 break;
 case 12: 
 case 13: 
 case 14: 
 case 15: cout<<"\nInfantil\n"; 
 break; 
 case 16: case 17: case 18: cout<<"\nInfanto\n"; break;
 default: cout<<"\nNao existe categoria para essa idade\n";
 } 
 system("pause");
}
ESTRUTURA switch() - Exemplo 1
Prof. ANITA LOPES
Digite Idade 15
Infantil
Pressione qualquer tecla para continuar. . .
Digite Idade 40
Nao existe categoria para essa idade
Pressione qualquer tecla para continuar. . .
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 int idade;
 cout<<"\nDigite Idade "; cin>>idade;
 switch(idade)
 {
 case 8: case 9: case 10: case 11: 
 cout<<"\nMirim\n"; 
 break;
 case 12: 
 case 13: 
 case 14: 
 case 15: cout<<"\nInfantil\n"; 
 break; 
 case 16: case 17: case 18: cout<<"\nInfanto\n"; break;
 default: cout<<"\nNao existe categoria para essa idade\n";
 } 
 system("pause");
}
ESTRUTURA switch() - Exemplo 1
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 int idade;
 cout<<"\nDigite Idade "; cin>>idade;
 switch(idade)
 {
 case 8 ...11: cout<<"\nMirim\n";
 break;
 case 12 ...15: cout<<"\nInfantil\n";
 break;
 case 16 ...18: cout<<"\nInfanto\n";
 break;
 default: cout<<"\nNao existe categoria\n";
 }
 system("pause");
}
CURIOSIDADE
Pode não funcionar em alguma IDE ou em versões mais antigas da IDE que esteja usando.
Precisa de UM espaço depois do número e antes de ...
Significando que aceitará intervalo
ESTRUTURA switch() - Exemplo 1 **
Digite Idade 14
Infantil
Pressione qualquer tecla para continuar. . .
Prof. ANITA LOPES
É difícil construir um programa que funcione atravésde um Menu?
ESTRUTURA switch() - MENU
Prof. ANITA LOPES
É difícil construir um programa que funcione através de um Menu?
Claro que não, pois vamos fazer o passo a passo.
Você vai gostar. Hoje, não haverá repetição, mas quando estudarmos do...while, ficará D+.
ESTRUTURA switch() - MENU
Prof. ANITA LOPES
ESTRUTURA switch() - Exemplo 2
 MENU
1- AULA 1
2- AULA 2
3- AULA 3
4- AULA 4
5- AULA 5
6- Sair
Opcao:Pressione qualquer tecla para continuar. . .
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 
 cout<<"\n\tMENU\n"; 
 cout<<"\n1- AULA 1";
 cout<<"\n2- AULA 2"; 
 cout<<"\n3- AULA 3";
 cout<<"\n4- AULA 4";
 cout<<"\n5- AULA 5";
 cout<<"\n6- Sair";
 cout<<"\nOpcao:"; 
 
 system("pause");
}
BLOCO 1
Prof. ANITA LOPES
 MENU
1- AULA 1
2- AULA 2
3- AULA 3
4- AULA 4
5- AULA 5
6- Sair
Opcao:3
Pressione qualquer tecla para continuar. . .
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 int op;
 cout<<"\n\tMENU\n";
 cout<<"\n1- AULA 1";
 cout<<"\n2- AULA 2"; 
 cout<<"\n3- AULA 3";
 cout<<"\n4- AULA 4";
 cout<<"\n5- AULA 5";
 cout<<"\n6- Sair";
 cout<<"\nOpcao:"; 
 cin>>op;
 system("pause");
} 
BLOCO 2
ESTRUTURA switch() - Exemplo 2
Prof. ANITA LOPES
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
 int op;
 cout<<"\n\tMENU\n"; 
 cout<<"\n1- AULA 1";
 cout<<"\n2- AULA 2)"; 
 cout<<"\n3- AULA 3";
 cout<<"\n4- AULA 4";
 cout<<"\n5- AULA 5";
 cout<<"\n6- Sair";
 cout<<"\nOpcao:"; 
 cin>>op;
 switch(op)
 {
 case 1: cout<<"\nVisao geral e conceitos\n"; break;
 case 2: cout<<"\ncout / cin/ getline(cin, var))\n"; break; 
 case 3: cout<<"\nEstruturas de Decisao\n"; break;
 case 4: cout<<"\nEstruturas de Repeticao\n"; break; 
 case 5: cout<<"\nVetores\n"; break; 
 default: cout<<"\nNao existe essa opcao\n";
 } 
 system("pause");
}
BLOCO 3
 MENU
1- AULA 1
2- AULA 2
3- AULA 3
4- AULA 4
5- AULA 5
6- Sair
Opcao:3
Estruturas de Decisao
Pressione qualquer tecla para continuar. . .
ESTRUTURA switch() - Exemplo 2
Prof. ANITA LOPES
Espero que goste
Prof. ANITA LOPES

Outros materiais