Anda di halaman 1dari 3

ESTRUTURA CONDICIONAL (DECISÃO) - ESTRUTURA DE SELEÇÃO (SE / IF)

Alguns comandos servem para selecionar ou verificar o conteúdo das variáveis. Esta estrutura de comando se chama
SE (IF) ou pode ser também o CASO (Case).
IF ... Then ... Else ... / Case ... of ...
Estrutura em pseudocódigo do SE (IF)
Se (Condição)
Então ...
Senão ...
=> A (Condição) é que vai verificar a situação e definir o que deve ser feito dependendo da resposta.
Na condição usa-se:
VARIAVEL1 O.R. (VALOR)
(VARIAVEL2)
Onde,
VARIAVEL1: É a variável que se deseja abrir (verificar) o seu conteúdo.
VALOR OU VARIAVEL2: É a variável ou um valor que se deseja comparar com a VARIAVEL1.
O.R.: Operador relacional que vai ser usado para a seleção. O.R. (>,<. <>, >=, <=, =, and , or, not).
VARIAVEL1 O.R. (VALOR)
(VARIAVEL2)
Regras:
1) Pode existir uma decisão sem o SENÃO(Else), mas, não existe SENÃO sem o ENTÃO (Then);
2) Num comando SE(IF) nunca se deve usar o ponto e virgula ; antes do SENÃO (Else).

Podemos ter dois tipos de estruturas de seleção:


ESTRUTURA CONDICIONAL SIMPLES ESTRUTURA CONDICIONAL COMPOSTA
Fluxograma representativo Fluxograma representativo

Situações que podem ocorrer com o comando de seleção SE (IF)


1) Uma pergunta com única resposta de verdade:
SE IDADE > 18
ENTÃO ESCREVA ('VOCÊ É DE MAIOR');

SE A = B Então WriteLn ('A e B são iguais');

2) Uma pergunta que quer a resposta verdadeira e a falsa:


SE SEXO = 'M'
ENTÃO ...
SENÃO ...

SE A > B Então WriteLn ('A e maior')


Senão WriteLn ('B e maior');

Obs.: Em algumas situações será necessário executar mais de um (1) comando nas opções verdadeiras e nas falsas
(Seleção Composta). Então devemos colocar os comandos dentro de BLOCOS. BLOCO: É utilizado para agrupar
um (1) ou mais comandos. Deve ter um Início (BEGIN) e um Fim (END).
Ex.:
SE IDADE > 18
ENTÃO INICIO
ESCREVA ('VOCÊ É DE MAIOR');
ESCREVA ('Deve se alistar no exército');
ESCREVA ('Pode fazer a carteira de motorista');
...
FIM;

Abaixo vários comandos para a resposta verdadeira e para a falsa.


SE SEXO = 'M'
ENTÃO Inicio
...
Fim
SENÃO Inicio
...
Fim
Passar para o pascal:
Se (IF) | Então (Then) | Senão (Else) | Inicio (Begin) | Fim (End)
Ex.:
IF IDADE > 18
Then Begin
WriteLn ('VOCÊ É DE MAIOR');
WriteLn ('Deve se alistar no exército');
WriteLn ('Pode fazer a carteira de motorista');
...
End;
{Seleção simples}
Program Exemplo01;
Var Nome,Sexo : String;
Begin
WriteLn ('Informe seu Nome-');
ReadLn (Nome);

WriteLn ('Informe seu Sexo-');


ReadLn (Sexo);

// So escreve o nome se for masculino


IF SEXO = 'M'
Then WriteLn ('Olá ',Nome);
End.
{Seleção simples com a resposta Verdade e Falsa}
Program Exemplo02 ;
Var Nome : String;
Idade : Integer;
Begin
WriteLn ('Informe seu Nome:');
ReadLn (Nome);

WriteLn ('Informe sua Idade:');


ReadLn (Idade);

// So escreve o nome se for masculino


IF Idade > 18
Then WriteLn (Nome,' Você é de maior')
Else WriteLn (Nome,' Você ainda é de menor')
End.
1) Separar as pessoas do sexo Feminino. E -> SEXO
// Analisando uma Variável com um VALOR
SE SEXO = 'Feminino' Então Levantar a mao
Senão Ficar de pé
Var SEXO : String;
Begin
WriteLn ('Seu Sexo->');
ReadLn (SEXO);

IF SEXO = 'F'
Then WriteLn ('Levantar a Mão') // Executa quando for Verdade
Else WriteLn ('Ficar de Pé'); // Executa quando for Falso
2) Verificando a Altura de pessoas. E -> ALTURA (Pessoas maiores 1.8 tem que Jogar basquete)
SE ALTURA > 1.8 Então Jogar Basquete
Var ALTURA : Real;
Begin
WriteLn ('Informe a Altura->');
ReadLn (Altura);

IF ALTURA > 1.8


Then WriteLn ('Jogar Basquete'); // Executa quando for Verdade
3) Verificando se um valor é maior que outro. E -> A e B
SE A > B Então O valor de A é maior que o Valor de B
Senão O valor de B é maior que o Valor de A
Var A, B : Real;
Begin
WriteLn ('Valor para A->');
ReadLn (A);
WriteLn ('Valor para B->');
ReadLn (B);
IF A > B
Then WriteLn ('O valor de A é maior que o Valor de B')
Else WriteLn ('O valor de B é maior que o Valor de A');

Exemplo: Com o nome, sexo, idade e notas dos 4 bimestres de alunos, calcule a media e informe se o aluno está
APROVADO ou REPROVADO com a Media >= 7.
* Resolução com apenas um comando na verdade ou no falso.
E = NO, SE, ID, B1, B2, B3, B4
P = M := (B1+B2+B3+B4)/4
S = SE M >= 7 ENTAO ESCREVA APROVADO
SENAO ESCREVA REPROVADO
Program Decisao_01;
Var NO, SE : String;
ID : Integer;
B1,B2,B3,B4, M : Real;
Begin WriteLn ('INFORMAÇÕES DO ALUNO');
WriteLn ('====================');
WriteLn ('Informe o nome -> '); Read (NO);
WriteLn ('Informe o sexo -> '); Read (SE);
WriteLn ('Informe a idade -> '); Read (ID);
WriteLn ('Informe a nota do 1 Bim-> '); Read (B1);
WriteLn ('Informe a nota do 2 Bim-> '); Read (B2);
WriteLn ('Informe a nota do 3 Bim-> '); Read (B3);
WriteLn ('Informe a nota do 4 Bim-> '); Read (B4);
WriteLn ('====================');
M := (B1+B2+B3+B4)/4;
IF M >= 7 THEN WriteLn ('Aluno ',NO,' foi APROVADO')
ELSE WriteLn ('Aluno ',NO,' foi REPROVADO');
End.

* Resolução com vários comandos na verdade ou no falso.


-> Pseudocódigo
SE (M >= 7) ENTAO INICIO
ESCREVA APROVADO
Fim
SENAO INICIO
ESCREVA REPROVADO
FIM
-> PASCAL
IF (M >= 7) THEN Begin
WriteLn ('O aluno ',NO,' Foi APROVADO');
WriteLn ('Passou ',(M - 7):8:2,' Pontos');
WriteLn ('A media atingida foi= ', M:8:2);
End
ELSE Begin
WriteLn ('O aluno ',NO,' Foi REPROVADO');
WriteLn ('Falta ',(7 - M):8:2,' Pontos');
WriteLn ('A media atingida foi= ', M:8:2);
End;

Anda mungkin juga menyukai