Mostrando postagens com marcador if. Mostrar todas as postagens
Mostrando postagens com marcador if. Mostrar todas as postagens

Estruturas de controle: Comando de Decisão - Fluxograma

É conhecido que em programação estruturada (quer conhecer mais sobre o assunto clique aqui) o programador deve estabelecer uma disciplina no desenvolvimento do algoritmo onde um sequencia lógica para solução do problema é definida e o programa executa uma instrução após a outra na sequencia programada. A figura 1 abaixo apresenta um exemplo sobre o assunto:
Figura 1. Fluxograma de programa para calcular média.


1ª Recebe dois dados via teclado e armazena nas variáveis de identificadores N1 e N2

Após receber os dados e armazenar:

2ª Calcula a media aritmética com os conteúdos das variáveis N1 e N2 e armazena o resultado na variável de identificador Media

Após realizar a operação aritmética:

3ª Exibe o conteúdo da variável Media no monitor.





No fluxograma acima temos a representação de um programa que irá calcular e exibir a média de duas notas digitadas via teclado. Agora vamos imaginar um programa onde é necessário exibir a mensagem "Aluno aprovado" ou "Aluno reprovado" em função do resultado da média onde todo aluno com média inferior a 6,0 esta reprovado.
Note que é impossível o aluno estar aprovado e reprovado ao mesmo tempo, ou seja, nosso programa deverá "escolher" qual mensagem será exibida. Neste caso será obrigatório o uso de comandos de decisão.

Comando de decisão- São estruturas lógicas condicionais onde uma decisão é tomada baseada numa condição especifica cujo resultado sempre será Verdadeiro ou Falso. Se a condição for verdadeira, pode-se executar uma instrução ou conjunto de instruções. Se a condição não for verdadeira (Falsa), pode-se executar outro conjunto de instruções.
O comando de decisão é representado em fluxograma pelo losango e as respectivas saídas verdadeira e falsa indicando conforme mostra a figura 2.
Figura 2. Losango - figura geométrica que representa o comando de decisão em fluxograma.
Conforme citado, dependendo do resultado da condição, o programa irá escolher o caminho (verdadeiro representado pela letra V ou falso representado pela letra F) que deverá seguir e executar um bloco de instruções. Agora que já conhecemos a estrutura de decisão precisamos definir onde o comando de decisão será inserido no exemplo apresentado na figura 1 para que nosso programa funcione corretamente. Neste caso iremos analisar a média das duas notas para saber se o aluno foi aprovado ou reprovado, logo nosso comando de decisão deverá ser inserido após o calculo da média conforme indicado na figura 3.
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 média< 6,0 (verdadeiro) exibiremos a mensagem "Aluno reprovado", se a média não for menor que 6,0(falso) exibiremos a mensagem "Aluno aprovado". Neste caso o fluxograma ficará conforme indicado na figura 4.
Figura 4. Fluxograma de programa que irá calcular a média e mostra a mensagem aluno aprovado ou reprovado em função do valor da média.
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, ou seja, um mesmo programa pode ser feito de maneiras diferentes. Na figura 5 é mostrado o mesmo fluxograma da média usando um outro operador relacional.

Figura 5. Fluxograma de programa que irá calcular a média e mostra a mensagem aluno aprovado ou reprovado em função do valor da média mudando a condição do comando de decisão.
No que a condição foi modificada, agora se a condição for verdadeira a mensagem que deve ser exibida é "Aluno Aprovado".

Um duvida comum das pessoas que estudam essa estrutura pela primeira vez é sempre: porque uso essa "bolinha" no final??
Essa bolinha indica que sua estrutura de decisão foi finalizada e qualquer instrução após o fim do comando de decisão será executada independente se a condição lógica for verdadeira ou falsa. Observe a figura 6 abaixo:
Figura 6. A importância de definir o local exato do o comando de decisão termina.

Notamos que no Caso A a media será exibida após a finalização do comando de decisão, já no Caso B, a media será exibida antes do termino do comando de decisão dentro da condição verdadeira desse controle. Em termos mais práticos, no Caso A a média será exibida independente se o aluno foi aprovado ou reprovado, já no Caso B a média só será exibida se o aluno for reprovado.
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 7.
Figura7. Desvio condicional simples.
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.

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

Comandos de repetição

Exercício 1 - Fazer um programa que receba 10 numero via teclado e mostre quais desses valores são positivos e quais são negativos (Não será digitada zero). A figura 1 mostra o programa após sua execução.
- Os números devem ser recebidos dentro do loop;
- será necessário o uso do comando de decisão.
Figura 1. Mostrando se os números são positivos ou negativos.
Exercício 2- Fazer um programa que ficará pedindo para o usuário digitar um numero até que o usuário digite o numero 10 conforme mostra a figura 2.
- O segredo esta no condição do comando de decisão
Figura 2. O programa irá solicitar um numero até o usuário digitar 10.
Exercício 3- Fazer um programa que receba 10 numero e mostre o maior de todos os números digitados conforme apresenta a figura 3.
****Não serão digitados números negativos
- Os números devem ser recebidos dentro do loop;
- será necessário o uso do comando de decisão.
- o uso de uma variável auxiliar é recomendado.
Figura 3. Programa exibindo o maior entre 10 numeros
Exercício 4- Fazer um programa que receba 10 numero positivos, some e exiba o resultado da soma. O programa só aceitará valores positivos. Se algum valor negativo for digitado o programa deve exibir a mensagem "valor invalido, só digite números positivos" e não contar esse numero como um numero digitado conforme apresenta a figura 4.
- Os números devem ser recebidos dentro do loop;
- Devem ser digitados 10 números positivos independente dos números negativos digitados.
Figura 4. Execução do programa. Serão digitado 10 números positivos.
Exercício 5- Fazer um programa que faça exponenciação sem o uso da biblioteca Math.h. Para isso o programa deve receber o valor da base e o valor do expoente. O programa só irá calcular o a exponenciação se o expoente for maior que zero, caso seja negativo, o programa deve exibir a mensagem "expoente invalido" e finalizar o programa. A figura 5 mostra como deve ser a execução do programa.
Figura 5. Execução do programa de calculo de expoente.

Exercício 6- Fazer um programa que calcule o fatorial de um numero digitado via teclado. O fatorial que é representado por n! é o produto de todos os inteiros positivos menores ou iguais a n. A figura 6 mostra a execução do programa.
Figura 6. Execução do programa que calcula fatorial de um numero.
Ainda ta com duvida, curta nossa pagina no facebook 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á....

Exercícios de Comandos de Decisão simples

0- Qual a utilidade da estrutura de decisão?

1- Fazer um programa que receba um numero via teclado e verifique se o numero é par ou impar e se o numero é positivo ou negativo.
Dicas:
- Para saber se o numero é par devemos verificar se o resta da divisão é 0
- Para saber se o numero é positivo devemos saber se ele é maior que zero
- Neste programa iremos usar 2 comandos de decisão, mas não será um dento do outro como mostrado na ultima aula.

2-     Fazer um programa que receba um numero via teclado e verifique se o numero é divisível por 5. Caso seja divisível por 5 escreva a mensagem “valor divisível por 5” caso contrario escrever “Valor não divisível por 5”
Dicas:
- Para saber se o numero é divisível por 5 devemos verificar se o resto da divisão entre  o numero e 5 deve ser 0.

3- Fazer um programa que receba 2 números via teclado e mostre o maior numero entre os dois

4- Fazer um programa que receba 2 números via teclado e escreva os números em ordem crescente (mostrar primeiro o menor e depois o maior)

5-  Fazer um programa que receba o valor do raio de uma circunferência via teclado, e verifique se o número é positivo. Se o numero for positivo calcule a área da circunferência. Caso contrario mostre a mensagem “Valor invalido”.

6-      A partir do pseudocódigo, explique o que o programa esta fazendo.

Algoritmo “não sei”
Var
Nota1 : Real
Nota2: Real
Nota3: Real
Media:Real
Media_sub: Real
Inicio
Escreva “Digite a primeira nota”
Leia Nota1
Escreva “Digite a segunda nota”
Leia Nota2
Media=(nota1+Nota2)/2
Se (media>=6) então
Escreva “aluno aprovado com média:”, media
Senão
Escreva “Digite a nota da prova substitutiva”
Leia Nota3
Media_sub=(Media+Nota3)/2
Escreva “Sua media após a prova de recupeção é”, Media_sub
Fim_se
Fim

7- Faça o fluxograma do pseudocódigo do exercício 6.

8-    Fazer um programa que receba 4 números via teclado e escrever qual desses números são positivos.

\Dicas:
- Cada numero digitado deve ser verificado (teremos 4 instruções Se(condição) então
- Caso o numero seja positivo, escreva a mensagem “Numero digitado é positivo”, caso contrario escreva a mensagem “Numero digitado é negativo”


9-  Fazer um programa que receba o nome e a idade de uma pessoa qualquer o programa deve verificar se a idade digitada é superior a 0 e mostrar a seguinte informação ao usuário:

- Se a idade for superior a 0 informar o nome e a idade digitada
- Se a idade for inferior a 0 mostrar o nome da pessoa e informar que a idade digitada é invalida.