Buscar

Aula06_Estruturas de controle_if-else

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 48 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 48 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 48 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

Universidade Federal da Grande Dourados
Faculdade de Ciências Exatas e de Tecnologias
Curso de Bacharelado em Sistemas de Informação
Algoritmos e Programação
Estruturas de decisão (if...else, switch)
Profª Janne Oeiras Lachi
1
Tomada de decisão
` O objetivo da aula é estudar a tomada de decisão
` Veremos:
` Desvio condicional simples
` Desvio condicional composto
` Desvio condicional encadeado
2
Desvio condicional simples
` Na Linguagem C utiliza-se a instrução:
` if (<condição>)
` Se a condição estabelecida for verdadeira, serão executadas 
todas as instruções definidas dentro do bloco do if
` Depois serão executadas todas as instruções existentes após o 
bloco do if
` Se a condição estabelecida for falsa, serão executadas as 
instruções definidas após o bloco do if
3
Desvio condicional simples
int main()
{
if (<condicao>)
{
}
return 0;
}
Comandos dentro do bloco se são executados
caso a condição seja VERDADEIRA
Por bloco queremos dizer o conjunto de 
comandos delimitado por { e }
Se você utilizar apenas 1 instrução não 
precisa de { e }
4
Desvio condicional simples: exemplo
#include <stdlib.h>
#include <stdio.h>
int main()
{
int x=1,a=0;
system("chcp 1252 > nul");
if (0==1)
{
x = 0;
a = 1;
}
printf("\nO número x é %d e a é %d\n", x, a);
return 0;
} O resultado mostrado na tela será:
O número x é 1 e a é 0.5
Desvio condicional simples: exemplo
#include <stdlib.h>
#include <stdio.h>
int main()
{
int x=1,a=0;
system("chcp 1252 > nul");
if (0==1)
x = 0;
a = 1;
printf("\nO número x é %d e a é %d\n", x, a);
return 0;
}
Aqui a intenção era colocar 2 comandos dentro do if, porém
não foram usados { e } para delimitar o bloco.
Nesse caso a condição é FALSA, mas a atribuição a=1 será
executada
O resultado mostrado na tela será:
O número x é 1 e a é 1.6
Desvio condicional simples: exemplo
Não adianta somente dar o recuo nesse caso.
É necessário delimitar com { e } 
Caso contrário o compilador entende que é para fazer 
if (0==1)
x= 0;
a=1;
Ou seja, o bloco do if vai até o comando x=0;
A atribuição a=1 é um comando na seqüência do comando if
e por isso é executada.
if (0==1)
x = 0;
a = 1;
7
Desvio condicional simples
Comandos dentro do bloco if NÃO são executados 
caso a condição seja FALSA
Somente o que vem depois
int main()
{
if (<condicao>)
{
}
.
.
.
return 0;
}
Por isso, no exemplo errado anterior, a=1 é executado 
porque a comparação 0==1 é FALSA e não é executado o 
comando x=0;.
if (0==1)
x= 0;
a=1;
8
Erro comum
#include <stdlib.h>
#include <stdio.h>
int main()
{
int x=1,a=0;
system("chcp 1252 > nul");
if (0==1);
{
x = 0;
a = 1;
}
printf("\nO número x é %d e a é %d\n", x, a);
return 0;
}
Colocar ; após a condição
O if termina aqui
Os comandos a seguir dentro das chaves 
não estão atrelados ao if e são executados
O resultado mostrado na tela será:
O número x é 0 e a é 1.9
Desvio condicional simples: exemplo
Elaborar um algoritmo que leia dois valores numéricos reais 
desconhecidos. Em seguida o algoritmo deve efetuar a adição dos dois 
valores lidos e apresentar o resultado se ele for maior que 10.
programa SOMA_MAIOR_10
var
x, y, SOMA: real
início
escreva ″Informe dois números reais:″
leia x,y
SOMA Å x+y
se (SOMA>10) então
escreva ″O valor da adição dos dois numeros eh:″, SOMA
fim_se
fim
Se SOMA <=10, o algoritmo não produz nenhuma saída.
10
Construindo nosso programa em C
#include <stdio.h>
int main()
{
float x, y, soma;
system("chcp 1252 > nul");
printf(“Informe dois números reais:”);
scanf(“%f%f”, &x, &y);
soma = x+y;
if (soma > 10)
{
printf(“O valor da adição dos dois 
números é: %f”, soma);
}
return 0;
}
programa SOMA_MAIOR_10
var
x, y, SOMA: real
início
escreva ″Informe dois números reais:″
leia x,y
SOMA Å x+y
se (SOMA>10) então
escreva ″O valor da adição dos dois numeros eh:″, SOMA
fim_se
fim
11
Construindo nosso programa em C
#include <stdio.h>
int main()
{
float x, y, soma;
system("chcp 1252 > nul");
printf(“Informe dois números reais:”);
scanf(“%f%f”, &x, &y);
soma = x+y;
if (soma > 10)
printf(“O valor da adição dos dois números é: %f”, soma);
return 0;
}
Note que neste caso, você pode suprimir o uso de 
{ } para delimitar o if porque dentro dele há apenas 
1 comando (compare com o slide anterior).
12
Outro exemplo de erro
#include <stdio.h>
int main()
{
float x, y, soma;
system("chcp 1252 > nul");
printf(“Informe dois números reais:”);
scanf(“%f%f”, &x, &y);
soma = x+y;
if (soma > 10);
printf(“O valor da adição dos dois números é: %f”, soma);
return 0;
}
Neste caso, o compilador não dá erro
Não tem o que fazer no if
E sempre faz o printf que vem em seguida
13
Desvio condicional composto
` Na Linguagem C utiliza-se a instrução:
` if (<condição>) else
` Se a condição estabelecida for verdadeira, serão executadas 
todas as instruções definidas entre if (<condição>) else
` Se a condição estabelecida for falsa, serão executadas as 
instruções definidas dentro do bloco do else
` Somente após uma das possibilidades anteriores é que o 
programa executada as instruções existentes após o bloco do 
else
14
Desvio condicional composto
int main()
{
if (<condicao>)
{
}
else
{
}
return 0;
}
Comandos dentro do bloco if são executados
caso a condição seja VERDADEIRA
15
Desvio condicional composto
int main()
{
if (<condicao>)
{
}
else
{
}
.
.
.
return 0;
}
Comandos dentro do bloco else são executados
caso a condição seja FALSA
16
Desvio condicional composto: exemplo
Programa comparacao_altura
var
NOME1, NOME2: caractere
ALTURA1, ALTURA2: real
início
escreva “Informe o nome da 1a pessoa”
leia NOME1
escreva “Informe altura da 1a pessoa”
leia ALTURA1
escreva “Informe o nome da 2a pessoa”
leia NOME2
escreva “Informe altura da 2a pessoa”
leia ALTURA2
se (ALTURA1 > ALTURA2) então
escreva “Pessoa mais alta:”, NOME1
senão
escreva “Pessoa mais alta:”, NOME2
fim_se
fim
17
Desvio condicional composto: exemplo
18
#include <stdlib.h>
#include <stdio.h>
int main()
{
char nome1[30], nome2[30];
float altura1, altura2;
system("chcp 1252 > nul");
printf("\nInforme o nome da 1ª pessoa:");
scanf("%s", nome1);
printf("\nInforme a altura da 1ª pessoa:");
scanf("%f", &altura1); 
printf("\nInforme o nome da 2ª pessoa:");
scanf("%s", nome2); 
printf("\nInforme a altura da 2ª pessoa:");
scanf("%f", &altura2);
if (altura1 > altura2)
printf("\nPessoa mais alta é %s", nome1);
else
printf("\nPessoa mais alta é %s", nome2);
return 0;
}
Programa comparacao_altura
var
NOME1, NOME2: caractere
ALTURA1, ALTURA2: real
início
escreva “Informe o nome da 1a pessoa”
leia NOME1
escreva “Informe altura da 1a pessoa”
leia ALTURA1
escreva “Informe o nome da 2a pessoa”
leia NOME2
escreva “Informe altura da 2a pessoa”
leia ALTURA2
se ALTURA1 > ALTURA2 então
escreva “Pessoa mais alta:”, NOME1
senão
escreva “Pessoa mais alta:”, NOME2
fim_se
fim
Desvios condicionais encadeados
` São usados quando há necessidade de estabelecer 
algumas verificações lógicas de condições definidas 
sucessivamente
` Uma determinada ação de um programa só pode ser 
executada se um conjunto anterior de condições for 
verificado
` Pode ser usada uma condição dentro de outra condição
19
Desvio condicional encadeado
` Sintaxe em Linguagem C
if (<condição1>)
{
<instruções para condição1 verdadeira>
}
else
{
if (<condição2>)
{
<instruções para condição2 verdadeira, porém condição1 falsa>
}
else
{
<instruções para condição1 e condição2 falsas>
}
}
20
Umproblema
` Elaborar um algoritmo que efetue o cálculo do reajuste 
de salário de um funcionário. Considere que o 
funcionário deve receber um reajuste de 15% caso seu 
salário seja menor ou igual a R$ 622,00. Se seu salário for 
maior que R$ 622,00, mas menor ou igual a R$ 1.000,00, 
seu reajuste deve ser 10%. Caso seja maior que 1.000,00, 
o reajuste deverá ser de 5%.
` É possível ver 3 condições no problema acima:
` Se salário <= R$ 622,00, reajuste de 15%
` Se R$ 622,00 < salário <= R$ 1.000,00, reajuste de 10%
` Se salário > R$ 1.000,00, reajuste de 5%
21
Desvio condicional encadeado: exemplo
` Em Português estruturado
programa REAJUSTA_SALARIO
var
NOVO_SALARIO : real
SALARIO: real
inicio
leia SALARIO
se (SALARIO < 622) então
NOVO_SALARIO Å SALARIO * 1.15
senão
se (SALARIO <= 1000) então
NOVO_SALARIO Å SALARIO * 1.10
senão
NOVO_SALARIO Å SALARIO * 1.05
fim_se
fim_se
fim
22
Desvio condicional encadeado: exemplo
#include <stdlib.h>
#include <stdio.h>
int main()
{
float salario, novo_salario;
system("chcp 1252 > nul");
printf("\nInforme o salário:");
scanf("%f", &salario);
if (salario < 622)
novo_salario = salario * 1.15;
else
{
if (salario <= 1000)
novo_salario = salario * 1.10;
else
novo_salario = salario * 1.05;
}
printf("\nO novo salário é %.2f:", novo_salario);
return 0;
}
programa REAJUSTA_SALARIO
var
NOVO_SALARIO : real
SALARIO: real
inicio
leia SALARIO
se (SALARIO < 622) então
NOVO_SALARIO Å SALARIO * 1.15
senão
se (SALARIO <= 1000) então
NOVO_SALARIO Å SALARIO * 1.10
senão
NOVO_SALARIO Å SALARIO * 1.05
fim_se
fim_se
fim
23
Múltipla escolha
` Pode ser usada quando o algoritmo prevê opções de 
escolha para o usuário
` Ou quando houver a necessidade de usar uma seqüência 
grande de instruções do tipo se uma após a outra ou 
encadeadas/aninhadas
24
Um problema exemplo
` Elaborar um algoritmo que leia o destino do passageiro, 
se a viagem inclui retorno (ida e volta) e informar o 
preço da passagem conforme a tabela a seguir. 
Destino Ida Ida e Volta
Região Norte R$622,00 R$900,00
Região Nordeste R$350,00 R$650,00
Região Centro‐Oeste R$350,00 R$600,00
Região Sul R$300,00 R$550,00
25
Exemplo: resolvendo com se
` Elaborar um algoritmo que leia o destino do passageiro, se a viagem inclui retorno (ida e 
volta) e informar o preço da passagem conforme a tabela a seguir. 
26
Programa VIAGEM
var
DESTINO, IDA_VOLTA: caractere
início
escreva “Informe o destino da viagem (Norte, Nordeste, Centro-oeste, 
Sul):”
leia DESTINO
escreva “É ida e volta (S ou N)?”
leia IDA_VOLTA
se (IDA_VOLTA = “S”) então
se (DESTINO = “Norte”) então
escreva “Preço da passagem é R$ 900,00”
senão
se (DESTINO = “Nordeste”) então
escreva “Preço da passagem é R$ 650,00”
senão
se (DESTINO = “Centro-oeste”) então
escreva “Preço da passagem é R$ 600,00”
senão
escreva “Preço da passagem é R$ 550,00”
fim_se
fim_se
fim_se
Destino Ida Ida e Volta
Região Norte R$622,00 R$900,00
Região Nordeste R$350,00 R$650,00
Região Centro‐Oeste R$350,00 R$600,00
Região Sul R$300,00 R$550,00
Exemplo: resolvendo com se
` Elaborar um algoritmo que leia o destino do passageiro, se a viagem inclui retorno (ida e 
volta) e informar o preço da passagem conforme a tabela a seguir. 
Programa VIAGEM
var
DESTINO, IDA_VOLTA: caractere
início
escreva “Informe o destino da viagem (Norte, Nordeste, Centro-oeste, 
Sul):”
leia DESTINO
escreva “É ida e volta (S ou N)?”
leia IDA_VOLTA
se (IDA_VOLTA = “S”) então
<comandos>
senão
se (DESTINO = “Norte”) então
escreva “Preço da passagem é R$ 622,00”
senão
se (DESTINO = “Nordeste”) então
escreva “Preço da passagem é R$ 350,00”
senão
se (DESTINO = “Centro-oeste”) então
escreva “Preço da passagem é R$ 350,00”
senão
escreva “Preço da passagem é R$ 300,00”
fim_se
fim_se
fim_se
fim_se
fim
Destino Ida Ida e Volta
Região Norte R$622,00 R$900,00
Região Nordeste R$350,00 R$650,00
Região Centro‐Oeste R$350,00 R$600,00
Região Sul R$300,00 R$550,00
27
Sintaxe: Português estruturado
caso <variável>
seja <valor 1> faça <operação 1>
seja <valor 2> faça <operação 2>
.
.
.
seja <valor n> faça <operação n>
senão <operação>
fim_caso
28
Exemplo: resolvendo com caso
` Elaborar um algoritmo que leia o destino do passageiro, se a viagem inclui retorno (ida e 
volta) e informar o preço da passagem conforme a tabela a seguir. 
Programa VIAGEM
var
OPCAO: inteiro
início
escreva “1- Norte (ida)”
escreva “2- Norte (ida e volta)”
escreva “3- Nordeste (ida)”
escreva “4- Nordeste (ida e volta)”
escreva “5- Centro-oeste (ida)”
escreva “6- Centro-oeste (ida e volta)”
escreva “7- Sul (ida)”
escreva “8- Sul (ida e volta)”
escreva “Escolha uma opção (1 a 8):”
leia OPCAO
caso OPCAO
seja 1 faça 
escreva “Preço da passagem é R$ 500,00”
seja 2 faça 
escreva “Preço da passagem é R$ 900,00”
Destino Ida Ida e Volta
Região Norte R$500,00 R$900,00
Região Nordeste R$350,00 R$650,00
Região Centro‐Oeste R$350,00 R$600,00
Região Sul R$300,00 R$550,00
29
Exemplo: resolvendo com se
` Elaborar um algoritmo que leia o destino do passageiro, se a viagem inclui retorno (ida e 
volta) e informar o preço da passagem conforme a tabela a seguir. 
30
Programa VIAGEM
var
OPCAO: inteiro
início
<comandos escreva>
leia OPCAO
caso OPCAO
seja 1 faça 
escreva “Preço da passagem é R$ 500,00”
seja 2 faça 
escreva “Preço da passagem é R$ 900,00”
seja 3 faça 
escreva “Preço da passagem é R$ 350,00”
seja 4 faça 
escreva “Preço da passagem é R$ 650,00”
seja 5 faça 
escreva “Preço da passagem é R$ 350,00”
seja 6 faça 
escreva “Preço da passagem é R$ 600,00”
seja 7 faça 
escreva “Preço da passagem é R$ 300,00”
seja 8 faça 
escreva “Preço da passagem é R$ 550,00”
senão
escreva “Você digitou uma opção inválida!”
fim_caso
fim
Destino Ida Ida e Volta
Região Norte R$500,00 R$900,00
Região Nordeste R$350,00 R$650,00
Região Centro‐Oeste R$350,00 R$600,00
Região Sul R$300,00 R$550,00
O comando switch: múltipla escolha
` Permite selecionar uma entre várias ações alternativas;
` O comando if-else pode ser usado para executar testes 
para escolha de uma entre várias alternativas, mas a 
visualização do código fica deselegante e menos 
compreensível;
` O comando switch tem um formato limpo e claro;
` É comumente usado para construção de menus onde o 
usuário escolhe uma opção.
31
Switch: sintaxe
switch (expressão)
{
case <valor>:
<linha de comando>;
break;
case <valor>:
<linha de comando>;
break;
.
.
.
default: /* para casos não previstos */
<linha de comando>;
break;
}
O comando break tem a finalidade 
de encerrar a operação ocorrida 
dentro do case.
Se não houver o break, será testado 
o próximo case e a lógica estará
errada.
32
Switch: sintaxe
switch (expressão)
{
case <valor>:
<linha de comando>;
break;
case <valor>:
<linha de comando>;
break;
.
.
.
default: /* para casos não previstos */
<linha de comando>;
break;
}
O default é o caso padrão se o 
programa não tiver entrado em 
nenhuma condição prevista (cases
anteriores)
O uso de default é opcional.
33
Switch: sintaxe
switch (expressão)
{
case <valor>:
<linha de comando>;
break;
case <valor>:
<linha de comando>;
break;
.
.
.
default: /* para casos não previstos */
<linha de comando>;
break;
}
Não existe ; aqui
Precisa dos : aqui em cada case
Não existe { e } dentro do case
34
O switch funciona apenas com 
números inteiros e a manipulação 
de um único caractere. Exemplo: 1, 
5, ‘s’, ‘@’ etc.
Switch: exemplo
Seja x uma variável do tipo int
switch (x) /* O comando switchtesta o valor armazenado na variável x */
{
case 1:
printf (“A variável x possui o valor correspondente a 1”);
break;
case 2:
printf (“A variável x possui o valor correspondente a 2”);
break;
case 3:
printf (“A variável x possui o valor correspondente a 3”);
break;
default: 
printf (“Nenhuma das opções anteriores...”);
break;
}
35
O switch funciona apenas com 
números inteiros e a manipulação 
de um único caractere. Exemplo: 1, 
5, ‘s’, ‘@’ etc.
Switch: exemplo
Seja letra uma variável do tipo char
switch (letra)
{
case ‘A’:
printf (“A variável letra possui o valor correspondente a A”);
break;
case ‘B’:
printf (“A variável letra possui o valor correspondente a B”);
break;
default: 
printf (“Nenhuma das opções anteriores...”);
break;
}
36
Exemplo: resolvendo com caso
37
Programa VIAGEM
var
OPCAO: inteiro
início
escreva “1- Norte (ida)”
escreva “2- Norte (ida e volta)”
escreva “3- Nordeste (ida)”
escreva “4- Nordeste (ida e volta)”
escreva “5- Centro-oeste (ida)”
escreva “6- Centro-oeste (ida e volta)”
escreva “7- Sul (ida)”
escreva “8- Sul (ida e volta)”
escreva “Escolha uma opção (1 a 8):”
leia OPCAO
caso OPCAO
seja 1 faça
escreva “Preço da passagem é R$ 500,00”
seja 2 faça
escreva “Preço da passagem é R$ 900,00”
seja 3 faça
escreva “Preço da passagem é R$ 350,00”
seja 4 faça
escreva “Preço da passagem é R$ 650,00”
seja 5 faça
escreva “Preço da passagem é R$ 350,00”
seja 6 faça
escreva “Preço da passagem é R$ 600,00”
seja 7 faça
escreva “Preço da passagem é R$ 300,00”
seja 8 faça
escreva “Preço da passagem é R$ 550,00”
senão
escreva “Você digitou uma opção inválida!”
fim_caso
fim
Destino Ida Ida e Volta
Região Norte R$500,00 R$900,00
Região Nordeste R$350,00 R$650,00
Região Centro‐Oeste R$350,00 R$600,00
Região Sul R$300,00 R$550,00
Exemplo: usando o switch em C
38
#include <stdio.h>
#include <stdlib.h>
int main()
{
int opcao;
printf("\n1- Norte (ida)\n");
printf("\n2- Norte (ida e volta)\n");
printf("\n3- Nordeste (ida)\n");
printf("\n4- Nordeste (ida e volta)\n");
printf("\n5- Centro-oeste (ida)\n");
printf("\n6- Centro-oeste (ida e volta)\n");
printf("\n7- Sul (ida)\n");
printf("\n8- Sudeste (ida e volta)\n");
printf("\nEscolha a opção (1 a 8):");
scanf("%d", &opcao);
switch(opcao)
{
case 1:
printf("\nPreço da passagem é R$622,00.\n\n");
break;
case 2:
printf("\nPreço da passagem é R$900,00.\n\n");
break;
case 3:
printf("\nPreço da passagem é R$350,00.\n\n");
break;
case 4:
printf("\nPreço da passagem é R$650,00.\n\n");
break;
case 5:
printf("\nPreço da passagem é R$350,00.\n\n");
break;
case 6:
printf("\nPreço da passagem é R$600,00.\n\n");
break;
Exemplo: usando o switch em C (continuação)
case 7:
printf("\nPreço da passagem é R$300,00.\n\n");
break;
case 8:
printf("\nPreço da passagem é R$550,00.\n\n");
break;
default:
printf("\nOpção inválida\n");
break;
}
system ("pause");
return 0;
}
39
Um problema exemplo
` Elaborar um algoritmo que imprime na tela a situação do 
aluno após a sua nota ser digitada. Baseie-se na tabela 
abaixo: 
Nota Situação
0 a 2 Nota péssima
3 a 4 Nota ruim
5 a 6 Nota um pouco ruim
7 Nota boa
8 a 9 Nota muito boa
10 Nota excelente
Neste problema pressupõe-se que a nota do 
aluno é do tipo inteiro
40
Exemplo: resolvendo com caso
41
Programa SITUAÇÃO
var
nota: inteiro
início
escreva “Informe a nota do aluno:”
leia nota
escreva “Nota ”
caso nota
seja 0 faça
escreva “péssima”
seja 1 faça
escreva “péssima”
seja 2 faça
escreva “péssima”
seja 3 faça
escreva “ruim”
seja 4 faça
escreva “ruim”
seja 5 faça
escreva “um pouco ruim”
seja 6 faça
escreva “um pouco ruim”
seja 7 faça
escreva “boa”
seja 8 faça
escreva “muito boa”
seja 9 faça 
escreva “muito boa”
seja 10 faça 
escreva “excelente”
senão
escreva “inválida!”
fim_caso
fim
Exemplo: usando o switch em C
42
#include <stdio.h>
#include <stdlib.h>
int main()
{
int nota;
printf("\nInforme a nota do aluno:");
scanf("%d", &nota);
printf("\nNota ");
switch(nota)
{
case 0:
case 1:
case 2:
printf(“péssima\n\n");
break;
case 3:
case 4:
printf(“muito ruim\n\n“);
break; 
Exemplo: usando o switch em C (cont.)
43
case 5:
case 6:
printf(“ruim\n\n");
break;
case 7:
printf(“boa\n\n“);
break;
case 8:
case 9:
printf(“muito boa\n\n");
break;
case 10:
printf(“excelente\n\n“);
break;
default:
printf(“inválida”);
break;
}
system(“pause”);
return 0;
}
Código usando a linguagem Pascal
Program Nota; 
Var 
nota: integer; 
Begin
writeln('Digite sua nota:'); 
readln(nota); 
Case nota of
0..2: writeln('Nota péssima'); 
3..4: writeln('Nota ruim'); 
5..6: writeln('Nota pouco ruim'); 
7: writeln('Nota boa'); 
8..9: writeln('Nota muito boa'); 
10: writeln('Nota excelente!!'); 
else writeln ('Nota inválida'); 
end; 
end
44
Comentários
` Você pode incluir no meio do seu código comentários
` Podem ser colocados em qualquer lugar e são tratados 
pelo compilador como espaços em branco
` Ajudam a quem desenvolve o programa e qualquer 
pessoa que lê o programa fonte
` São usados para documentar o código
` Começam por /* e terminam por */
45
Comentários
/* programa que dados três números, verifica se A +B é menor 
que C. */
#include <stdlib.h> /* biblioteca para o comando system */
#include <stdio.h> /* biblioteca para o printf e scanf */
int main()
{
int A, B, C;
system("chcp 1252 > nul");
printf("\nInforme três números inteiros");
scanf("%d%d%d", &A, &B, &C); 
if (A + B < C)
printf("\nC é maior que A + B");
return 0;
}
46
Comentários: atenção!
/* Esse é um /* comentario */ ilegal */
#include <stdlib.h>
#include <stdio.h>
int main()
{
int A, B, C;
system("chcp 1252 > nul");
printf("\nInforme três números inteiros");
scanf("%d%d%d", &A, &B, &C); 
if (A + B < C)
printf("\nC é maior que A + B");
return 0;
}
Não pode haver comentários 
dentro de comentários.
47
Referências
` Ulysses de Oliveira. Programando em C. D. Rio de Janeiro; 
Editora Ciência moderna, 2008 
` Victorine Viviane Mizrahi. Treinamento em linguagem C. 
São Paulo: Pearson Prentice Hall, 2008. 
` Fernando Antônio Vanini. Introdução à linguagem C. 
http://www.dcc.unicamp.br/~vanini/inf512/aula2_1.html
48
	Algoritmos e Programação
	Tomada de decisão
	Desvio condicional simples
	Desvio condicional simples
	Desvio condicional simples: exemplo
	Desvio condicional simples: exemplo
	Desvio condicional simples: exemplo
	Desvio condicional simples
	Erro comum
	Desvio condicional simples: exemplo
	Construindo nosso programa em C
	Construindo nosso programa em C
	Outro exemplo de erro
	Desvio condicional composto
	Desvio condicional composto
	Desvio condicional composto
	Desvio condicional composto: exemplo
	Desvio condicional composto: exemplo
	Desvios condicionais encadeados
	Desvio condicional encadeado
	Um problema
	Desvio condicional encadeado: exemplo
	Desvio condicional encadeado: exemplo
	Múltipla escolha
	Um problema exemplo
	Exemplo: resolvendo com se
	Exemplo: resolvendo com se
	Sintaxe: Português estruturado
	Exemplo: resolvendo com caso
	Exemplo: resolvendo com se
	O comando switch: múltipla escolha
	Switch: sintaxe
	Switch: sintaxe
	Switch: sintaxe
	Switch: exemplo
	Switch: exemplo
	Exemplo: resolvendo com caso
	Exemplo: usando o switch em C
	Exemplo: usando o switch em C (continuação)
	Um problema exemplo
	Exemplo: resolvendo com caso
	Exemplo: usando o switch em C
	Exemplo: usando o switch em C (cont.)
	Código usando a linguagem Pascal
	Comentários
	Comentários
	Comentários: atenção!
	Referências

Outros materiais