Mostrando postagens com marcador comando de decisão. Mostrar todas as postagens
Mostrando postagens com marcador comando de decisão. Mostrar todas as postagens

Comando de decisão em C

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.

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.

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.
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.
Figura 4. Fluxograma do calculo de média .




#include <stdio.h>
#include <stdlib.h>
main()
{
float n1,n2,media;
scanf("%f",&n1);
scanf("%f",&n2);
        media=(n1+n2)/2;
if(media<6)
printf("Aluno Reprovado");
else
printf("Aluno Aprovado");
system("pause");
}







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.
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.
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á.

Exercicios de comando de decisão composto

1- Considerando no programa abaixo que para L1, L2 e L3 so pode ser digitado “1” ou “0”:

Algoritmo Nó_na_cabeça
Var
   L1,L2,L3 : Real
Início
   leia L1,L2,L3 {deve ser digitado apenas os números  1 ou 0}
   se L1== 1 então
         escreva "A"
   senão
       se L2 == 1 então
            se L3 == 1 então
                 escreva "B"
            senão
                 escreva "C"
                 escreva "D"
            fim-se
       fim-se
   fim-se
escreva "E"
Fim

Com base no pseudocódigo responda as seguintes questões:
a) Se forem lidos 1, 1 e 0, o que será escrito pelo algoritmo?
b) Se forem lidos 0, 1 e 0, o que será escrito pelo algoritmo?
c) Se forem lidos 0, 1 e 1, o que será escrito pelo algoritmo?
d) Que valores deveriam ser lidos para que fosse escrito apenas "E"?

2- Fazer um algoritmo que receba 3 números via teclado e exiba o maior numero entre os três.

3- Faça um algoritmo que determine o grau de obesidade de uma pessoa, sendo fornecido o peso e a altura da pessoa. O grau de obesidade é determinado pelo índice da massa corpórea (Massa = Peso / Altura2 ) através da tabela abaixo:


4- Elabore um algoritmo que leia a idade de um nadador e exiba a mensagem de qual categoria o nadador irá se enquadrar conforme a tabela abaixo:

infantil A -  5 - 7 anos
infantil B  - 8-10 anos
juvenil A   - 11-13 anos
juvenil B   - 14-17 anos
             adulto       -  maiores de 18 anos
Caso a idade da criança seja inferior a 5 anos deve ser mostrada a mensagem "muito nova para competição


5- Fazer um programa que receba 3 números via teclado e exiba o menor entre os três.


6- Fazer um algoritmo que receba duas notas via teclado calcule e exiba a media do aluno. Caso a media for maior ou igual a 6 também deve ser exibida a mensagem aluno aprovado. Caso a media do aluno for menor que 6 o programa deve receber uma nova nota e recalcular a media  entre as três notas. Caso a nova media seja maior ou igual a 6 exibir a mensagem “aluno aprovado na recuperação”, caso contrario exibir “aluno reprovado na recuperação”.


7- Fazer um algoritmo que receba duas notas via teclado calcule e exiba a media do aluno. Caso a media for maior ou igual a 6 também deve ser exibida a mensagem aluno aprovado. Caso a media do aluno for menor que 6 o programa deve receber uma nova nota e recalcular a media  entre a terceira nota e a maior entre as duas notas anteriores. Caso a nova media seja maior ou igual a 6 exibir a mensagem “aluno aprovado”, caso contrario exibir “aluno reprovado”.

8 - Fazer um programa que calcule e exiba a área de um retângulo, para isso o programa deve seguir os seguintes passos:
- ao receber os valores do lado do retângulo o programa deve verificar se os dois lados são diferentes
- Os lados forem diferentes, calcula a area e escrever “é uma retângulo de área:” e exibir a área
-  Caso os lados sejam iguais, escrever “coordenadas digitadas não formam um retângulo”


1    9- Fazer um algoritmo que recebe o valor dos lados de um triangulo qualquer(a,b e c) e fale se os valores digitado formam um triangulo
Para forma um triangulo devemos ter:


                               a<b+c e b<a+c e c<a+b

Achou esses exercícios difíceis?? Faça nossa lista anterior, os exercícios são mais simples. Clique aqui para acessar os exercícios.

Ainda ta com duvida, curta nossa pagina no facebook e poste sua duvida lá....