1 Lista de exercícios (seqüencial) 1) Uma P.A. (progressão aritmética) fica determinada pela sua razão (r) e pelo primeiro termo(a1). Escreva um algoritmo em PORTUGOL que seja capaz de determinar qualquer termo de uma P.A., dado a razão e o primeiro termo. Faça o teste de mesa e verifique se o resultado para r=5, a1=12 e n=4 é 27 2) Uma P.G. (progressão geométrica) fica determinada pela sua razão (q) e pelo primeiro termo (a1). Escreva um algoritmo em PORTUGOL que seja capaz de determinar qualquer termo de uma P.G., dado a razão e o primeiro termo. Faça o teste de mesa e verifique se o resultado para r=2, a1=3 e n=4 é 24 3) Dada a razão de uma P.A. (progressão aritmética) e um termo qualquer, k (ak). Escreva um algoritmo em PORTUGOL para calcular qualquer outro termo, n, (an). Faça o teste de mesa e verifique se o resultado para r=3, k=4,a4=5 e n=6 é 11 4) Dada a razão de uma P.G. (progressão geométrica) e um termo qualquer, k (ak).Escreva um algoritmo em PORTUGOL para calcular qualquer outro termo, n, (an). Faça o teste de mesa e verifique se o resultado para r=3, k=4,a4=5 e n=6 é 45 5) Considere que o número de uma placa de veículo é composto por quatro algarismos. Construa um algoritmo em PORTUGOL que leia este número e apresente o algarismo correspondente à casa das unidades. Faça o teste de mesa para o número 1234 6) Considere que o número de uma placa de veículo é composto por quatro algarismos. Construa um algoritmo em PORTUGOL que leia este número e apresente o algarismo correspondente à casa das dezenas. Faça o teste de mesa para o número 1234 2 7) Considere que o número de uma placa de veículo é composto por quatro algarismos. Construa um algoritmo em PORTUGOL que leia este número e apresente o algarismo correspondente à casa das centenas. Faça o teste de mesa para o número 1234 8) Considere que o número de uma placa de veículo é composto por quatro algarismos. Construa um algoritmo em PORTUGOL que leia este número e apresente o algarismo correspondente à casa das unidades de milhar. Faça o teste de mesa para o número 1234 9) Entre com um número no formato CDU (Centena-Dezena-Unidade) e mostrar invertido UDC. Exemplo: 123 sairá 321. Faça o teste de mesa para o número 1234 10) Escreva um algoritmo em PORTUGOL que leia um número inteiro e imprima o seu sucessor e seu antecessor. Faça o teste de mesa para o número 15 11) Escreva um algoritmo em PORTUGOL que leia dois números reais e imprima a média aritmética entre esses dois valores com a seguinte mensagem “MEDIA” antes do resultado. Faça o teste de mesa para n1=4 e n2=8 12) Certo dia o professor de Johann Friederich Carl Gauss (aos 10 anos de idade) mandou que os alunos somassem os números de 1 a 100. Imediatamente Gauss achou a resposta – 5050 – aparentemente sem cálculos. Supõe-se que já aí, Gauss, houvesse descoberto a fórmula de uma soma de uma progressão aritmética. Agora você, com o auxílio dos conceitos de algoritmos e da pseudolinguagem PORTUGOL, construa uma algoritmo para realizar a soma de uma P.A. de N termos, com o primeiro a1 e o último an. Faça o teste de mesa para o exemplo acima 13) Seja uma seqüência A,B,C, ... determinando um Progressão Aritmética (P.A.), o termo médio (B) de uma P.A. é determinado pela média aritmética de seus termos, sucessor (C) e antecessor (A). Com base neste enunciado construa um algoritmo em PORTUGOL que calcule o termo médio (B) através de A, C Faça o teste de mesa para o n1=10 e n2=3- 3 14) Em épocas de pouco dinheiro, os comerciantes estão procurando aumentar suas vendas oferecendo desconto. Faça um algoritmo em PORTUGOL que possa entrar com o valor de um produto e imprima o novo valor tendo em vista que o desconto foi de 9%. Além disso, imprima o valor do desconto. Faça o teste de mesa para a venda de R$100,00 15) Criar um algoritmo em PORTUGOL que efetue o cálculo do salário líquido de um professor. Os dados fornecidos serão: valor da hora aula, número de aulas dadas no mês e percentual de desconto do INSS. Faça o teste de mesa para a hora aula de R$20,00,40 horas trabalhadas e 8% de INSS. 16) Escreva um algoritmo em PORTUGOL que leia uma temperatura em gruas centígrados e apresente a temperatura convertida em graus Fahrenheit. A fórmula de conversão é: onde F é a temperatura em Fahrenheit e C é a temperatura em centígrados Faça o teste de mesa para 380C 17) Criar um algoritmo em PORTUGOL para calcular e apresentar o valor do volume de uma lata de óleo, utilizando a fórmula: onde V é o volume, R é o raio e h é a altura. Faça o teste de mesa para o 2cm de raio e 4cm de altura. 18) Criar um algoritmo em PORTUGOL que leia dois valores para as variáveis A e B, que efetue a troca dos valores de forma que a variável A passe a ter o valor da variável B e que a variável B passe a ter o valor da variável A. Apresente os valores trocados. Faça o teste de mesa para os números 1 e 3 19) Todo restaurante, embora por lei não possa obrigar o cliente a pagar, cobra 10% de comissão para o garçom. Crie um algoritmo em PORTUGOL que 4 leia o valor gasto com despesas realizadas em um restaurante e imprima o valor da gorjeta e o valor total com a gorjeta. Faça o teste de mesa para uma conta de R$100,00 20) Criar um algoritmo em PORTUGOL que leia um valor de hora (hora,minutos) e informe (calcule) o total de minutos se passaram desde o início do dia (0:00h). Faça o teste de mesa para o 10:55 21) Para vários tributos, a base de cálculo é o salário mínimo. Fazer um algoritmo em PORTUGOL que leia o valor do salário mínimo e o valor do salário de uma pessoa. Calcular e imprimir quantos salários mínimos essa pessoa ganha. Faça o teste de mesa para R$ 1000,00 22) Criar um algoritmo em PORTUGOL que efetue o cálculo da quantidade de litros de combustível gastos em uma viagem, sabendo-se que o carro faz 12 km com um litro. Deverão ser fornecidos o tempo gasto na viagem e a velocidade média. Distância = Tempo x Velocidade. Litros = Distancia / 12. O algoritmo deverá apresentar os valores da Distância percorrida e a quantidade de Litros utilizados na viagem. Faça o teste de mesa para 12 horas a 30Km/h 23) Antes do racionamento de energia ser decretado, quase ninguém falava em quilowatts; mas, agora, todos incorporaram essa palavra em seu vocabulário. Sabendose que 100 quilowatts de energia custa um sétimo do salário mínimo, fazer um algoritmo em PORTUGOL que receba o valor do salário mínimo e a quantidade de quilowatts gasta por uma residência e calcule (imprima). - o valor em reais de cada quilowatt; - o valor em reais a ser pago; - o novo valor a ser pago por essa residência com um desconto de 10%. Faça o teste de mesa para um salário mínimo de R$ 500,00 e 60Kw 24) Criar um algoritmo em PORTUGOL que leia o valor de um depósito e o valor da taxa de juros. Calcular e imprimir o valor do rendimento e o valor total depois do rendimento. Faça o teste de mesa para um depósito de R$1000,00 a 0,5% 25) Criar m algoritmo que, dado um número de conta corrente com 3 dígitos, retorne o seu dígito verificador, o qual é calculado da seguinte maneira: Exemplo: Número da conta: 235 • • Somar o número da conta com o seu inverso: 235+532=767 Multiplicar cada dígito pela ordem posicional e somar estes resultados: 5 • 7 6 7 x1 x2 x3 7 +12 +21 =40 O último dígito desse resultado é o dígito verificador da conta (40->0) 26) Criar um algoritmo que leia a quantidade de fitas que uma locadora de vídeo possui e o valor que ela cobra por cada aluguel, mostrando as informações pedidas a seguir: • Sabendo que um terço das fitas são alugadas por mês, exiba o faturamento anual da locadora; • Quando o cliente atrasa a entrega, é cobrada uma multa de 10% sobre o valor do aluguel. Sabendo-se que um décimo das fitas alugadas no mês são devolvidas com atraso, calcule o valor ganho com multas por mês; • Sabendo-se ainda que 2% das fitas se estragam ao longo do ano, e um décimo do total é comprado para reposição, exiba a quantidade de fitas que a locadora terá no final do ano. Faça o teste de mesa para o 300 fitas a R$8,00 por locação. 6 Lista de exercícios (seqüencial) GABARITO 1) algoritmo "PA" // Seção de Declarações var razao n a1 an Tela razao,n,a1,an:inteiro inicio // Seção de Comandos Entre com a razão escreva("Entre com a razao:") leia(razao) escreva("Entre termo") 5 com o 5 primeiro Entre com o primeiro termo 12 Entre com o termo N 12 leia(a1) escreva("Entre com o elemento N") leia(n) an<-a1+(n-1)*razao escreva("O elemento",n," é ",an) fimalgoritmo 4 27 O elemento 4 e 27 7 2) algoritmo "PG" // Seção de Declarações Var q q,n,a1:inteiro n a1 Tela na An:real inicio // Seção de Comandos Entre com a razão escreva("Entre com a razao:") leia(q) escreva("Entre termo") 2 com o 2 primeiro Entre com o primeiro termo 3 Entre com o termo N 4 3 leia(a1) escreva("Entre com o elemento N") leia(n) an<-a1*q^(n-1) escreva("O elemento",n," é ",an) fimalgoritmo 4 24 O elemento 4 e 24 8 3) algoritmo "PAK" // Seção de Declarações var r,n,ak,k,an:inteiro r n ak k na Tela inicio // Seção de Comandos Entre com a razao escreva("Entre com a razao:") leia(r) 3 3 Entre com o k escreva("Entre com com o K:") 4 leia(k) 4 Entre com o a4 escreva("Entre com o a",K) 5 leia(ak) 5 Entre com o termo N escreva("Entre com o elemento N") leia(n) an<-ak+(n-k)*r escreva("O elemento",n," é ",an) Fimalgoritmo 6 6 11 O elemento 6 e 11 9 4) algoritmo "PGK" // Seção de Declarações Var q,n,ak,k:inteiro r n ak k Tela na an:real Inicio // Seção de Comandos Entre com a razao escreva("Entre com a razao:") leia(q) 3 3 Entre com o k escreva("Entre com o k:") 4 leia(k) 4 Entre com o a4 escreva("Entre com o termo a",k) 5 leia(ak) 5 Entre com o termo N escreva("Entre com o elemento N") leia(n) 6 6 45 an<-ak*q^(n-k) O elemento 6 e 45 escreva("O elemento",n," é ",an) Fimalgoritmo 5) algoritmo "Placacarro" // Seção de Declarações var a,d :inteiro a d Tela inicio // Seção de Comandos Entre com o numero de 4 dígitos 3 escreva("Entre com o numero de 4 dígitos") leia(a) d<-a % 10 escreva("O algarismo das unidades é ",d) fimalgoritmo 1234 4 O algarismo das unidades é 4 10 6) algoritmo "Placacarro" // Seção de Declarações var a,d :inteiro a d Tela inicio // Seção de Comandos Entre com o numero de 4 dígitos 3 escreva("Entre com o numero de 4 dígitos") 1234 leia(a) 3 d<-a % 100 \ 10 O algarismo das dezenas é 3 escreva("O algarismo das dezenas é ",d) fimalgoritmo 7) algoritmo "Placacarro" // Seção de Declarações var a,d :inteiro a d Tela inicio // Seção de Comandos Entre com o numero de 4 dígitos 3 escreva("Entre com o numero de 4 dígitos") leia(a) d<-a % 1000 \ 100 escreva("O algarismo das centenas é ",d) fimalgoritmo 1234 2 O algarismo das centenas é 2 11 8) algoritmo "Placacarro" // Seção de Declarações var a,d :inteiro a d Tela inicio // Seção de Comandos Entre com o numero de 4 dígitos 3 escreva("Entre com o numero de 4 dígitos") leia(a) d<-a \ 1000 escreva("O algarismo dos milhares é ",d) 1234 1 O algarismo dos milhares é 1 fimalgoritmo 9) algoritmo "CDUUDC" // Seção de Declarações var num, c,d,u,num1:inteiro num c d u num1 Tela inicio // Seção de Comandos Entre com um número de 3 algarismos escreva("Entre com um número de 3 algarismos") leia(num) c<-num div 100 d<-num % 100 \ 10 u<-num %10 num1<-u*100+d*10+c escreva("O numero ",num," invertido é ", num1) fimalgoritmo 123 1 2 3 321 O numero 123 invertido é 321 12 10) algoritmo "AntPost" // Seção de Declarações var num ant post Tela num,ant,post:inteiro inicio // Seção de Comandos Entre com um número inteiro escreva("Entre com um número inteiro") 15 leia(num) 14 ant<-num - 1 16 post<-num + 1 escreva("O numero ",num," o anterior é ", ant, " e o posterior é ", post) O numero 15 o anterior é 14 e o posterior é 16 fimalgoritmo 11) algoritmo "MediaSimples" // Seção de Declarações var n1,n2,media:real inicio n1 n2 media Tela // Seção de Comandos Entre com o primeiro número escreva("Entre com o primeiro número ") leia(n1) 4 Entre com o segundo número escreva("Entre com o segundo número ") leia(n2) media<-(n1+n2)/2 escreva("Media ",media) fimalgoritmo 8 6 Media 6 13 12) algoritmo "SomaGauss" // Seção de Declarações var a1,an,n:inteiro a1 an n soma soma:real inicio // Seção de Comandos Entre com a1 escreva("Entre com o a1 ") leia(a1) 1 Entre com n escreva("Entre com o n") 100 leia(n) Entre com a100 escreva("Entre com o a",n) leia(an) soma<-((a1+an)*n)/2 escreva("Soma ",soma) fimalgoritmo 100 5050 14 13) algoritmo "PAmeio" // Seção de Declarações var a,c:inteiro a c b b:real inicio // Seção de Comandos Entre com o elemento a escreva("Entre com o elemento a ") leia(a) 10 Entre com o elemento b escreva("Entre com o elemento c ") 30 leia(c) 20 b<-(a+c)/2 Elemento b 20 escreva("Elemento b ",b) fimalgoritmo 14) algoritmo "Desconto" // Seção de Declarações var Preco,desconto,NovoPreco:real Preco desconto NovoPreco Tela inicio // Seção de Comandos Entre com o preço escreva("Entre com o preço") leia(Preco) desconto<-Preco*9/100 NovoPreco<-Preco - desconto escreva("Valor a pagar:",NovoPreco) fimalgoritmo 100 9 91 Valor a pagar 91,00 15 15) algoritmo "Desconto" // Seção de Declarações var HoraAula,HorasTrab,SalarioTotal,Desconto,SalarioLiq:real Hora Hora Salari Desc Salari Aula sTrab oTotal onto oLiq Tela inicio // Seção de Comandos Entre com a Hora Aula escreva("Entre com a Hora Aula") leia(HoraAula) 20 20 Entre com as horas trabalhadas escreva("Entre com a Horas Trabalhadas") leia(HorasTrab) 40 40 escreva("Entre com o % de desconto INSS") Entre com o % de desconto INSS 8 leia(Desconto) SalarioTotal<-HoraAula*HorasTrab SalarioLiq <-SalarioTotal - (SalarioTotal*Desconto/100) escreva("Salario Total:",SalarioTotal) escreva("Salario Liquido:",SalarioLiq) fimalgoritmo 8 800 736 Salario Total: 800,00 Salario Liquido:736,00 16 16) algoritmo "Temperaturas" // Seção de Declarações var c C,F:real f Tela inicio // Seção de Comandos Entre com a Temperatura em Celsius escreva("Entre com a Temperatura em Celsius") 38 leia(C) 100.4 F<-(9*C + 160)/5 A Temperatura :100.4 escreva("A Temperatura :",F) fimalgoritmo 17) algoritmo "VolumeCil" // Seção de Declarações var vol,pi,r,h:real vol pi r h Tela inicio // Seção de Comandos 3,14159 pi<-3.14359 Entre com o raio escreva("Entre com o raio") 2 leia(r) Tentre com a altura escreva("Entre com a altura") 4 leia(h) vol<-pi*r*r*h escreva("Volume é ",vol) fimalgoritmo 50,29744 Volume é 50.29744 17 18) algoritmo "Swap" // Função : var A,B,temp:inteiro a b temp inicio // Seção de Comandos Entre com o A escreva("Entre com o A") leia(A) 1 Entre com o B escreva("Entre com o B") 3 leia(B) 1 temp<-A A<-B B<-temp 3 1 A=3 B=1 escreva("A=",A,"B=",B) fimalgoritmo 19) algoritmo "Gorjeta" // Seção de Declarações var vTot,vGor,vGasto:real vTot vGor vGasto Tela inicio // Seção de Comandos Entre com o gasto escreva("Entre com o gasto") 100 leia(vGasto) 10 vGor<-vGasto*0.1 Valor Gorjeta: 10,00 escreva("Valor Gorjeta:",vGor) vTot<-vGasto+vGor 110 18 Valor Total:110,00 escreva("Valor Total:",vTot) fimalgoritmo 20) algoritmo "Calmins" // Seção de Declarações var hm:real hm Tela h h,m,mt:inteiro m mt inicio // Seção de Comandos Entre com hh,mm escreva("Entre com hh,mm") leia(hm) 10,55 10 h<-int(hm) 55 m<-(hm - h)*100 655 mt<-60*h+m total em minutos 655 escreva("total em minutos",mt) fimalgoritmo 21) algoritmo "nSM" // Seção de Declarações var SM,sal,nSM:real SM sal nSM Tela inicio // Seção de Comandos SM<-510 510 Ente com o salário escreva("Entre com o salario") leia(sal) nSM<-int(sal/SM) escreva("A qtde de SM é",nSM) 1000 1 A qtde de SM é 1 19 fimalgoritmo 20 22) algoritmo "Consumo" // Seção de Declarações var tempo, vel, dist, litros:real Tempo vel dist litros inicio // Seção de Comandos digite o tempo gasto escreva("digite o tempo gasto: ") 12 Leia(tempo) escreva("digite 30 Leia(vel) dist <- tempo * vel litros <- dist / 12 escreva("velocidade = ", vel, " tempo = ", tempo, " distancia = ", dist, " litros = ", litros) fimalgoritmo digite a velocidade media a velocidade media: ") 360 30 Velocidade=30 distancia=360 litros=30 21 23) algoritmo "Racionamento" // Seção de Declarações var SM, qtdade, preco, vp, vd:real sm qtda de preco vp vd Tela inicio // Seção de Comandos entre com minimo escreva("entre com o sal rio m¡nimo: ") Leia(sm) preco <- sm /700 vp <- preco * qtdade vd <- vp * 0.9 escreva("pre‡o do kilowatt: ", preco, " valor a ser pago: ", vp, " valor com desconto: ", vd) fimalgoritmo salario 500 entre com a quantidade em kilowatt escreva("entre com a quantidade em kilowatt: ") Leia(qtdade) //divide por 7 para achar o pre‡o de 100 Kw e por 100 para achar de 1 Kw o 60 0.714285 42,8571 38,57143 preco do kilowatt: 0,714285 valor a ser pago 42,87 valor com desconto 38,57 22 24) algoritmo "Rendimento" // Seção de Declarações var deposito, taxa, valorr, total:real deposito taxa valorr total inicio // Seção de Comandos entre com o deposito escreva("entre com deposito: ") Leia(deposito) 1000 escreva("entre coma taxa de juros: ") Leia(taxa) valorr <- deposito*taxa/100 total <- deposito + valorr escreva("Rendimentos: ", valorr, " Total: ", total) fimalgoritmo 0.5 entre com a taxa de juros 5 1005 Rendimento: 5, Total: 1005 23 25) algoritmo "DAC" // Seção de Declarações var conta, inv, digito, d1, d2, d3,soma:inteiro conta inv digito d1 d2 d3 soma Tela inicio // Seção de Comandos Digite conta de tres digitos escreva("Digite conta de tres digitos: ") Leia(conta) 235 2 d1 <- int(conta / 100) 3 d2 <- int((conta mod 100) / 10) 5 d3 <- ((conta mod 100)mod 10) inv <- d3 *100 + d2 *10 +d1 532 767 soma <- conta + inv 1 d1 <- int(soma/100) * 1 12 d2 <- int(( soma mod 100) / 10) * 2 21 d3 <- ((soma mod 100) mod 10) * 3 digito <- ((d1 +d2 +d3) mod 10) escreva("digito verificador: ", digito) fimalgoritmo 0 digito verificador 0 24 26) algoritmo "Locadora" // Seção de Declarações var valalug uel quant quant, valAluguel, fatAnual, multas, quantFinal:real fatanu al quan tfinal multas inicio // Seção de Comandos Digite a quantidade de fitas escreva("Digite a quantidade de fitas: ") 300 Leia(quant) Digite o valor do aluguel escreva("Digite o valor do aluguel: ") 8 Leia(valAluguel) 9600 fatAnual <- quant/3 * valAluguel * 12 8 multas <- valAluguel * 0.1 * (quant/3)/10 quantFinal <- quant - quant * 0.02 + quant/10 // quant * 1.08 324 escreva("Faturamento anual: ", fatAnual) escreva("Multas mensais: ", multas) escreva("Quantidade quantFinal) Fimalgoritmo de fitas no final do ano : ", Faturameno anual: 9600 Multas mensais:8 Quantidade de fitas no final do ano:324