construcao de algoritmos

Post on 13-Jul-2016

81 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

atps construcao de algoritmos

TRANSCRIPT

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

top related