Algoritmos com Seleção
Utilizamos estruturas de seleção quando existem instruções dentro do
programa que somente devem executar se satisfizerem a uma determinada condição. Por
exemplo, só irei na aula presencial de CBP se não chover :-). Só
passarei nesta disciplina se obtiver media superior ou igual a 7,0 e se
a presença for igual ao superior a 85% das aulas dadas.A sintaxe da estrutura IF na
linguagem C é a seguinte:
Estrutura de Seleção IF
Comando IF = se
Estrutura básica |
if (condição)
{
lista de instruções
} |
- A condição é verificada a cada passagem pela
estrutura IF. Se a condição for satisfeita (V), então a lista de instruções que se
encontra entre chaves será feita. Se a condição NÃO for satisfeita (F), então serão
feitas as instruções existentes logo apó o fecha chaves.
Exemplo:
Observe o programa abaixo:
#include <iostream.h>
void main( )
{
int x;
cin >> x;
If (x>0)
{
cout << "O valor é positivo\n" ;
}
}
- O que acontece se eu digitar o valor -5?
- O que acontece se eu digitar o valor 0?
- O que acontece se eu digitar o valor 5?
- O que faz o programa? (monte o enunciado do problema)
Variações do estrutura de condição IF
Variação 1
IF ELSE |
if (condição)
{
lista de instruções
}
else
{
lista de instruções
}
...... |
- Neste caso, se a condição colocada após o IF não obtiver resultado verdadeiro,
automaticamente serão feitas as instruções que estão
dentro do ELSE, desconsiderando aquelas que estão abaixo do IF. Caso a
condição seja VERDADEIRA, serão feitas as instruções
que estão entre chaves abaixo do IF.
- Quando acabar tanto a lista de instruções abaixo do IF quanto a lista de instruções
referente ao ELSE, automaticamente serão desenvolvidas as
instruções que estão após a lista de instruções do ELSE (....).
Observe o programa abaixo:
#include <iostream.h>
void main( )
{
int x;
cin >> x;
cout << "o número é " << x << "\n";
If (x%2==0)
{
cout << "O valor é
PAR\n";
}
Else
{
cout << "O valor é
IMPAR\n";
}
}
- O que acontece se eu digitar o valor 3?
- O que acontece se eu digitar o valor 8?
- O que faz o programa? (monte o enunciado do problema)
Variação 2
IF ELSEIF ELSE |
if (condição)
{
lista de instruções
}
else if (condição)
{
lista de instruções
}
else
{
lista de instruções
}
...... |
- Neste caso, se a condição colocada após o IF não obtiver resultado verdadeiro,
automaticamente serão verificada a condição do ELSE IF. Se esta condição for
verdadeira, faz-se a lista de isntruções referente ao ELSE IF. Caso nãp seja
verdadeira, faz-se a lista de isntruções que estão dentro
do ELSE, desconsiderando aquelas que estão abaixo do IF e do ELSE IF
- Caso a condição seja do IF VERDADEIRA, serão feitas as instruções
que estão entre chaves abaixo do IF e, ao acabar a lista de instruções, automaticamente serão desenvolvidas as instruções que estão após a
lista de instruções do ELSE, ou seja, referente ao (....).
- Caso a condição do ELSE IF for VERDADEIRA, serão feitas as instruções que estão entre chaves abaixo do ELSE IF e, ao acabar
a lista de instruções, automaticamente serão
desenvolvidas as instruções que estão após a lista de instruções do ELSE, ou seja,
referente ao (....).
- Caso a condição do IF e do ELSE IF forem falsas, serão feitas as instruções que estão entre chaves abaixo do ELSE e, ao acabar a
lista de instruções, automaticamente serão desenvolvidas
as instruções que estão após a lista de instruções do ELSE, ou seja, referente ao
(....).
Observe o programa abaixo:
#include <iostream.h>
void main( )
{
int x;
cin >> x;
if (x>0)
{
cout << "O valor é Positivo\n";
}
else if (x<0)
{
cout << "O valor é Negativo\n";
}
else
{
cout << "O valor é ZERO\n";
}
}
- O que acontece se eu digitar o valor 4?
- O que acontece se eu digitar o valor -10
- O que acontece se eu digitar o valor 0?
- O que faz o programa? (monte o enunciado do problema)