Download - construcao de algoritmos
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
ATIVIDADE AVALIATIVA (4,0 ONTOS)
LISTA DE EXERCÍCIOS
1. Elabore um algoritmo que calcule a área de um círculo qualquer de raio fornecido.
algoritmo "areaCircunferencia" // Função : Determinar a área de uma circunferência
// Autor : Jair Ferreira Camilo Júnior
// Data : 24/09/2013
// Seção de Declarações
var
p: real
raio: real
area: real
inicio
// Seção de Comandos
p<-3.14
escreva("Informe o raio")
leia(raio)
area<-p*(raio*raio)
escreva("Area:",area)
fimalgoritmo.
2. Prepare um algoritmo capaz de inverter um número de 3 dígitos, isto é, apresentar primeiro
a unidade, depois a dezena, depois a centena.
algoritmo "areaCircunferencia"
// Função : Determinar a área de uma circunferência
// Autor : Jair Ferreira Camilo Júnior
// Data : 24/09/2013// Seção de Declarações
var
val: inteiro
aux: inteiro //variável declarada para receber o dado que o usuário
sem alterar o dado informado
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
inv: inteiro
i: inteiro
rest: inteiro
inicio
// Seção de Comandos
escreva("Informe um numero contendo três algarismos")
leia(val)
se ((val >1000) ou (val < 100)) entao
escreva ("O número precisa ter 3 algarismos")
senao
aux <- val //
inv <- 0
para i de 1 ate 3 faca
rest <- aux % 10 //resto da divisão por 10
inv <- inv*10 + alg//variavel responsavel por guardar o
//valor após inversão
aux <- aux \ 10 //resultado da divisão inteira armazenada
//na variavel auxiliar
fimpara
escreva ("Número informado: ", val, " - Invertido ", inv)
fimse
fimalgoritmo
3. Dada uma determinada data de aniversário (dia, mês e ano separadamente), elabore um
algoritmo que solicite a data atual (também separadamente) e calcule a idade em anos,
meses e dias.
algoritmo "idadeEmanosMesesDia"
// Função :
// Autor :
// Data : 25/09/2013
// Seção de Declarações
var
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
dia,mes,ano,d,m,a,idade,somames,somadia: inteiro
inicio
// Seção de Comandos
escreva("INFORME A DATA DE NASCIMENTO")
leia(dia)
escreva("INFORME O MES DE NASCIMENTO")
leia(mes)
escreva("INFORME O ANO DE NASCIMENTO")
leia(ano)
escreva("QUE DIA È HOJE")
leia(d)
escreva("QUAL MES")
leia(m)
escreva("QUAL O ANO")
leia(a)
idade<-a-ano
//caso o dia e o mes seja menor que o mes e dia de nascimento
se((d<=dia) e(m<=mes)) entao
idade<-idade-1//
somames<-mes-m
somadia<-dia-d
senao
somames<-m-mes
somadia<-d-dia
fimse
escreva ("IDADE",idade)
escreva(somames,"MESES ",somadia,"DIAS")
fimalgoritmo
4. Um dado comerciante maluco cobra 10% de acréscimo para cada prestação em atraso e
depois dá um desconto de 10% sobre esse valor. Faça um algoritmo que solicite o valor da
prestação em atraso e apresente o valor final a pagar, assim como o prejuízo do comerciante
na operação.
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
algoritmo "comercianteMaluco"
// Função : Aplicar juros e desconto
// Autor : Jair Ferreira Camilo Júnior
// Data : 25/09/2013
// Seção de Declarações
var
preco,precacre,precdesc: real
inicio
// Seção de Comandos
escreva("Informe o valor da prestacao")
leia(preco)
precacre<-preco+(preco*0.10)
precdesc<-precacre-(precacre*0.10)
escreval("o preco da prestação atrasada e: ",preco)
escreval("o preco com juros e: ", precacre)
escreval("o preco com desconto e: ",precdesc)
fimalgoritmo
5. Escreva um algoritmo que a partir de um mês fornecido (inteiro de 1 a 12), apresente o
nome dele por extenso ou uma mensagem de mês invalido.
algoritmo "mesPorExtenso"
// Função : Mês por extenso
// Autor : Jair Ferreira Camilo Júnior
// Data : 25/09/2013
// Seção de Declarações
var
mes: inteiro
inicio
// Seção de Comandos
escreva("Informe o numero correspondente ao mês 1 a 12")
leia(mes)
escolha mes
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
caso 1
escreva("Mês de Janeiro")
caso 2
escreva("Mês de Fevereiro")
caso 3
escreva("Mês de Março")
caso 4
escreva("Mês de Abril")
caso 5
escreva("Mês de Maio")
caso 6
escreva("Mês de junho")
caso 7
escreva("Mês de julho")
caso 8
escreva("Mês de Agosto")
caso 9
escreva("Mês de Setembro")
caso 10
escreva("Mês de Outubro")
caso 11
escreva("Mês de Novembro")
caso 12
escreva("Mês de Dezembro")
outrocaso
escreva("DADO INVALIDO")
fimescolha
fimalgoritmo
6. Elabore um algoritmo que, a partir de um dia, mês e ano fornecidos, valide se eles compõem
uma data válida. Não deixe de considerar os meses com 30 ou 31 dias, e o tratamento de ano
bissexto.
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
algoritmo "validaData"
// Função : Validar data informada pelo usuario
// Autor : Jair Ferreira Camilo Júnior
// Data : 25/09/2013
// Seção de Declarações
var
dia,mes,ano: inteiro
inicio
// Seção de Comandos
escreva("Informe o dia")
leia(dia)
escreva("Informe o mes")
leia(mes)
escreva("Informe o ano")
leia(ano)
//comparação lógica de mês com grupo de meses de 31 dias
se ((mes=01) ou (mes=03) ou (mes=05) ou (mes=07) ou (mes=08) ou
(mes=10) ou (mes=12))entao
se((dia>=01) e (dia<=31))entao
escreva("Data válida")
senao
escreva ("Data inválida")
fimse
fimse
//comparação lógica de mes com grupo de meses de 30 dias
se ((mes=04) ou (mes=06) ou (mes=09) ou (mes=11)) entao
se ((dia>=01) e (dia<=30)) entao
escreva ("Data válida")
senao
escreva ("Data inválida")
fimse
fimse
//comparação lógica de mês 02 com grupo de meses de 28/29 dias
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
se(mes=2) então//inicio comparação mês 2
| | //Comparação ano bissexto
| se((ano mod 4)=0) entao//calculo ano bisexto
| | //caso seja bisexto executara uma das instruções
| | se((dia>=1)e(dia<=29)) entao
| | escreva("data valida")
| | senao
| | escreva("data invalida")
| | fimse
| | //fim comparação caso seja bissexto
| |
| | //caso não seja bissexto deve ter máximo 28 dias
| senao
| | se((dia>=1)e(dia<=28)) entao
| | escreva("data valida")
| | senao
| | escreva("data invalida")
| | fimse
| | //fim comparação caso não seja ano bissexto
| fimse
| //fim comparação ano bissexto
|
fimse //fim comparação mês 2
fimalgoritmo
7. A partir da idade informada de uma pessoa, elabore um algoritmo que informe sua classe
eleitoral, sabendo que menores de 16 anos não votam (não votante), que o voto é obrigatório
para adultos entre 18 e 65 anos (eleitor obrigatório) e que o voto é opcional para eleitores
entre 16 e 18, e maiores de 65 anos (eleitor facultativo).
algoritmo "classeEleitor"
// Função : Identifica a classe do eleitor através da idade informada
pelo usuário
// Autor : Jair Ferreira Camilo Júnior
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
// Data : 26/09/2013
// Seção de Declarações
var
idade: inteiro
inicio
// Seção de Comandos
escreva("Informe a idade")
leia(idade)
se((idade>=65)ou((idade>=16)e(idade<18))) entao
escreva("Classe voto opcional")
fimse
se((idade>=18)e(idade<65)) entao
escreva("Classe voto obrigatorio")
fimse
se(idade<16) entao
escreva("Classe nao votante")
fimse
fimalgoritmo
8. Construa um algoritmo que seja capaz de dar a classificação olímpica de 3 países
informados. Para cada país é informado o nome, a quantidade de medalhas de ouro, prata e
bronze. Considere que cada medalha de ouro tem peso 3, cada de prata tem peso 2, e as de
bronze, peso 1.
algoritmo "classificaPais"
// Função : Classificação de países
// Autor : Jair Ferreira Camilo Júnior
// Data : 26/09/2013
// Seção de Declarações
var
ouro1,ouro2,ouro3,prata1,prata2,prata3,bronze1,bronze2: inteiro
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
bronze3,rank1,rank2,rank3,maior,menor,medio:
inteiro
pais1,pais2,pais3,primeiro,segundo,terceiro: caracter
inicio
// Seção de Comandos
maior<-0 //inicializado em 0 para realização de testes para maior
menor<-99999999//inicializado em 999999999 para testes para obter
menor numero
//pais 1
escreva("Informe o nome do pais")
leia(pais1)
escreva("Informe quantidade de medalhas de ouro")
leia(ouro1)
escreva("Informe quantidade de medalhas de prata")
leia(prata1)
escreva("Informe quantidade de medalhas de bronze")
leia(bronze1)
//pais 2
escreva("Informe o nome do pais")
leia(pais2)
escreva("Informe quantidade de medalhas de ouro")
leia(ouro2)
escreva("Informe quantidade de medalhas de prata")
leia(prata2)
escreva("Informe quantidade de medalhas de bronze")
leia(bronze2)
//pais 3
escreva("Informe o nome do pais")
leia(pais3)
escreva("Informe quantidade de medalhas de ouro")
leia(ouro3)
escreva("Informe quantidade de medalhas de prata")
leia(prata3)
escreva("Informe quantidade de medalhas de ouro")
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
leia(bronze3)
//procedimento para saber a pontuação de cada país
rank1<-(ouro1*3)+(prata1*2)+(bronze1*1)
rank2<-(ouro2*3)+(prata2*2)+(bronze2*1)
rank3<-(ouro3*3)+(prata3*2)+(bronze3*1)
//anteriormente a variável maior foi inicializada em 0, portanto
//sempre executara a 1° estrutura de seleção, e caso país1 tenha maior
//pontuação irá para os testes para saber o terceiro lugar
se(rank1 > maior) entao
maior<-rank1
primeiro<-pais1
se (rank2 < rank3) entao
medio<-rank3
segundo<-pais3
senao
medio<-rank2
segundo<-pais2
fimse
fimse
//o próximo teste verifica se o segundo pais é maior que o 1°
//caso seja entrará para termos o segundo tendo o país2 com1° colocado
se(rank2 > maior) entao
maior<-rank2
primeiro<-pais2
se (rank1 < rank3) entao
medio<-rank3
segundo<-pais3
senao
medio<-rank1
segundo<-pais1
fimse
fimse
//teste do terceiro pais
se(rank3 > maior) entao
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
maior<-rank3
primeiro<-pais3
se (rank1 < rank2) entao
medio<-rank2
segundo<-pais2
senao
medio<-rank1
segundo<-pais1
fimse
fimse
//Próxima sequência de testes para termos o terceiro lugar
//já temos o primeiro e o segundo resta saber quem é terceiro.
//1° teste deverá rodar sempre já que a variável menor foi
//anteriormente inicializada com um valor muito alto
se(rank1 < menor) entao
menor<-rank1
terceiro<-pais1
fimse
//o próximo teste trata o caso rank2 seja menor que rank1 que
// agora está armazenado na variável menor
se(rank2 < menor) então
menor<-rank2
terceiro<-pais2
fimse
//Próximo será executado somente se rank3 for menor que o
//valor que está armazenado
//na variável menor, que neste momento pode ser o valor de
//rank1 ou rank2.
se(rank3 < menor) entao
menor<-rank3
terceiro<-pais3
fimse
//fim dos testes
escreval("O primeiro: " , primeiro, " com : ", maior," pontos")
escreval("O segundo: " , segundo, " com : ", medio," pontos")
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
escreval("O terceiro: " , terceiro," com:
",menor," pontos")
fimalgoritmo
9. Elabore um algoritmo que obtenha o mínimo múltiplo comum (MMC) entre dois números
fornecidos.
algoritmo "calculaMMC"
// Função : calcular o mínimo múltiplo comum
// Autor : Jair Ferreira Camilo Júnior
// Data : 27/09/2013
// Seção de Declarações
var
num1, num2, divisor,mmc: inteiro
inicio
escreva ("INFORME O PRIMEIRO NUMERO: ")
leia (num1)
escreva ("INFORME O SEGUNDO NUMERO: ")
leia (num2)
divisor<-2
mmc<-1
se (num1=0) ou (num2=0) entao
escreva ("O MÍNIMO MÚLTIPLO COMUM É: ")
escreval (" 0")
fimse
se (num1<>0) e (num2<>0) entao
| repita
| | se (num1 Mod divisor=0) ou (num2 Mod divisor=0) entao
| | | se (num1 mod divisor=0) entao
| | | | num1<-num1 div divisor
| | | fimse
| | | se (num2 mod divisor=0) entao
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
| | | | num2<-num2 div divisor
| | | fimse
| | | se (num1<>0) e (num2<>0) entao
| | | | MMC<-divisor*MMC
| | | fimse
| | fimse
| | se (num1 Mod divisor<>0) e (num2 Mod divisor<>0) entao
| | divisor<-divisor+1
| | fimse
| | se (num1<=1) e (num2<=1) e (num1<>0) e (num2<>0) entao
| | escreva ("O MÍNIMO MÚLTIPLO COMUM é: ",MMC)
| | fimse
| ate (num1<=1) e (num2<=1)
fimse
fimalgoritmo
10. Elabore um algoritmo que obtenha o máximo divisor comum (MDC) entre dois
números fornecidos.
algoritmo "calculaMdc"
// Função : Cálculo de MDC
// Autor : Jair Ferreira Camilo Júnior
// Data : 28/09/2013
// Seção de Declarações
var
n1,n2,num1,num2,mdc,resto:inteiro
inicio
// Seção de Comandos
escreva("Informe o primeiro numero")
leia(num1)
escreva("Informe o segundo numero")
leia(num2)
n1<-num1
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
n2<-num2
enquanto (resto<>0) faca
resto<-num1 mod num2
n1<-n2
n2<-resto
fimenquanto
mdc<-n1
escreva("O máximo divisor comun entre ",num1," e",num2,"é: ",mdc)
fimalgoritmo
11. Faça um algoritmo que seja capaz de obter o quociente inteiro da divisão de dois números
fornecidos, sem utilizar a operação de divisão, nem divisão inteira (div).
algoritmo "divisaoInteira"// Função : Divisão sem operador aritmético// Autor : Jair Ferreira Camilo Júnior// Data : 28/09/2013// Seção de Declarações varnum1,num2,cont,result: inteiroinicio// Seção de Comandosescreva("Informe o primeiro numero")leia(num1)escreva("Informe o segundo numero")leia(num2)result<-0para cont de num2 ate num1 passo num2 faca cont<-num2-num2 result<-result+1fimparaescreva(num1," / ",num2," = ", result)fimalgoritmo
12. Faça um algoritmo que seja capaz de obter o resultado de uma exponenciação para qualquer
base e expoente inteiro fornecidos, sem utilizar a operação de exponenciação (pot).
algoritmo "calculaPotencia"
// Função : Cáculo de potência
// Autor : Jair Ferreira Camilo Júnior
// Data : 28/09/2013
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
// Seção de Declarações
var
base,expoent,result,cont: inteiro
inicio
// Seção de Comandos
escreva("Informe o valor da base")
leia(base)
escreva("Informe o valor do expoente")
leia(expoent)
cont<-2
result<-base//variavel inicializada com valor inicial a base
se(expoent=1) entao
result<-base
fimse
se(expoent=0) entao
result<-1
senao
para cont de 2 ate expoent passo 1 faca
result<-result*base
cont<-cont+1
fimpara
escreva("o resultado e ",result)
fimse
fimalgoritmo
13. Construa um algoritmo que dado um valor N, gere o enésimo termo da série Fibonacci. A
série Fibonacci tem como o primeiro termo 0 e o segundo termo, 1. Os próximos termos serão
dados pela soma dos dois últimos. Exemplo: 0, 1, 1, 2, 3, 5, 8, 13, 21, …
algoritmo "enesimoNumero"
// Função :
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
// Autor :
// Data : 28/09/2013
// Seção de Declarações
var
n,fib1,fib2,fib3,cont: inteiro
inicio
// Seção de Comandos
fib1<-0
fib2<-1
escreva("primeiro: ",fib1,"segundo: ",fib2)
para cont de 0 ate 10 passo 1 faca
escreva("Informe um valor ")
leia(n)
fib1<-n
fib3<-fib1+fib2
escreva("proximo: ",fib3)
fib1<-fib2
fib2<-fib3
cont<-cont+1
fimpara
fimalgoritmo
14. Construa um algoritmo que, dado um conjunto de valores inteiros e positivos, determine
qual o menor e o maior valor do conjunto. O final do conjunto de valores é conhecido
quando for lido o valor -1, que não deve ser considerado.
algoritmo "maiorMenorDconjunto"
// Função : Calcular o maior e o menor do conjunto
// Autor : Jair Ferreira Camilo Júnior
// Data : 28/09/2013
// Seção de Declarações
var
n,i,cont,maior,menor: inteiro
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
inicio
// Seção de Comandos
maior<-0
menor<-99999999
enquanto (n<>-1) faca
escreva("Informe o ",i," Valor")
leia(i)
se(i=-1) entao
escreva("Fim")
n<--1
senao
se(i>maior) entao
maior<-i
fimse
se(i<menor) entao
menor<-i
fimse
fimse
fimenquanto
escreva("o maior e: ",maior, "E o menor: ",menor)
fimalgoritmo
15. Uma rainha requisitou os serviços de um monge e disse que pagaria qualquer preço. O
monge, necessitando de alimentos, perguntou à rainha se o pagamento poderia ser feito com
grãos de trigo dispostos em um tabuleiro de xadrez, de tal forma que o primeiro quadro
tivesse apenas um grão e os quadros subsequentes, o dobro do quadro anterior. A rainha
considerou o pagamento barato e pediu que o serviço fosse executado, sem se dar conta de
que seria impossível efetuar o pagamento. Faça um algoritmo para calcular o número de
grãos que o monge esperava receber.
algoritmo "rainhaMongeImpossivel"
// Função : Cálculo de graos a receber pelo monge
// Autor : Jair Ferreira Camilo Júnior
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
// Data : 28/09/2013
// Seção de Declarações
var
//se declarar a variável i como inteiro da um problema integer of flow
i: real //variável que vai acumular o resultado total
cont: inteiro //contador
inicio
// Seção de Comandos
cont<-1
i<-1
escreval("quadro 1: ",cont)
para cont de 2 ate 64 passo 1 faca
i<-i+i
escreval("quadro ",cont,":",i)
cont<-cont+1
fimpara
escreva("Total:",i)
fimalgoritmo
16. Em uma eleição presidencial existem quatro candidatos. Os votos são informados por
código. Os dados utilizados para a contagem obedecem à seguinte codificação:
1. 1, 2, 3 e 4 = voto para os respectivos candidatos.
2. 5 = voto nulo.
3. 6 = voto em branco.
Elabore um algoritmo que calcule e escreva:
1. O total de votos para cada candidato e seu percentual sobre o total.
2. O total de votos nulos e seu percentual sobre o total.
2. O total de votos brancos e seu percentual sobre o total. Como
finalizador do conjunto de votos, tem-se o valor de 0.
algoritmo "eleicaoPresidencial"
// Função : calcular resultado de eleição
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
// Autor : Jair Ferreira
Camilo Júnior
// Data : 28/09/2013
// Seção de Declarações
var
n,cod,cand1,cand2,cand3,cand4,bran,nul: inteiro
total,cont: inteiro
perc: real
inicio
// Seção de Comandos
enquanto (n<>0) faca
escreval("Informe o codigo do candidato que deseja votar ")
escreval("1,2,3,4 ou 5 para branco 6 para nulo ")
escreval("para encerrar a votação 0")
leia(cod)
se(cod=0) entao
escreva("Eleicao finalizada")
n<-0
senao
escolha cod
caso 1
cand1<-cand1+1
total<-total+1
caso 2
cand2<-cand2+1
total<-total+1
caso 3
cand3<-cand3+1
total<-total+1
caso 4
cand4<-cand4+1
total<-total+1
caso 5
bran<-bran+1
total<-total+1
caso 6
nul<-nul+1
outrocaso
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
escreva("Opção inválida")
fimescolha
fimse
fimenquanto
//cálculo porcentagem de votos candidato 1
perc<-(cand1*100)/total
escreval("O candidato 1 teve ",cand1,"votos ",perc,"% dos votos")
//cálculo porcentagem de votos candidato 2
perc<-(cand2*100)/total
//cálculo porcentagem de votos candidato 3
escreval("O candidato 2 teve ",cand2,"votos ",perc,"% dos votos")
perc<-(cand3*100)/total
//cálculo porcentagem de votos candidato 4
escreval("O candidato 3 teve ",cand3,"votos ",perc,"% dos votos")
perc<-(cand4*100)/total
//cálculo porcentagem de votos branco
escreval("O candidato 4 teve ",cand4,"votos ",perc,"% dos votos")
perc<-(bran*100)/total
//cálculo porcentagem de votos nulo
escreval("Votos em branco teve ",bran,"votos ",perc,"% dos votos")
perc<-(nul*100)/total
escreval("Votos nulo teve ",nul,"votos ",perc,"% dos votos")
fimalgoritmo
17. Elabore um algoritmo que imprima todos os números primos existentes entre N1 e N2, em
que N1 e N2 são números inteiros fornecidos pelo usuário.
algoritmo "semnome"
// Função :
// Autor :
// Data : 30/9/2013
// Seção de Declarações
var
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
n1, n2, a, b: inteiro
primo: logico
inicio
// Seção de Comandos
escreva ("digite 2 números")
leia(n1, n2)
escreval ("Os número primos são:")
para a de n1 ate n2 passo 1 faca
primo<-verdadeiro
para b de 2 ate (a-1) passo 1 faca
se (a mod b = 0)entao
primo<-falso
fimse
fimpara
se primo=verdadeiro entao
escreval(a)
fimse
fimpara
fimalgoritmo
18. Construa um algoritmo que leia um conjunto de dados contendo altura e sexo (M ou F) de
50 pessoas e depois, calcule e escreva:
1. a maior e menor altura do grupo.
2. A média de altura das mulheres.
3. O número de homens e a diferença percentual entre eles e as mulheres.
algoritmo "maiorMenorMediaAltura"// Função : Calcula a maior altura e menor altura geral e media de altura das mulheres// Autor : Jair Ferreira Camilo Júnior// Data : 28/09/2013// Seção de Declaraçõesvarsexo: caracterealtura,maior,menor,mediam: realcont,qtdm: inteiro
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
inicio// Seção de Comandosmaior<-0menor<-999999999qtdm<-0para cont de 1 ate 50 passo 1 faca
escreval("Informe a altura") leia(altura) escreval("Informe o sexo m ou f") leia(sexo) se((sexo= "f") ou (sexo= "F")) entao mediam<-mediam+altura qtdm<-qtdm+1 fimse se(altura>maior) entao maior<-altura fimse se(altura<menor) entao menor<-altura fimse cont<-cont+1fimparamediam<-mediam/qtdmescreval("A maior altura foi ", maior)escreval("A menor altura foi ", menor)escreval("A media da altura das mulheres e: ",mediam)fimalgoritmo
19. Prepare um algoritmo que calcule o valor de H, sendo que ele é determinado pela série H =1/1 + 3/2 + 5/3 + 7/4 + … + 99/50.
algoritmo "serieFracao"// Função : Calcular os próximos elementos de uma série// Autor : Jair Ferreira Camilo Júnior// Data : 28/09/2013// Seção de Declaraçõesvarh: realdividendo,divisor: realcont: inteiroinicionumerador<-1//inicia os contadores para que ele possa andar no laço(loop)denominador<-1cont<-1h<-0//zero o H porq não somamos nada aindapara cont de 1 ate 50 passo 1 faca h<-dividendo/divisor
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
dividendo<-dividendo+2 divisor<-divisor+1 escreval("O valor de H e: ",h) cont<-cont+1fimparafimalgoritmo
20. Prepare um algoritmo que calcule o valor de S, sendo que ele é determinado pela série S =
1/1 - 2/4 + 3/9 - 4/16 + 5/25 – 6/36 + … - 10/100.
algoritmo "serieFracaoPotencia"// Função : Calcular os próximos elementos de uma série numerado aumenta 1 e potencia 2 divisor// Autor : Jair Ferreira Camilo Júnior// Data : 28/09/2013// Seção de Declaraçõesvarh: realdividendo,divisor: realcont: inteiroiniciodividendo<-1//inicia os contadores para que ele possa andar no laço(loop)divisor<-1cont<-1h<-0//zero o H porq não somamos nada aindapara cont de 1 ate 10 passo 1 faca h<-dividendo/divisor
dividendo<-dividendo+1 divisor<-dividendo*dividendo escreval("O valor de H e: ",h) cont<-cont+1fimparafimalgoritmo
21. Calcule o imposto de renda de um grupo de 10 contribuintes, considerando que os dados de
cada contribuinte, número do CPF, número de dependentes e renda mensal são valores
fornecidos pelo usuário. Para cada contribuinte será feito um desconto de 5% do salário
mínimo por dependente.
22. Valores da aliquotas
Renda líquida Alíquota
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
Até 2 salários mínimos (S.M) Isento2 a 3 S.M 5%3 a 5 S.M 10%5 a 7 S.M 15%Acima de 7 S.M 20%Observe que deve ser fornecido o
valor do salário mínimo atual
algoritmo "calculaRendaeImposto"
// Função : Calcula reda liquida e imposto de renda e desconto de 5%
por dependente
// Autor :
// Data : 28/09/2013
// Seção de Declarações
var
cpf: caractere
numdp,cont,aliq: inteiro
renda,rendaliq,desconto,imposto,salm: real
inicio
// Seção de Comandos
salm<-678
para cont de 1 ate 10 passo 1 faca
escreva("Informe o cpf")
leia(cpf)
escreval("Informe a renda mensal")
leia(renda)
escreval("Informe a quantidade de dependentes")
leia(numdp)
se(renda > 4746) entao
aliq<-20
desconto<-(0.05*renda)*numdp
imposto<-0.2*renda
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
fimse
se((renda>3390) e (renda<=4746)) entao
aliq<-15
desconto<-(0.05*renda)*numdp
imposto<-0.15*renda
fimse
se((renda>2034) e (renda<=3390)) entao
aliq<-10
desconto<-(0.1*renda)*numdp
imposto<-0.1*renda
fimse
se((renda>1356) e (renda<=2034)) entao
aliq<-5
desconto<-(0.05*renda)*numdp
imposto<-0.1*renda
fimse
se((renda>0) e (renda<=1356)) entao
aliq<-0
desconto<-(0.05*renda)*numdp
imposto<-0.1*renda
fimse
rendaliq<-renda-imposto -desconto
escreval("CPF: ", cpf)
escreval("renda Liquida :",rendaliq," aliquota",aliq)
escreval("O salario mínimo e :",salm)
fimpara
fimalgoritmo
22. Anacleto tem 1,50 metros de altura e cresce 2 centímetros por ano,
enquanto Felisberto tem 1,10 metros e cresce 3 centímetros por ano. Construa um
algoritmo que calcule e imprima quantos anos serão necessários para que
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
Felisberto seja maior que Anacleto
algoritmo "anacleto"
// Função : Cálculo de tempo para alcançar altura
// Autor : Jair Ferreira Camilo Júnior
// Data : 28/09/2013
// Seção de Declarações
var
anac,felis: real
result: inteiro
inicio
// Seção de Comandos
anac<-1.5
felis<-1.10
result<-0
repita
anac<-anac+0.02
felis<-felis+0.03
result<-result+1
ate (anac < felis)
escreva("Resultado: ",result)
fimalgoritmo
23. Em um prédio há três elevadores denominados A, B e C. Para otimizar o sistema de controle
dos elevadores foi realizado um levantamento no qual cada usuário respondia:
1. o elevador que utilizava com mais frequência
2. o período em que utiliza o elevador entre:
1. M = matutino
2. V = vespertino
3. N = noturno
Construa um algoritmo que calcule e imprima:
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
1. qual é o elevador mais frequentado e em que período se concentra o maior fluxo
2. qual o período mais usado de todos e a que elevador pertence
3. qual a diferença percentual entre o mais usado dos horários e o menos usado
4. qual a porcentagem sobre o total de serviços prestados do elevador de média utilização.
algoritmo "estatisticaElevador"// Função :Estattítitica de uso de tres elevadores// Autor : Jair Ferreira Camilo Júnior// Data : 28/09/2013// Seção de Declaraçõesvar
a,b,c,mat,vesp,not,maior,menor,total,turnmaior,turnmenor: inteiroamat,avesp,anot,bmat,bvesp,bnot,cmat,cvesp,cnot: inteiroelev,opt,periodo,maioruso,menoruso,turnomais,turnomenos: caracterdifperc: real
inicio// Seção de Comandos
a<-0b<-0c<-0
maior<-0menor<-999999999
turnmaior<-0turnmenor<-999999999//variaveis abaixo para total turnomat<-0vesp<-0not<-0//variaveis abaixo para total turno por elevadoramat<-0avesp<-0anot<-0
bmat<-0bvesp<-0bnot<-0
cmat<-0cvesp<-0cnot<-0
escreva("Deseja iniciar a pesquisa informe s ou n")leia(opt)enquanto opt="s" faca
escreva("Informe o eleveador que mais utiliza A, B, ou C")
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
leia(elev) se((elev="a")ou(elev="A")ou(elev="b")ou(elev="B")ou(elev="c")ou(elev="C"))entao total<-total+1 se((elev="a") ou (elev="A")) entao a<-a+1 se(a>maior)entao maior<-a maioruso<-"A" fimse se(a<menor) entao menor<-a
menoruso<-"A" fimse fimse
se((elev="b") ou (elev="B")) entao b<-b+1 se(b>maior) entao maior<-b maioruso<-"B" fimse se(b<menor) entao menor<-b
menoruso<-"B" fimse fimse se((elev="c") ou (elev="C"))entao c<-c+1 se(c>maior) entao maior<-c maioruso<-"C" fimse se(c<menor) entao menor<-c menoruso<-"C" fimse
fimse fimse escreva("O periodo em que mais utiliza o elevador, M, V, ou N ") leia(periodo) se((periodo="m")ou(periodo="M")ou(periodo="v")ou(periodo="V")ou(periodo="n")ou(periodo="N")) entao se((periodo="m") ou (periodo="M")) entao mat<-mat+1 fimse se(mat>turnmaior)entao turnmaior<-mat turnomais<-"Turno Matutino" fimse
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
se(mat<turnmenor) entao menor<-amat turnomenos<-"Turno Matutino" fimse se((elev="a")ou (elev="A")) entao amat<-amat+1 fimse se((elev="b")ou (elev="B")) entao bmat<-bmat+1 fimse se((elev="c")ou (elev="C")) entao cmat<-cmat+1 fimse
se((periodo="v") ou (periodo="V")) entao vesp<-vesp+1 fimse se(vesp>turnmaior)entao maior<-vesp turnomais<-"Turno Vespertino" fimse se(vesp<turnmenor) entao menor<-vesp turnomenos<-"Turno Vespertino" fimse se((elev="a")ou (elev="A")) entao avesp<-avesp+1 fimse
se((elev="b")ou (elev="B")) entao bvesp<-bvesp+1 fimse se((elev="c")ou (elev="C")) entao cvesp<-cvesp+1 fimse
se((periodo="n") ou (periodo="N")) entao not<-not+1 fimse se(not>turnmaior)entao maior<-not turnomais<-"Turno Vespertino" fimse se(not<turnmenor) entao menor<-not turnomenos<-"Turno Vespertino" fimse se((elev="a")ou (elev="A")) entao anot<-anot+1 fimse se((elev="b")ou (elev="B")) entao bnot<-bnot+1 fimse se((elev="c")ou (elev="C")) entao
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
cnot<-cnot+1 fimse
escreval("Nova pesquisa digite S ou qualquer tecla e enter p/ Encerrar")
leia(opt) senao escreva("Elevador invalido") escreval("Deseja cadastrar novo dado S para sim N para
Encerrar") leia(opt) fimse
fimenquanto
escreval("O elevador mais frequentado é o ",maioruso)se((a>b)e (a>c)) entao se((amat>avesp)e(amat>avesp))entao escreval("Seu maior fluxo se deu no turno Matutino ")
fimse se((avesp>amat)e(avesp>anot)) entao escreval("Seu maior fluxo se deu no turno Vespesrtino") fimse
se((anot>amat)e(anot>avesp)) entao escreval("Seu maior fluxo se deu no turno Noturno") fimsefimse
se((b>a)e(b>c)) então
se((bmat>avesp)e(bmat>avesp))entao escreval("Seu maior fluxo se deu no turno Matutino ") fimse se((bvesp>amat)e(bvesp>anot)) entao escreval("Seu maior fluxo se deu no turno Vespesrtino") fimse se((bnot>amat)e(bnot>avesp)) entao escreval("Seu maior fluxo se deu no turno Noturno") fimsefimsese((c>a)e(c>b)) entao se((cmat>cvesp)e(cmat>cvesp))entao escreval("Seu maior fluxo se deu no turno Matutino ") fimse se((cvesp>amat)e(cvesp>anot)) entao escreval("Seu maior fluxo se deu no turno Vespesrtino")
fimse se((cnot>amat)e(cnot>avesp)) entao
escreval("Seu maior fluxo se deu no turno Noturno")
FACULDADE ANHANGUERA DE ANÁPOLISAv. Universitária, n. 683 – Centro – Anápolis-GO – (62) 3098-3838
fimsefimse
escreval("O periodo mais utilizado e o",turnomenos)escreval("O maior fluxo pertence ao elevador ",maioruso)
escreval("A diferenca de percentual entre o mais utilizado ")
escreval("e o menos usado é",(maior/menor)*100,"%")
fimalgoritmo