Buscar

algoritmo de programação

Prévia do material em texto

Construção de 
Algoritmos
Construção 
de Algoritmos
1ª edição
2018
Presidente do Grupo Splice
Reitor
Diretor Administrativo Financeiro
Diretora da Educação a Distância
Gestor do Instituto de Ciências Sociais Aplicadas
Gestora do Instituto da Área da Saúde
Gestora do Instituto de Ciências Exatas
Autoria
Parecerista Validador
Antônio Roberto Beldi
João Paulo Barros Beldi
Claudio Geraldo Amorim de Souza
Jucimara Roesler
Henry Julio Kupty
Marcela Unes Pereira Renno
Regiane Burger
Ronan Loschi Rodrigues Ferreira
Fabiano Prado Marques
*Todos os gráficos, tabelas e esquemas são creditados à autoria, salvo quando indicada a referência.
Informamos que é de inteira responsabilidade da autoria a emissão de conceitos. Nenhuma parte
desta publicação poderá ser reproduzida por qualquer meio ou forma sem autorização. A violação dos
direitos autorais é crime estabelecido pela Lei n.º 9.610/98 e punido pelo artigo 184 do Código Penal.
61
 4Unidade 4
4. Estruturas Condicionais ou de 
Decisão
Para iniciar seus estudos
Durante o estudo desta unidade, você compreenderá os conceitos e 
comandos das estruturas de decisão na linguagem de programação 
C. Para seguir em frente, é importante organizar seus horários e seu 
ambiente de estudos.
Objetivos de Aprendizagem
• Definir as estruturas de decisão.
• Diferenciar as estruturas de decisão simples (if), dupla (if-else) e 
encadeada (if-else-if), bem como a decisão por valor (switch-case).
• Empregar as estruturas de decisão em pequenos programas de 
computador.
62
Construção de Algoritmos | Unidade 4 - Estruturas Condicionais ou de Decisão
Introdução da unidade
Nesta unidade, você estudará sobre as estruturas de decisão da linguagem de programação C. Primeiramente, 
ser-lhe-ão apresentados conceitos sobre a estrutura de decisão simples e, na sequência, sobre as estruturas 
de decisão dupla e encadeada. Por último, você verá a estrutura de decisão por teste de valor, conhecida como 
switch-case. Ao final, verá como são aplicadas as estruturas de decisão para a programação de computadores e 
poderá observar como o poder de programar fica maior com essas estruturas, pois elas permitem resolver pro-
blemas mais elaborados.
4.1 Estruturas de decisão ou de controle de fluxo
As estruturas de decisão permitem o controle e o desvio do fluxo durante a execução de um programa de com-
putadores. Essas estruturas são fundamentais para a programação de computadores em qualquer linguagem 
de programação, inclusive na linguagem C. Sem essas estruturas, os programas de computador seriam muito 
limitados, pois suas instruções ou comandos só poderiam ser executados em sequência, ou seja, uma instrução 
ou comando por vez. Com as estruturas de decisão, o programador tem condições de resolver problemas mais 
elaborados e com mais de uma opção de solução (DALMAS, 2016).
As estruturas de decisão fazem o controle do fluxo de execução do programa com base em condições que são 
avaliadas; além disso, com base no resultado dessa avaliação, determinarão quais blocos de instruções serão 
executados e quais serão ignorados. As condições utilizam expressões com operadores relacionais e operadores 
lógicos, sendo que o seu resultado é um valor lógico – VERDADEIRO ou FALSO. Uma condição é avaliada, bem 
como uma decisão é tomada diante do resultado dessa avaliação.
Veja, por exemplo, a condição formada pela expressão (A < B), que utiliza o operador relacional “<” (menor que). 
Se o valor da variável A for menor que o valor da variável B, o resultado da avaliação será VERDADEIRO. Se o valor 
da variável A for maior ou igual ao valor da variável B, o resultado da avaliação será FALSO. O resultado da avalia-
ção da expressão será utilizado para a tomada de decisão de qual bloco de instruções será executado em seguida 
e qual bloco será ignorado. 
As estruturas de decisão simples, dupla e encadeada mantêm o controle de fluxo de execução utilizando o 
comando if (SE, no Portugol). O comando if contém uma condição formada por uma expressão com operado-
res relacionais e operadores lógicos. Tal condição, ao ser avaliada, dará um resultado VERDADEIRO ou FALSO, 
determinando o controle do fluxo de execução do código do programa, seguindo o caminho do resultado VER-
DADEIRO ou o caminho do resultado FALSO. Nos dois casos, os caminhos a serem seguidos serão determinados 
pelo programador, que codifica a expressão a ser avaliada de acordo com as necessidades do problema a ser 
resolvido. Conforme a estrutura de decisão utilizada, o programa decide entre um ou vários caminhos possíveis, 
dependendo de cada problema a ser resolvido (GUIMARÃES, 2008).
Outro exemplo de caminho a ser seguido por uma tomada de decisão pode ser o seguinte: pense numa média 
de notas lida como dado de entrada, cujo valor deve estar entre zero e dez. Pensou? Muito bem, agora, SE a nota 
que você pensou for maior ou igual a seis, então o resultado de saída poderia ser a mensagem “APROVADO”; 
caso contrário, a mensagem poderia ser “REPROVADO” ou, ainda, se a média estivesse num intervalo específico 
– por exemplo, entre 5 e 5.9 –, o resultado poderia ser “RECUPERAÇÃO”. Ou seja, nesse caso, há três caminhos 
possíveis, e apenas um poderá ser seguido, e isto dependerá do resultado da avaliação da condição (MÉDIA ≥ 6).
63
Construção de Algoritmos | Unidade 4 - Estruturas Condicionais ou de Decisão
Para a programação de computadores, a quantidade de caminhos disponíveis para o fluxo de execução do código 
e o tipo de condição a ser avaliada ajudarão na escolha de qual estrutura de decisão utilizar, lembrando que as 
estruturas de decisão disponíveis são: estrutura de decisão simples (if), estrutura de decisão dupla (if-else), estru-
tura de decisão encadeada (if-else-if) e a estrutura de decisão múltipla por valor (switch-case). A relação entre qual 
estrutura utilizar e a quantidade de caminhos disponíveis para a decisão é apresentada no Quadro 9.
Quadro 9 – Relação de qual estrutura utilizar e a quantidade de caminhos disponíveis para a decisão
Estrutura de decisão condicional Quantidade de caminhos (fluxo)
Simples: if (se) Um único caminho
Dupla composta: if-else (se-senão) Dois caminhos
Encadeada: if-else-if (se-senão-se) Três ou mais caminhos sequenciais
Múltipla por valor: switch-case (seleção de múltiplos valores) Múltiplos caminhos sequenciais ou não
Fonte: Elaborado pelo autor.
Apenas um caminho por vez poderá ser seguido pelo fluxo, mesmo que vários estejam dis-
poníveis. Essa decisão dependerá do resultado da condição a ser analisada. Resumidamente, 
entende-se que, se o resultado lógico da condição for VERDADEIRO, então “vá por esse 
caminho” senão “vá por aquele outro caminho” e assim por diante! 
Fique atento!
As possibilidades de caminhos a serem seguidos durante a execução de um programa de computador também 
podem ser representadas por meio de fluxogramas. Esse tipo de representação serve para ajudar o programador a 
entender melhor o problema, bem como a sua solução antes mesmo de iniciar o desenvolvimento do código. O foco 
aqui não é o estudo de fluxogramas, e sim o estudo dos comandos na linguagem de programação C. No entanto, 
para facilitar o entendimento daqui para frente, a Figura 27 mostra um exemplo de fluxograma em que, depen-
dendo do resultado da condição, ou seja, dependendo da decisão, o fluxo pode ir por um caminho ou por outro.
Figura 27 – Fluxograma de tomada de decisão
Fonte: SHUTTERSTOCK, 2018.
64
Construção de Algoritmos | Unidade 4 - Estruturas Condicionais ou de Decisão
4.1.1 Estrutura de decisão simples (if)
A estrutura de decisão simples na linguagem de programação C é representada pela seguinte sintaxe:
if (<condição>)
 Instrução;
 ... o código pode ter continuidade após a condição;
Para essa sintaxe, a instrução será executada quando o resultado da condição for VERDADEIRO e não será execu-
tada quando o resultado da condição for FALSO. A instrução pode ser comandos da linguagem C e dependerá de 
cada problema a ser solucionado.Observe, então, que só existe um caminho possível para que a instrução seja 
executada, e esse caminho depende do resultado da condição.
Pode ser necessário executar duas ou mais instruções quando o resultado da condição for VERDADEIRO. Nesse 
caso, será necessário utilizar os delimitadores de início ({) e de fim (}) da linguagem C para limitar o bloco de 
instruções que serão executadas. A sintaxe da estrutura condicional simples para esses casos é apresentada a 
seguir:
if (<condição>){
 Instrução1;
 Instrução2; 
 Instrução3; 
 Instrução4; 
 ...
 InstruçãoX;
}
... o código pode ter continuidade após a condição;
Observe que, nessa sintaxe, cada instrução termina com um ponto e vírgula e que todas serão executadas 
somente SE o resultado da condição for VERDADEIRO.
Veja agora alguns exemplos de problemas e, posteriormente, copie e teste cada um deles no Dev C++.
Problema 1: escreva um programa de computador utilizando a linguagem C que leia (entrada de dados) o valor 
da idade de uma pessoa. Em seguida, esse programa deve imprimir uma mensagem informando que a pessoa é 
maior de idade caso a idade informada seja maior ou igual a 18 anos.
#include <stdio.h>
#include <locale.h>
int main( ){
 setlocale(LC_ALL, “Portuguese”);
65
Construção de Algoritmos | Unidade 4 - Estruturas Condicionais ou de Decisão
 int idade;
 printf(“Digite a idade da pessoa: \n”);
 scanf(“%i”, &idade);
 if (idade >= 18)
 printf(“A pessoa é maior de idade!: \n”);
 return 0;
}
Obs.: neste exemplo, caso o usuário entre com um valor abaixo de 18, o programa não dará nenhuma resposta. 
Isso está correto, pois o enunciado do Problema 1 pediu para imprimir a mensagem somente quando a pessoa 
for maior de idade. Em outras palavras, há um único caminho.
Problema 2: escreva um programa de computador utilizando a linguagem C que leia (entrada de dados) o valor 
de uma letra qualquer do alfabeto português. Em seguida, esse programa deve imprimir uma mensagem infor-
mando se a letra lida é uma vogal caso seja “a”, “e”, “i”, “o”, “u” ou “A”, “E”, “I”, “O”, “U”.
 
#include <stdio.h>
#include <locale.h>
int main( ){
 setlocale(LC_ALL, “Portuguese”);
 char letra;
 
 printf(“Digite uma letra\n”);
 scanf(“%c”,&letra); 
 if((letra == ‘a’)|| (letra == ‘e’)||
 (letra == ‘i’)|| (letra == ‘o’)||
 (letra == ‘u’)||(letra == ‘A’)||
 (letra == ‘E’)||(letra==’I’)||
 (letra == ‘O’)||(letra == ‘U’))
 printf(“É Vogal!\n”);
 return 0;
}
Obs.: neste exemplo, caso o usuário entre com o valor de uma consoante, o programa não dará nenhuma res-
posta. E isso está correto, pois o enunciado do Problema 2 pediu para imprimir a mensagem somente quando a 
letra lida corresponder a uma das vogais, ou seja, havia apenas um único caminho.
Problema 3: escreva um programa de computador utilizando a linguagem C que leia (entrada de dados) o valor 
da altura de uma pessoa. Em seguida, esse programa deve imprimir uma mensagem informando se a pessoa tem 
estatura alta caso o valor informado esteja entre 1,9 metro e 2,3 metros.
66
Construção de Algoritmos | Unidade 4 - Estruturas Condicionais ou de Decisão
#include <stdio.h>
#include <locale.h>
int main( ){
 setlocale(LC_ALL, “Portuguese”);
	 float	altura;
 printf(“Digite a altura de uma pessoa:\n”);
 scanf(“%f”,&altura); 
 if(altura >= 1,9) && (altura <= 2,3)
 printf(“A pessoa possui estatura alta.\n”);
 return 0;
}
Obs.: neste exemplo, caso o usuário entre com um valor para a variável altura que esteja fora do intervalo estabe-
lecido, o programa não dará nenhuma resposta. E isso está correto, pois o enunciado do Problema 3 pediu para 
imprimir a mensagem somente quando a altura informada estiver dentro do intervalo estabelecido, ou seja, aqui 
também havia um único caminho.
4.1.2 Estrutura de decisão dupla (if-else):
A estrutura de decisão dupla na linguagem de programação C é representada pela seguinte sintaxe:
if (<condição>)
 instrução se verdadeiro;
else
 instrução se falso;
... o código pode ter continuidade após a condição;
Nessa sintaxe, a instrução se verdadeiro será executada quando o resultado da condição for VERDADEIRO e 
não será executada quando o resultado da condição for FALSO. Já a instrução se falso será executada somente 
quando o resultado da condição for FALSO. Observe que agora existem dois caminhos possíveis, sendo um para 
executar a instrução se verdadeiro, e outro para executar a instrução se falso.
Acontece que pode ser necessário executar duas ou mais instruções quando o resultado da condição for VER-
DADEIRO ou quando o resultado da condição for FALSO. Nesse caso, será necessário utilizar os delimitadores 
de início “{” e de fim “}” da linguagem C para limitar os blocos de instruções que serão executadas. A sintaxe da 
estrutura condicional composta para esses casos é apresentada a seguir:
67
Construção de Algoritmos | Unidade 4 - Estruturas Condicionais ou de Decisão
if (<condição>){
 Instrução1 se verdadeiro;
 Instrução2 se verdadeiro; 
 Instrução3 se verdadeiro; 
 Instrução4 se verdadeiro; 
 ...
 InstruçãoX se verdadeiro;
}
else{
 Instrução1 se falso;
 Instrução2 se falso; 
 Instrução3 se falso; 
 Instrução4 se falso; 
 ...
 InstruçãoX se falso;
}
... o código pode ter continuidade após a condição;
Observe que, nessa sintaxe, cada instrução termina com um ponto e vírgula. 
Veja os exemplos de problemas a seguir e, posteriormente, copie e teste cada um deles no Dev C++.
Problema 1: escreva um programa de computador utilizando a linguagem C que leia (entrada de dados) o valor 
da idade de uma pessoa. Em seguida, esse programa deve imprimir uma mensagem informando que a pessoa 
é maior de idade caso a idade informada seja maior ou igual a 18 anos. Caso contrário, imprimir a mensagem 
informando que a pessoa é menor de idade.
#include <stdio.h>
#include <locale.h>
int main( ){
 setlocale(LC_ALL, “Portuguese”);
 int idade;
 printf(“Digite a idade da pessoa: \n”);
 scanf(“%i”, &idade);
 if (idade >= 18)
 printf(“A pessoa é maior de idade!:. \n”);
 else
 printf(“A pessoa é menor de idade!:. \n”);
 return 0;
}
Obs.: neste exemplo, caso o usuário entre com um valor maior ou igual a 18, o programa imprimirá que a pessoa é 
maior de idade. Caso contrário, imprimirá que a pessoa é menor de idade. Em outras palavras, há dois caminhos.
68
Construção de Algoritmos | Unidade 4 - Estruturas Condicionais ou de Decisão
Problema 2: escreva um programa de computador utilizando a linguagem C que leia (entrada de dados) o valor 
de uma letra qualquer do alfabeto português. Em seguida, esse programa deve imprimir uma mensagem infor-
mando que a letra lida é uma vogal caso seja “a”, “e”, “i”, “o”, “u” ou “A”, “E”, “I”, “O”, “U”. Caso contrário, imprimir 
a mensagem informando que a letra digitada é uma consoante.
#include <stdio.h>
#include <locale.h>
int main( ){
 setlocale(LC_ALL, “Portuguese”);
 char letra;
 printf(“Digite uma letra\n”);
 scanf(“%c”,&letra); 
 if((letra == ‘a’)||(letra == ‘e’)||
 (letra == ‘i’)||(letra == ‘o’)||
 (letra == ‘u’)||(letra == ‘A’)||
 (letra == ‘E’)||(letra == ‘I’)||
 (letra == ‘O’)||(letra == ‘U’))
 printf(“É Vogal!”);
 else
 printf(“É consoante!: \n”);
 return 0;
}
Obs.: neste exemplo, caso o usuário entre com o valor de uma vogal, o programa imprimirá uma mensagem 
informando “É vogal!”. Caso contrário, o programa imprimirá uma mensagem informando “É consoante!”. Ou 
seja, há dois caminhos.
Problema 3: escreva um programa de computador utilizando a linguagem C que leia (entrada de dados) o valor 
de um número inteiro positivo. Em seguida, esse programa imprimirá uma mensagem informando se o número 
lido é par ou ímpar. 
 
#include <stdio.h>
#include <locale.h>
int main( ){
 setlocale(LC_ALL, “Portuguese”);
 int num;
 printf(“Digite um número inteiro positivo:\n”);
69
Construção de Algoritmos | Unidade 4 - Estruturas Condicionais ou de Decisão
 scanf(“%i”,&num);
 if ((num % 2) == 0)
 printf(“\n O número%i é PAR!\n\n”,num);
 else
 printf(“\n O número %i é IMPAR!\n\n”,num);
 return 0;
}
A condição if ((num % 2) == 0) verificará por meio do operador % se o resto da divisão 
inteira do valor da variável num pela constate 2 é igual a zero. Se for igual a zero, então o 
número informado é par; senão, é ímpar! 
Saiba mais
4.1.3 Estrutura de decisão encadeada (if-else-if)
A estrutura de decisão encadeada representa o agrupamento de vários níveis de decisão. Na linguagem de pro-
gramação C, a sua sintaxe é representada da seguinte maneira:
if (<condição1>)
 Instrução1 se verdadeiro;
else if (<condição2>)
 instrução2 se verdadeiro;
else if (<condição3>)
 instrução3 se verdadeiro;
else if (<condiçãoX>)
 instruçãox se verdadeira;
else
 instrução se nenhuma condição for verdadeira;
... o código pode ter continuidade após a condição;
Nessa sintaxe, cada uma das instruções só será executada se a condição for verdadeira. Caso contrário, o fluxo 
seguirá para analisar a próxima condição. Isso ocorrerá até que se encontre uma condição verdadeira ou até que 
se chegue ao final da decisão encadeada. No final, pode-se, opcionalmente, colocar mais um else, sem condição, 
para o caso de nenhuma das condições anteriores ser verdadeira.
70
Construção de Algoritmos | Unidade 4 - Estruturas Condicionais ou de Decisão
Pode ser necessário executar duas ou mais instruções quando uma das condições for verdadeira. Nesse caso, será 
necessário utilizar os delimitadores de início “{” e de fim “}” da linguagem C para limitar os blocos de instruções 
que serão executadas. A sintaxe da estrutura de decisão encadeada para esses casos é apresentada a seguir:
if (<condição1>){
 Instrução1 se a condição 1 for verdadeira;
 Instrução2 se a condição 1 for verdadeira; 
 Instrução3 se a condição 1 for verdadeira; 
 Instrução4 se a condição 1 for verdadeira; 
 ...
 InstruçãoX se a condição 1 for verdadeira;
}
else if (<condição2>){
 Instrução1 se a condição 2 for verdadeira;
 Instrução2 se a condição 2 for verdadeira; 
 Instrução3 se a condição 2 for verdadeira; 
 Instrução4 se a condição 2 for verdadeira; 
 ...
 InstruçãoX se a condição 2 for verdadeira;
}
else if (<condição3>){
 Instrução1 se a condição 3 for verdadeira;
 Instrução2 se a condição 3 for verdadeira; 
 Instrução3 se a condição 3 for verdadeira; 
 Instrução4 se a condição 3 for verdadeira;
 ...
 InstruçãoX se a condição 3 for verdadeira;
}
else if (<condiçãoX>){
 Instrução1 se a condição X for verdadeira;
 Instrução2 se a condição X for verdadeira; 
 Instrução3 se a condição X for verdadeira; 
 Instrução4 se a condição X for verdadeira;
 ...
 InstruçãoX se a condição X for verdadeira;
}
else{
 Instrução1 se nenhuma condição for verdadeira;
 Instrução2 se nenhuma condição for verdadeira; 
 Instrução3 se nenhuma condição for verdadeira; 
 Instrução4 se nenhuma condição for verdadeira;
 ...
 InstruçãoX se nenhuma condição for verdadeira;
71
Construção de Algoritmos | Unidade 4 - Estruturas Condicionais ou de Decisão
}
... o código pode ter continuidade após a condição;
Observe na sintaxe que o número de condições encadeadas dependerá de cada problema que for analisado, 
podendo existir três caminhos ou mais.
Veja os exemplos de problemas a seguir e, posteriormente, copie e teste cada um deles no Dev C++.
Problema 1: escreva um programa de computador utilizando a linguagem C que leia (entrada de dados) o valor 
do peso de uma mochila. Em seguida, esse programa deve imprimir a mensagem “mochila leve” caso o peso 
esteja abaixo de 5 kg. Caso o peso esteja entre 5 kg e 10 kg, escrever “mochila pesada”; se estiver acima, imprimir 
“mochila muito pesada”.
#include <stdio.h>
#include <locale.h>
int main( ){
 setlocale(LC_ALL, “Portuguese”);
	 float	peso;
 printf(“Digite o peso da mochila (Kg):\n”);
 scanf(“%f”,&peso);
 if (peso < 5.0)
 printf(“\nMochila leve!\n\n\n”);
 else if ((peso >= 5.0) && (peso <= 10.0))
 printf(“\nMochila pesada!\n\n\n”);
 else
 printf(“\nMochila muito pesada!\n\n\n”); 
 return 0;
}
Problema 2: escreva um programa de computador utilizando a linguagem C que leia (entrada de dados) o valor 
do saldo bancário inicial (saldo), um valor a ser depositado (crédito) e um cheque a ser descontado (débito) na 
conta de um cliente. Em seguida, o programa deve imprimir uma mensagem informando se o novo saldo é “posi-
tivo”, “nulo” ou “negativo”, bem como apresentar o valor do novo saldo. 
#include <stdio.h>
#include <locale.h>
int main( ){
 setlocale(LC_ALL, “Portuguese”);
72
Construção de Algoritmos | Unidade 4 - Estruturas Condicionais ou de Decisão
	 float	saldo,	credito,	debito,	novoSaldo;
 printf(“Digite o saldo inicial:\n”);
 scanf(“%f”,&saldo);
 printf(“\nDigite o valor do deposito (credito):\n”);
 scanf(“%f”,&credito);
	 printf(“\nDigite	o	valor	do	debito:\n”);
	 scanf(“%f”,&debito);
	 novoSaldo	=	saldo	+	credito	-	debito;
	 printf(“\nO	novo	saldo	e	=	%5.2f\n\n”,novoSaldo);
 if (novoSaldo > 0.0)
 printf(“\n	Saldo	positivo!\n\n”);
 else if (novoSaldo < 0.0)
 printf(“\n	Saldo	negativo!\n\n”);
 else
 printf(“\n	Saldo	nulo!\n\n\n”);	
 return 0;
}
4.1.4 Estrutura de decisão múltipla por valor (switch-case)
A estrutura de decisão múltipla por teste de valor avalia o resultado de uma expressão aritmética inteira (tipo 
int) ou o valor de uma variável do tipo int ou char. A partir daí, há inúmeras possibilidades de testes de valor, que 
podem conter uma constante ou literal, sempre inteiro (int) ou char. Há ainda uma última comparação – valor 
default – para o caso de não haver nenhum valor equivalente ao valor da expressão ou variável.
switch (expressão aritmética inteira ou variável){
 case constante1:
 comandos;
 break;
 case constante2:
 comandos;
 break;
 case constante3:
 comandos;
 break;
 case constante4:
 comandos;
 break;
73
Construção de Algoritmos | Unidade 4 - Estruturas Condicionais ou de Decisão
 case constante5:
 comandos;
 break;
 case constanteX:
 comandos;
 break; 
 .
 .
 .
 default:
 comandos; 
}
O comando switch-case tem a seguinte semântica: inicialmente, verifica-se o conteúdo da variável ou expressão 
inteira e, em seguida, identifica-se qual das constantes corresponde ao mesmo conteúdo da variável ou expres-
são inteira. Após essa identificação verdadeira, o fluxo é desviado para executar o bloco identificado. 
Após a execução do comando ou do bloco de comandos, outro comando entrará em ação para finalizar o switch, 
sem se importar com quantas “condições” ainda teriam na sequência, pois, afinal, elas não precisam ser execu-
tadas. Esse comando é o break.
Caso nenhuma das constantes corresponda ao conteúdo da expressão ou variável, então o comando default 
será executado.
Veja alguns exemplos de problemas a seguir e, posteriormente, copie e teste cada um deles no Dev C++.
Problema 1: escreva um programa de computador utilizando a linguagem C que leia (entrada de dados) o valor 
de um número inteiro correspondente a um dia da semana; por exemplo: 1 – domingo, 2 – segunda-feira, 3 – 
terça-feira, etc. Após essa leitura, o programa deve imprimir na tela o nome do dia em forma de texto. Quando o 
número digitado não corresponder a nenhum dos dias da semana, o programa deve apresentar uma mensagem 
default informando que o número digitado é inválido.
#include <stdio.h>
#include <locale.h>
int main( ){
 setlocale(LC_ALL, “Portuguese”);
 int dia;
 printf(“Digite um número inteiro correspondente a um dia da semana, exemplo: 
\n\n1-	domingo;	\n2-segunda-fera	...\n\n”);
 scanf(“%i”,&DIA);
 switch(dia){
 case 1:
 printf(“\n Domingo!\n\n”);
74
Construção de Algoritmos | Unidade 4 - Estruturas Condicionais ou de Decisão
 break;
 case 2:
	 	 printf(“\n	Segunda-feira!\n\n”);
 break;
 case 3:
	 	 printf(“\n	Terca-feira!\n\n”);
 break;
 case 4:
	 	 printf(“\n	Quarta-feira!\n\n”);
 break;
 case 5:
	 	 printf(“\n	Quinta-feira!\n\n”);
 break;
 case 6:
	 	 printf(“\n	Sexta-feira!\n\n”);break;
 case 7:
	 	 printf(“\n	Sabado!\n\n”);
 break;
 default:
 printf(“\n Numero invalido.\n “);
 }
 return 0;
}
Problema 2: escreva um programa de computador utilizando a linguagem C que leia (entrada de dados) o 
número correspondente a um mês do ano e que, então, apresente na tela o nome do mês. Quando o número 
digitado não corresponder a um dos meses do ano, o programa deve apresentar uma mensagem informando 
que o número digitado é inválido. 
#include <stdio.h>
#include <locale.h>
int main( ){
 setlocale(LC_ALL, “Portuguese”);
 int mes;
75
Construção de Algoritmos | Unidade 4 - Estruturas Condicionais ou de Decisão
 printf(“Digite o número correspondente a um mês do ano, exemplo: 
\n\n1-janeiro;	\n2-fevereiro	...\n\n”);
 scanf(“%i”,&mes);
 switch(mes){
 case 1:
 printf(“\n Janeiro!\n\n”);
	 	 break;
 case 2:
 printf(“\n Fevereiro!\n\n”);
	 	 break;
 case 3:
 printf(“\n Marco!\n\n”);
	 	 break;
 case 4:
	 	 printf(“\n	Abril!1\n\n”);
	 	 break;
	 	 case	5:
 printf(“\n Maio!\n\n”);
	 	 break;
 case 6:
 printf(“\n Junho!\n\n”);
	 	 break;
 case 7:
 printf(“\n Julho!\n\n”);
	 	 break;
 case 8:
 printf(“\n Agosto!\n\n”);
	 	 break;
 case 9:
	 	 printf(“\n	Setembro!\n\n”);
	 	 break;
 case 10:
	 	 printf(“\n	Outubro!\n\n”);
	 	 break;
 case 11:
	 	 printf(“\n	Novembro!\n\n”);
76
Construção de Algoritmos | Unidade 4 - Estruturas Condicionais ou de Decisão
	 	 break;
 case 12:
	 	 printf(“\n	Dezembro!\n\n”);
	 	 break;
 default:
 printf(“\n Número do mês inválido.\n “);
 }
 return 0;
}
Síntese da unidade
Por meio desta unidade, você foi capaz de entender os conceitos de estruturas de decisão para a linguagem de 
programação C. Além disso, você pôde testar pequenos programas, observar a aplicação dessas estruturas na 
prática e como foi possível resolver problemas mais elaborados com a aplicação dos comandos if, if-else, if-else-if 
e switch-case.
77
Considerações finais
Parabéns, você chegou ao final da unidade 4 e aprendeu a aplicar os 
comandos referentes às estruturas de decisão para a programação de 
computadores utilizando a linguagem C. Com isso, seu poder para cons-
truir programas de computador ficou ainda maior, pois as estruturas de 
decisão permitem resolver problemas mais elaborados por meio da pro-
gramação de computadores. Agora, siga em frente!
	Unidade 1
	1. Introdução aos Conceitos de Algoritmo e Ambientes de Desenvolvimento (IDE) em C
	Unidade 2
	2. Tipos de Dados, Constantes, Variáveis, Operadores e Expressões em C
	Unidade 3
	3. Função de Entrada e Função de Saída em C
	Unidade 4
	4. Estruturas Condicionais ou de Decisão
	Unidade 5
	5. Estruturas de Repetição: while e do-while
	Unidade 6
	6. Estruturas de Repetição: for
	Unidade 7
	7. Estrutura de Dados: Vetores e Matrizes
	Unidade 8
	8. Aplicação de Estruturas Condicionais, Estruturas de Repetição, Vetores e Matrizes em C para Solução de Problemas

Continue navegando

Outros materiais