Após mostrar a importância do comando de decisão e desenvolver fluxogramas e pseudocódigos (clique nos links para acessar as postagens) com essa estrutura, baseado nos mesmos exemplos apresentados nas postagens anteriores iremos mostrar como programar em C as estruturas de decisão.
Como já mencionado em outras postagens, o comando de decisão é uma estrutura lógica condicional onde uma decisão é tomada baseada numa condição especifica cujo resultado sempre será Verdadeiro ou Falso. Se a condição for verdadeira, será executada uma instrução ou um conjunto de instruções. Se a condição não for verdadeira (Falsa), serão executadas outro conjunto de instruções.
No exemplo acima, a primeira linha de instrução é o if (condição) onde o programa irá tomar a decisão sobre qual bloco de instruções ele irá executar. Logo abaixo desta primeira instrução, temos todas a instruções que serão executadas pelo programa caso a condição seja verdadeira. Exceto quando temos uma unica instrução após a verificação do if, todos os comandos devem estar entre chaves "{ }". Na duvida sobre onde podemos ou não usar chaves, use chaves em todos os casos.
Já a instrução else marca o inicio do bloco de instruções que será executado caso a condição for falsa (senão for verdadeira). Na figura 2 temos dois exemplos de comando de decisão onde são mostradas as diferenças entre o uso ou não de chaves.
* É IMPORTANTE lembrar que não é utilizado ";" nas instruções if e else.
Agora que já conhecemos a estrutura de decisão em C vamos desenvolver um programa onde iremos analisar a média entre duas notas para saber se o aluno foi aprovado ou reprovado, Com base num fluxograma onde a média é calculada, a figura 3 indica o local exato onde o comando de decisão será inserido.
Definido onde o comando de decisão será inserido no fluxograma, será necessário definir a condição e quais instruções serão executadas caso a condição seja verdadeira ou falsa. Em nosso caso, a condição será a média menor que 6,0 (media < 6,0) logo se a condição "média< 6,0" for verdadeira exibiremos a mensagem "Aluno reprovado", se a média não for menor que 6,0 (falso) exibiremos a mensagem "Aluno aprovado". Na figura 4 é possível ver o fluxograma que soluciona o problema descrito acima e ao lado é mostrado a solução em C para o mesmo problema.
Notamos que na condição temos: media < 6 onde o sinal "<" é o que chamamos de operador relacional. A tabela I abaixo mostra os operadores relacionais usados nos comandos de decisão.
Os operadores relacionais podem ser usados de acordo com sua necessidade ou da maneira que o programador considerar mais conveniente, olhe nossa postagem sobre comando de decisão em fluxograma e confira que um mesmo exercício pode ser feito de maneiras diferentes.
Alguns casos podemos ter um comando de decisão onde a condição falsa é descartada, nestes casos temos o chamado desvio condicional simples e o fluxograma é representado como na figura 5.
#include <stdio.h>
#include <stdlib.h>
main()
{
float n1,n2,X;
scanf("%f",&n1);
scanf("%f",&n2);
X=(n1+n2)/2;
if ( X > 0 )
printf("Numero Positivo");
system("pause");
}
Neste caso temos somente a condição verdadeira do comando if, caso o resultado a condição logica seja falsa o programa será finalizado sem executar outras instruções.
Atenção: O comando de decisão com desvio condicional simples sempre deve ter a condição verdadeira da condição apresentada no comando de decisão. Não é usual ter um comando de decisão com instruções somente na saída falsa do comando.
Agora que você já conhece o básico das estruturas de decisão, faça alguns testes. Seguem alguns exemplos:
- Colocar ";" no final da instrução if e testar forçando condições verdadeiras e falsas;
- Utilizar mais de uma instrução e não usar chaves;
- Trabalhar com operadores lógicos e estruturas de de decisão.
Exercícios:
Para ajudar no seu estudo preparei 3 níveis de exercícios utilizando comando de decisão para acessar os exercícios mais simples clique aqui. Nesta lista só temos exercícios onde os comandos de decisão são usados de maneira individual.
Nesta segunda lista de exercícios que pode ser acessada clicando aqui, você irá trabalhar com comando de decisão composto, ou seja, será necessário utilizar um comando de decisão dentro de outro.
Se as duas primeiras listas foram resolvidas facilmente, acesse nosso Desafios clicando aqui e resolva os problemas aplicados propostos.
Como já mencionado em outras postagens, o comando de decisão é uma estrutura lógica condicional onde uma decisão é tomada baseada numa condição especifica cujo resultado sempre será Verdadeiro ou Falso. Se a condição for verdadeira, será executada uma instrução ou um conjunto de instruções. Se a condição não for verdadeira (Falsa), serão executadas outro conjunto de instruções.
Em C ou C++, o comando de decisão é representado pela sequencia de instruções discriminadas abaixo, onde o equivalente em fluxograma esta representado na figura 1.
if (condição)
{
instruções se condição for verdadeira
}
else
{
instruções se condição não for verdadeira
}
Figura 11. fluxograma do comando de decisão. |
if (condição)
{
instruções se condição for verdadeira
}
else
{
instruções se condição não for verdadeira
}
No exemplo acima, a primeira linha de instrução é o if (condição) onde o programa irá tomar a decisão sobre qual bloco de instruções ele irá executar. Logo abaixo desta primeira instrução, temos todas a instruções que serão executadas pelo programa caso a condição seja verdadeira. Exceto quando temos uma unica instrução após a verificação do if, todos os comandos devem estar entre chaves "{ }". Na duvida sobre onde podemos ou não usar chaves, use chaves em todos os casos.
Já a instrução else marca o inicio do bloco de instruções que será executado caso a condição for falsa (senão for verdadeira). Na figura 2 temos dois exemplos de comando de decisão onde são mostradas as diferenças entre o uso ou não de chaves.
Figura 2. Exemplos de comando de decisão onde não é necessário usar chaves (Exemplo A) e quando é necessário o uso das chaves (Exemplo B) |
* É IMPORTANTE lembrar que não é utilizado ";" nas instruções if e else.
Agora que já conhecemos a estrutura de decisão em C vamos desenvolver um programa onde iremos analisar a média entre duas notas para saber se o aluno foi aprovado ou reprovado, Com base num fluxograma onde a média é calculada, a figura 3 indica o local exato onde o comando de decisão será inserido.
Figura 3. Seta vermelha indica onde devemos inserir o comando de decisão. |
Notamos que na condição temos: media < 6 onde o sinal "<" é o que chamamos de operador relacional. A tabela I abaixo mostra os operadores relacionais usados nos comandos de decisão.
Tabela I, Operadores relacionais. |
Alguns casos podemos ter um comando de decisão onde a condição falsa é descartada, nestes casos temos o chamado desvio condicional simples e o fluxograma é representado como na figura 5.
Figura 5. Desvio condicional simples.
|
#include <stdio.h>
#include <stdlib.h>
main()
{
float n1,n2,X;
scanf("%f",&n1);
scanf("%f",&n2);
X=(n1+n2)/2;
if ( X > 0 )
printf("Numero Positivo");
system("pause");
}
Neste caso temos somente a condição verdadeira do comando if, caso o resultado a condição logica seja falsa o programa será finalizado sem executar outras instruções.
Atenção: O comando de decisão com desvio condicional simples sempre deve ter a condição verdadeira da condição apresentada no comando de decisão. Não é usual ter um comando de decisão com instruções somente na saída falsa do comando.
Agora que você já conhece o básico das estruturas de decisão, faça alguns testes. Seguem alguns exemplos:
- Colocar ";" no final da instrução if e testar forçando condições verdadeiras e falsas;
- Utilizar mais de uma instrução e não usar chaves;
- Trabalhar com operadores lógicos e estruturas de de decisão.
Exercícios:
Para ajudar no seu estudo preparei 3 níveis de exercícios utilizando comando de decisão para acessar os exercícios mais simples clique aqui. Nesta lista só temos exercícios onde os comandos de decisão são usados de maneira individual.
Nesta segunda lista de exercícios que pode ser acessada clicando aqui, você irá trabalhar com comando de decisão composto, ou seja, será necessário utilizar um comando de decisão dentro de outro.
Se as duas primeiras listas foram resolvidas facilmente, acesse nosso Desafios clicando aqui e resolva os problemas aplicados propostos.
Ainda ta com duvida, curta nossa pagina no facebook no link abaixo e poste sua duvida lá.
Nenhum comentário:
Postar um comentário