Buscar

LinguagemC-2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Gustavo Luís F. Vicente
Linguagem C
MÓDULO 2
Estruturas de Decisão
Linguagem C 2
Estruturas de Controle
• Sequência de Execução
– instruções executadas uma após a outra, na 
ordem em que foram escritas
• Estruturas de Decisão
– executam instruções dependendo do 
resultado de uma expressão condicional
• Estruturas de Repetição
– executam instruções várias vezes, em 
função de uma condição
• Bohn e Jacopini
– Todo programa pode ser escrito em termos 
das três estruturas acima
?V F
?
Linguagem C 3
Sequência de Execução
Adiciona nota ao total
Adiciona 1 ao contador
total = total + nota;
cont = cont + 1;
FLUXOGRAMA CÓDIGO C
Linguagem C 4
Sequência de Execução
1 #include <stdio.h>
2
3 main()
4 {
5 int n_pessoas; // número de pessoas no churrasco
6 float peso_carne; // qtde de carne a ser comprada
7
8 printf( ”Digite o número de pessoas do churrasco: " ); 
9 scanf( “%d", &n_pessoas ); 
10 peso_carne = n_pessoas * 0.3; // calcula a qtde de carne
11 printf( ”\n Quantidade de carne: %4.1f kg.\n”, peso_carne);
12
13 } /* Fim da função main() */
EXEMPLO
DECLARAÇÃO DE
VARIÁVEIS
INSTRUÇÕES
DO
PROGRAMA
Linguagem C 5
Estruturas de Decisão
• Utilizadas para alterar o fluxo de execução do programa
• Pseudocódigo
Se nota do aluno maior ou igual a 6,0
Escrever “Passou”
• Se a condição é verdadeira
– instrução Escrever é executada
• Se a condição é falsa
– instrução Escrever é ignorada
nota >= 6.0 Escrever 
“Passou”
V
F
FLUXOGRAMA
MAS, ATENÇÃO !!!
Linguagem C 6
Estruturas de Decisão
f (nota >= 6.0) // Se nota maior ou igual a 6.0
printf("Passou"); // Escrever “Passou”
C não possui o 
tipo booleano: 
TRUE/FALSE
Em C, a instrução de decisão: if
Linguagem C 7
Estruturas de Decisão
Como, então, representar 
um valor booleano???
C não possui o 
tipo booleano: 
TRUE/FALSE
Avaliação/Representação de Condição em C
= 0  FALSO
 0  VERDADEIRO
Exs.: (3 - 4) é VERDADEIRO
(5 - 5) é FALSO int flag;
...
if (flag)
{
<instruções>
}
Utiliza-se uma variável do tipo int :
Linguagem C 8
Estruturas de Decisão
int flag;
...
if (flag)
{
<instruções>
}
se o conteúdo da variável flag for 0 
(zero), o programa entenderá a 
condição como FALSO, e NÃO 
executará as <instruções>.
se o conteúdo da variável flag for 
diferente de zero, o programa entenderá 
a condição como VERDADEIRO, e 
executará as <instruções>.
Linguagem C 9
Estruturas de Decisão
Digite a nota do aluno
7.3
Passou.
Este programa
indica se o 
aluno passou.
1 /* 
2 Terceiro programa:
2 Programa que indica se o aluno passou
3 */
3 #include <stdio.h>
4 
5 /* Função main() inicia a execução do programa */
6 int main()
7 {
8 float nota; // Nota do aluno
9 
10 printf( ”Digite a nota do aluno\n" ); // prompt 
11 scanf( "%f", &nota ); // lê a nota 
12 
13 if ( nota >= 6.0) // Avalia a condição:
14 printf( ”\nPassou.\n" ); // Indica o resultado
15 
16 return 0; /* Indica que o programa terminou normalmente */
17 
18 } /* Fim da função main() */
Linguagem C 10
Estruturas de Decisão
• A instrução if...else
• if
• executa uma ação apenas se a condição for VERDADEIRA
• if...else
• especifica uma ação a ser executada se a condição for 
VERDADEIRA, e outra se a condição for FALSA
• Pseudocódigo
Se a nota do aluno é maior ou igual a 6,0
Escrever “Passou”
senão
Escrever “Reprovado”
Linguagem C 11
Estruturas de Decisão
• Instruções em C
if (nota >= 6.0)
printf("Passou. ");
else
printf("Reprovado.");
• Repare a identação: espaçamento das instruções, para clareza
do código.
• A linguagem C não considera espaços e mudanças de linha.
nota >= 6.0 Escrever 
“Passou”
Escrever 
“Reprovado”
F V
FLUXOGRAMA
Linguagem C 12
Estruturas de Decisão
• Operadores relacionais
• Relacionam (COMPARAM) dois valores
Operadores 
algébricos padrão
Operadores 
utilizados pelo C
Exemplo de uso, 
em C
Significado
= == x == y x é igual a y ?
≠ != x != y x é diferente de y ?
> > x > y x é maior que y ?
< < x < y x é menor que y ?
≥ >= x >= y x é maior ou igual 
a y ?
≤ <= x <= y x é menor ou igual 
a y ?
Linguagem C 13
Estruturas de Decisão
1 /* Quarto programa:
2 Programa que utiliza os operadores relacionais */
3 #include <stdio.h>
4 
5 /* Função main() inicia a execução do programa */
1 int main()
2 {
3 int num1, num2; // números a serem digitados pelo usuário
4 printf( ”Digite dois números inteiros que te mostro\n" ); // Apresentação ao usuário
5 printf( ”as relações verdadeiras entre eles.\n" ); 
6 printf( ”Primeiro número: " ); // prompt
7 scanf( "%d", &num1 ); // lê o primeiro número
8 printf( ”Segundo número: " ); // prompt
9 scanf( "%d", &num2 ); // lê o segundo número
10 if ( num1 == num2) // Avalia se num1 é igual a num2
11 printf( ”%d é igual a %d”, num1, num2); 
12 if ( num1 != num2) // Avalia se num1 é diferente de num2
13 printf( ”%d é diferente de %d”, num1, num2); 
14 if ( num1 > num2) // Avalia se num1 é maior que num2
15 printf( ”%d é maior que %d”, num1, num2); 
16 if ( num1 < num2) // Avalia se num1 é menor que num2
17 printf( ”%d é menor que %d”, num1, num2); 
18 if ( num1 >= num2) // Avalia se num1 é maior ou igual a num2
19 printf( ”%d é maior ou igual a %d”, num1, num2); 
20 if ( num1 <= num2) // Avalia se num1 é menor ou igual a num2
21 printf( ”%d é menor ou igual a %d”, num1, num2); 
22 return 0; /* Indica que o programa terminou normalmente */
23 } /* Fim da função main() */
Linguagem C 14
Estruturas de Decisão
Digite dois números inteiros e te mostro
as relações verdadeiras entre eles.
Primeiro número: 3
Segundo número: 7
3 é diferente de 7
3 é menor que 7
3 é menor ou igual a 7
Resultado da execução do programa
Linguagem C 15
Estruturas de Decisão
EXERCÍCIOS
1.Programa que pede as três notas e informa a média e 
se o aluno passou ou não passou. Obs.: a média deve ser 
mostrada com apenas uma casa decimal.
2.Programa que pede a altura de dois irmãos e informa 
qual é o mais alto (o primeiro ou o segundo).
3.Complemente o programa da questão 2, de forma que o 
programa informe também de quantos centímetros é a 
diferença do mais alto para o mais baixo.
4.Programa que pede dois números inteiros e informa se 
o primeiro é múltiplo do segundo.
Linguagem C 16
Estruturas de Decisão
• Aninhamento de ifs
• condições compostas podem requerer o aninhamento de estruturas 
de decisão: uma estrutura de decisão “dentro da outra”
•Pseudocódigo
Se a nota do aluno é maior ou igual a 6,0
escrever “Passou”
senão
escrever “Reprovado”
Fim_Se
• Aninhamento de ifs
• condições compostas podem requerer o aninhamento de estruturas 
de decisão: uma estrutura de decisão “dentro da outra”
•Pseudocódigo
Se a nota do aluno é maior ou igual a 6,0
escrever “Passou”
senão
Se a nota é maior ou igual 4,0
escrever “Vai pra VS”
senão
escrever “Reprovado”
Fim_Se
Fim_Se
Uma 
decisão...
...como 
parte de 
outra 
decisão.
1 /* Programa que indica se o aluno passou, foi pra VS ou foi reprovado */2 #include <stdio.h>
3
4 /* Função main() inicia a execução do programa */
5 main()
6 {
7 float nota; 
8
9 printf( ”Digite a nota do aluno\n" ); 
10 scanf( "%f", &nota ); 
11
12 if ( nota >= 6.0);
13 printf( ”\nPassou.\n" ); 
14 else
15 {
16 if (nota >= 4.0)
17 printf(“Vai pra VS”);
18 else
19 printf(“Reprovado”);
20 }
21
22 } /* Fim da função main() */
Linguagem C 17
Estruturas de Decisão
Linguagem C 18
Estruturas de Decisão
• Operadores Lógicos
• permitem a composição de condições mais elaboradas
• Exemplos:
• SE (fizer sol E for fim-de-semana)
vou à praia
• SE (o Botafogo for campeão OU o Flamengo for eliminado)
ficarei feliz
• SE (NÃO reprovar)
raspo meu cabelo
Linguagem C 19
Estruturas de Decisão
• Operador Lógico E (AND): &&
• operador binário (precisa de dois operandos)
• apenas se as duas condições forem VERDADE, a expressão 
retornará VERDADE
• se qualquer uma das duas condições for FALSO (ou as 
duas), a expressão retornará FALSO
OPERANDO 1 OPERANDO 2 RESULTADO
FALSO FALSO FALSO
FALSO VERDADE FALSO
VERDADE FALSO FALSO
VERDADE VERDADE VERDADE
Tabela Verdade
Linguagem C 20
Estruturas de Decisão
• Operador Lógico OU (OR): ||
• operador binário (precisa de dois operandos)
• apenas se as duas condições forem FALSO, a expressão 
retornará FALSO
• se qualquer uma das duas condições for VERDADE (ou as 
duas), a expressão retornará VERDADE
OPERANDO 1 OPERANDO 2 RESULTADO
FALSO FALSO FALSO
FALSO VERDADE VERDADE
VERDADE FALSO VERDADE
VERDADE VERDADE VERDADE
Tabela Verdade
Linguagem C 21
Estruturas de Decisão
• Operador Lógico NÃO (NOT) – INVERSOR: !
• operador unário (precisa de apenas um operando)
• retorna o valor lógico inverso do operando
OPEDANDO RESULTADO
FALSO VERDADE
VERDADE FALSO
Tabela Verdade
1 /* Programa que indica se o aluno passou, foi pra VS ou foi reprovado */
2 #include <stdio.h>
3
4 /* Função main() inicia a execução do programa */
5 main()
6 {
7 float nota; 
8
9 printf( ”Digite a nota do aluno\n" ); 
10 scanf( "%f", &nota ); 
11
12 if ( nota >= 6.0 )
13 printf( ”\nPassou.\n" ); 
14 if (nota >= 4.0 && nota<6.0)
15 printf(“Vai pra VS”);
16 if (nota < 4.0)
17 printf(“Reprovado”);
18
19 } /* Fim da função main() */
Linguagem C 22
Estruturas de Decisão
Linguagem C 23
Estruturas de Decisão
EXERCÍCIOS
1.Programa que pede dois números e indica qual é o maior.
2.Altere o programa anterior para considerar a digitação de dois números 
iguais.
3.Programa que pede três números e informa qual é o maior e qual é o 
menor.
4.Programa que pede um número inteiro e informa se ele é par ou impar.
5.Programa que pede a idade de uma pessoa e informa se ela é eleitora 
obrigatória (entre 18 e 70 anos) ou opcional (entre 16 e 18 ou maior de 70 
anos). Se for eleitora obrigatória, informar também após quantos anos ela 
passará a ser eleitora opcional.
6.Programa que pede o valor do salário e informa o valor do desconto de 
imposto de renda, conforme a tabela abaixo:
Salário Desconto
Até R$1.500,00 Isento
De R$1.501, 00 até R$3.200,00 15%
Acima de R$3.200,00 20%
Linguagem C 24
Estruturas de Decisão
• Operador Ternário de Decisão
• precisa de 3 operandos
• único operador ternário em C
• executa uma dentre duas expressões, de acordo com o resultado 
de uma expressão lógica
• como um operador, retorna um valor (o valor resultante da 
expressão executada)
Linguagem C 25
Estruturas de Decisão
• Operador Ternário de Decisão
• Sintaxe:
<condição> ? <expressão_True> : <expressão_False>
•
•Pseudocódigo equivalente:
SE (<condição>)
<expressão_True>
SENÃO
<expressão_False >
Fim_SE
1 /* Programa que diz qual é o maior número */
2 #include <stdio.h>
3
4 /* Função main() inicia a execução do programa */
5 main()
6 {
7 int n1, n2, n3, maior; 
8
9 printf( ”Digite o primeiro número" ); 
10 scanf( "%d", &n1 ); 
11 printf( ”Digite o segundo número" ); 
12 scanf( "%d", &n2 ); 
13 maior = n1>n2 ? n1 : n2;
14 printf(“O maior número digitado foi o %d.”, maior);
15
16 } /* Fim da função main() */
Linguagem C 26
Estruturas de Decisão
1 /* Programa que diz qual é o maior número */
2 #include <stdio.h>
3
4 /* Função main() inicia a execução do programa */
5 main()
6 {
7 int n1, n2, n3, maior; 
8
9 printf( ”\nDigite o primeiro número: " ); 
10 scanf( "%d", &n1 ); 
11 printf( ”\nDigite o segundo número: " ); 
12 scanf( "%d", &n2 ); 
13 printf( ”\nDigite o terceiro número: " ); 
14 scanf( "%d", &n3 ); 
15 maior = n1>n2 ? (n1>n3?n1:n3) : (n2>n3?n2:n3);
16 printf(“\nO maior número digitado foi o %d.\n”, maior);
17
18 } /* Fim da função main() */
Linguagem C 27
Estruturas de Decisão
Linguagem C 28
Estruturas de Decisão
EXERCÍCIOS
Atenção: utilizar o operador ternário de decisão.
1.Programa que pede dois números e indica qual é o maior.
2.Programa que pede o valor do salário e informa o valor do desconto de 
imposto de renda, conforme a tabela abaixo:
Salário Desconto
Até R$1.500,00 Isento
De R$1.501, 00 até R$3.200,00 15%
Acima de R$3.200,00 20%
Linguagem C 29
Operadores de Atribuição
• Simplificam a expressão com atribuição de valor
• expressões do tipo:
variável = variável operador expressão;
• podem ser expressas na forma: 
variável operador= expressão;
• Exemplos:
x += 3; equivale a x = x + 3;
x -= 3; equivale a x = x - 3;
x /= 3; equivale a x = x / 3;
x *= 3; equivale a x = x * 3;
x %= 3; equivale a x = x % 3;
1 /* Programa que calcula a média de 3 números */
2 #include <stdio.h>
3 /* Função main() inicia a execução do programa */
4 main()
5 {
6 float n, total, media; 
7
8 total = 0;
9 printf( ”Digite o primeiro número" ); 
10 scanf( "%f", &n );
11 total += n; 
12 printf( ”Digite o segundo número" ); 
13 scanf( "%f", &n ); 
14 total += n;
15 printf( ”Digite o terceiro número" ); 
16 scanf( "%f", &n ); 
17 total += n;
18 media = total /3;
19 printf(“A média é %.2f.”, media);
20 } /* Fim da função main() */
Linguagem C 30
Operadores de Atribuição
Linguagem C 31
Estruturas de Decisão
EXERCÍCIOS
1. Programa que pede o peso (em kg) e a altura (em metros) de uma 
pessoa e informa o IMC (Índice de Massa Corporal), indicando seu estado 
físico, conforme a tabela abaixo:
IMC
< 18,5 Abaixo do peso normal
18,6 a 24,9 Peso normal
25,0 a 29,9 Sobrepeso
30,0 a 34,9 Obesidade grau I
35,0 a 39,9 Obesidade grau II (severa)
≥ 40,0 Obesidade grau III (mórbida)
Linguagem C 32
Estruturas de Decisão
• Estrutura de Decisão Multivalorada
• estrutura que permite entrar em um bloco de instruções a 
partir de um ponto definido pelo valor de uma variável
• Em casos específicos, torna uma estrutura de ifs aninhados 
mais legível
Linguagem C 33
Estruturas de Decisão
• Estrutura de Decisão Multivalorada
• Pseudocódigo
verifique a <variável>
caso seja valor1:
<instruções>
caso seja valor2:
<instruções>
...
caso nenhum deles:
<instruções>
Linguagem C 34
Estruturas de Decisão
• Estrutura de Decisão Multivalorada: switch...case
switch (num)
{
case 1:
<instruções>
case 2:
<instruções>
...
default:
<instruções>
}
num == 1 Instruções
F
V
num == 2 Instruções
V
InstruçõesV...
Instruções
Linguagem C 35
Estruturas de Decisão
• Estrutura de Decisão Multivalorada
• quantas cláusulas case precisar
• Apenas uma cláusula default, que é opcional
• ATENÇÃO: a estrutura NÃO executa apenas as instruções 
da cláusula case associada ao valor da variável verificada, 
mas TODAS as instruções A PARTIR dela.
• Para executar apenas as instruções daquela cláusula, 
devemos usar o comando break, que “quebra” a 
sequência de um bloco de instruções.
• Como assim ???...
Linguagem C 36
Estruturas de Decisão
• Estrutura de Decisão Multivalorada: switch...case
switch (num)
{
case 1:
<instruções>
break;
case 2:
<instruções>
break;
...
default:
<instruções>
}
num == 1 Instruções
F
V
num == 2 Instruções
V
Instruções
V...
Instruções
1 #include <stdio.h>
2 main()
3 {
4 int n; 
5 printf( ”\nDigite um mês do ano com 30 dias: " ); 
6 scanf( "%d", &n );
7 switch (n)
8 {
9 case 4: printf(“\nAbril\n”); 
10 break; 
11 case 6: printf(“\nJunho\n”); 
12 break; 
13 case 9: printf(“\nSetembro\n”); 
14 break; 
15 case 11: printf(“\nNovembro\n”); 
16 break; 
17 default: printf(“\nMês inválido!\n”);
18 }
19 } /* Fim da função main() */
Linguagem C 37
Estruturas de Decisão
Linguagem C 38
Estruturas de Decisão
EXERCÍCIO
1. Uma empresa ocupa os 9 primeiros andares de um prédio de 20 
andares, com a distribuição de seus departamentos conforme a tabela 
abaixo. A diretoria da empresa pediu para você desenvolver um programa 
de auxílio ao visitante. Ela quer um programa que peça o andar e informe 
qual o departamento está alocado no andar digitado. 
Obs.: utilize a estrutura de decisão multivalorada.
ANDAR DEPTO
1 Compras
2 e 3 Almoxarifado
4 Marketing
5 Recursos Humanos
6, 7 e 8 Projetos de Engenharia 
9 Diretoria
Linguagem C 39
Estruturas de Decisão
EXERCÍCIO
1. Desenvolver uma calculadora, sendo que as operações aritméticas 
serão definidas através de um código numérico, conforme a tabela abaixo. 
O programa deverá pedir nesta ordem, o primeiro operando, a operação e 
o segundo operando, informando a seguir o resultado da operaçção.
CÓDIGO OPERAÇÃO
1 Adição
2 Subtração
3 Multiplicação
4 Divisão

Continue navegando