Comando de Controle IF

Operações relacionais e lógicas Operações Aritméticas variáveis Tipos de dados Estruturas Aninhadas algoritmos

Oi pessoal! Tudo bem com todos? No último artigo eu apresentei a vocês o recurso de PSEUDOCÓDIGO, e também o VisuAlg. Bom, agora que já sabemos usar esses dois recursos, podemos continuar muito tranquilamente.

 

Novos comandos serão introduzidos nos próximos artigos, portanto, fiquem atentos! A nossa construção está sendo progressiva e crescente, quando chegar ao final da série vocês verão o quanto puderam aprender de pouco em pouco.

 

Mas chega de blá blá blá né?! Vamos ao que interessa!

 

 

Comando de Controle de Programa

 

Comandos de Controle de Programa são comandos que podemos usar em nossos programas para direcionar o fluxo de sua execução. Vou explicar a seguir, não se preocupe.

 

Um programa pode ser dividido em partes, como pudemos notar no artigo anterior. Primeiro temos que escrever o nome do programa, depois temos um espaço reservado para declaração de variáveis, aí entra o programa principal, com os comandos que queremos que sejam executados.

 

Um comando de controle de programa é então um comando que desvia de uma parte do programa, executa determinada ação, e volta para onde estava. Normalmente, o programa principal está sendo executado e então, ao chegar em uma linha que contém um comando desse tipo, o controle do programa passa a não ser mais do programa principal, mas sim daquele bloco de código que está sendo executado. Está difícil ainda de entender? Vamos exemplificar essa situação usando o comando de controle IF.

 

 

Desvio Condicional: IF

 

Um comando de desvio condicional faz exatamente o que o próprio nome diz, desvia o programa pela avaliação de uma condição. IF-THEN-ELSE e Switch/Case são comandos deste tipo e hoje vamos falar só sobre o IF.

 

O comando SE (IF) deve ser utilizado sempre quando precisamos analisar uma situação e decidir o que vamos fazer em seguida. Simplificadamente, funciona mais ou menos assim: Se tal condição for verdadeira, faça tal coisa, caso contrário, faça outra coisa.

 

Esse comando é implementado também no Excel, é bem provável que vocês já tenham feito algo assim antes. Darei um exemplo clássico. Queremos desenvolver um programa que:

 

  • Solicite as notas das duas provas bimestrais dos estudantes;
  • Calcule a média dessas notas;
  • Verifique a situação do estudante:
    • Aprovado se a média for maior ou igual a 7;
    • Recuperação se a média for menor que 7 e maior que 4;
    • Reprovado se a média for menor que 4.
  • Apresente na tela os resultados.

 

O comando SE vai resolver esse problema da média pra gente. Portanto, antes de fazermos o pseudocódigo, vamos entender como funciona o comando SE, por meio de um fluxograma. Pra facilitar, vou diminuir o escopo do problema. Por hora, vamos apenas verificar se a média do estudante o qualifica como Aprovado.

 

Comando IF Simples

 

Recordando: o Losango no Fluxograma indica uma AVALIAÇÃO, os Retângulos indicam um PROCESSAMENTO, os Retângulos Arredondados indicam o início e o fim do Algoritmo, e as Setas indicam o fluxo da execução do programa.

Figura 1 - Comando IF Simples
Figura 1 - Comando IF Simples

 

O Fluxograma apresentado na Figura 1 mostra o início do comando SE direcionando-se para uma condição, que em nosso caso é avaliar se a média do estudante é maior ou igual a 7. Se a resposta que o programa obtiver for Verdadeira, então, observe que o fluxograma segue para o lado esquerdo, onde os comandos específicos para essa condição serão executados. Após a execução de todos os comandos deste bloco, o programa segue para o fim, retornando o comando de controle para o programa principal. Se a resposta da avaliação da condição for Falsa, então, o bloco de comandos do IF é encerrado (fim) e o controle volta para o programa principal. Então, o comando Se Simples pode ser generalizado como:

 

SE a condição avaliada for Verdadeira, ENTÃO, execute os comandos deste bloco. SE a condição avaliada for Falsa, ENTÃO saia deste bloco e retorne ao programa principal.

 

A sintaxe é: 

 

O Pseudocódigo correspondente é apresentado na Listagem 1:

 

Linha 1: Nome do Programa.

 

Linha 2 e 3: Declaração de Variáveis. São declaradas três variáveis do tipo real, duas para obter os valores das duas notas e uma terceira para armazenar o valor da média.

 

Linha 4: Início do Programa.

 

Linhas 5, 7, 11, 12, 13, e 14: Usamos o comando ESCREVA para escrever textos na tela.

 

Linhas 6 e 8: Usamos o comando LEIA para obter os valores das variáveis NE e N2 que serão digitados pelo usuário.

 

Linha 9: Fazemos o cálculo da média das duas notas.

 

Linha 10: Aqui usamos o comando SE para avaliar a condição MÉDIA >= 7. Se a resposta para avaliação for VERDADEIRA, então, vai aparecer na tela as mensagens que colocamos no ESCREVA. Essas mensagens apresentam as notas das provas, a média e a situação do aluno. Se MÉDIA não for maior ou igual a 7, então nada acontece, simplesmente saímos do bloco de comando do SE e voltamos para o programa principal, o qual apenas emite uma mensagem de FIM DE PROGRAMA. Portanto, das linhas 10 à 15, temos o bloco de comando do IF. A condição sendo Verdadeira, esse bloco será executado, sendo falsa, sairá do bloco.

 

Dessa forma, podemos fazer um pequeno teste de software. Vamos avaliar o programa para os seguintes valores:

a) nota 1 = 10, nota 2 = 9

b)  nota 1 = 6, nota 2 = 4

  

nota1nota2médiase (média>=7) 
109(10+9)/2 = 9.5

9.5 >= 7

Verdadeiro

Executa

 
64(6+4)/2 = 5

5 >= 7

Falso

Não executa

 

 

 

Isso é o que chamamos de teste de mesa, que é basicamente atribuir valores às variáveis e executar toda a sequência do programa. Para a letra A: a média é 9.5, o que caracteriza o estudante como Aprovado. Portanto, os comandos do bloco Se serão executados. Para a letra B: a média é 5, então o estudante está reprovado. Dessa forma nada é executado no bloco de comando SE, ele simplesmente sai desse bloco e retorna para o programa principal.

 

Comando IF Composto

 

Figura 2 - Comando IF Composto
Figura 2 - Comando IF Composto

Vamos ver agora como fica o programa ao tratarmos tanto a resposta Verdadeira, quanto a Falsa, na avaliação da condição. Observe o Fluxograma do comando apresentado na Figura 2. É bem parecido com o Fluxograma da Figura 1, mas agora temos o lado direito igual ao lado esquerdo. Portanto, comandos serão executados caso a condição seja Falsa. O Pseudocódigo correspondente é apresentado na Listagem 2.

 

 

Observe as linhas de 17 a 21. Nelas encontram-se o tratamento para a resposta FALSA da avaliação da condição. Novamente vamos imprimir na tela os valores das notas, da média e agora a situação do estudante aparecerá como REPROVADO. A condição avaliada é a seguinte: Se a MÉDIA >= 7 é V então o estudante está aprovado, CASO CONTRÁRIO, o estudante está reprovado. Então, o comando Se Composto pode ser generalizado como:

 

SE a condição avaliada for Verdadeira, ENTÃO, execute os comandos deste bloco, CASO CONTRÁRIO, execute os comandos do outro bloco. Ao terminar a execução do bloco SE, retorne ao programa principal.

 

A sintaxe é:

 

  

Vamos avaliar o programa para os seguintes valores:

a) nota 1 = 10, nota 2 = 9

b)  nota 1 = 6, nota 2 = 4

  

nota1nota2médiase (média>=7)
senão
109(10+9)/2 = 9.5

9.5 >= 7

Verdadeiro

Executa

Não executa
64(6+4)/2 = 5

5 >= 7

Falso

Não executa

Executa

  

Como podemos verificar na tabela do teste de mesa, para a letra A: o bloco da resposta V será executado pois 9.5 é maior que 7. Já para a letra B: o bloco da resposta F (senão) será executado. 5 é maior ou igual a 7? Não, então pula este bloco de comandos e vai para o próximo que é o SENÃO e executa os comandos que estão ali.

 

Comando IF Aninhado

 

Figura 3 - Comando IF Aninhado
Figura 3 - Comando IF Aninhado

Usamos o IF Aninhado em situações como a do problema que precisamos resolver aqui, temos mais de uma condição verdadeira ou falsa! Vamos observar o Fluxograma ilustrado na Figura 3. A primeira condição tem duas respostas, verdadeira ou falsa. Se a condição resultar Verdadeira, os comandos deste bloco serão executados e depois vai para o fim, retornando o controle para o programa principal. Mas, se a resposta for Falsa, observe que temos outra condição a ser avaliada, e esta, por sua vez, também pode ter duas respostas. Se esta segunda condição for verdadeira, executará os comandos deste bloco, se for falsa, executará os comandos do bloco da resposta falsa. Assim que esse sub bloco terminar de ser executado, o controle segue para o FIM1, depois para o FIM2 e somente depois retorna para o programa principal. Vejamos o Pseudocódigo correspondente na Listagem 3:

 

 

Observem que agora temos uma estrutura diferente no código das linhas 19 a 31, que é exatamente a avaliação para reprovado e em recuperação. Os comandos ESCREVAL são praticamente os mesmos, o que muda é o que será impresso, conforme cada situação. Então, o comando Se Aninhado pode ser generalizado como:

 

SE a condição1 avaliada for Verdadeira, ENTÃO, execute os comandos deste bloco, CASO CONTRÁRIO, verifique e avalie a condição2. Se a condição2 for Verdadeira, ENTÃO, execute os comandos, CASO CONTRÁRIO, execute os comando correspondentes.  Ao terminar a execução do bloco da condição2, retorne ao controle do bloco Se. Ao terminar a execução do bloco da condição1, retorne o controle ao programa principal.

 

A sintaxe é: 

 

Vamos avaliar o programa para os seguintes valores:

a) nota 1 = 10, nota 2 = 9

b)  nota 1 = 5, nota 2 = 6

c) nota 1 = 1, nota 2 = 3

 

nota1nota2médiase (média>=7)

SENÃO se (média >=4)

senão
109(10+9)/2 = 9.5

9.5 >= 7

Verdadeiro

Executa

Não executaNão executa
56(5+6)/2 = 5.5

5.5 >= 7

Falso

Não executa

5.5 >= 4

Verdadeiro

Executa

Não executa

13(1+3)/2= 2

2 >= 7

Falso

Não executa

2 >= 4

Falso

Não executa

Executa

  

Como podemos verificar na tabela do teste de mesa para a letra A: o bloco da resposta V será executado pois 9.5 é maior que 7, os outros blocos não serão executados. Já para a letra B: 5.5 é maior ou igual a 7? Não, então pula este bloco de comandos e vai para o próximo. 5.5 é maior ou igual a 4? Sim, então executa este bloco de código. Para a letra C: 2 é maior ou igual a 7? Não, vai para o próximo. 2 é maior ou igual a 4? Não, pula este bloco, vai para o próximo e lá executa os comandos programados.

 

 

Conclusão

 

Podemos ainda fazer outros arranjos com o comando IF, dependendo da necessidade do que a Linguagem de  Programação oferece. Bom, assim terminamos o assunto IF. Deixarei alguns exercícios aqui para vocês resolverem. Caso tenham dificuldades, deixem as dúvidas nos comentários que eu responderei. No próximo artigo falaremos sobre Switch/Case.

Outros artigos da série

<< PseudocódigoComando de Controle While >>
NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Elaine Cecília Gatto
Bacharel em Engenharia de Computação. Mestre em Ciência da Computação. Doutoranda em Ciência da Computação. Co-fundarora e Líder das #GarotasCPBr. Pesquisadora Convidada no Grupo de Pesquisa: "Artes em Tecnologias Emergentes" do Programa de Pós Graduação em Design na UNESP Campus Bauru. Cantora, Docente no Magistério Superior, Geek, Nerd, Otaku e Gamer. Apaixonada por Michael Jackson, Macross, Rocky Balboa, Séries, Filmes, Cervejas e Vinhos. Mais informações sobre mim você encontra em: http://lattes.cnpq.br/8559022477811603.

2
Deixe um comentário

avatar
 
1 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
Elaine Cecília GattoFernando Veiga Junior Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Fernando Veiga Junior
Visitante
Fernando Veiga Junior

Olá Elaine! Muito boa essa sua série sobre Introdução ao algoritmos.

Porém nesse ultimo artigo acho que esqueceu de colocar os exercícios. rsrs

Elaine Cecília Gatto
Visitante
Elaine Cecília Gatto

Poxa vida!!! É mesmo!!!! Eu escrevi que colocaria os exercícios e esqueci de colocar. Mil perdões! Darei um jeito de corrigir isto!