construcao de algoritmos
DESCRIPTION
atps construcao de algoritmosTRANSCRIPT
![Page 1: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/1.jpg)
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
![Page 2: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/2.jpg)
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
![Page 3: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/3.jpg)
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.
![Page 4: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/4.jpg)
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
![Page 5: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/5.jpg)
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.
![Page 6: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/6.jpg)
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
![Page 7: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/7.jpg)
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
![Page 8: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/8.jpg)
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
![Page 9: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/9.jpg)
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")
![Page 10: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/10.jpg)
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
![Page 11: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/11.jpg)
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")
![Page 12: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/12.jpg)
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
![Page 13: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/13.jpg)
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
![Page 14: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/14.jpg)
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
![Page 15: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/15.jpg)
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 :
![Page 16: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/16.jpg)
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
![Page 17: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/17.jpg)
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
![Page 18: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/18.jpg)
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
![Page 19: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/19.jpg)
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
![Page 20: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/20.jpg)
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
![Page 21: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/21.jpg)
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
![Page 22: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/22.jpg)
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
![Page 23: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/23.jpg)
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
![Page 24: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/24.jpg)
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
![Page 25: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/25.jpg)
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
![Page 26: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/26.jpg)
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:
![Page 27: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/27.jpg)
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")
![Page 28: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/28.jpg)
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
![Page 29: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/29.jpg)
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
![Page 30: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/30.jpg)
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")
![Page 31: construcao de algoritmos](https://reader036.vdocuments.site/reader036/viewer/2022081520/577c83541a28abe054b491cc/html5/thumbnails/31.jpg)
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