Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

PROGRAMAÇÃO EM C – CICLOS E
DECISÕES
Formadora: Lisa Pinto
OBJETIVOS
 Como se representam em C os valores lógicos 
VERDADE e FALSO
 Condições Lógicas
 Operadores Relacionais - (==, >, =, Maior que a > b a é maior que b?
= Maior ou Igual que a >= b a é maior ou igual que 
b?
!= Diferente a != b a é diferente de b?
7
Lisa Pinto
OPERADORES RELACIONAIS
8
 Uma expressão que contenha um operador 
relacional, devolve sempre como resultado o valor 
lógico VERDADE (1) ou FALSO (0). 
Lisa Pinto
OPERADORES RELACIONAIS
9
 Exemplo: - Implemente um programa que 
solicite ao utilizador dois inteiros e, em seguida 
aplique todos os operadores relacionais do C aos 
inteiros lidos.
Lisa Pinto
OPERADORES RELACIONAIS
10
#include 
main()
{
int x,y;
printf("Introduza 2 inteiros: ");
scanf("%d%d",&x,&y);
printf("O Resultado de %d == %d : %d\n",x,y,x==y);
printf("O Resultado de %d > %d : %d\n",x,y,x>y);
printf("O Resultado de %d >= %d : %d\n",x,y,x>=y);
printf("O Resultado de %d = 2
 X =0) ou 
negativo.
Lisa Pinto
IF-ELSE
20
#include 
main()
{
int x;
printf("Introduza um Nº ");
scanf("%d", &x);
if (x>=0)
printf("Número Positivo\n");
else
printf("Número Negativo\n");
}
Lisa Pinto
IF-ELSE
21
 Output:
Lisa Pinto
IF-ELSE
22
 Exemplo: - Implemente um programa que 
indique se o número inteiro lido é zero ou não.
Lisa Pinto
IF-ELSE
23
#include 
main()
{
int x;
printf("Introduza um Nº ");
scanf("%d", &x);
if (x!=0)
printf("%d não é zero!!!\n",x);
else
printf("%d é igual a zero!!!\n",x);
}
Lisa Pinto
IF-ELSE
24
 Output:
Lisa Pinto
BLOCOS DE INSTRUÇÕES
25
 Na instrução if-else apenas uma e uma só 
instrução pode seguir o if ou o else. 
 Caso se deseje que um conjunto de instruções 
seja realizada quer no if quer no esle, estas 
devem ser escritas entre chavetas {} de forma a 
que este conjunto de instruções forme apenas um 
único Bloco de Instruções.
Lisa Pinto
BLOCOS DE INSTRUÇÕES
26
 Um Bloco é assim, um conjunto de duas ou mais 
instruções, delimitadas por chavetas. 
 Um Bloco pode ser colocado sem problemas num 
programa, no local em que possa estar uma instrução 
simples. 
 Depois de um Bloco não é necessário colocar 
ponto e virgula (;). 
Lisa Pinto
BLOCOS DE INSTRUÇÕES
27
 Exemplo - Escreva um programa que leia dois 
números e os apresente por ordem crescente.
Lisa Pinto
BLOCOS DE INSTRUÇÕES
28
#include 
main()
{
int x,y;
printf("Introd. dois Nºs: ");
scanf("%d %d", &x, &y);
if (x >y)
printf("%d %d\n",y,x);
else printf("%d %d\n",x,y);
}
Lisa Pinto
BLOCOS DE INSTRUÇÕES
29
#include 
main()
{
int x,y,tmp;
printf("Introd. dois Nºs: ");
scanf("%d %d", &x, &y);
if (x >y)
{
tmp = x;
x = y;
y = tmp;
}
printf(“Os números por ordem crescente são: %d %d\n",x,y);
}
Lisa Pinto
BLOCOS DE INSTRUÇÕES
30
 Output:
Lisa Pinto
INSTRUÇÕES IF-ESLE ENCADEADAS
31
 Existem situações em que o teste de uma 
condição não e suficiente para tomar uma 
decisão. 
 Pode ser necessário testar mais do que uma 
condição. 
Lisa Pinto
INSTRUÇÕES IF-ESLE ENCADEADAS
32
 Exemplo: - Escreva um programa que solicite 
um salário ao utilizador e mostre o imposto a 
pagar: 
 Se o salário for negativo ou zero mostre o erro 
respectivo.
 Se o salário for maior que 1000 paga 10% de imposto, 
senão paga apenas 5%.
Lisa Pinto
INSTRUÇÕES IF-ESLE ENCADEADAS
33
 Output:
Lisa Pinto
INSTRUÇÕES IF-ELSE ENCADEADAS
34
#include 
main()
{
float salario;
printf("Qual o salário: ");
scanf("%f",&salario);
if (salario 1000)
printf("Imposto = %.2f\n",salario*0.10);
else
printf("Imposto = %.2f\n",salario*0.05);
} 
Lisa Pinto
OPERADORES LÓGICOS
35
 Existem circunstâncias em que uma simples 
condição não chega para tomar uma decisão, 
sendo por isso necessário a interligação de duas 
ou mais condições. 
 Para tal, a maioria das linguagens coloca à 
disposição um conjunto de operadores lógicos, os 
quais funcionam da mesma forma que os 
operadores aritméticos, mas aplicados a valores 
lógicos. 
Lisa Pinto
OPERADORES LÓGICOS
36
Operador Significado Exemplo
&& AND (E lógico) x>=1 && xcaso contrário.
|| (cond 1 || 
cond2)
Verdade se alguma das consições for verdadeira. Falso se 
ambas forem falsas. 
! (! cond) Verdade se condição for falsa. Falso se condição for 
verdadeira.
Lisa Pinto
OPERADORES LÓGICOS
39
 Exemplo: - Escreva um programa que aplique 
uma taxa de imposto sobre o salário, aos solteiros 
de 10% e de 9% aos casados.
Lisa Pinto
OPERADORES LÓGICOS
40
#include 
main()
{
float salario;
char est_civil;
printf("Qual o Salário: "); scanf("%f",&salario);
printf("Qual o Est. Civil: "); scanf(" %c",&est_civil);
if (est_civil=='C' || est_civil=='c')
printf("Imposto: %.2f\n",salario*0.09);
else
if (est_civil=='S' || est_civil=='s')
printf("Imposto: %.2f\n",salario*0.10);
else
printf("Estado Civil Incorrecto!!!\n");
}
Lisa Pinto
OPERADORES LÓGICOS
41
 Output:
Lisa Pinto
PRECEDÊNCIA DOS OPERADORES
LÓGICOS E RELACIONAIS
42
 Em C, como na maioria das linguagens de 
programação, uma expressão nem sempre é 
avaliada da esquerda para a direita. 
 Por exemplo, a expressão 2+3*4 devolve o valor 
14 e não 20 como seria de esperar se se 
executasse (2+3)*4. 
Lisa Pinto
PRECEDÊNCIA DOS OPERADORES
LÓGICOS E RELACIONAIS
43
 Para definir a ordem pela qual as operações são 
executadas, existe uma Tabela de 
Precedências na qual está definida a 
precedência de cada operador. 
Lisa Pinto
44
Operador
 >=
== !=
&&
||
?:
Lisa Pinto
PRECEDÊNCIA DOS OPERADORES
LÓGICOS E RELACIONAIS
SWITCH
45
 A instrução switch adapta-se particularmente à 
tomada de decisões em que o número de 
possibilidades é elevada (em geral maior que 2, 
senão usa-se o if-else), de forma a reduzir a 
complexidade de if-else consecutivos e 
encadeados.
Lisa Pinto
SWITCH
46
 Sintaxe:
switch (expressão)
{
case constante1: instrução1;
case constante2: instrução2;
...
case constanten: instruçãon;
[default:instruções;]
}
Lisa Pinto
SWITCH
47
 Na sintaxe apresentada, expressão representa 
qualquer expressão cujo resultado seja um valor 
numérico dos tipos char, int ou long. 
 A expressão é avaliada, e em seguida o switch
compara o resultado da expressão, com o valor de 
cada constantei que segue cada um dos case. 
 O conjunto de todos os valores possíveis para a 
expressão é colocado entre chavetas. 
Lisa Pinto
FUNCIONAMENTO DO SWITCH
48
 Se o valor da expressão for igual a alguma das 
constantes que seguem os vários case, então são 
executadas as instruções que seguem o case
correspondente. 
 Se o valor da expressão não for igual a nenhuma 
das constantes apresentadas pelos case, então 
são executadas as instruções que seguem o 
default. 
Lisa Pinto
FUNCIONAMENTO DO SWITCH
49
 Como se pode observar pela sintaxe, o default é 
opcional.
 No caso do valor da expressão não ser igual a 
nenhum dos case, nada é executado, terminando 
o switch.
 O programa continua na instrução a seguir ao 
switch. 
Lisa Pinto
FUNCIONAMENTO DO SWITCH
50
 Em cada case do switch só pode estar 
presente para avaliação uma única 
constante do tipo char, int ou long.
Lisa Pinto
FUNCIONAMENTO DO SWITCH
51
 Exemplo: - Escreva um programa que indique 
qual o estado civil correspondente a um carater 
introduzido em maiúsculas.
Lisa Pinto
FUNCIONAMENTO DO SWITCH
52
#include 
main()
{
char Est_Civil;
printf("Qual o estado Civil: ");
scanf(" %c",&Est_Civil); /* ou Est_Civil = getchar(); */
switch(Est_Civil)
{
case 'C': printf("Casado\n"); break;
case 'S': printf("Solteiro\n"); break;
case 'D': printf("Divorciado\n"); break;
case 'V': printf("Viúvo\n");
break;
default : printf("Estado Civil Incorrecto\n");
}
}
Lisa Pinto
FUNCIONAMENTO DO SWITCH
53
 Output:
Lisa Pinto
FUNCIONAMENTO DO SWITCH
54
 O último case ou defalut de um switch não 
necessita de break, porque depois de 
executar as instruções associadas ao último 
case, termina a instrução switch. 
Lisa Pinto
BREAK
55
 A instrução break permite parar a execução 
dentro de um switch, continuando o programa na 
instrução imediatamente a seguir ao switch. 
Lisa Pinto
BREAK
56
 Sempre que existe coincidência entre a 
expressão de um switch e uma das 
constantes possíveis para essa expressão, 
são executadas todas as instruções 
associadas ao case correspondente e 
seguidamente até que o switch termine ou 
seja encontrada a instrução break (ou seja 
encontrada a instrução return). 
Lisa Pinto
BREAK
57
 Exemplo: - Altere o programa anterior de forma 
a funcionar com maiúsculas e minúsculas.
Lisa Pinto
BREAK
58
#include 
main()
{
char Est_Civil;
printf("Qual o estado Civil: ");
scanf(" %c",&Est_Civil); /* ou Est_Civil = getchar(); */
switch(Est_Civil)
{
case 'c':
case 'C': printf("Casado\n"); break;
case 's':
case 'S': printf("Solteiro\n"); break;
case 'd':
case 'D': printf("Divorciado\n"); break;
case 'v':
case 'V': printf("Viúvo\n"); break;
default : printf("Estado Civil Incorrecto\n");
}
}
Lisa Pinto
BREAK
59
 Output:
Lisa Pinto
BREAK
60
 Exemplo: - Escreva um programa que calcule o 
imposto pago por mulheres e por homens, 
sabendo que as mulheres pagam 10% de imposto 
e os homens pagam mais 5% que as mulheres. 
Lisa Pinto
61
#include 
main()
{
float salario, imposto = 0.0;
char sexo;
printf("Introduza o Salário: ");
scanf("%f",&salario);
printf("Qual o Sexo: ");
scanf(" %c",&sexo);
switch (sexo)
{
case 'f':
case 'F': 
printf("Imposto %.2f\n",salario*0.10);
//imposto = 0.10;
break;
case 'm':
case 'M': 
printf("Imposto %.2f\n",salario*0.15);
//imposto = 0.15;
break;
}
//printf("Imposto %.2f\n",salario*imposto);
}
Lisa Pinto
BREAK
62
 Output:
Lisa Pinto
RESUMO
63
 Em C não existe um tipo específico para 
armazenar valores lógicos. Estes são 
representados por 0-Falso e qualquer valor 
diferente se zero representa o valor Verdade. 
 O conteúdo de uma variável, ou o resultado de 
uma expressão, pode ser usado como valor lógico. 
Lisa Pinto
RESUMO
64
 Embora qualquer variável ou expressão possa 
armazenar um valor lógico, é totalmente 
desaconselhável a utilização de reais como 
valores lógicos devido aos erros de 
arredondamento. 
 O teste de condições pode ser realizado através 
das instruções if-else e switch. 
Lisa Pinto
RESUMO
65
 Na instrução if-else, a condição é avaliada e caso 
seja Verdadeira (isto é, diferente de zero) é 
executada a instrução associada ao if. 
 A componente else é executada quando a condição 
devolve o valor lógico Falso (zero). 
 A componente else do if é opcional. 
Lisa Pinto
RESUMO
66
 No caso de ser necessário colocar mais do que 
uma instrução dentro de um if-else, tem que se 
criar uma instrução composta (uma instrução que 
é composta por várias instruções), colocando o 
conjunto de instruções entre chavetas. 
 A esta estrutura chama-se Bloco.
Lisa Pinto
RESUMO
67
 Um Bloco não é mais que um conjunto de 
instruções organizada como um todo. 
 Um Bloco pode ser sempre colocado no local em 
que uma instrução simples pode ocorrer. 
 Em geral depois de um Bloco não é necessário 
colocar ponto e virgula. 
Lisa Pinto
RESUMO
68
 É possível operar valores lógicos através dos 
operadores binários && (AND) e || (OR) ou 
através do operador unário ! (NOT). 
 O operador && tem maior precedência que o 
operador ||. 
Lisa Pinto
RESUMO
69
 Estes operadores permitem a combinação de duas 
ou mais expressões lógicas numa única 
expressão, devolvendo um único valor lógico como 
resultado da avaliação da expressão total. 
Lisa Pinto
RESUMO
70
 A instrução if-else pode ser evitada sempre que 
uma mesma variável, dependendo de uma 
condição, possa receber dois valores diferentes.
 Neste caso, a instrução if-else pode ser 
substituída pelo operador condicional ?:. 
Lisa Pinto
RESUMO
71
 Afim de eliminar conjuntos extensos de 
instruções if-esleencadeadas, o C coloca à 
disposição dos programadores a instrução 
switch. 
 O switch só admite valores constantes 
predefinidos dos tipos char, int ou long. 
Lisa Pinto
RESUMO
72
 Depois da instrução switch verificar qual o case
correspondente à expressão avaliada, inicia a 
execução na instrução associada a esse case, 
executando em seguida todas as instruções 
seguintes em cascata (incluindo as que 
pertençam a outros case) até terminar o switch ou 
até ser encontrada a instrução break. 
Lisa Pinto
RESUMO
73
 A instrução break permite parar a execução de 
um conjunto de instruções dentro de um switch, 
continuando o programa na instrução 
imediatamente a seguir ao switch. 
Lisa Pinto
RESUMO
74
 Uma vez que o conjunto de instruções a executar 
dentro de um switch é controlado pela instrução 
break, não é necessário o uso de chavetas para 
agrupar o conjunto de instruções associadas a um 
case. 
Lisa Pinto
Lisa Pinto
75

Mais conteúdos dessa disciplina