Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
*
*
*
Estruturas de Controle
Aula nº 03
Estrutura seqüencial
Estruturas de seleção: if, if/else, ? :
*
*
* /24
Algoritmo
Procedimento para resolver um problema em termos
das ações que devem ser executadas; e
da seqüência em que estas ações devem ser executadas.
Aula nº 06 - Estruturas de Controle
*
*
* /24
Algoritmo “Troca de Pneu”
Apanhe o macaco;
Posicione o macaco sob o carro;
Folgue as porcas do pneu;
Levante o carro com o macaco;
Retire o pneu;
Coloque o estepe;
Coloque os parafusos;
Baixe o carro;
Aperte os parafusos;
Guarde o pneu retirado e o macaco.
E se o estepe estiver furado/vazio?
E se as porcas estiverem aluídas?
Aula nº 06 - Estruturas de Controle
*
*
* /24
Estruturas de Controle
Execução seqüencial;
Transferência de controle;
goto
problemas – transferência de controle indiscriminada;
programação estruturada;
Aula nº 06 - Estruturas de Controle
*
*
* /24
Apanhe o macaco;
Posicione o macaco sob o carro;
Folgue as porcas do pneu;
Levante o carro com o macaco;
Retire o pneu;
Se o estepe estiver vazio goto 13;
Coloque o estepe;
Coloque os parafusos;
Baixe o carro;
Aperte os parafusos;
Guarde o pneu retirado e o macaco.
goto 15;
Leve o pneu furado ao borracheiro e retorne com o pneu cheio;
goto 7;
Fim.
Aula nº 06 - Estruturas de Controle
*
*
* /24
Estruturas de Controle (cont.)
Bohm e Jacopini – 1970 – afirmam que é possível escrever programas sem goto;
Todos os programas podem ser escritos em termos de apenas 3 estruturas:
Estrutura de seqüência;
Estrutura de seleção;
Estrutura de repetição.
Aula nº 06 - Estruturas de Controle
*
*
* /24
Fluxograma
representação de algoritmos
símbolos
linhas de fluxo
Estrutura de sequência
y = x + y;
cout << y;
Aula nº 06 - Estruturas de Controle
*
*
* /24
Fluxograma
Aula nº 06 - Estruturas de Controle
*
*
* /24
Estruturas de Controle
Seqüência
Estruturas de Seleção
if
if/else
switch
Estruturas de Repetição
while
do/while
for
Aula nº 06 - Estruturas de Controle
*
*
* /24
Estruturas de Controle
Os programas em C++ são construídos apenas com essas 7 estruturas de controle (blocos de construção);
Empilhamento
Aninhamento
Cada estrutura só tem uma entrada e uma saída.
Aula nº 06 - Estruturas de Controle
*
*
* /24
Estrutura de seleção if
Usada para escolher curso de ação alternativo;
Se a nota do estudante for maior que ou igual a 7,
Imprima “Aprovado”
...
if (nota >= 7)
cout << “Aprovado”;
...
Aula nº 06 - Estruturas de Controle
*
*
* /24
Estrutura de seleção if (cont)
if (nota >= 7)
cout << “Aprovado”;
imprime “Aprovado”
Em C++
Se o valor da expressão for 0 false
Se o valor da expressão não for 0 true
Aula nº 06 - Estruturas de Controle
*
*
* /24
imprime “Aprovado”
fim
início
Aula nº 06 - Estruturas de Controle
*
*
* /24
#include <iostream>
using namespace std;
int main() {
int nota;
cout << “\nDigite a nota do aluno: ”;
cin >> nota;
if (nota >= 7)
cout << “Aprovado”;
return 0;
}
Aula nº 06 - Estruturas de Controle
*
*
* /24
Estrutura if/else
Permite indicar uma ação para executar se a condição é true e outra ação se condição é false.
Se a nota do estudante for maior que ou igual a 7
Imprima “Aprovado”
senão
Imprima “Reprovado”
Aula nº 06 - Estruturas de Controle
*
*
* /24
Estrutura if/else (cont)
Se a nota do estudante for maior que ou igual a 7.0
Imprima “Aprovado”
senão
Imprima “Reprovado”
if (nota >= 7)
cout << “Aprovado”;
else
cout << “Reprovado”;
Aula nº 06 - Estruturas de Controle
*
*
* /24
Estrutura if/else (cont)
if (nota >= 7.0)
cout << “Aprovado”;
else
cout << “Reprovado”;
Aula nº 06 - Estruturas de Controle
*
*
* /24
(_?_:_)
(_?_:_)
(_?_:_)
(_?_:_)
Operador condicional
operador ternário
terceiro operando – valor para a expressão condicional inteira, se a condição for false
segundo operando – valor para a expressão condicional inteira, se a condição for true
primeiro operando – condição
Aula nº 06 - Estruturas de Controle
*
*
* /24
Operador condicional (cont)
cout << (nota>=7.0 ? “Aprovado” : “Reprovado”);
Obs.: Precedência baixa
Os valores das expressões podem ser ações
(nota>=7.0 ? cout<<“Aprovado” : cout<< “Reprovado”);
Aula nº 06 - Estruturas de Controle
*
*
* /24
if ’s aninhados
Se a nota for maior ou igual a 90
imprima “A”
senão
Se a nota for maior ou igual a 80
imprima “B”
senão
Se a nota for maior ou igual a 70
imprima “C”
senão
Se a nota for maior ou igual a 60
imprima “D”
senão
imprima “R”
Aula nº 06 - Estruturas de Controle
*
*
* /24
if (nota >= 90)
cout << “A”;
else
if (nota >= 80)
cout << “B”;
else
if (nota >= 70)
cout << “C”;
else
if (nota >= 60)
cout << “D”;
else
cout << “R”;
Aula nº 06 - Estruturas de Controle
*
*
* /24
Comandos compostos
if (nota >= 60)
cout << “Aprovado.\n”;
else {
cout << “Reprovado.\n”;
cout << “Repita esse curso.\n”;
}
Aula nº 06 - Estruturas de Controle
*
*
* /24
Exercícios em trio
Ler dois números inteiros, x e y, e imprimir o quociente e o resto da divisão inteira entre eles.
Ler dois números inteiros correspondentes ao numerador e denominador, respectivamente, de uma fração e imprima se a fração é própria ou imprópria.
Aula nº 06 - Estruturas de Controle
*
*
* /24
Exercícios em trio
Ler dois números inteiros correspondentes ao numerador e denominador, respectivamente, de uma fração e imprima:
se a fração é aparente, ou
se a fração é própria, ou
se a fração é imprópria.
Aula nº 06 - Estruturas de Controle