Na aula 17 o professor Jossandro passou um trabalho para recuperar as notas da prova, contendo ele três questões que deveriam ser resolvidas e enviadas por email a ele, com o prazo de entrega sendo até dia 13/06/2011 as 23:59 h. Ja na aula 18 foi então corrigidas as três questões e foi passada mais uma apenas para exercitar.
1 - Em uma eleição presidencial existem quatro candidatos. Os votos são informados por meio de código. Os códigos utilizados são:
1, 2, 3, 4 | Votos para os respectivos candidatos |
5 | Voto nulo |
6 | Voto em branco |
Faça um programa que calcule e mostre:
- o total de votos para cada candidato;
- o total de votos nulos;
- o total de votos em branco;
- a percentagem de votos nulos sobre o total de votos;
- a percentagem de votos em branco sobre o total de votos.
Para finalizar o conjunto de votos, tem-se o valor ZERO e, para códigos inválidos, o programa deverá mostrar uma mensagem.
algoritmo "Questão_1"
var
voto, cand1, cand2, cand3, cand4, cand5, cand6, cont_total: inteiro
porc_nulos, porc_branco: real
inicio
escreval("Digite seu voto: ")
leia(voto)
SE (voto<0) ou (voto>6) ENTAO
REPITA
escreval("Essa opção de voto não existe. Digite o voto novamente: ")
leia(voto)
ATE (voto>0) e (voto<7)
FIMSE
cand1<- 0
cand2<- 0
cand3<- 0
cand4<- 0
cand5<- 0
cand6<- 0
cont_total<- 0
porc_nulos<- 0
porc_branco<- 0
SE (voto<>0) ENTAO
REPITA
SE (voto=1) ENTAO
cand1<- cand1+1
FIMSE
SE (voto=2) ENTAO
cand2<- cand2+1
FIMSE
SE (voto=3) ENTAO
cand3<- cand3+1
FIMSE
SE (voto=4) ENTAO
cand4<- cand4+1
FIMSE
SE (voto=5) ENTAO
cand5<- cand5+1
FIMSE
SE (voto=6) ENTAO
cand6<- cand6+1
FIMSE
cont_total<- cont_total+1
porc_nulos<- cand5*100/cont_total
porc_branco<- cand6*100/cont_total
escreval("Digite o seu voto: ")
leia(voto)
SE (voto<0) ou (voto>6) ENTAO
REPITA
escreval("Essa opção de voto não existe. Digite o voto novamente: ")
leia(voto)
ATE (voto>0) e (voto<=6)
FIMSE
ATE (voto=0)
FIMSE
escreval("A votação foi encerrada")
escreval("O candidado 1 teve: ",cand1," votos")
escreval("O candidado 2 teve: ",cand2," votos")
escreval("O candidado 3 teve: ",cand3," votos")
escreval("O candidado 4 teve: ",cand4," votos")
escreval("Tiveram ",cand5," votos nulos")
escreval("Tiveram ",cand6," votos em branco")
escreval("A porcentagem de votos nulos sobre o total de votos foi de ", porc_nulos," %")
escreval("A porcentagem de votos em branco sobre o total de votos foi de ", porc_branco,"%")
fimalgoritmo
var
voto, cand1, cand2, cand3, cand4, cand5, cand6, cont_total: inteiro
porc_nulos, porc_branco: real
inicio
escreval("Digite seu voto: ")
leia(voto)
SE (voto<0) ou (voto>6) ENTAO
REPITA
escreval("Essa opção de voto não existe. Digite o voto novamente: ")
leia(voto)
ATE (voto>0) e (voto<7)
FIMSE
cand1<- 0
cand2<- 0
cand3<- 0
cand4<- 0
cand5<- 0
cand6<- 0
cont_total<- 0
porc_nulos<- 0
porc_branco<- 0
SE (voto<>0) ENTAO
REPITA
SE (voto=1) ENTAO
cand1<- cand1+1
FIMSE
SE (voto=2) ENTAO
cand2<- cand2+1
FIMSE
SE (voto=3) ENTAO
cand3<- cand3+1
FIMSE
SE (voto=4) ENTAO
cand4<- cand4+1
FIMSE
SE (voto=5) ENTAO
cand5<- cand5+1
FIMSE
SE (voto=6) ENTAO
cand6<- cand6+1
FIMSE
cont_total<- cont_total+1
porc_nulos<- cand5*100/cont_total
porc_branco<- cand6*100/cont_total
escreval("Digite o seu voto: ")
leia(voto)
SE (voto<0) ou (voto>6) ENTAO
REPITA
escreval("Essa opção de voto não existe. Digite o voto novamente: ")
leia(voto)
ATE (voto>0) e (voto<=6)
FIMSE
ATE (voto=0)
FIMSE
escreval("A votação foi encerrada")
escreval("O candidado 1 teve: ",cand1," votos")
escreval("O candidado 2 teve: ",cand2," votos")
escreval("O candidado 3 teve: ",cand3," votos")
escreval("O candidado 4 teve: ",cand4," votos")
escreval("Tiveram ",cand5," votos nulos")
escreval("Tiveram ",cand6," votos em branco")
escreval("A porcentagem de votos nulos sobre o total de votos foi de ", porc_nulos," %")
escreval("A porcentagem de votos em branco sobre o total de votos foi de ", porc_branco,"%")
fimalgoritmo
2 - Faça um programa que receba um conjunto de valores inteiros e positivos, calcule e mostre o maior e o menor valor do conjunto. Considere que:
- para encerrar a entrada de dados, deve ser digitado valor zero;
- para valores negativos, deve ser enviada uma mensagem;
- os valores negativos ou iguais a zero não entram nos cálculos.
algoritmo "questao2"
var
num, maior, menor: inteiro
inicio
escreval("Digite um número inteiro e positivo: ")
leia(num)
SE (num<>0) ENTAO
ENQUANTO (num<0) FACA
escreval("Você digitou um número inválido")
leia(num)
FIMENQUANTO
SE (num<>0) ENTAO
maior<- num
menor<- num
REPITA
SE (maior<num) ou (maior = num) ENTAO
maior<- num
FIMSE
SE (menor>num) ou (menor=num) ENTAO
menor<- num
FIMSE
escreval("Digite um número inteiro e positivo: ")
leia(num)
ENQUANTO (num<0) FACA
escreval("Você digitou um número inválido")
leia(num)
FIMENQUANTO
ATE (num=0)
FIMSE
FIMSE
SE (maior=0) e (menor=0) ENTAO
escreval("Você não digitou nenhum número")
SENAO
escreval("O maior número é: ", maior)
escreval("O menor número é: ", menor)
FIMSE
fimalgoritmo
var
num, maior, menor: inteiro
inicio
escreval("Digite um número inteiro e positivo: ")
leia(num)
SE (num<>0) ENTAO
ENQUANTO (num<0) FACA
escreval("Você digitou um número inválido")
leia(num)
FIMENQUANTO
SE (num<>0) ENTAO
maior<- num
menor<- num
REPITA
SE (maior<num) ou (maior = num) ENTAO
maior<- num
FIMSE
SE (menor>num) ou (menor=num) ENTAO
menor<- num
FIMSE
escreval("Digite um número inteiro e positivo: ")
leia(num)
ENQUANTO (num<0) FACA
escreval("Você digitou um número inválido")
leia(num)
FIMENQUANTO
ATE (num=0)
FIMSE
FIMSE
SE (maior=0) e (menor=0) ENTAO
escreval("Você não digitou nenhum número")
SENAO
escreval("O maior número é: ", maior)
escreval("O menor número é: ", menor)
FIMSE
fimalgoritmo
Download arquivo alg.
3 - Faça um programa que receba os dados a seguir de vários produtos: preço unitário, país de origem (1- Brasil, 2- Portugal e 3 – outros), meio de transporte (T – terrestre, F – fluvial e A – aéreo), carga perigosa (S- sim, N – não), finalize a entrada de dados com um preço inválido, ou seja, menor ou igual a zero e que calcule e mostre:
- O valor do imposto, usando a tabela a seguir.
Preço unitário | Percentual de imposto sobre o preço unitário |
Até R$ 280,00 | 5.00% |
Maior que R$ 280,00 | 10.00% |
- O valor do transporte usando a tabela a seguir
Carga Perigosa | País de Origem | Valor do Transporte |
S | 1 | R$ 140,00 |
2 | R$ 59,00 | |
3 | R$ 67,00 | |
N | 1 | R$ 34,00 |
2 | R$ 59,00 | |
3 | R$ 168,00 |
- O valor do seguro, usando a regra a seguir:
Os produtos que vêm de Portugal e os produtos que utilizam transporte aéreo pagam metade do valor do seu preço unitário como seguro.
- O preço final, ou seja, preço unitário mais imposto mais valor do transporte mais valor do seguro.
- O total dos impostos (somando impostos de todos os produtos).
algoritmo "questao3"
var
prec_unit, pais, trans2, prec_total, seguro, porc_impos, imp, imp_total: real
trans, carga: caracter
inicio
imp_total<-0
escreval("Digite o preço unitário: ")
leia(prec_unit)
ENQUANTO (prec_unit<0) FACA
escreva("Valor inválido. Digite novamente: ")
leia(prec_unit)
FIMENQUANTO
SE (prec_unit<>0) ENTAO
REPITA
escreval("Digite o país de origem (1- Brasil, 2- Portugal e 3- outros):")
leia(pais)
ENQUANTO (pais<1) ou (pais>3) FACA
escreval("Pais inválido. Digite novamente: ")
leia(pais)
FIMENQUANTO
escreval("Digite o meio de transporte (T - terrestre, F - fluvial e A - aéreo): ")
leia(trans)
ENQUANTO (trans<>"T") e (trans<>"F") e (trans<>"A") FACA
escreval("Você digitou um meio de transporte inválido. Digite novamente: ")
leia(trans)
FIMENQUANTO
escreval("É carga perigosa (S - sim, N - não): ")
leia(carga)
ENQUANTO (carga<>"S") e (carga<>"N") FACA
escreval("Você digitou uma tipo de carga inválido. Digite novamente: ")
leia(carga)
FIMENQUANTO
SE (prec_unit<280) ou (prec_unit=280) ENTAO
porc_impos<- prec_unit*5/100
SENAO
SE (prec_unit>280) ENTAO
porc_impos<- prec_unit*10/100
FIMSE
FIMSE
SE (carga="s") ENTAO
SE (pais=1) ENTAO
trans2<- 140
FIMSE
SE (pais=2) ENTAO
trans2<- 59
FIMSE
SE (pais=3) ENTAO
trans2<- 67
FIMSE
SENAO
SE (carga="n") ENTAO
SE (pais=1) ENTAO
trans2<- 34
FIMSE
SE (pais=2) ENTAO
trans2<- 59
FIMSE
SE (trans=3) ENTAO
trans2<- 168
FIMSE
FIMSE
FIMSE
SE (pais=2) ou (trans="a") ENTAO
seguro<- prec_unit/2
SENAO
SE (pais<>2) ou (trans<>"a") ENTAO
seguro<-0
FIMSE
FIMSE
prec_total<- prec_unit+porc_impos+seguro+trans2
imp<- porc_impos
imp_total<- imp_total+imp
prec_total<- prec_unit+porc_impos+seguro+trans2
limpatela
escreval("")
escreval("O imposto unitário custa: ",porc_impos," reais")
escreval("O transporte custa: ",trans2," reais")
escreval("O seguro custa: ",seguro," reais")
escreval("O preço final é: ",prec_total," reais")
escreval("")
escreval("Digite o proximo valor unitário: ")
leia(prec_unit)
ENQUANTO (prec_unit<0) FACA
escreva("Valor inválido. Digite novamente: ")
leia(prec_unit)
FIMENQUANTO
ATE (prec_unit=0)
SENAO
escreval("Você não digitou nenhum valor válido.")
FIMSE
escreval("O total dos impostos é: ",imp_total," reais")
fimalgoritmo
var
prec_unit, pais, trans2, prec_total, seguro, porc_impos, imp, imp_total: real
trans, carga: caracter
inicio
imp_total<-0
escreval("Digite o preço unitário: ")
leia(prec_unit)
ENQUANTO (prec_unit<0) FACA
escreva("Valor inválido. Digite novamente: ")
leia(prec_unit)
FIMENQUANTO
SE (prec_unit<>0) ENTAO
REPITA
escreval("Digite o país de origem (1- Brasil, 2- Portugal e 3- outros):")
leia(pais)
ENQUANTO (pais<1) ou (pais>3) FACA
escreval("Pais inválido. Digite novamente: ")
leia(pais)
FIMENQUANTO
escreval("Digite o meio de transporte (T - terrestre, F - fluvial e A - aéreo): ")
leia(trans)
ENQUANTO (trans<>"T") e (trans<>"F") e (trans<>"A") FACA
escreval("Você digitou um meio de transporte inválido. Digite novamente: ")
leia(trans)
FIMENQUANTO
escreval("É carga perigosa (S - sim, N - não): ")
leia(carga)
ENQUANTO (carga<>"S") e (carga<>"N") FACA
escreval("Você digitou uma tipo de carga inválido. Digite novamente: ")
leia(carga)
FIMENQUANTO
SE (prec_unit<280) ou (prec_unit=280) ENTAO
porc_impos<- prec_unit*5/100
SENAO
SE (prec_unit>280) ENTAO
porc_impos<- prec_unit*10/100
FIMSE
FIMSE
SE (carga="s") ENTAO
SE (pais=1) ENTAO
trans2<- 140
FIMSE
SE (pais=2) ENTAO
trans2<- 59
FIMSE
SE (pais=3) ENTAO
trans2<- 67
FIMSE
SENAO
SE (carga="n") ENTAO
SE (pais=1) ENTAO
trans2<- 34
FIMSE
SE (pais=2) ENTAO
trans2<- 59
FIMSE
SE (trans=3) ENTAO
trans2<- 168
FIMSE
FIMSE
FIMSE
SE (pais=2) ou (trans="a") ENTAO
seguro<- prec_unit/2
SENAO
SE (pais<>2) ou (trans<>"a") ENTAO
seguro<-0
FIMSE
FIMSE
prec_total<- prec_unit+porc_impos+seguro+trans2
imp<- porc_impos
imp_total<- imp_total+imp
prec_total<- prec_unit+porc_impos+seguro+trans2
limpatela
escreval("")
escreval("O imposto unitário custa: ",porc_impos," reais")
escreval("O transporte custa: ",trans2," reais")
escreval("O seguro custa: ",seguro," reais")
escreval("O preço final é: ",prec_total," reais")
escreval("")
escreval("Digite o proximo valor unitário: ")
leia(prec_unit)
ENQUANTO (prec_unit<0) FACA
escreva("Valor inválido. Digite novamente: ")
leia(prec_unit)
FIMENQUANTO
ATE (prec_unit=0)
SENAO
escreval("Você não digitou nenhum valor válido.")
FIMSE
escreval("O total dos impostos é: ",imp_total," reais")
fimalgoritmo
algoritmo "primo"
var
x, num, soma_prim, divid, z: inteiro
inicio
soma_prim<- 0
PARA x de 1 ate 10 FACA
escreval("Digite o ",x," numero: ")
leia(num)
divid<- 0
PARA z de 1 ate num FACA
SE (num mod z=0) ENTAO
divid<- divid+1
FIMSE
FIMPARA
SE (divid<2) ou (divid=2) ENTAO
soma_prim<- soma_prim+1
FIMSE
FIMPARA
escreval("Entre os numeros digitados", soma_prim," eram primos")
fimalgoritmo
Download arquivo alg.
No inicio achei um pouco complicado resolver aquelas três questões mas mesmo assim optei por resolve-las sozinho, estou no aguardo da correção mas acredito que me sai muito bem, recuperando boa parte da nota perdida na prova. Ja na ultima questão passada pelo professor apenas para exercitar tive muita dificuldade já que ali teria que calcular os números primos, conta a qual em sempre me complico, mas como disse para o professor agora ela pode vir ate na próxima prova com certeza não me complicarei mais.