Lógica de Programação I - UEG

Propaganda
Lógica de Programação I
Gilson de Souza Carvalho
[email protected]
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
1
Lógica de Programação I
Comandos de Condição
• Comando Switch
O comando Switch pode ser visto como
uma especialização do comando if. Foi
criado para facilitar um uso particular de
comandos if encadeados.
A sintaxe do comando Switch segue:
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
2
Lógica de Programação I
Comandos de Condição
switch <valor inteiro/caractere>
{
case <primeiro valor inteiro/caractere>:
<bloco de instruções>
break;
case <segundo valor inteiro/caractere>:
<bloco de instruções>
break;
...
default:
<bloco de instruções final>
}
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
3
Lógica de Programação I
Comandos de Condição
O comando anterior equivale à sequencia de comandos if
encadeados:
if (<valor testado> == <primeiro valor>)
<bloco de instruções>
else if (<valor testado> == <segundo valor>)
<bloco de instruções>
else if ...
else
<bloco de instruções final>
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
4
Lógica de Programação I
Comandos de Condição
Identificar se um número é igual a 1, 5
ou 10
Faça um algoritmo capaz de identificar se
um número é igual a 1, 5 ou 10. Caso não
seja nenhum desses valores, retomar a
mensagem "Valor inválido".
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
5
Lógica de Programação I
Comandos de Condição
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num = 0;
printf("Entre com um numero: ");
scanf("%d", &num);
...
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
6
Lógica de Programação I
Comandos de Condição
...
switch (num)
{
case 1:
printf("O numero informado valido: %d \n", num);
break;
case 5:
printf("O numero informado valido: %d \n", num);
break;
case 10:
printf("O numero informado valido: %d \n", num);
break;
default:
printf("O numero informado invalido: %d \n", num);
break;
}
}
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
7
Lógica de Programação I
Comandos de Condição
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
8
Lógica de Programação I
Comandos de Condição
O uso do comando switch é particularmente
interessante para a construção de algoritmos
que executem várias funções e o usuário
precise determinar qual operação deva ser
executada.
Esse tipo ele construção é chamada de menu.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
9
Lógica de Programação I
Comandos de Condição
Identificar se um número é par, positivo ou ano bissexto
Faça um algoritmo capaz de identificar se um número é:
1. par ou ímpar;
2. positivo, negativo ou zero;
3. um ano bissexto - considere que para o ano ser bissexto basta que
seja divisível por 400. Caso contrário, precisa ser divisível por 4 e não
ser divisível por 100. Faça uma condição composta que englobe todas
as regras para a definição do ano bissexto.
Caso não seja nenhuma das opções anteriores, o algoritmo deve
retomar uma mensagem informando ao usuário que a operação
solicitada não é válida.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
10
Lógica de Programação I
Comandos de Condição
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n1, opcao;
n1 = opcao = 0;
printf("Entre com o valor a ser testado: ");
scanf("%d", &n1);
printf("Voce pretende identificar se o numero e: \n");
printf("Opcao 1: Par ou Impar: \n");
printf("Opcao 2: Positivo, Negativo ou Zero: \n");
printf("Opcao 3: Bissexto: \n");
scanf("%d", &opcao);
...
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
11
Lógica de Programação I
Comandos de Condição
...
switch (opcao)
{
case 1:
{
if ((n1 % 2) == 0)
printf("Numero Par. \n");
else
printf("Numero Impar. \n");
}
break;
...
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
12
Lógica de Programação I
Comandos de Condição
...
case 2:
{
if (n1 > 0)
printf("Numero Positivo. \n");
else if (n1 < 0)
printf("Numero Negativo. \n");
else
printf("Numero Zero. \n");
}
break;
...
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
13
Lógica de Programação I
Comandos de Condição
case 3:
{
if (((n1 % 4) == 0) && ((n1 % 100) != 0) || ((n1 % 400) == 0))
printf("Ano Bissexto. \n");
else
printf("Ano nao e bissexto. \n");
}
break;
default:
printf("Opcao Invalida. \n");
}
return 0;
}
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
14
Lógica de Programação I
Comandos de Condição
Exercícios
1. Faça um algoritmo que leia um número
inteiro diferente de zero diga se este é
positivo ou negativo.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
15
Lógica de Programação I
Comandos de Condição
2. Faça um algoritmo que leia um número
inteiro e diga se este é positivo, negativo ou
zero. Utilize a sequencia de comandos if
encadeados.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
16
Lógica de Programação I
Comandos de Condição
3. Faça um algoritmo que determine se um dado
número é par ou ímpar (utilize o operador resto:
<dividendo> resto <divisor>, que retoma o resto
da divisão inteira de <dividendo>/<divisor>).
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
17
Lógica de Programação I
Comandos de Condição
4. Faça um algoritmo que simule uma calculadora com as quatro
operações básicas (+, -, *, /). O algoritmo deve solicitar ao
usuário a entrada de dois operandos e da operação a ser
executada, na forma de um menu. Dependendo da opção
escolhida, deve ser executada a operação solicitada e escrito seu
resultado. Utilize uma variável caractere para armazenar a
operação e utilize o comando caso para escolher a operação a
ser executada a partir do operador.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
18
Lógica de Programação I
Comandos de Condição
5. Faça um algoritmo que leia as respostas de
três questões de múltipla escolha ('a', 'b‘,'c', 'd'),
Em seguida, leia o gabarito dessas respostas, ou
seja, as respostas corretas. Depois, compare as
respostas dadas com as do gabarito e indique
quantas respostas estão corretas.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
19
Lógica de Programação I
Comandos de Condição
6. Faça um algoritmo que leia três valores que
representam os lados de um triângulo.
Primeiramente, verifique se os lados podem formar
um triângulo (a soma de dois lados não pode ser
menor que o terceiro lado). Caso possa formar um
triângulo, indique se este é equilátero, isósceles ou
escaleno.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
20
Lógica de Programação I
Comandos de Condição
7. Dado um ano d.C. (depois de Cristo),
identifique se este é um ano bissexto ou
não. Considere que para o ano ser bissexto
basta que seja divisível por 400. Caso
contrário, este precisará ser divisível por 4
e não ser divisível por 100.
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
21
Lógica de Programação I
Produzindo conhecimento, transformando vidas
www.posse.ueg.br
22
Download