Buscar

Estruturas de Controle

Prévia do material em texto

Prof. Claudio Cesar de Oliveira Cordeiro
001
claudio_cesar_cordeiro@yahoo.com.br
Seg, 21/10/13
Capítulo 03
Estruturas de Controle
Linguagem de Programação C++
1
Prof. Claudio Cesar de Oliveira Cordeiro
002
claudio_cesar_cordeiro@yahoo.com.br
Desafio para Nerds da Estácio!
Qual o valor que será mostrado na tela no bloco de comandos de um programa C++ abaixo:
cout << endl << endl; 
 cout << 11/2;
 cout << 11.0/2; 
 cout << endl; ?
Ter, 25/08/13
2
Estruturas de Controle
003
claudio_cesar_cordeiro@yahoo.com.br
Nest em Inglês significa ninho (de passarinho etc.) Nested, aninhado!
Linguagem de Programação C++ 
► Estrutura Condicional if ... else
 ► Estrutura if... else if... else ...
► Estrutura if ... else Aninhada, Encadeada ou Nested
 
► Estruturas de Controle
 ► Loop for...
 ► Loop do while...
 ► Estrutura de Escolha switch...
 ► Case 
 ► Break
 ► Default
Estruturas de Controle
3
004
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estruturas de Controle do C++
Estrutura de Controle Condicional 
if... else...
if... else if... else... 
 
Estruturas de Controle
005
claudio_cesar_cordeiro@yahoo.com.br
É possível o incremento ficar fora do loop e dentro do bloco de comandos.
Linguagem de Programação C++ 
if (condição)
 {
 Comandos executados caso condição verdadeira;
 }
else
 {
 Comandos executado caso condição falsa;
 }
Como funciona:
Os comandos entre { ... } imediatamente após a condição (comandos do bloco do if) serão executados caso a condição especificada seja verdadeira. Caso contrário, quando a condição for falsa, os comandos entre { ... } imediatamente após o else (comandos do bloco do else) serão executados . 
Estrutura de Controle Condicional if ... else
O parâmetro:
► A condição pode ser uma expressão qualquer. Por exemplo x <= 10, ((x >0) && (x <=10)), opcao = ‘S’, etc.
Estruturas de Controle
006
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Exemplo 01 – Par ou Ímpar? 
Escrever um programa que verifica se o número é par ou ímpar. Use a Função Módulo e a Estrutura de Controle Condicional if ... else.
Estruturas de Controle
007
claudio_cesar_cordeiro@yahoo.com.br
Listagem completa , comentada e detalhada do programa no SIA!
Linguagem de Programação C++ 
Exemplo 01 – Listagem sem comentários
#include <iostream>
using namespace std;
int main ();
int main ()
{
 int numero=0,resto=0;
 cin >> numero; 
 resto = numero % 2;
 if (resto == 0)
 { 
 cout << endl << "Numero " << numero << " eh par!";
 } 
 else 
 {
 cout << endl << "Numero " << numero << " eh impar!";
 }
 
 cout << endl << endl;
 system ("pause");
 return 0;
}
Estruturas de Controle
008
claudio_cesar_cordeiro@yahoo.com.br
Linguagem de Programação C++ 
Outra forma de escrever if ... else
#include <iostream>
using namespace std;
int main ();
int main ()
{
 int numero=0,resto=0;
 cin >> numero; 
 resto = numero % 2;
 if (resto == 0)
 { cout << endl << "Numero " << numero << " eh par!"; } 
 else 
 { cout << endl << "Numero " << numero << " eh impar!"; }
 
 
 cout << endl << endl;
 system ("pause");
 return 0;
}
ATENÇÃO!
NOTE QUE NÃO EXISTE O PONTO E VÍRGULA NO FINAL DA COMPARAÇÃO, ANTES DO INÍCIO DE BLOCOS DE COMANDO DA CONDIÇÃO TRUE!
Estruturas de Controle
009
claudio_cesar_cordeiro@yahoo.com.br
Listagem completa , comentadCa e detalhada do programa no SIA!
Linguagem de Programação C++ 
Atenção!!! Apesar do else ser opcional ...
#include <iostream>
using namespace std;
int main ();
int main ()
{
 int numero=0,resto=0;
 cin >> numero; 
 resto = numero % 2;
 if (resto == 0)
 { 
 cout << endl << "Numero " << numero << " eh par!";
 } 
 //else
 {
 cout << endl << "Numero " << numero << " eh impar!";
 }
 
 cout << endl << endl;
 system ("pause");
 return 0;
}
Veja o resultado!! 
Cadê o else que tava aqui? (Ele tá, mas não tá! )
Estruturas de Controle
010
claudio_cesar_cordeiro@yahoo.com.br
Outras linguagens usam if ... then... else. No C++ o then está subentendido
Linguagem de Programação C++ 
Estrutura Condicional if ... else if
if (condição_1)
 {
 Comandos se condição_1 verdadeira;
 }
 else if (condição_2)
 {
 Comandos se condição_2 verdadeira;
 }
 else if (condição_3)
 {
 Comandos se condição_3 verdadeira;
 } 
 else 
 {
 Comandos caso nenhuma condição verdadeira;
 } 
Estruturas de Controle
011
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Exemplo 02 – Usando if ... else if... else 
Escrever um programa C++, usando if... else if...
 	que verifica se o número é:
 Menor ou igual a 50
 Maior que 50 e menor ou igual a 100
 Maior que 100 e menor ou igual a 200
 Maior que 200
Estruturas de Controle
012
claudio_cesar_cordeiro@yahoo.com.br
.
.
Linguagem de Programação C++ 
Operadores 
Lógicos 
claudio_cesar_cordeiro@yahoo.com.br
.
.
Circuito Lógico OR (OU)
Circuito Lógico AND (E)
013
Linguagem de Programação C++ 
Circuito Lógico AND (E) 
claudio_cesar_cordeiro@yahoo.com.br
.
Circuito Lógico AND
No circuito AND (E) a saída só será TRUE quando TODAS as entradas forem TRUE, simultaneamente.
014
Linguagem de Programação C++ 
claudio_cesar_cordeiro@yahoo.com.br
.
. 
Circuito Lógico OR (OU)
No circuito OR (OU) se PELO MENOS UMA ENTRADA FOR TRUE, a saída será TRUE.
A saída só será FALSE quando TODAS as entradas forem FALSE, simultaneamente.
Circuito Lógico OR
015
Linguagem de Programação C++ 
15
016
claudio_cesar_cordeiro@yahoo.com.br
.
.
Circuito Lógico OR (OU)
Circuito Lógico AND (E)
Linguagem de Programação C++ 
017
claudio_cesar_cordeiro@yahoo.com.br
Outras linguagens usam if ... then... else. No C++ não temos o then !
Linguagem de Programação C++ 
Exemplo 02 – Condicional if... else if... else
#include <iostream>
using namespace std;
#include <conio.h>
int main ()
{
 int teste;
 cin >> teste; 
 if (teste <= 50)
 {
 cout << "O numero que voce digitou eh menor ou igual que 50.\n"; 
 }
 else if ((teste > 50) && (teste <= 100)) 
 {
 cout << "O numero digitado eh maior que 50 e menor ou igual a 100.\n";
 }
 else if ((teste > 100) && (teste <= 200)) //Operador Lógico AND (&&)
 {
 cout << "O numero digitado eh maior que 100 e menor ou igual a 200.\n";
 }
 else 
 {
 cout << "O numero digitado eh maior que 200\n";
 }
return 0;
}
Estruturas de Controle
018
claudio_cesar_cordeiro@yahoo.com.br
.
.
Linguagem de Programação C++ 
Modelagem de Tipo 
Casting 
019
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Exemplo 03 – Par ou Ímpar Sem %! 
Escrever um programa que verifica se o número é par ou ímpar, sem usar a Função Módulo (%).
Estruturas de Controle
020
claudio_cesar_cordeiro@yahoo.com.br
As variáveis foram declaradas como tipo inteiro, mas divisão de inteiros em C++...
Linguagem de Programação C++ 
Exemplo 03 – Verifica se par/ímpar sem usar % 
#include <iostream>
using namespace std;
int main ();
int main ()
{
 int numero=0,resto=0;
 cin >> numero; 
 resto = ((float)numero/2 - numero/2) * 2;
 if (resto == 0)
 { 
 cout << endl << "Numero " << numero << " eh par!";
 } 
 else{
 cout << endl << "Numero " << numero << " eh impar!";
 }
 
 cout << endl << endl;
 system ("pause");
 return 0;
}
Note o comando C++ abaixo:
((float)numero/2 – numero/2) * 2;
Ele retorna o Resto da Divisão Inteira, sem usarmos a Função Módulo! E a expressão (float)numero/2 faz a Modelagem de Tipo no C++, chamada de Type Cast ou Casting. 
Estruturas de Controle
Na divisão decimal da matemática, sabemos que 11/2 = 5.5. A parte inteira é 5 é Função INTeiro de (10/2) e a parte fracionária 0.5 é FRAC = (11/2) – INT(11/2). Assim sendo, o RESTO = FRAC * DIVISOR (neste caso 2).
021
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Exemplo 04 – Dobro do Par – Quadrado do Ímpar 
Escrever um programa usando if ... else que verifica se o número é par ou ímpar. Se for par e maior do que 10, calcule seu dobro. Se for ímpar e maior ou igual a 5, calcule seu quadrado. ATENÇÃO!
Proibido usar Operadores Lógicos AND e/ou OR.
Estruturas de Controle
022
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Exemplo 04 – Dobro do Par – Quadrado do Ímpar 
Estruturas de Controle
023
claudio_cesar_cordeiro@yahoo.com.br
Os números entre colchetes representam o número da linha na listagem.
Linguagem de Programação C++ 
Estrutura if ... else do Exemplo 04 
Estruturas de Controle
024
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Exemplo 04 – Listagem Resumida – Parte 1/2
#include <iostream>
using namespace std;
#include <math.h>
int main ();
int main ()
{
 int numero=0,resto=0;
 cin >> numero; 
 resto = numero % 2;
 if (resto == 0) 
 { 
 cout << endl << "Numero " << numero << " eh par!" << endl;
 
 if (numero > 10)
 {
 cout << "Como o numero " << numero << " eh par <= 10, seu dobro eh = " << numero*2;
 }
 else 
 {
 cout << "Como numero " << numero << " <= 10, nao sera dobrado.";
 }
 } //Fim do bloco de comandos da condição TRUE do primeiro if
Estruturas de Controle
025
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Exemplo 04 – Listagem Resumida – Parte 2/2
else //Else do primeio if na linha 34
 {
 if (resto != 0) //Não precisa desta linha. E redundante! Deixei para ficar claro 
 { 
 cout << endl << "Numero " << numero << " eh impar!" << endl; 
 if (numero >= 5)
 {
 cout << "Como o numero " << numero << " eh impar >= 5, seu quadrado eh = " << pow(numero,2);
 }
 else 
 {
 cout << "Como numero " << numero << " < 5, nao sera elevado ao quadrado." << endl;
 } 
 } 
 } //Fim do bloco de comandos da condição FALSE do primeiro if 
cout << endl << endl;
 system ("pause");
 return 0;
}
Estruturas de Controle
026
claudio_cesar_cordeiro@yahoo.com.br
É possível o incremento ficar fora do loop e dentro do bloco de comandos.
Estruturas de Controle
Linguagem de Programação C++ 
Estruturas de Controle do C++
Estrutura de Controle 
Loop for... 
027
claudio_cesar_cordeiro@yahoo.com.br
É possível o incremento ficar fora do loop e dentro do bloco de comandos.
Linguagem de Programação C++ 
Estrutura de Controle Loop for ... 
for (variável de iniciação; condição; atualização da variável)
 {
 Comandos do loop;
 }
Como funciona:
Os comandos entre { } serão executados enquanto a condição especificada for verdadeira. Quando a condição for falsa, o loop é interrompido e a execução do programa continua após o fecha chave (}). 
Os parâmetros:
► A variável de iniciação pode ser uma declaração e atribuição de variável (int x = 1) ou uma variável já existente. 
►	A condição pode ser uma expressão como usamos no if ... else. Por exemplo x <= 10, ((x >0) && (x <=10)) etc.
► Atualização da variável normalmente é seu incremento ou decremento. 
Estruturas de Controle
028
claudio_cesar_cordeiro@yahoo.com.br
É possível o incremento ficar fora do loop e dentro do bloco de comandos.
Estruturas de Controle
Linguagem de Programação C++ 
Estruturas de Controle do C++
Incremento e 
Decremento 
029
claudio_cesar_cordeiro@yahoo.com.br
Linguagem de Programação C++ 
Exemplos formatos do for ... 
for (x = 0; x < 10; x++)
 {
 cout << x;
 }
for (x = 1; x <= 100; x++)
 {
 cout << (1+(rand() % 100)) ;
 }
for (contador inicial; contador final; contador- -)
 {
 Comandos do loop; //countdown
 }
for (contador inicial; contador final; - -contador)
 {
 Comandos do loop; //countdown
 }
Pós-incremento
Pós-decremento
Pré-decremento
Pós-incremento
Estruturas de Controle
030
claudio_cesar_cordeiro@yahoo.com.br
Linguagem de Programação C++ 
Operadores de Incremento do C++ 
Esta notação simplificada (shortcut – atalho) facilita em muito a digitação dos códigos, mas precisamos nos lembrar do que significa. Muito usada na expressão de incremento do loop for ... 
Sinal de Atribuição!!!
Exemplo 05 – Gerar Números Aleatórios 
Escrever um programa usando o loop for ... e a função rand() para gerar números aleatórios de 0 a 32767.
031
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estruturas de Controle
Depois de executar o programa três vezes, obtemos os mesmos números! Como pode ser se estamos usando rand()?
032
claudio_cesar_cordeiro@yahoo.com.br
Gerador mantém mesmos resultados para efeito de debugging. 
Linguagem de Programação C++ 
Estruturas de Controle
033
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Exemplo 05 – Listagem Resumida 
#include <iostream>
using namespace std;
int main ();
int main ()
{
 int qte=0, soma=0, contador=0,numero=0;
 cout << "Entre a quantidade de numeros a serem gerados ...: "; 
 cin >> qte;
for (contador=1;contador<=qte;contador++)
 {
 numero = rand(); 
 soma++; 
 cout << "aleatorio " << soma << "....: " << numero << endl;
 } 
 
 cout << endl << endl;
 system ("pause");
 return 0;
}
Estruturas de Controle
034
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Exemplo 06 – Gerar Números Realmente Randômicos
Alterar o programa e incluir o comando srand() para gerar números realmente aleatórios, ou randômicos, de 0 a 32767.
Estruturas de Controle
Depois de executar o programa três vezes, obtemos resultados diferentes.
035
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estruturas de Controle
036
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Exemplo 06 – Listagem Resumida 
#include <iostream>
using namespace std;
#include <time.h>
int main ();
int main ()
{
 int qte=0, soma=0, contador=0,numero=0;
 cout << "Entre a quantidade de numeros a serem gerados ...: "; 
 cin >> qte;
 srand(time(NULL));
 for (contador=1;contador<=qte;contador++)
 {
 numero = rand(); 
 soma++; 
 cout << "aleatorio " << soma << "....: " << numero << endl;
 } 
 
 cout << endl << endl;
 system ("pause");
 return 0;
}
Estruturas de Controle
037
claudio_cesar_cordeiro@yahoo.com.br
Estruturas de Controle
Linguagem de Programação C++ 
Estruturas de Controle do C++
Estrutura de Controle
 
Loop while... 
038
claudio_cesar_cordeiro@yahoo.com.br
Linguagem de Programação C++ 
Estrutura de Controle Loop while... 
while (condição)
 {
 Comandos do loop;
 }
Atenção!
► O loop while não tem suas próprias variáveis de controle interno. Cabe ao programador alterar a variável de controle dentro do loop, caso contrário poderemos criar um loop infinito e o programa nunca terminar! Assim, devemos: 1º - Definir uma variável e atribuir valor inicial a ela antes de entrar no loop e, 2º- Modificá-la dentro do loop para que seja criada uma situação de saída do loop. É possível entrarmos num loop infinito e se não tivermos salvo o programa... só reset na máquina, em alguns casos!
Como funciona:
Os comandos entre { } serão executados enquanto a condição especificada for verdadeira. Quando a condição for falsa, o loop é interrompido e a execução do programa continua normalmente após o fecha chave (}). 
Estruturas de Controle
039
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estrutura de Controle Loop while ... 
Estruturas de Controle
int contador = 1;
while (contador <= 100)
 {
 cout << contador << “ “; 
 contador++;
 }
040
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estrutura de Controle Loop while ... 
int contador = 100;
while (contador > 0)
 {
 cout << contador << “ ” ;
 contador- -; 
 }
Estruturas de Controle
041
claudio_cesar_cordeiro@yahoo.com.br
Linguagem de Programação C++ 
Outros formatos do while ... 
 while (contador++ < valor ou expressão)
 {
 Comandos do loop;
 }
Pós-incremento
Pré-incremento
Pós-decremento
Pré-decremento
 while (++contador < valor ou expressão)
 {
 Comandos do loop;
 }
 while (contador- - < valor ou expressão)
 {
 Comandos do loop;
 }
 while (contador- - < valor ou expressão)
 {
 Comandos do loop;
 }
Estruturas de Controle
.
042
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Escrever um programa usando o loop while para gerar uma faixa progressiva de números inteiros, fornecida pelo operador.
Exemplo 07 – Gerando Faixa de Números com while 
Estruturas de Controle
Exemplo 07 – Execução
043
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estruturas de Controle
Exemplo 07 – Listagem Resumida - Loop while
#include <iostream>
using namespace std;
#include <conio.h>
int main ();
int main ()
{
 int inicial=0,final=0,contador=0;
 cout << endl;
 cout << "Imprimindo na Tela Faixa de Numeros" << endl;
 cout << "===================================" << endl << endl << endl;
 cout << "Entre o primeiro numero ............: ";
 cin >> inicial;
 cout << endl << "Entre o primeiro numero ............: ";
 cin >> final;
 cout << endl; 
 contador = inicial; 
while (contador <= final)
 { cout << contador << " "; contador++; } 
 cout << endl << endl;
 cout << "Pressione qualquer tecla para terminar o programa.";
 getch();
 return 0; 
}
044
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estruturas de Controle
045
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Melhorar o programa anterior usando outro loop while para checar a entrada do operador, prevenindo-se contra valor inicial maior que valor final.
Exemplo 08 – Checar opções de entrada 
Estruturas de Controle
Exemplo 08 – Execução – Checando entrada dados!
046
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estruturas de Controle
Foi usado um outro loop while para verificar se valor inicial menor do que o final
Exemplo 08 – Execução. Aqui OK! Inicial < Final 
047
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estruturas de Controle
048
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Exemplo 08 – Listagem Resumida - Parte 1/2
#include <iostream>
using namespace std;
int main ();
int main ()
{int inicial=0,final=0,contador=0;
 cout << endl;
 cout << "Programa para contagem progressiva (faixa) usando while" << endl;
 cout << "=================================================" << endl
 << endl << endl;
 cout << "Digite o numero inicial da contagem progressiva .....: ";
 cin >> inicial;
 cout << endl << "Digite o numero inicial da contagem progressiva .....: ";
 cin >> final;
 while (final <= inicial)
 { 
 cout << endl<< "Voce entrou numero final menor ou igual que o inicial!“
 << endl;
 cout << endl << "Novamente..." << endl;
 cout << endl << "Digite o numero inicial da contagem progressiva .....: ";
 cin >> inicial; 
 cout << endl << "Digite o numero final da contagem progressiva .......: ";
 cin >> final;
 }
Estruturas de Controle
049
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Exemplo 08 – Listagem Resumida - Parte 2/2
cout << endl; 
 contador = inicial;
 cout << endl << "Resultado" << endl;
 cout << "=========" << endl;
 while (contador <= final)
 { 
 cout << contador << " "; 
 contador++; 
 } 
 cout << "!" << endl << endl;
 cout << "Pressione qualquer tecla para terminar o programa!"; 
 getch(); 
return 0;
}
Estruturas de Controle
050
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estruturas de Controle
Escrever um programa C++ pra contagem regressiva de um número entrado pelo operador até 1, usando o loop while.
Exemplo 09 – Countdown! 9.. 8.. 7.. 6.. 5.. 4.. 3.. 2.. 1! 
051
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estruturas de Controle
Exemplo 09 – Execução 
052
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estruturas de Controle
Exemplo 09 – Listagem Resumida
#include <iostream> 
using namespace std; 
#include <conio.h>
int main (); 
int main ()
{ 
 int numero=0,contador=0;
 cout << endl;
 cout << "Programa para contagem regressiva usando while" << endl;
 cout << "==============================================" 
 << endl << endl;
 cout <<"Digite o numero inicial da contagem regressiva .....: ";
 cin >> numero; 
 cout << endl; 
 contador = numero;
 while (contador > 0) 
 { cout << " " << contador; contador--; } 
 cout << endl << endl;
 cout << "Pressione qualquer tecla para terminar o programa!"; 
 getch(); 
 return 0; 
} 
OK!
OK!
053
claudio_cesar_cordeiro@yahoo.com.br
Estruturas de Controle
Linguagem de Programação C++ 
Estruturas de Controle do C++
Estrutura de Controle
 
Loop do while... 
.
054
claudio_cesar_cordeiro@yahoo.com.br
Linguagem de Programação C++ 
Estrutura de Controle Loop while... 
do ... {
 Comandos do loop;
 }
 while (condição);
Atenção!
► O loop do while também não tem suas próprias variáveis de controle interno. Cabe ao programador alterar a variável de controle dentro do loop, caso contrário poderemos criar um loop infinito e o programa nunca terminar! Assim, devemos: 1º - Definir uma variável e atribuir valor inicial a ela antes de entrar no loop e, 2º - Modificá-la dentro do loop para que seja criada uma situação de saída do loop. Note primeiro os comandos são executados depois é que será feito o check da condição.
Como funciona:
Os comandos entre { } são executados até que condição especificada no comando while, após o bloco de comandos do loop, seja verdadeira. Quando a condição for falsa, o loop é interrompido e a execução do programa continua normalmente após o fecha chave (}). 
Estruturas de Controle
OK! Ponto e vírgula!!!
.
055
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estruturas de Controle
Reescrever o programa do Exemplo 07 usando o loop do while para gerar uma faixa progressiva de números inteiros, fornecida pelo operador.
Exemplo 10 – Faixa de Números com do while 
056
claudio_cesar_cordeiro@yahoo.com.br
Exatamente como no loop while.
Linguagem de Programação C++ 
Estruturas de Controle
Exemplo 10 – Execução
057
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estruturas de Controle
Exemplo 10 – Listagem Resumida
#include <iostream>
using namespace std;
#include <conio.h>int main ();
int main ()
{
 int inicial=0,final=0,contador=0;
 cout << endl;
 cout << "Imprimindo na Tela Faixa de Numeros" << endl;
 cout << "===================================" << endl << endl << endl;
 cout << "Entre o primeiro numero ............: ";
 cin >> inicial;
 cout << endl << "Entre o primeiro numero ............: ";
 cin >> final;
 cout << endl; 
 contador = inicial; 
 do 
 { cout << contador << " "; contador++; } while (contador <= final);
 cout << endl << endl;
 cout << "Pressione qualquer tecla para terminar o programa.";
 getch();
 return 0; 
}
OK! Todo bloco do loop numa única linha horizontal + ponto e vírgula no final!!!
058
claudio_cesar_cordeiro@yahoo.com.br
Estruturas de Controle
Linguagem de Programação C++ 
Estruturas de Controle do C++
Estrutura de Desvio
switch... 
case...
break...
default...
.
059
claudio_cesar_cordeiro@yahoo.com.br
Variável é número inteiro (1, 2, ..., n) ou constante tipo caractere (a, b, c, ..., n)
Linguagem de Programação C++ 
Estrutura de Controle switch... 
switch (variável)
 {
 case valor1_:
	 Comandos caso variável igual ao valor_1;
	 break;
 case valor_2:
	 Comandos caso variável igual ao valor_2;
	 break;
	 case valor_3:
	 Comandos caso variável igual ao valor_3;
	 break;
	 ...
	 case valor_n:
	 Comandos caso variável igual ao valor_n;
	 break;
	 default:
	 comandos;
 }
Estruturas de Controle
060
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estrutura de Controle switch... 
Como funciona:
Usado para tomada de decisão de uma única variável contra uma lista de opções, como num menu. Quando o valor da variável coincide com o valor da lista, associada a um comando case, as instruções abaixo dele são executadas até encontrar um comando break. A partir daí o programa para de verificar os próximos case e o a execução do programa continua após o fim da estrutura do switch.
A busca para uma associação verdadeira continua até ao último case. Se chegar neste ponto e nenhuma associação for encontrada, então os comandos após a instrução default serão executadas, switch termina e o programa continua sua execução após o mesmo.
O switch é muito usado para fazer escolha num menu de opções, evitando o uso de if ... if else ... else que á mais complexo. 
O comando default é opcional, e neste caso, se nenhuma associação for encontrada o switch não executará nenhuma ação.
Estruturas de Controle
061
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estruturas de Controle
Reescrever o programa do Exemplo 07 usando o loop do while para gerar uma faixa progressiva de números inteiros, fornecida pelo operador.
Exemplo 10 – Faixa de Números com do while 
062
claudio_cesar_cordeiro@yahoo.com.br
Exatamente como no loop while.
Linguagem de Programação C++ 
Estruturas de Controle
Exemplo 10 – Execução
063
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estruturas de Controle
Exemplo 10 – Listagem Resumida
#include <iostream>
using namespace std;
#include <conio.h>
int main ();
int main ()
{
 int inicial=0,final=0,contador=0;
 cout << endl;
 cout << "Imprimindo na Tela Faixa de Numeros" << endl;
 cout << "===================================" << endl << endl << endl;
 cout << "Entre o primeiro numero ............: ";
 cin >> inicial;
 cout << endl << "Entre o primeiro numero ............: ";
 cin >> final;
 cout << endl; 
 contador = inicial; 
 do 
 { cout << contador << " "; contador++; } while (contador <= final);
 cout << endl << endl;
 cout << "Pressione qualquer tecla para terminar o programa.";
 getch();
 return 0; 
}
OK! Todo bloco do loop numa única linha horizontal + ponto e vírgula no final!!!
064
claudio_cesar_cordeiro@yahoo.com.br
Biblioteca math.h necessária para várias funções matemáticas.
Linguagem de Programação C++ 
Estruturas de Controle
Escrever um programa que realiza várias operações matemáticas 
(quadrado, cubo, potência, fatorial, raiz quadrada e M_PI) 
usando a estrutura switch...case...break...default
Exemplo 11 – switch 
065
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estruturas de Controle
Exemplo 11 – Execução
066
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estruturas de Controle
Exemplo 11 – Listagem Resumida – Parte 1/4
#include <iostream>
using namespace std;
#include <conio.h>
#include <math.h>
int main ();
int main ()
{ int x=0,y=0,opcao=0,fat=0,contador=1,fatorial=1; 
 float quad=0,cubo=0,pot=0,raizquad=0;
 cout << endl;
 cout << "Operacoes Matematicas Usando Estrutura \"switch\"" << endl;
 cout << "==============================================" << endl << endl;
 cout << endl; 
 cout << "|==================================================|" << endl
 << "|Menu de Operacoes Matematicas - Escolha uma opcao |" << endl
 << "|==================================================|" << endl
 << "|Quadrado do Primeiro Numero x ................. 1 |" << endl
 << "|Cubo do Segundo Numero y ...................... 2 |" << endl
 << "|Potencia: x elevado a y ....................... 3 |" << endl
 << "|Fatorial de x ................................. 4 |" << endl
 << "|Raiz Quadradada de y .......................... 5 |" << endl
 << "|Primeiro Numero x multiplicado por PI ......... 6 |" << endl
 << "|==================================================|" << endl 
 << endl;
067
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estruturas de Controle
Exemplo 11 – Listagem Resumida – Parte 2/4
cout << "Entre o primeiro numero x ......................: ";
 cin >> x;
 cout << endl << "Entre o segundo numero y........................: ";
 cin >> y; 
 cout << endl << "Entre opcao desejada (numero entre 1 e 6) ......: ";
 cin >> opcao; 
 
//---------- Início da estrutura switch ---------------------------------------- 
 switch (opcao)
 { 
 case 1: 
 quad = pow (x,2);
 cout << endl << "O quadrado de " << x << " eh = " << quad << endl;
 break;
 
 case 2:
 cubo = pow (y,3);
 cout << endl << "O cubo de " << y << " eh = " << cubo << endl;
 break;
 
068
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estruturas de Controle
Exemplo 11 – Listagem Resumida – Parte 3/4
case 3:
 pot = pow (x,y);
 cout << endl << "A potencia de " << x << " elevado a " << y << " eh = " << pot << endl;
 break;
 
 case 4:
 contador =1;
//----- Note o calculo do fatorial feito num loop do ... while (condição) ------
 do { fatorial = fatorial * contador; contador++;} while (contador <= x); 
 fat = fatorial;
 cout << endl << "O fatorial de " << x << " eh = " << fat << endl;
 break;
 
 case 5:
 raizquad = sqrt(y);
 cout << endl << "O quadrado de " << y << " eh = " << raizquad << endl;
 break;
 
069
claudio_cesar_cordeiro@yahoo.com.br
.
Linguagem de Programação C++ 
Estruturas de Controle
Exemplo 11 – Listagem Resumida – Parte 4/4
 case 6:
 cout << endl << "Numero " << x << " multiplicado por PI eh igual a " << x * M_PI;
 break;
 default: 
 cout << endl << "Opcao com valor nao definido no menu" << endl;
 }
 cout << endl << endl;
 cout << "Pressione qualquer tecla para terminar o programa.";
 getch();
 return 0;
}
Bibliografia
Referências Bibliográficas e Sites Visitados
070
claudio_cesar_cordeiro@yahoo.com.br
.
Snaith, Paul. C++ Para Leigos – Passo a Passo. Editora Ciência Moderna Ltda, 1999
Bueno, André Duarte. Programação Orientada a Objeto com C++ -. Editora Novatec Ltda, 2003
Montenegro, Fernando e Pacheco, Roberto. Orientaçãoa Objetos em C++. Editora Ciência Moderna Ltda, 1994
Manzano, José Augusto e Oliveira, Jayr Figueiredo – Algoritmos – lógica para Desenvolvimento de Programação – Editora Érica – São Paulo – 1996
Apostila de Dev-C++ , Educação Online, visitado em 30/03/2012 http://www.educaonline.eng.br/UNISANTA/HTML/DOWNLOAD/APOSTILAS/apostila%20de%20dev.pdf 
A Linguagem de Programação C++ - Apostila de Enrique Camargo Trevelin – FEIS – UNESP – Visitado em Qui, 03/05/12 - http://www.dee.feis.unesp.br/graduacao/disciplinas/langcpp/index.php?pagina=home 
http://www.mspc.eng.br/info/cpp_oper_10.shtml 
http://msdn.microsoft.com/pt-br/library/8e4x783s(v=vs.90).aspx
http://pt.wikipedia.org/wiki/Operadores_em_C_e_C%2B%2B#Operadores_aritm.C3.A9ticos
http://pt.wikibooks.org/wiki/Programar_em_C 
Wikipedia, http://wikipedia.org, visitado em Dom, 06/504/12.
 http://pt.wikipedia.org/wiki/Operadores_em_C_e_C%2B%2B 
http://www.tiexpert.net/programacao/c/math.php
http://www.cprogramming.com/tutorial/c/lesson3.html
http://www.cplusplus.com/articles/EywTURfi/
http://pt.wikiversity.org/wiki/Curso_de_C%2B%2B/Operadores
http://msdn.microsoft.com/pt-br/library/8e4x783s(v=vs.90).aspx
http://en.cppreference.com/w/
http://www.java2s.com/Code/Cpp/Console/CatalogConsole.htm
http://faq.cprogramming.com/cgi-bin/smartfaq.cgi?answer=1048380213&id=1043284385
http://www.digitalmars.com/rtl/conio.html
Linguagem de Programação C++ 
70

Continue navegando