Вы находитесь на странице: 1из 24

Gilson Gonçalves de Lima - gilsongl@gmail.

com 11/04/2009

Fundamentos da Programação
1.3 – ESTRUTURAS DE CONTROLE

Gilson Gonçalves de Lima

1
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

SUMÁRIO
 1 – Introdução
 2- Estruturas de Decisão
 2.1 - Sentenças If
 2.2 – Switch-case
 3 – Estruturas de Repetição
 3.1 - Laço While
 3.2 - Laço Do while
 3.3 - Laço For
 4 – Exemplos em C++
 5 - Referências

2
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

1- INTRODUÇÃO

 Como vimos na aula anterior, necessitamos


tomar decisões no andamento do programa.
 Com esse fim, trabalhamos com dois tipos de
estrutura de controle: Estruturas
struturas de Decisão e
Estruturas
struturas de Repetição.
Repetição

3
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

2- ESTRUTURAS DE DECISÃO

 Com as instruções de decisão pode-se fazer


com que o programa proceda de uma ou outra
maneira, de acordo com as decisões lógicas
tomadas em função dos dados ou resultados
anteriores.
 As principais estruturas de decisão são: “Se Se
Então (If
(If-
If-then)”,
then)”, “Se então Senão(If
Senão(If-
If-then-
then-else)”
else)”
e “Caso Selecione (Switch
(Switch-
Switch-case)”
case)”

4
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

2.1.1-
2.1.1- SE ENTÃO / IF ... THEN
 A estrutura de decisão “SE/IF” normalmente
vem acompanhada de um comando, ou seja,
se determinada condição for satisfeita pelo
comando SE/IF então execute determinado
comando.
 Exemplo: Imagine um algoritmo que
determinado aluno somente estará aprovado
se sua média for maior ou igual a 5.0, veja no
exemplo de algoritmo como ficaria.

5
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

2.1.1-
2.1.1- SE ENTÃO / IF ... THEN

6
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

2.1.2-
2.1.2- SE ENTÃO SENÃO / IF ... THEN ... ELSE

 Com a estrutura de decisão


“SE/ENTÃO/SENÃO”, sempre um comando
será executado independente da condição, ou
seja, caso a condição seja “verdadeira” o
comando da condição será executado, caso
contrário o comando da condição “falsa” será
executado.

7
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

2.1.2-
2.1.2- SE ENTÃO SENÃO / IF ... THEN ... ELSE

8
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

2.1.3 - DECISÃO DE MÚLTIPLOS BLOCOS


(IF...
IF...ELSE
...ELSE IF...)
IF...)
 Também é possível escrever uma estrutura que
execute um entre múltiplos blocos de
instruções.

9
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

2.2-
2.2- CASO SELECIONE / SWITCH ... CASE

 A estrutura de decisão CASO/SELECIONE é


utilizada para testar, na condição, uma única
expressão, que produz um resultado, ou, então,
o valor de uma variável, em que está
armazenado um determinado conteúdo.
 Compara-se, então, o resultado obtido no teste
com os valores fornecidos em cada cláusula
“Caso”.

10
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

2.2-
2.2- CASO SELECIONE / SWITCH ... CASE

11
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

3- COMANDOS DE REPETIÇÃO

 Utilizamos os comandos de repetição quando


desejamos que um determinado conjunto de
instruções ou comandos sejam executados um
número definido ou indefinido de vezes
 Principais estruturas de repetição:
· Enquanto x, processar (While
While ...Loop);
 ·· Processar ..., Enquanto x (DoDo ... Loop While);
While);
 ·· Para ... Até ... Seguinte (For
For ... To ... Next)
Next)

12
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

3.1-
3.1- ENQUANTO X, PROCESSAR (WHILE
(WHILE ... LOOP)

 Neste caso, o bloco de operações será


executado enquanto a condição x for
verdadeira. O teste da condição será sempre
realizado antes de qualquer operação.
 Enquanto a condição for verdadeira o processo
se repete. Podemos utilizar essa estrutura para
trabalharmos com contadores.

13
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

3.1-
3.1- ENQUANTO X, PROCESSAR (WHILE
(WHILE ... LOOP)

14
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

3.2-
3.2- PROCESSAR ..., ENQUANTO X (DO ... LOOP
WHILE)
WHILE)
 Neste caso primeiro são executados os
comandos, e somente depois é realizado o
teste da condição. Se a condição for
verdadeira, os comandos são executados
novamente, caso seja falso é encerrado o
comando DO.

15
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

3.2-
3.2- PROCESSAR ..., ENQUANTO X (DO ... LOOP
WHILE)
WHILE)

16
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

3.3-
3.3- ESTRUTURA FOR

 A estrutura for é muito semelhante as


estruturas de repetição vistas anteriormente,
entretanto costuma ser utilizada quando se
quer um número determinado de ciclos.
 A contagem dos ciclos é feita por uma variável
chamada de contador. A estrutura for é, as
vezes, chamada de estrutura de repetição com
contador.

17
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

3.4-
3.4- ESTRUTURA FOR

Em C:

18
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

4 – EXEMPLOS EM C ++
// Somatório de todos os inteiros de 1 a 100
#include <iostream>

using std::cout;
using std::endl;

int main()
{
int soma = 0;
for ( int numero = 1; numero <= 100; numero += 1 )
soma += numero;
cout << "A soma e' " << soma << "\n"<<endl;
system("PAUSE");
return 0;
}

19
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

4 – EXEMPLOS EM C ++
// Programa de média de notas da classe com repetição
//controlada por contador // fase final
... media = (double)total / 5.0; // divisão real
int main() cout << "\nA me'dia da classe e' " << media <<"\n"<<endl;
{ system("PAUSE");
int total, // soma das notas return 0; // indica que o programa terminou com sucesso
contador, // numero de notas inseridas }
nota; // uma nota
double media; // média das notas

// fase de inicialização
total = 0; // zera o total
contador = 1; // prepara para o laço
// fase de processamento
while ( contador <= 5 ) { // laço de 5
cout << "Entre com a nota: "; // pedido de entrada
cin >> nota; // nota de entrada
total = total + nota; // adicione a nota ao total
contador = contador + 1; // incrementa contador
}

20
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

4 – EXEMPLOS EM C ++
// estrutura de repetição do/while
#include <iostream>

using std::cout;
using std::endl;

int main()
{
int contador = 1;

do {
cout << contador << " ";
} while ( ++contador
++contador <= 10 );

cout <<"\n"<< endl;


system("PAUSE");
return 0;
}

21
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

4 – EXEMPLOS EM C ++
// uso do switch-case
#include <iostream>

using namespace std;

int main() {
int entrada;

cout << "1. Mensagem de boas-vindas:"<< endl;


cout << "2. Mensagem de despedida:"<< endl;
cout << "\nEscolha uma opcao: ";
cin >> entrada;

switch (entrada) {
case 1: {
cout << "\nBem-vindo a um exemplo simples de uso do switch-case\n"<< endl;
break;
}
case 2: {
cout <<"\nAdeus.\n"<< endl;
break;
}
default: {
cout <<"\nOpcao inva'lida.\n"<<endl;
}
}
system("PAUSE");
return 0;
}

22
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

4 – EXEMPLOS EM C ++
// Ana’lise do resultado das provas de um aluno no u’ltimo semestre // fase final
#include <iostream> cout << "\npassou " << sucessos << endl;
cout << "\nreprovou " << fracassos << endl;
using std::cout;
using std::cin; if ( sucessos > 7 )
using std::endl; cout << "\
"\nAluno aprovado com me'rito.
me'rito. Graduacao aceita.\
aceita.\n" << endl;
endl;
else if (( sucessos > 5 )&&( sucessos < 8 ))
int main() cout << "\
"\nA graduacao depende do conselho de classe.\
classe.\n" << endl;
endl;
{ else
int sucessos = 0, cout << "\
"\nO aluno deve fazer novamente as disciplinas do u'ltimo
fracassos = 0, semestre para se graduar.\
graduar.\n" << endl;
endl;
contador = 1, system("PAUSE");
resultado; return 0; // successful termination
}
cout << "Boletim de aluno no u'ltimo semestre \n"<< endl;

while ( contador <= 10 ) {


cout << "Informe o resultado da disciplina ( 1 = passou, 2 = reprovou ): ";
cin >> resultado;

if ( resultado == 1 )
sucessos = sucessos + 1;
else
fracassos = fracassos + 1;

contador = contador + 1;
}

23
Gilson Gonçalves de Lima - 11/04/2009
gilsongl@gmail.com

REFERÊNCIAS

 DEITEL, M., DEITEL,P. C++ Como Programar. 3ª


Edição. Bookman.2001.
 MORAES, Paulo Sérgio.Lógica de Programação.
Unicamp. 2000.

24

Вам также может понравиться