You are on page 1of 31

FACULDADE ANHANGUERA DE ANPOLIS

Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

ATIVIDADE AVALIATIVA (4,0 ONTOS)


LISTA DE EXERCCIOS
1. Elabore um algoritmo que calcule a rea de um crculo qualquer de raio fornecido.
algoritmo "areaCircunferencia"
// Funo : Determinar a rea de uma circunferncia
// Autor : Jair Ferreira Camilo Jnior
// Data : 24/09/2013
// Seo de Declaraes
var
p: real
raio: real
area: real
inicio
// Seo 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 nmero de 3 dgitos, isto , apresentar primeiro


a unidade, depois a dezena, depois a centena.
algoritmo "areaCircunferencia"
// Funo : Determinar a rea de uma circunferncia
// Autor : Jair Ferreira Camilo Jnior
// Data : 24/09/2013// Seo de Declaraes
var
val: inteiro
aux: inteiro //varivel declarada para receber o dado que o usurio
sem alterar o dado informado

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

inv: inteiro
i: inteiro
rest: inteiro
inicio
// Seo de Comandos
escreva("Informe um numero contendo trs algarismos")
leia(val)
se ((val >1000) ou (val < 100)) entao
escreva ("O nmero precisa ter 3 algarismos")
senao
aux <- val //
inv <- 0
para i de 1 ate 3 faca
rest <- aux % 10 //resto da diviso por 10
inv <- inv*10 + alg//variavel responsavel por guardar o
//valor aps inverso
aux <- aux \ 10 //resultado da diviso inteira armazenada
//na variavel auxiliar
fimpara
escreva ("Nmero informado: ", val, " - Invertido ", inv)
fimse
fimalgoritmo

3. Dada uma determinada data de aniversrio (dia, ms e ano separadamente), elabore um


algoritmo que solicite a data atual (tambm separadamente) e calcule a idade em anos,
meses e dias.
algoritmo "idadeEmanosMesesDia"
// Funo :
// Autor :
// Data : 25/09/2013
// Seo de Declaraes
var

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

dia,mes,ano,d,m,a,idade,somames,somadia: inteiro
inicio
// Seo 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 acrscimo para cada prestao em atraso e
depois d um desconto de 10% sobre esse valor. Faa um algoritmo que solicite o valor da
prestao em atraso e apresente o valor final a pagar, assim como o prejuzo do comerciante
na operao.

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

algoritmo "comercianteMaluco"
// Funo : Aplicar juros e desconto
// Autor : Jair Ferreira Camilo Jnior
// Data : 25/09/2013

// Seo de Declaraes
var
preco,precacre,precdesc: real
inicio
// Seo de Comandos
escreva("Informe o valor da prestacao")
leia(preco)
precacre<-preco+(preco*0.10)
precdesc<-precacre-(precacre*0.10)
escreval("o preco da prestao 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 ms fornecido (inteiro de 1 a 12), apresente o


nome dele por extenso ou uma mensagem de ms invalido.
algoritmo "mesPorExtenso"
// Funo : Ms por extenso
// Autor : Jair Ferreira Camilo Jnior
// Data : 25/09/2013
// Seo de Declaraes
var
mes: inteiro
inicio
// Seo de Comandos
escreva("Informe o numero correspondente ao ms 1 a 12")

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

leia(mes)
escolha mes
caso 1
escreva("Ms de Janeiro")
caso 2
escreva("Ms de Fevereiro")
caso 3
escreva("Ms de Maro")

caso 4
escreva("Ms de Abril")
caso 5
escreva("Ms de Maio")
caso 6
escreva("Ms de junho")
caso 7
escreva("Ms de julho")
caso 8
escreva("Ms de Agosto")
caso 9
escreva("Ms de Setembro")
caso 10
escreva("Ms de Outubro")
caso 11
escreva("Ms de Novembro")
caso 12
escreva("Ms de Dezembro")
outrocaso
escreva("DADO INVALIDO")
fimescolha
fimalgoritmo

6. Elabore um algoritmo que, a partir de um dia, ms e ano fornecidos, valide se eles compem

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

uma data vlida. No deixe de considerar os meses com 30 ou 31 dias, e o tratamento de ano
bissexto.
algoritmo "validaData"
// Funo : Validar data informada pelo usuario
// Autor : Jair Ferreira Camilo Jnior
// Data : 25/09/2013
// Seo de Declaraes
var
dia,mes,ano: inteiro
inicio

// Seo de Comandos
escreva("Informe o dia")
leia(dia)
escreva("Informe o mes")
leia(mes)
escreva("Informe o ano")
leia(ano)
//comparao lgica de ms 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 vlida")
senao
escreva ("Data invlida")
fimse
fimse
//comparao lgica 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 vlida")
senao
escreva ("Data invlida")
fimse

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

fimse
//comparao lgica de ms 02 com grupo de meses de 28/29 dias
se(mes=2) ento//inicio comparao ms 2
|

| //Comparao ano bissexto

se((ano mod 4)=0) entao//calculo ano bisexto

senao

|
|

//caso seja bisexto executara uma das instrues


se((dia>=1)e(dia<=29)) entao
escreva("data valida")
senao
escreva("data invalida")
fimse
//fim comparao caso seja bissexto

//caso no seja bissexto deve ter

mximo 28 dias

se((dia>=1)e(dia<=28)) entao
escreva("data valida")
senao
escreva("data invalida")
fimse
//fim comparao caso no seja ano bissexto
fimse

//fim comparao ano bissexto

|
fimse //fim comparao ms 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 no votam (no votante), que o voto obrigatrio
para adultos entre 18 e 65 anos (eleitor obrigatrio) e que o voto opcional para eleitores
entre 16 e 18, e maiores de 65 anos (eleitor facultativo).

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

algoritmo "classeEleitor"
// Funo : Identifica a classe do eleitor atravs da idade informada
pelo usurio
// Autor : Jair Ferreira Camilo Jnior
// Data : 26/09/2013
// Seo de Declaraes
var
idade: inteiro
inicio
// Seo 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 classificao olmpica de 3 pases


informados. Para cada pas 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"
// Funo : Classificao de pases
// Autor : Jair Ferreira Camilo Jnior

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

// Data : 26/09/2013
// Seo de Declaraes
var
ouro1,ouro2,ouro3,prata1,prata2,prata3,bronze1,bronze2: inteiro
bronze3,rank1,rank2,rank3,maior,menor,medio: inteiro
pais1,pais2,pais3,primeiro,segundo,terceiro: caracter
inicio
// Seo de Comandos
maior<-0 //inicializado em 0 para realizao de testes para maior
menor<-99999999//inicializado

em

999999999

para

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)

testes

para

obter

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

escreva("Informe quantidade de medalhas de prata")


leia(prata3)
escreva("Informe quantidade de medalhas de ouro")
leia(bronze3)
//procedimento para saber a pontuao de cada pas
rank1<-(ouro1*3)+(prata1*2)+(bronze1*1)
rank2<-(ouro2*3)+(prata2*2)+(bronze2*1)
rank3<-(ouro3*3)+(prata3*2)+(bronze3*1)
//anteriormente a varivel maior foi inicializada em 0, portanto
//sempre executara a 1 estrutura de seleo, e caso pas1 tenha maior
//pontuao 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 prximo teste verifica se o segundo pais maior que o 1
//caso seja entrar para termos o segundo tendo o pas2 com1 colocado
se(rank2 > maior) entao
maior<-rank2
primeiro<-pais2
se (rank1 < rank3) entao
medio<-rank3
segundo<-pais3
senao
medio<-rank1
segundo<-pais1
fimse

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

fimse
//teste do terceiro pais
se(rank3 > maior) entao
maior<-rank3
primeiro<-pais3
se (rank1 < rank2) entao
medio<-rank2
segundo<-pais2
senao
medio<-rank1
segundo<-pais1
fimse
fimse
//Prxima sequncia 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 varivel menor foi
//anteriormente inicializada com um valor muito alto
se(rank1 < menor) entao
menor<-rank1
terceiro<-pais1
fimse
//o prximo teste trata o caso rank2 seja menor que rank1 que
// agora est armazenado na varivel menor
se(rank2 < menor) ento

menor<-rank2
terceiro<-pais2
fimse
//Prximo ser executado somente se rank3 for menor que o
//valor que est armazenado
//na varivel menor, que neste momento pode ser o valor de
//rank1 ou rank2.
se(rank3 < menor) entao
menor<-rank3
terceiro<-pais3
fimse

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

//fim dos testes


escreval("O primeiro: " , primeiro, " com : ", maior," pontos")
escreval("O segundo: " , segundo, " com : ", medio," pontos")
escreval("O terceiro: " , terceiro," com: ",menor," pontos")
fimalgoritmo

9. Elabore um algoritmo que obtenha o mnimo mltiplo comum (MMC) entre dois nmeros
fornecidos.
algoritmo "calculaMMC"
// Funo : calcular o mnimo mltiplo comum
// Autor : Jair Ferreira Camilo Jnior
// Data : 27/09/2013
// Seo de Declaraes
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 MNIMO MLTIPLO 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

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

num1<-num1 div divisor

fimse

se (num2 mod divisor=0) entao

fimse

se (num1<>0) e (num2<>0) entao

fimse

fimse

se (num1 Mod divisor<>0) e (num2 Mod divisor<>0) entao

fimse

se (num1<=1) e (num2<=1) e (num1<>0) e (num2<>0) entao

ate (num1<=1) e (num2<=1)

num2<-num2 div divisor

MMC<-divisor*MMC

divisor<-divisor+1

escreva ("O MNIMO MLTIPLO COMUM : ",MMC)


fimse

fimse
fimalgoritmo

10. Elabore um algoritmo que obtenha o mximo divisor comum (MDC) entre dois nmeros
fornecidos.
algoritmo "calculaMdc"
// Funo : Clculo de MDC
// Autor : Jair Ferreira Camilo Jnior
// Data : 28/09/2013
// Seo de Declaraes

var
n1,n2,num1,num2,mdc,resto:inteiro
inicio
// Seo de Comandos
escreva("Informe o primeiro numero")
leia(num1)

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

escreva("Informe o segundo numero")


leia(num2)
n1<-num1
n2<-num2
enquanto (resto<>0) faca
resto<-num1 mod num2
n1<-n2
n2<-resto
fimenquanto
mdc<-n1
escreva("O mximo divisor comun entre ",num1," e",num2,": ",mdc)
fimalgoritmo

11. Faa um algoritmo que seja capaz de obter o quociente inteiro da diviso de dois nmeros
fornecidos, sem utilizar a operao de diviso, nem diviso inteira (div).
algoritmo "divisaoInteira"
// Funo : Diviso sem operador aritmtico
// Autor : Jair Ferreira Camilo Jnior
// Data : 28/09/2013
// Seo de Declaraes
var
num1,num2,cont,result: inteiro
inicio
// Seo de Comandos
escreva("Informe o primeiro numero")
leia(num1)
escreva("Informe o segundo numero")
leia(num2)
result<-0
para cont de num2 ate num1 passo num2 faca
cont<-num2-num2
result<-result+1
fimpara
escreva(num1," / ",num2," = ", result)
fimalgoritmo

12. Faa um algoritmo que seja capaz de obter o resultado de uma exponenciao para qualquer
base e expoente inteiro fornecidos, sem utilizar a operao de exponenciao (pot).
algoritmo "calculaPotencia"

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

// Funo : Cculo de potncia


// Autor : Jair Ferreira Camilo Jnior
// Data : 28/09/2013
// Seo de Declaraes
var
base,expoent,result,cont: inteiro
inicio
// Seo 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 ensimo termo da srie Fibonacci. A

srie Fibonacci tem como o primeiro termo 0 e o segundo termo, 1. Os prximos termos sero
dados pela soma dos dois ltimos. Exemplo: 0, 1, 1, 2, 3, 5, 8, 13, 21,

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

algoritmo "enesimoNumero"
// Funo :
// Autor :
// Data : 28/09/2013
// Seo de Declaraes
var
n,fib1,fib2,fib3,cont: inteiro
inicio
// Seo 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 no deve ser considerado.
algoritmo "maiorMenorDconjunto"
// Funo : Calcular o maior e o menor do conjunto
// Autor : Jair Ferreira Camilo Jnior

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

// Data : 28/09/2013
// Seo de Declaraes
var
n,i,cont,maior,menor: inteiro
inicio
// Seo 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 servios de um monge e disse que pagaria qualquer preo. O
monge, necessitando de alimentos, perguntou rainha se o pagamento poderia ser feito com
gros de trigo dispostos em um tabuleiro de xadrez, de tal forma que o primeiro quadro
tivesse apenas um gro e os quadros subsequentes, o dobro do quadro anterior. A rainha
considerou o pagamento barato e pediu que o servio fosse executado, sem se dar conta de
que seria impossvel efetuar o pagamento. Faa um algoritmo para calcular o nmero de
gros que o monge esperava receber.

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

algoritmo "rainhaMongeImpossivel"
// Funo : Clculo de graos a receber pelo monge
// Autor : Jair Ferreira Camilo Jnior
// Data : 28/09/2013
// Seo de Declaraes
var
//se declarar a varivel i como inteiro da um problema integer of flow
i: real //varivel que vai acumular o resultado total
cont: inteiro //contador
inicio
// Seo 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 eleio presidencial existem quatro candidatos. Os votos so informados por
cdigo. Os dados utilizados para a contagem obedecem seguinte codificao:
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.

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

algoritmo "eleicaoPresidencial"
// Funo : calcular resultado de eleio

// Autor : Jair Ferreira Camilo Jnior


// Data : 28/09/2013
// Seo de Declaraes
var
n,cod,cand1,cand2,cand3,cand4,bran,nul: inteiro
total,cont: inteiro
perc: real
inicio
// Seo 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 votao 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

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

total<-total+1
caso 6
nul<-nul+1
outrocaso

escreva("Opo invlida")
fimescolha
fimse
fimenquanto
//clculo porcentagem de votos candidato 1
perc<-(cand1*100)/total
escreval("O candidato 1 teve ",cand1,"votos ",perc,"% dos votos")
//clculo porcentagem de votos candidato 2
perc<-(cand2*100)/total
//clculo porcentagem de votos candidato 3
escreval("O candidato 2 teve ",cand2,"votos ",perc,"% dos votos")
perc<-(cand3*100)/total
//clculo porcentagem de votos candidato 4
escreval("O candidato 3 teve ",cand3,"votos ",perc,"% dos votos")
perc<-(cand4*100)/total
//clculo porcentagem de votos branco
escreval("O candidato 4 teve ",cand4,"votos ",perc,"% dos votos")
perc<-(bran*100)/total
//clculo 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 nmeros primos existentes entre N1 e N2, em
que N1 e N2 so nmeros inteiros fornecidos pelo usurio.
algoritmo "semnome"
// Funo :

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

// Autor :
// Data : 30/9/2013
// Seo de Declaraes
var
n1, n2, a, b: inteiro
primo: logico
inicio

// Seo de Comandos
escreva ("digite 2 nmeros")
leia(n1, n2)
escreval ("Os nmero primos so:")
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 mdia de altura das mulheres.
3. O nmero de homens e a diferena percentual entre eles e as mulheres.
algoritmo "maiorMenorMediaAltura"
// Funo : Calcula a maior altura e menor altura geral e media de
altura das mulheres

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

// Autor : Jair Ferreira Camilo Jnior


// Data : 28/09/2013
// Seo de Declaraes
var
sexo: caractere
altura,maior,menor,mediam: real
cont,qtdm: inteiro
inicio
// Seo de Comandos
maior<-0
menor<-999999999
qtdm<-0
para 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+1
fimpara
mediam<-mediam/qtdm
escreval("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 srie H =
1/1 + 3/2 + 5/3 + 7/4 + + 99/50.
algoritmo "serieFracao"
// Funo : Calcular os prximos elementos de uma srie
// Autor : Jair Ferreira Camilo Jnior
// Data : 28/09/2013
// Seo de Declaraes
var
h: real
dividendo,divisor: real
cont: inteiro
inicio
numerador<-1//inicia os contadores para que ele possa andar no
lao(loop)

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

denominador<-1
cont<-1
h<-0//zero o H porq no somamos nada ainda
para cont de 1 ate 50 passo 1 faca
h<-dividendo/divisor
dividendo<-dividendo+2
divisor<-divisor+1
escreval("O valor de H e: ",h)
cont<-cont+1
fimpara
fimalgoritmo

20. Prepare um algoritmo que calcule o valor de S, sendo que ele determinado pela srie S =
1/1 - 2/4 + 3/9 - 4/16 + 5/25 6/36 + - 10/100.
algoritmo "serieFracaoPotencia"
// Funo : Calcular os prximos elementos de uma srie numerado
aumenta 1 e potencia 2 divisor
// Autor : Jair Ferreira Camilo Jnior
// Data : 28/09/2013
// Seo de Declaraes
var
h: real
dividendo,divisor: real
cont: inteiro
inicio
dividendo<-1//inicia os contadores para que ele possa andar no
lao(loop)
divisor<-1
cont<-1
h<-0//zero o H porq no somamos nada ainda
para 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+1
fimpara
fimalgoritmo

21. Calcule o imposto de renda de um grupo de 10 contribuintes, considerando que os dados de


cada contribuinte, nmero do CPF, nmero de dependentes e renda mensal so valores
fornecidos pelo usurio. Para cada contribuinte ser feito um desconto de 5% do salrio

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

mnimo por dependente.

22. Valores da aliquotas


Renda lquida

Alquo
ta
Isen

At 2 salrios mnimos (S.M)

to
5
%
10

2 a 3 S.M
3 a 5 S.M

%
15
%
20

5 a 7 S.M
Acima de 7 S.M
Observe que deve ser fornecido o
valor do salrio mnimo atual

algoritmo "calculaRendaeImposto"
// Funo : Calcula reda liquida e imposto de renda e desconto de 5%
por dependente
// Autor :
// Data : 28/09/2013
// Seo de Declaraes
var
cpf: caractere
numdp,cont,aliq: inteiro
renda,rendaliq,desconto,imposto,salm: real
inicio
// Seo 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
leia(numdp)

a quantidade de dependentes")

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

se(renda > 4746) entao


aliq<-20
desconto<-(0.05*renda)*numdp
imposto<-0.2*renda

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 mnimo e :",salm)
fimpara
fimalgoritmo

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

22. Anacleto tem 1,50 metros de altura e cresce 2 centmetros por ano, enquanto
Felisberto tem 1,10 metros e cresce 3 centmetros por ano. Construa um algoritmo
que calcule e imprima quantos anos sero necessrios para que Felisberto seja
maior que Anacleto
algoritmo "anacleto"
// Funo : Clculo de tempo para alcanar altura
// Autor : Jair Ferreira Camilo Jnior
// Data : 28/09/2013
// Seo de Declaraes
var
anac,felis: real
result: inteiro
inicio

// Seo 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 prdio h trs elevadores denominados A, B e C. Para otimizar o sistema de controle


dos elevadores foi realizado um levantamento no qual cada usurio respondia:
1. o elevador que utilizava com mais frequncia

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

2. o perodo em que utiliza o elevador entre:


1. M = matutino
2. V = vespertino
3. N = noturno
Construa um algoritmo que calcule e imprima:
1. qual o elevador mais frequentado e em que perodo se concentra o maior fluxo
2. qual o perodo mais usado de todos e a que elevador pertence
3. qual a diferena percentual entre o mais usado dos horrios e o menos usado
4.

qual a porcentagem sobre o total de servios prestados do elevador de mdia utilizao.

algoritmo "estatisticaElevador"
// Funo :Estatttitica de uso de tres elevadores
// Autor : Jair Ferreira Camilo Jnior
// Data : 28/09/2013
// Seo de Declaraes
var
a,b,c,mat,vesp,not,maior,menor,total,turnmaior,turnmenor: inteiro
amat,avesp,anot,bmat,bvesp,bnot,cmat,cvesp,cnot: inteiro
elev,opt,periodo,maioruso,menoruso,turnomais,turnomenos: caracter
difperc: real
inicio
// Seo de Comandos

a<-0
b<-0
c<-0
maior<-0
menor<-999999999
turnmaior<-0
turnmenor<-999999999
//variaveis abaixo para total turno
mat<-0
vesp<-0
not<-0
//variaveis abaixo para total turno por elevador
amat<-0
avesp<-0
anot<-0
bmat<-0
bvesp<-0
bnot<-0
cmat<-0

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

cvesp<-0
cnot<-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")
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)

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

se((periodo="m")ou(periodo="M")ou(periodo="v")ou(periodo="V")ou(peri
odo="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
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

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

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
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")
fimse
fimse
se((b>a)e(b>c)) ento

se((bmat>avesp)e(bmat>avesp))entao
escreval("Seu maior fluxo se deu
fimse
se((bvesp>amat)e(bvesp>anot)) entao
escreval("Seu maior fluxo se deu
fimse
se((bnot>amat)e(bnot>avesp)) entao
escreval("Seu maior fluxo se deu
fimse
fimse
se((c>a)e(c>b)) entao
se((cmat>cvesp)e(cmat>cvesp))entao
escreval("Seu maior fluxo se deu

no turno Matutino ")


no turno Vespesrtino")
no turno Noturno")

no turno Matutino ")

FACULDADE ANHANGUERA DE ANPOLIS


Av. Universitria, n. 683 Centro Anpolis-GO (62) 3098-3838

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")
fimse
fimse
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

You might also like