Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Exercícios de Algoritmos Prof. Gustavo Guanabara PASSO 01 - SEQUÊNCIAS BÁSICAS 1) Escreva um programa que mostre na tela a mensagem "Olá, Mundo!" 2) Faça um programa que leia o nome de uma pessoa e mostre uma mensagem de boas-vindas para ela: Ex: Qual é o seu nome? João da Silva Olá João da Silva, é um prazer te conhecer! var inicio escreval ("Olá, Mundo!") fimalgoritmo var nome: caractere inicio escreva ("Qual é o seu nome? ") leia (nome) escreval(" ") escreval ("Olá, ", nome,"! é um prazer conhecê-lo.") fimalgoritmo 2 3) Crie um programa que leia o nome e o salário de um funcionário, mostrando no final uma mensagem. Ex: Nome do Funcionário: Maria do Carmo Salário: 1850,45 O funcionário Maria do Carmo tem um salário de R$1850,45 em Junho. var nome: caractere salario: real inicio escreva ("Qual é o seu nome? ") leia (nome) escreva ("Qual é o seu salário? ") leia (salario) escreval(" ") escreval ("Nome do funcionário: ", nome) escreval ("Salário: ", salario) escreval(" ") escreval ("O funcionário ", nome," tem um salário de R$",salario, " em Junho") escreval(" ") fimalgoritmo 3 4) Desenvolva um algoritmo que leia dois números inteiros e mostre o somatório entre eles. Ex: Digite um valor: 8 Digite outro valor: 5 A soma entre 8 e 5 é igual a 13. 5) Faça um programa que leia as duas notas de um aluno em uma matéria e mostre na tela a sua média na disciplina. Ex: Nota 1: 4.5 Nota 2: 8.5 A média entre 4.5 e 8.5 é igual a 6.5 var N1, N2: real inicio escreva ("Digite o primeiro número: ") leia (N1) escreva ("Digite o segundo número: ") leia (N2) escreval (" ") escreval ("A soma entre ", N1," e ", N2, " é de ", N1+N2) escreval (" ") fimalgoritmo var N1, N2: real inicio escreva ("Nota 1: ") leia (N1) escreva ("Nota 2: ") leia (N2) escreval (" ") escreval ("A media entre ", N1," e ", N2, " é igual a ", (N1+N2)/2) escreval (" ") fimalgoritmo 4 6) Faça um programa que leia um número inteiro e mostre o seu antecessor e seu sucessor. Ex: Digite um número: 9 O antecessor de 9 é 8 O sucessor de 9 é 10 7) Crie um algoritmo que leia um número real e mostre na tela o seu dobro e a sua terça parte. Ex: Digite um número: 3.5 O dobro de 3.5 é 7.0 A terça parte de 3.5 é 1.16666 var numero: real inicio escreva ("Digite um número: ") leia (numero) escreval (" ") escreval ("O antecessor de ", numero, " é ", numero-1) escreval ("O sucessor de ", numero, " é ", numero+1) escreval (" ") fimalgoritmo var numero: real inicio escreva ("Digite um número: ") leia (numero) escreval (" ") escreval ("O dobro de ", numero, " é ", numero*2) escreval ("A terca parte de ", numero, " é ", numero/3) escreval (" ") fimalgoritmo 5 8) Desenvolva um programa que leia uma distância em metros e mostre os valores relativos em outras medidas. Ex: Digite uma distância em metros: 185.72 A distância de 85.7m corresponde a: 0.18572Km 1.8572Hm 18.572Dam 1857.2dm 18572.0cm 185720.0mm var numero: real inicio escreva ("Digite uma distância em metros: ") leia (numero) escreval (" ") escreval ("A distância de ", numero, " corresponde a:") escreval (numero/1000, " Km") escreval (numero/100, " Hm") escreval (numero/10, " Dam") escreval (numero*10, " dm") escreval (numero*100, " cm") escreval (numero*1000, " mm") escreval (" ") fimalgoritmo 6 9) Faça um algoritmo que leia quanto dinheiro uma pessoa tem na carteira (em R$) e mostre quantos dólares ela pode comprar. Considere US$1,00 = R$3,45. 10) Faça um algoritmo que leia a largura e altura de uma parede, calcule e mostre a área a ser pintada e a quantidade de tinta necessária para o serviço, sabendo que cada litro de tinta pinta uma área de 2 metros quadrados. var reais: real inicio escreva ("Digite a quantia em R$: ") leia (reais) escreval (" ") escreval ("A quantia de R$", reais, " permite comprar US$", (reais/3.45)) escreval (" ") fimalgoritmo var largura, altura: real inicio escreva ("Digite a largura: ") leia (largura) escreva ("Digite a altura: ") leia (altura) escreval (" ") escreval ("A área a ser pintada é de", largura*altura, "m2 e gastará ", (largura*altura)/2, " latas") escreval (" ") fimalgoritmo 7 11) Desenvolva uma lógica que leia os valores de A, B e C de uma equação dosegundo grau e mostre o valor de Delta. 12) Crie um programa que leia o preço de um produto, calcule e mostre o seu PREÇO PROMOCIONAL, com 5% de desconto. var a, b, c, delta: real inicio escreva ("Digite o valor de a: ") leia (a) escreva ("Digite o valor de b: ") leia (b) escreva ("Digite o valor de c: ") leia (c) escreva (" ") delta <- b^2 - 4*a*c escreva ("Delta é igual a ",delta) escreva (" ") fimalgoritmo var preco, desconto, promocao: real inicio escreva ("Qual e o preço do produto? ") leia (preco) escreval (" ") desconto <- preco*0.05 promocao <- preco - desconto escreva ("O preço do produto com desconto é de R$",promocao) escreval (" ") fimalgoritmo 8 13) Faça um algoritmo que leia o salário de um funcionário, calcule e mostre o seu novo salário, com 15% de aumento. 14) A locadora de carros precisa da sua ajuda para cobrar seus serviços. Escreva um programa que pergunte a quantidade de Km percorridos por um carro alugado e a quantidade de dias pelos quais ele foi alugado. Calcule o preço total a pagar, sabendo que o carro custa R$90 por dia e R$0,20 por Km rodado. var salario, aumento, final: real inicio escreva ("Qual é o valor do seu salário? ") leia (salario) escreval (" ") aumento <- salario*0.15 final <- salario + aumento escreva ("O seu salário será de R$",final) escreval (" ") fimalgoritmo var km, dia, total: real inicio escreva ("Digite a quantidade de Km: ") leia (km) escreva ("Digite a quantidade de dias: ") leia (dia) escreval (" ") total <- km*0.20 + dia*90 escreva ("O valor toal é de R$",total) escreval (" ") fimalgoritmo 9 15) Crie um programa que leia o número de dias trabalhados em um mês e mostre o salário de um funcionário, sabendo que ele trabalha 8 horas por dia e ganha R$25 por hora trabalhada. 16) [DESAFIO] Escreva um programa para calcular a redução do tempo de vida de um fumante. Pergunte a quantidade de cigarros fumados por dias e quantos anos ele já fumou. Considere que um fumante perde 10 min de vida a cada cigarro. Calcule quantos dias de vida um fumante perderá e exiba o total em dias. var dia, total: real inicio escreva ("Digite a quantidade de dias trabalhados: ") leia (dia) escreval (" ") total <- 25*8*dia escreva ("O salário é de R$",total) escreval (" ") fimalgoritmo var cigarro, ano, minuto, hora, dia: real inicio escreva ("Digite a quantidade de cigarros fumada por dia: ") leia (cigarro) escreva ("Digite a quantidade de anos: ") leia (ano) escreval (" ") minuto <- cigarro*10 hora <- minuto/60 dia <- hora/24 dia <- int(dia + (ano*365)) escreva ("Você já perdeu aproximadamente",dia," dias de vida") escreval (" ") fimalgoritmo 10 PASSO 02 - CONDIÇÕES BÁSICAS 17) Escreva um programa que pergunte a velocidade de um carro. Caso ultrapasse 80Km/h, exiba uma mensagem dizendo que o usuário foi multado. Nesse caso, exiba o valor da multa, cobrando R$5 por cada Km acima da velocidade permitida. var velocidade, total: real inicio escreva ("Digite a velocidade em Km: ") leia (velocidade) escreval (" ") se (velocidade > 80) entao total <- (velocidade - 80)*5 escreva ("O valor da multa é de R$",total) escreval (" ") senao escreva ("Voce não ultrapassou a velocidade.") escreval (" ") fimse fimalgoritmo 11 18) Faça um programa que leia o ano de nascimento de uma pessoa, calcule a idade dela e depois mostre se ela pode ou não votar.var ano, nasc, idade: inteiro inicio escreva ("Digite o ano atual (YYYY): ") leia (ano) escreva ("Digite o ano de nascimento(YYYY): ") leia (nasc) escreval (" ") idade <- ano - nasc se (idade >= 18) entao escreva ("Você já pode votar.") escreval (" ") senao escreva ("Você ainda não pode votar.") escreval (" ") fimse fimalgoritmo 12 19) Crie um algoritmo que leia o nome e as duas notas de um aluno, calcule a sua média e mostre na tela. No final, analise a média e mostre se o aluno teve ou não um bom aproveitamento (se ficou acima da média 7.0). var N1, N2: real inicio escreva ("Digite a nota 1: ") leia (N1) escreva ("Digite a nota 2: ") leia (N2) escreval (" ") se (N1 >= 0) e (N1 <= 10) entao se (N2 >= 0) e (N2 <= 10) entao escreva ("A média é de:", (N1+N2)/2) escreval (" ") senao escreva ("Digite um valor entre 0 e 10") escreval (" ") fimse senao escreva ("Digite um valor entre 0 e 10") escreval (" ") fimse fimalgoritmo 13 20) Desenvolva um programa que leia um número inteiro e mostre se ele é PAR ou ÍMPAR. 21) Faça um algoritmo que leia um determinado ano e mostre se ele é ou não BISSEXTO. var num: inteiro inicio escreva ("Digite um número qualquer: ") leia (num) escreval (" ") se (num % 2 = 0) entao escreva ("O número", num," é PAR") escreval (" ") senao escreva ("O número", num," é ÍMPAR") escreval (" ") fimse fimalgoritmo var ano: inteiro inicio escreva ("Digite um ano (YYYY): ") leia (ano) escreval (" ") se (ano % 4 = 0) entao escreva ("O ano", ano," é bissexto") escreval (" ") senao escreva ("O ano", ano," não é bissexto") escreval (" ") fimse fimalgoritmo 14 22) Escreva um programa que leia o ano de nascimento de um rapaz e mostre a sua situação em elação ao alistamento militar. - Se estiver antes dos 18 anos, mostre em quantos anos faltam para o alistamento. - Se já tiver depois dos 18 anos, mostre quantos anos já se passaram do alistamento. var ano, nasc, idade: inteiro inicio escreva ("Digite o ano atual (YYYY): ") leia (ano) escreva ("Digite o ano de nascimento(YYYY): ") leia (nasc) escreval (" ") idade <- ano - nasc se (idade >= 18) entao escreva ("Já se passaram", idade-18," anos do alistamento") escreval (" ") senao escreva ("Faltam ", 18-idade," anos para o alistamento") escreval (" ") fimse fimalgoritmo 15 23) Numa promoção exclusiva para o Dia da Mulher, uma loja quer dar descontos para todos, mas especialmente para mulheres. Faça um programa que leia nome, sexo e o valor das compras do cliente e calcule o preço com desconto. Sabendo que: - Homens ganham 5% de desconto - Mulheres ganham 13% de desconto var nome, sexo: caractere preco: real inicio escreva ("Digite o seu nome: ") leia (nome) escreva ("Digite o seu sexo (M/F): ") leia (sexo) escreva ("Digite o preco do produto: R$") leia (preco) escreval (" ") se (sexo = "M") entao preco <- preco - (preco*0.05) escreva ("Nome: ",nome,", do sexo masculino") escreval (" tem o desconto de 5%!, Valor total a pagar R$",preco) escreval (" ") fimse se (sexo = "F") entao preco <- preco - (preco*0.13) escreva ("Nome: ",nome,", do sexo feminino") escreval (" tem o desconto de 13%!, Valor total a pagar R$",preco) escreval (" ") fimse fimalgoritmo 16 24) Faça um algoritmo que pergunte a distância que um passageiro deseja percorrer em Km. Calcule o preço da passagem, cobrando R$0.50 por Km para viagens até 200Km e R$0.45 para viagens mais longas. var km, total: real inicio escreva ("Digite a distância em Km: ") leia (km) escreval (" ") se (km >= 0) e (km <= 200) entao total <- km*0.50 escreva ("O valor total é de R$",total) escreval (" ") senao se (km > 200) entao total <- km*0.45 escreva ("O valor total é de R$",total) escreval (" ") fimse fimse fimalgoritmo 17 25) [DESAFIO] Crie um programa que leia o tamanho de três segmentos de reta. Analise seus comprimentos e diga se é possível formar um triângulo com essas retas. Matematicamente, para três segmentos formarem um triângulo, o comprimento de cada lado deve ser menor que a soma dos outros dois. var a, b, c: real inicio escreva ("Digite A: ") leia (a) escreva ("Digite B: ") leia (b) escreva ("Digite C: ") leia (c) escreval (" ") se (a < b+c) e (b < c+a) entao se ( c < b+a) entao escreva ("As medidas formam um triângulo!") escreval (" ") senao escreva ("As medidas não formam um triângulo!") escreval (" ") fimse senao escreva ("As medidas não formam um triângulo!") escreval (" ") fimse fimalgoritmo 18 PASSO 03 - CONDIÇÕES COMPOSTAS 26) Escreva um algoritmo que leia dois números inteiros e compare-os, mostrando na tela uma das mensagens abaixo: - O primeiro valor é o maior - O segundo valor é o maior - Não existe valor maior, os dois são iguais var a, b: real inicio escreva ("Digite A: ") leia (a) escreva ("Digite B: ") leia (b) escreval (" ") se (a>b) entao escreva (a," é maior que ",b) escreval (" ") senao se (b>a) entao escreva (b," é maior que ",a) escreval (" ") senao escreva (a," é igual a ",b) escreval (" ") fimse fimse fimalgoritmo 19 27) Crie um programa que leia duas notas de um aluno e calcule a sua média, mostrando uma mensagem no final, de acordo com a média atingida: - Média até 4.9: REPROVADO - Média entre 5.0 e 6.9: RECUPERAÇÃO - Média 7.0 ou superior: APROVADO var n1, n2, media: real inicio escreva ("Digite a nota1: ") leia (n1) escreva ("Digite a nota 2: ") leia (n2) escreval (" ") media <- (n1+n2)/2 se (media >= 0) e ( media < 5) entao escreva ("Média: ",media,". Aluno(a) está REPROVADO") escreval (" ") senao se (media >= 5) e (media < 7) entao escreva ("Média: ",media,". Aluno(a) está RECUPERAÇÃO") escreval (" ") senao se (media >= 7) e (media <= 10) entao escreva ("Média: ",media,". Aluno(a) está APROVADO") escreval (" ") fimse fimse fimse fimalgoritmo 20 28) Faça um programa que leia a largura e o comprimento de um terreno retangular, calculando e mostrando a sua área em m². O programa também deve mostrar a classificação desse terreno, de acordo com a lista abaixo: - Abaixo de 100m² = TERRENO POPULAR - Entre 100m² e 500m² = TERRENO MASTER - Acima de 500m² = TERRENO VIP var larg, comp, area: real inicio escreva ("Digite a largura: ") leia (larg) escreva ("Digite o comprimento: ") leia (comp) escreval (" ") area <- larg*comp se (area >= 0) e (area < 100) entao escreva ("Área de ",area,"m2 = TERRENO POPULAR") escreval (" ") senao se (area >= 100) e (area < 500) entao escreva ("Área de ",area,"m2 = TERRENO MASTER") escreval (" ") senao se (areA >= 500) entao escreva ("Área de ",area,"m2 = TERRENO VIP") escreval (" ") fimse fimse fimse fimalgoritmo 21 29) Desenvolva um programa que leia o nome de um funcionário, seu salário, quantos anos ele trabalha na empresa e mostre seu novo salário, reajustado de acordo com a tabela a seguir: - Até 3 anos de empresa: aumento de 3% - Entre 3 e 10 anos: aumento de 12.5% - 10 anos ou mais: aumento de 20% var nome: caractere salario, ano, nsalario: real inicio escreva ("Digite o seu nome: ") leia (nome) escreva ("Digite o seu salário: R$") leia (salario) escreva ("Digite os anos na empresa: ") leia (ano) escreval (" ") se (ano >= 0) e (ano <= 3) entao nsalario <- salario + (salario*0.03) senao se (ano > 3) e (ano < 10) entao nsalario <- salario + (salario*0.125)senao se (ano >= 10) entao nsalario <- salario + (salario*0.2) fimse fimse fimse escreval ("Funcionário(a): ",nome) escreval ("Salário atual: R$",salario) escreval ("Tempo de serviço: ", ano," ano(s)") escreval (" ") escreval ("Novo salário: R$", nsalario) escreval (" ") fimalgoritmo 22 30) [DESAFIO] Refaça o algoritmo 25, acrescentando o recurso de mostrar que tipo de triângulo será formado: - EQUILÁTERO: todos os lados iguais - ISÓSCELES: dois lados iguais - ESCALENO: todos os lados diferentes var a, b, c: real inicio escreva ("Digite A: ") leia (a) escreva ("Digite B: ") leia (b) escreva ("Digite C: ") leia (c) escreval (" ") se (a < b+c) e (b < c+a) entao se ( c < b+a) entao se (A=B) e (A=C) entao escreva ("O triângulo é EQUILÁTERO!") escreval (" ") fimse se (A=B) e (A<>C) entao escreva ("O triângulo é ISÓSCELES") escreval (" ") fimse se (A<>B) e (A<>C) entao escreva ("O triângulo é ESCALENO!") escreval (" ") fimse senao escreva ("As medidas não formam um triângulo!") escreval (" ") fimse senao escreva ("As medidas não formam um triângulo!") escreval (" ") fimse fimalgoritmo 23 31) [DESAFIO] Crie um jogo de JoKenPo (Pedra-Papel-Tesoura) caso("papel") var pedra, papel, tesoura, a, b: caractere inicio escreva ("Faça a primeira jogada: ") leia (a) escreva ("Faça a segunda jogada: ") leia (b) escreval (" ") escolha (a) caso("pedra") se (b = "pedra") entao escreva ("Empate!") escreval (" ") senao se (b = "papel") entao escreva ("Papel vence!") escreval (" ") senao se (b = "tesoura") entao escreva ("Pedra vence!") escreval (" ") fimse fimse fimse se (b = "pedra") entao escreva ("Papel vence!") escreval (" ") senao se (b = "papel") entao escreva ("Empate!") escreval (" ") senao se (b = "tesoura") entao escreva ("Tesoura!") escreval (" ") fimse fimse fimse caso("tesoura") se (b = "pedra") entao escreva ("Pedra vence!") escreval (" ") senao se (b = "papel") entao escreva ("tesoura!") escreval (" ") senao se (b = "tesoura") entao escreva ("Empate!") escreval (" ") fimse fimse fimse fimescolha fimalgoritmo 24 32) [DESAFIO] Crie um jogo onde o computador vai sortear um número entre 1 e 5 o jogador vai tentar descobrir qual foi o valor sorteado. var num, comp: inteiro inicio escreva ("Tente adivinhar o número que o computador irá escolher (0 a 5): ") leia (num) escreva (" ") escreva ("O computador escolheu: ") //comando para valor aleatorio aleatorio 0, 5 leia(comp) aleatorio off escreva (" ") se (num = comp) entao escreva ("Você acertou!") escreva (" ") senao escreva ("Você errou!") escreva (" ") fimse fimalgoritmo 25 33) Escreva um programa para aprovar ou não o empréstimo bancário para a compra de uma casa. O programa vai perguntar o valor da casa, o salário do comprador e em quantos anos ele vai pagar. Calcule o valor da prestação mensal, sabendo que ela não pode exceder 30% do salário ou então o empréstimo será negado. var casa, salario, parcela: real ano: inteiro inicio escreva ("Digite o valor da casa: R$") leia (casa) escreva ("Digite o valor do salário: R$") leia (salario) escreva ("Digite quantos anos você pagará: ") leia (ano) escreva (" ") parcela <- casa /(ano*12) se (parcela > (salario*0.3)) entao escreva ("Empréstimo recusado!") escreva (" ") senao escreva ("Empréstimo aprovado!") escreva (" ") fimse fimalgoritmo 26 34) O Índice de Massa Corpórea (IMC) é um valor calculado baseado na altura e no peso de uma pessoa. De acordo com o valor do IMC, podemos classificar o indivíduo dentro de certas faixas. - abaixo de 18.5: Abaixo do peso - entre 18.5 e 25: Peso ideal - entre 25 e 30: Sobrepeso - entre 30 e 40: Obesidade - acima de 40: Obseidade mórbida Obs: O IMC é calculado pela expressão peso/altura² (peso dividido pelo quadrado da altura) var peso, altura, imc: real inicio escreva ("Digite o seu peso (kg): ") leia (peso) escreva ("Digite a sua altura: ") leia (altura) escreval (" ") imc <- peso / (altura ^ 2) se (imc >= 0) e (imc < 18.5) entao escreva ("Abaixo do peso") escreval (" ") senao se (imc >= 18.5) e (imc < 25) entao escreva ("Peso ideal") escreval (" ") senao se (imc >= 25) e (imc < 30) entao escreva ("Sobrepeso") escreval (" ") senao se (imc >= 30) e (imc < 40) entao escreva ("Obesidade") escreval (" ") senao se (imc >= 40) entao escreva ("Obesidade mórbida") escreval (" ") fimse fimse fimse fimse fimse fimalgoritmo 27 35) Uma empresa de aluguel de carros precisa cobrar pelos seus serviços. O aluguel de um carro custa R$90 por dia para carro popular e R$150 por dia para carro de luxo. Além disso, o cliente paga por Km percorrido. Faça um programa que leia o tipo de carro alugado (popular ou luxo), quantos dias de aluguel e quantos Km foram percorridos. No final mostre o preço a ser pago de acordo com a tabela a seguir: - Carros populares (aluguel de R$90 por dia) - Até 100Km percorridos: R$0,20 por Km - Acima de 100Km percorridos: R$0,10 por Km - Carros de luxo (aluguel de R$150 por dia) - Até 200Km percorridos: R$0,30 por Km - Acima de 200Km percorridos: R$0,25 por Km var carro, km, total: real inicio escreva ("Digite [0] para carro popular ou [1] para carro de luxo: ") leia (carro) escreva ("Digite o Km percorrido: ") leia (km) escreval (" ") escolha (carro) caso (0) se (km >= 0) e (km <= 100) entao total <- km*0.20 + 90 senao se (km > 100) entao total <- km*0.10 + 90 fimse fimse caso (1) se (km >= 0) e (km <= 200) entao total <- km*0.30 + 150 senao se (km > 200) entao total <- km*0.250 + 150 fimse fimse fimescolha escreva ("Total a pagar: ",total) escreval (" ") fimalgoritmo 28 36) Um programa de vida saudável quer dar pontos atividades físicas que podem ser trocados por dinheiro. O sistema funciona assim: - Cada hora de atividade física no mês vale pontos - até 10h de atividade no mês: ganha 2 pontos por hora - de 10h até 20h de atividade no mês: ganha 5 pontos por hora - acima de 20h de atividade no mês: ganha 10 pontos por hora - A cada ponto ganho, o cliente fatura R$0,05 (5 centavos) Faça um programa que leia quantas horas de atividade uma pessoa teve por mês, calcule e mostre quantos pontos ela teve e quanto dinheiro ela conseguiu ganhar. var hora, ponto:inteiro total: real inicio escreva ("Digite a quantidade de hora(s): ") leia (hora) escreval (" ") se (hora >= 0) e (hora <= 10) entao ponto <- hora*2 senao se(hora > 10) e (hora <= 20) entao ponto <- hora*2 senao se (hora > 20) entao ponto <- hora*10 fimse fimse fimse total <- ponto*0.05 escreva ("O total a receber é de R$",total) escreval (" ") fimalgoritmo 29 37) Uma empresa precisa reajustar o salário dos seus funcionários, dando um aumento de acordo com alguns fatores. Faça um programa que leia o salário atual,o gênero do funcionário e há quantos anos esse funcionário trabalha na empresa. No final, mostre o seu novo salário, baseado na tabela a seguir: - Mulheres - menos de 15 anos de empresa: +5% - de 15 até 20 anos de empresa: +12% - mais de 20 anos de empresa: +23% - Homens - menos de 20 anos de empresa: +3% - de 20 até 30 anos de empresa: +13% - mais de 30 anos de empresa: +25% var salario, ano, total, aumento: real genero: caractere inicio escreva ("Digite o salário atual: R$") leia (salario) escreva ("Digite o genêro [M/F]: ") leia (genero) escreva ("Digite quantos anos você trabalha na empresa: ") leia (ano) escreval (" ") escolha (genero) caso ("F") se (ano >= 0) e (ano < 15) entao aumento <- salario*0.05 senao se (ano >= 15) e (ano < 20) entao aumento <- salario*0.12 senao se (ano >= 20) entao aumento <- salario*0.23 fimse fimse fimse caso ("M") se (ano >= 0) e (ano < 20) entao aumento <- salario*0.03 senao se (ano >= 20) e (ano < 30) entao aumento <- salario*0.13 senao se (ano >= 30) entao aumento <- salario*0.25 fimse fimse fimse fimescolha salario <- salario + aumento escreva ("O reajuste vai ser de R$",aumento," novo salário será R$",salario) escreval (" ") fimalgoritmo 30 PASSO 04 – REPETIÇÕES ENQUANTO 38) Escreva um programa que mostre na tela a seguinte contagem: 6 7 8 9 10 11 Acabou! 39) Faça um algoritmo que mostre na tela a seguinte contagem: 10 9 8 7 6 5 4 3 Acabou! var num: inteiro inicio num <- 6 enquanto (num <= 11) faca escreva (num, " ") num <- num +1 fimenquanto escreva ("Acabou!") fimalgoritmo var num: inteiro inicio num <- 10 enquanto (num >= 3) faca escreva (num, " ") num <- num -1 fimenquanto escreva ("Acabou!") fimalgoritmo 31 40) Crie um aplicativo que mostre na tela a seguinte contagem: 0 3 6 9 12 15 18 Acabou! 41) Desenvolva um programa que mostre na tela a seguinte contagem: 100 95 90 85 80 ... 0 Acabou! var num: inteiro inicio num <- 0 enquanto (num <= 18) faca escreva (num, " ") num <- num +3 fimenquanto escreva ("Acabou!") fimalgoritmo var num: inteiro inicio num <- 100 enquanto (num >= 0) faca escreva (num, " ") num <- num -5 fimenquanto escreva ("Acabou!") fimalgoritmo 32 42) Faça um algoritmo que pergunte ao usuário um número inteiro e positivo qualquer e mostre uma contagem até esse valor: Ex: Digite um valor: 35 Contagem: 1 2 3 4 5 6 7 ... 33 34 35 Acabou! 43) Desenvolva um algoritmo que mostre uma contagem regressiva de 30 até 1, marcando os números que forem divisíveis por 4, exatamente como mostrado abaixo: 30 29 [28] 27 26 25 [24] 23 22 21 [20] 19 18 17 [16]... var num, contador: inteiro inicio escreva("Digite um número: ") leia(num) contador <- 1 enquanto (contador <= num) faca escreva (contador, " ") contador <- contador +1 fimenquanto escreva ("Acabou!") fimalgoritmo var num: inteiro inicio num <- 30 enquanto (num >= 1) faca se (num%4=0) entao escreva ("[",num,"] ") senao escreva (num, " ") fimse num <- num - 1 fimenquanto escreva ("Acabou!") fimalgoritmo 33 44) Crie um algoritmo que leia o valor inicial da contagem, o valor final e o incremento, mostrando em seguida todos os valores no intervalo: Ex: Digite o primeiro Valor: 3 Digite o último Valor: 10 Digite o incremento: 2 Contagem: 3 5 7 9 Acabou! var inicial, final, salto: inteiro inicio escreva("Digite o numero inicial: ") leia(inicial) escreva("Digite o numero final: ") leia(final) escreva("Digite o salto: ") leia(salto) enquanto (inicial <= final) faca escreva (inicial, " ") inicial <- inicial +salto fimenquanto escreva ("Acabou!") fimalgoritmo 34 45) O programa acima vai ter um problema quando digitarmos o primeiro valor maior que o último. Resolva esse problema com um código que funcione em qualquer situação. var inicial, final, salto: inteiro inicio escreva("Digite o numero inicial: ") leia(inicial) escreva("Digite o numero final: ") leia(final) escreva("Digite o salto: ") leia(salto) escreval (" ") se (inicial < final) entao enquanto (inicial <= final) faca escreva (inicial, " ") inicial <- inicial + salto fimenquanto escreva ("Acabou!") senao se (final < inicial) entao enquanto (inicial >= final) faca escreva (inicial, " ") inicial <- inicial - salto fimenquanto escreva ("Acabou!") fimse fimse fimalgoritmo 35 46) Crie um programa que calcule e mostre na tela o resultado da soma entre 6 + 8 + 10 + 12 + 14 + ... + 98 + 100. 47) Desenvolva um aplicativo que mostre na tela o resultado da expressão 500 + 450 + 400 + 350 + 300 + ... + 50 + 0 var num, soma: inteiro inicio num <- 6 soma <- 0 enquanto (num <= 100) faca se (num = 100) entao escreva (num,".") senao escreva (num," +") fimse soma <- num + soma num <- num + 2 fimenquanto escreval (" ") escreva ("Total da soma:",soma) fimalgoritmo var num, soma: inteiro inicio num <- 500 soma <- 0 enquanto (num >= 0) faca se (num = 0) entao escreva (num,".") senao escreva (num," +") fimse soma <- num + soma num <- num - 50 fimenquanto escreval (" ") escreva ("Total da soma:",soma) fimalgoritmo 36 48) Faça um programa que leia 7 números inteiros e no final mostre o somatório entre eles. 49) Crie um programa que leia 6 números inteiros e no final mostre quantos deles são pares e quantos são ímpares. var num, soma, contador: inteiro inicio soma <- 0 contador <- 1 enquanto (contador <= 7) faca escreva ("Digite o" ,contador, "o número: ") leia (num) soma <- num + soma contador <- contador +1 fimenquanto escreval (" ") escreva ("Total da soma:",soma) fimalgoritmo var num, contador, par,impar: inteiro inicio par <- 0 impar <- 0 contador <- 1 enquanto (contador <= 6) faca escreva ("Digite o" ,contador, "o número: ") leia (num) se (num%2=0) entao par <- par +1 senao impar <- impar +1 fimse contador <- contador +1 fimenquanto escreval (" ") escreval ("Pares: ",par) escreval ("Impares: ",impar) fimalgoritmo 37 50) Desenvolva um programa que faça o sorteio de 20 números entre 0 e 10 emostre na tela: a) Quais foram os números sorteados b) Quantos números estão acima de 5 c) Quantos números são divisíveis por 3 var aleat, contador, acima5, divis3: inteiro inicio contador <- 1 acima5 <- 0 divis3 <- 0 enquanto (contador <= 20) faca escreva (contador,"o número sorteado foi: ") aleatorio 0, 10 leia (aleat) aleatorio off se (aleat > 5) entao acima5 <- acima5 +1 fimse se (aleat%3=0) entao divis3 <- divis3 +1 fimse contador <- contador + 1 fimenquanto escreval (" ") escreval (acima5," numeros estão acima de 5") escreval (divis3, " numeros são divisiveis por 3") fimalgoritmo 38 51) Faça um aplicativo que leia o preço de 8 produtos. No final, mostre na tela qual foi o maior e qual foi o menor preço digitados. var preco, contador,maior, menor: real inicio contador <- 1 enquanto (contador <= 8) faca escreva ("Digite o" ,contador, "o preço: R$") leia (preco) se (contador =1) entao menor <- preco fimse se (preco > maior) entao maior <- preco senao se (preco < menor) entaomenor <- preco fimse fimse contador <- contador +1 fimenquanto escreval (" ") escreval ("Maior preco: R$",maior) escreval ("Menor preco: R$",menor) fimalgoritmo 39 52) Crie um algoritmo que leia a idade de 10 pessoas, mostrando no final: a) Qual é a média de idade do grupo b) Quantas pessoas tem mais de 18 anos c) Quantas pessoas tem menos de 5 anos d) Qual foi a maior idade lida var idade, contador, soma, menor5, maior18,maior: real inicio contador <- 1 soma <- 0 menor5 <- 0 maior18 <- 0 enquanto (contador <= 10) faca escreva ("Digite a" ,contador, "a idade:") leia (idade) soma <- soma + idade se (idade < 5) entao menor5 <- menor5 + 1 fimse se (idade > 18) entao maior18 <- maior18 +1 fimse se (idade > maior) entao maior <- idade fimse contador <- contador +1 fimenquanto escreval (" ") escreval ("Média: ",soma/10) escreval ("Maior de 18:",maior18) escreval ("Menos de 5:",menor5) escreval ("Maior idade lida:",maior) fimalgoritmo 40 53) Faça um programa que leia a idade e o sexo de 5 pessoas, mostrando no final: a) Quantos homens foram cadastrados b) Quantas mulheres foram cadastradas c) A média de idade do grupo d) A média de idade dos homens e) Quantas mulheres tem mais de 20 anos var idade,cont,M,F,somaM,idadeF,somat: real sexo: caractere inicio cont <- 1 M <- 0 F <- 0 somat <- 0 idadeF <- 0 somaM <- 0 enquanto (cont <= 5) faca escreva ("Digite a ",cont,"a idade: ") leia (idade) escreva ("Digite o",cont,"o sexo [M/F]: ") leia (sexo) se (sexo = "M") entao M <- M +1 somaM <- somaM + idade senao se (sexo = "F") entao F <- F +1 se (idade >20) entao idadeF <- idadeF + 1 fimse fimse fimse somat <- somat + idade cont <- cont + 1 fimenquanto escreval ("Homens cadastrados: ",M) escreval ("Mulheres cadastradas: ",F) escreval ("Média de idade total: ",somat/5) escreval ("Média de idade dos homens: ",somaM/M) escreval ("Mulheres acima de 20 anos: ",idadeF) fimalgoritmo 41 54) Desenvolva um aplicativo que leia o peso e a altura de 7 pessoas, mostrando no final: a) Qual foi a média de altura do grupo b) Quantas pessoas pesam mais de 90Kg c) Quantas pessoas que pesam menos de 50Kg tem menos de 1.60m d) Quantas pessoas que medem mais de 1.90m pesam mais de 100Kg. var peso, alt, soma, peso90, menos50, alt19,cont: real inicio cont <- 1 soma <- 0 peso90 <- 0 menos50 <- 0 alt19 <- 0 enquanto (cont <= 7) faca escreva ("Digite o ",cont,"o peso: ") leia (peso) escreva ("Digite a ",cont,"a altura: ") leia (alt) soma <- alt + soma se (peso > 90) entao peso90 <- peso90 + 1 fimse se (peso < 50) e (alt < 1.60) entao menos50 <- menos50 + 1 fimse se (alt > 1.90) e (peso > 100) entao alt19 <- alt19 + 1 fimse cont <- cont + 1 fimenquanto escreval ("Media do grupo: ",soma/7) escreval ("Quantidade de pessoas acima de 90kg: ",peso90) escreval ("Quantidade de pessoas com menos de 50kg e menis de 1,60: ",menos50) escreval ("Quantidade de pessoas com mais de 1,90 e mais de 100kg: ",alt19) fimalgoritmo 42 55) [DESAFIO] Vamos melhorar o jogo que fizemos no exercício 32. A partir de agora, o computador vai sortear um número entre 1 e 10 e o jogador vai ter 4 tentativas para tentar acertar. var num, comp, contador: inteiro inicio contador <- 4 enquanto (contador > 0) faca escreva ("Tente adivinhar o número que o computador irá escolher (1 a 10): ") leia (num) escreva (" ") escreva ("O computador escolheu: ") aleatorio 1, 10 leia(comp) aleatorio off escreval (" ") se (num = comp) entao escreva ("Você acertou!") escreval (" ") contador <- 0 senao escreva ("Você errou. Tente novamente!") escreval (" ") contador <- contador - 1 escreval ("Você tem ",contador," changes") escreval ("=====================================") fimse fimenquanto fimalgoritmo 43 PASSO 05 – ENQUANTO COM FLAG 56) Crie um programa que leia vários números pelo teclado e mostre no final o somatório entre eles. Obs: O programa será interrompido quando o número 1111 for digitado var soma, num: real inicio soma <-0 escreval ("=========================================") escreval ("Digite 1111 caso queira parar a somátoria") escreval ("=========================================") enquanto (num <> 1111) faca escreva ("Digite um número para a soma: ") leia (num) soma <- soma + num fimenquanto escreval (" ") escreval ("A soma é ",soma-1111) fimalgoritmo 44 57) Desenvolva um aplicativo que leia o salário e o sexo de vários funcionários. No final, mostre o total de salários pagos aos homens e o total pago às mulheres. O programa vai perguntar ao usuário se ele quer continuar ou não sempre que ler os dados de um funcionário. var salario,MT, FT: real resp, sexo: caractere inicio resp <- "S" MT <- 0 FT <- 0 enquanto (resp= "S") faca escreva ("Digite o salario: R$") leia (salario) escreva ("Digite o sexo [M/F]: ") leia (sexo) se (sexo = "M") entao MT <- MT + salario senao se (sexo = "F") entao FT <- FT + salario fimse fimse escreva ("Deseja continuar? ") leia(resp) fimenquanto escreval (" ") escreval ("Total salario para homens: R$",MT) escreval ("Total salario para mulheres: R$",FT) fimalgoritmo 45 58) Faça um algoritmo que leia a idade de vários alunos de uma turma. O programa vai parar quando for digitada a idade 999. No final, mostre quantos alunos existem na turma e qual é a média de idade do grupo. var soma, idade,cont: real inicio soma <-0 escreval ("=========================================") escreval ("Digite 999 caso queira parar a somátoria") escreval ("=========================================") cont <- 0 enquanto (idade <> 999) faca escreva ("Digite a idade: ") leia (idade) soma <- soma + idade cont <- cont +1 fimenquanto escreval (" ") escreval ("Existem ",cont-1," alunos e a média de idade é",(soma-999)/(cont-1)) fimalgoritmo 46 59) Crie um programa que leia o sexo e a idade de várias pessoas. O programa vai perguntar se o usuário quer continuar ou não a cada pessoa. No final, mostre: a) qual é a maior idade lida b) quantos homens foram cadastrados c) qual é a idade da mulher mais jovem d) qual é a média de idade entre os homens var idade, maior, menor, contM,somaM,contF: real resp, sexo: caractere inicio resp <- "S" contM <- 0 somaM <- 0 contF <- 1 enquanto (resp= "S") faca escreva ("Digite o sexo [M/F]: ") leia (sexo) escreva ("Digite a idade:") leia (idade) se (idade > maior) entao maior <- idade fimse se (sexo = "M") entao ContM <- contM + 1 somaM <- somaM + idade senao se (sexo = "F") entao se (contF = 1) entao menor <- idade contF <- contF+1 fimse se (idade < menor) entao menor <- idade fimse fimse fimse escreva ("Deseja continuar? ") leia(resp) fimenquanto escreval (" ") escreval ("Maior idade geral lida: ", maior) escreval ("Homens cadastrados: ",contM) escreval ("Idade mulher mais jovem: ", menor) escreval ("Média idade homens: : ",somaM/contM) fimalgoritmo 47 60) Desenvolva um algoritmo que leia o nome, a idade e o sexo de várias pessoas. O programa vai perguntar se o usuário quer ou não continuar. No final, mostre: a) O nome da pessoa mais velha b) O nome da mulher mais jovem c) A média de idade do grupo d) Quantos homens tem mais de 30 anos e) Quantas mulheres tem menos de 18 anosvar idade, maior,menor,soma,cont,contM,contF:real nome, resp, sexo, nomemaior,nomemenor: caractere inicio resp <- "S" soma <- 0 cont <- 0 contM <- 0 contF <- 0 enquanto (resp= "S") faca escreva ("Digite o nome: ") leia (nome) escreva ("Digite o sexo [M/F]: ") leia (sexo) escreva ("Digite a idade:") leia (idade) se (idade > maior) entao maior <- idade nomemaior <- nome fimse soma <- soma + idade escolha (sexo) caso ("M") se (idade>30) entao ContM <- contM + 1 fimse caso ("F") se (cont =0) entao menor <- idade nomemenor <- nome fimse se (idade < 18) entao contF <- contF +1 fimse se (idade < menor) entao menor <- idade nomemenor <- nome fimse fimescolha cont <- cont + 1 escreva ("Deseja continuar? ") leia(resp) fimenquanto escreval (" ") escreval ("Nome da pessoa mais velha: ", nomemaior) escreval ("Nome da mulher mais jovem: ", nomemenor) escreval ("Média da idade do grupo: ", soma/(cont-1)) escreval ("Quantidade de homens acima de 30: ",ContM) escreval ("Quantidade de mulheres abaixo de 18: ",ContF) fimalgoritmo 48 PASSO 06 – REPETIÇÃO COM FAÇA ENQUANTO 61) Crie um programa que mostre na tela a seguinte contagem, usando a estrutura “faça enquanto” 0 3 6 9 12 15 18 21 24 27 30 Acabou! var num: inteiro inicio num <- 0 repita escreva (num," ") num <- num + 3 ate (num > 30) escreval ("Acabou!") fimalgoritmo 49 62) Faça um programa usando a estrutura “faça enquanto” que leia a idade de várias pessoas. A cada laço, você deverá perguntar para o usuário se ele quer ou não continuar a digitar dados. No final, quando o usuário decidir parar, mostre na tela: a) Quantas idades foram digitadas b) Qual é a média entre as idades digitadas c) Quantas pessoas tem 21 anos ou mais. var idade,contador,soma,idade21: inteiro resp: caractere inicio contador <- 0 soma <- 0 idade21 <- 0 repita escreva ("Digite a idade: ") leia (idade) soma <- soma + idade se (idade >= 21) entao idade21 <- idade21 +1 fimse contador <- contador + 1 escreva ("Deseja continuar? [N/S]: ") leia (resp) ate (resp = "N") escreval(" ") escreval ("Total de idades digitadas: ", contador) escreval ("A Média de idades é de ", soma/contador) escreval ("Pessoas com 21 ou mais: ", idade21) fimalgoritmo 50 63) Crie um programa usando a estrutura “faça enquanto” que leia vários números. A cada laço, pergunte se o usuário quer continuar ou não. No final, mostre na tela: a) O somatório entre todos os valores b) Qual foi o menor valor digitado c) A média entre todos os valores d) Quantos valores são pares var num,contador,soma,menor,par: inteiro resp: caractere inicio contador <- 0 soma <- 0 par <- 0 repita escreva ("Digite um número: ") leia (num) soma <- soma + num se (contador = 0) entao menor <- num fimse se (num < menor) entao menor <- num fimse se (num%2=0) entao par <- par +1 fimse contador <- contador + 1 escreva ("Deseja continuar? [N/S]: ") leia (resp) ate (resp = "N") escreval(" ") escreval ("Somatória: ", soma) escreval ("Menor valor: ", menor) escreval ("A media: ", soma/contador) escreval ("Quantidade de pares: ", par) fimalgoritmo 51 PASSO 07 – REPETIÇÃO COM PARA 64) Desenvolva um programa usando a estrutura “para” que mostre na tela a seguinte contagem: 0 5 10 15 20 25 30 35 40 Acabou! 65) Desenvolva um programa usando a estrutura “para” que mostre na tela a seguinte contagem: 100 90 80 70 60 50 40 30 20 10 0 Acabou! var num : inteiro inicio para num de 0 ate 40 passo 5 faca escreva (num," ") fimpara escreval ("Acabou!") fimalgoritmo var num : inteiro inicio para num de 100 ate 0 passo -10 faca escreva (num," ") fimpara escreval ("Acabou!") fimalgoritmo 52 66) Escreva um programa que leia um número qualquer e mostre a tabuada desse número, usando a estrutura “para”. Ex: Digite um valor: 5 5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 ... 67) Faça um programa usando a estrutura “para” que leia um número inteiro positivo e mostre na tela uma contagem de 0 até o valor digitado: Ex: Digite um valor: 9 Contagem: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, FIM! var num,i : inteiro inicio escreva ("Digite um número: ") leia (num) escreval () para i de 1 ate 10 faca escreval (num," x ",i," = ", num*i) fimpara escreval () fimalgoritmo var num,i : inteiro inicio escreva ("Digite um número: ") leia (num) escreval () para i de 0 ate num faca escreva (i,", ") fimpara escreval ("Acabou!") fimalgoritmo 53 68) Crie um programa que leia sexo e peso de 8 pessoas, usando a estrutura “para”. No final, mostre na tela: a) Quantas mulheres foram cadastradas b) Quantos homens pesam mais de 100Kg c) A média de peso entre as mulheres d) O maior peso entre os homens var i, peso,pesoM, pesoF,F,maior: inteiro sexo: caractere inicio F <- 0 pesoM <- 0 pesoF <- 0 para i de 1 ate 8 faca escreva ("Digite o sexo [M/F]: ") leia (sexo) escreva ("Digite o peso: ") leia (peso) escolha (sexo) caso ("M") M <- M +1 se (peso > 100) entao pesoM <- pesoM + 1 fimse se (peso > maior) entao maior <- peso fimse caso ("F") F <- F + 1 pesoF <- pesoF + peso fimescolha fimpara escreval ("Mulheres cadastradas: ",F) escreval ("Homens acima de 100kg: ", pesoM) escreval ("Media de peso mulheres: ", pesoF/F) escreval ("Maior peso homem: ",maior) fimalgoritmo 54 69) [DESAFIO] Desenvolva um programa que leia o primeiro termo e a razão de uma PA (Progressão Aritmética), mostrando na tela os 10 primeiros elementos da PA e a soma entre todos os valores da sequência. var i,a1,a2, r,soma: inteiro inicio escreva ("Digite a1: ") leia (a1) escreva ("Digite r: ") leia (r) escreva (a1," + ") soma <- a1 para i de 1 ate 9 faca a2<- a1+r se (i=9) entao escreva(a2) senao escreva (a2," + ") fimse soma <- soma + a2 a1<-a2 fimpara escreva (" = ",soma) escreval () fimalgoritmo 55 70) [DESAFIO] Faça um programa que mostre os 10 primeiros elementos da Sequência de Fibonacci: 1 1 2 3 5 8 13 21... var i,a0,a1,a2: inteiro inicio a1 <- 1 a0 <- 0 //escreva (a1,", ") para i de 1 ate 10 faca a2 <- a0 + a1 se (i = 10) entao escreva (a2," - FIM! ") senao escreva (a1,", ") fimse a0 <- a1 a1 <- a2 fimpara escreval () fimalgoritmo 56 PASSO 08 – VETORES 71) Faça um programa que preencha automaticamente um vetor numérico com 8 posições, conforme abaixo: 999 999 999 999 999 999 999 999 0 1 2 3 4 5 6 7 72) Crie um programa que preencha automaticamente (usando lógica, não apenas atribuindo diretamente) um vetor numérico com 10 posições, conforme abaixo: 5 10 15 20 25 30 35 40 45 50 0 1 2 3 4 5 6 7 8 9 var n: vetor[1..8] de Inteiro i: inteiro inicio para i de 1 ate 8 faca n[i] <- 999 escreval (n[i]) fimpara fimalgoritmo var n: vetor[1..10] de Inteiro i: inteiro inicio para i de 1 ate 10 faca n[i] <- 5*(i) escreval (n[i]) fimpara fimalgoritmo 57 73) Crie um programa que preencha automaticamente (usando lógica, não apenas atribuindo diretamente) um vetor numérico com 10 posições, conforme abaixo: 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 74) Crie um programa que preencha automaticamente (usando lógica, não apenas atribuindo diretamente) um vetor numérico com 10 posições, conforme abaixo: 5 3 5 3 5 3 5 3 5 3 0 1 2 3 4 5 6 7 8 9 var n: vetor[1..10] de Inteiro i: inteiro inicio para i de 1 ate10 faca n[i] <- i fimpara para i de 10 ate 1 passo -1 faca escreval (n[i]) fimpara fimalgoritmo var n: vetor[0..9] de Inteiro i: inteiro inicio para i de 0 ate 9 faca se (i%2 =0) entao n[i] <- 5 senao n[i] <- 3 fimse escreval (n[i]) fimpara fimalgoritmo 58 75) Crie um programa que preencha automaticamente (usando lógica, não apenas atribuindo diretamente) um vetor numérico com 15 posições com os primeiros elementos da sequência de Fibonacci: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 var n: vetor[1..15] de Inteiro i, anterior, atual, proximo: inteiro inicio anterior <- 0 atual <- 1 n[1] <- 1 escreval (n[1]) para i de 1 ate 15 faca proximo <- atual + anterior n[i] <- proximo escreval (n[i]) anterior <- atual atual <- proximo fimpara fimalgoritmo 59 76) Crie um programa que preencha automaticamente um vetor numérico com 7 números gerados aleatoriamente pelo computador e depois mostre os valores gerados na tela. var n: vetor[1..7] de Inteiro i: inteiro inicio para i de 1 ate 7 faca timer 1 aleatorio 0,100 leia (n[i]) aleatorio off fimpara limpatela para i de 1 ate 7 faca escreval (n[i]) fimpara fimalgoritmo 60 77) Faça um programa que leia 7 nomes de pessoas e guarde-os em um vetor. No final, mostre uma listagem com todos os nomes informados, na ordem inversa daquela em que eles foram informados. var n: vetor[1..7] de Caractere i: inteiro inicio para i de 1 ate 7 faca escreva ("Digite o",i,"o. nome: ") leia (n[i]) fimpara escreval () limpatela para i de 7 ate 1 passo -1 faca escreval (n[i]) fimpara fimalgoritmo 61 78) Escreva um programa que leia 15 números e guarde-os em um vetor. No final, mostre o vetor inteiro na tela e em seguida mostre em que posições foram digitados valores que são múltiplos de 10. var n: vetor[1..15] de inteiro i, c: inteiro inicio para i de 1 ate 15 faca escreva ("Digite o",i,"o. numero: ") leia (n[i]) fimpara escreval () para i de 1 ate 15 faca se (n[i]%10=0) entao escreval ("O vetor na posicao ",i) fimse fimpara fimalgoritmo 62 79) Desenvolva um programa que leia 10 números inteiros e guarde-os em um vetor. No final, mostre quais são os números pares que foram digitados e em que posições eles estão armazenados. var n: vetor[1..10] de inteiro i: inteiro inicio para i de 1 ate 10 faca escreva ("Digite o",i,"o. numero: ") leia (n[i]) fimpara escreval () para i de 1 ate 10 faca se (n[i]%2=0) entao escreval ("O vetor ",n[i]," na posicao ",i) fimse fimpara fimalgoritmo 63 80) Faça um algoritmo que preencha um vetor de 30 posições com números entre 1 e 15 sorteados pelo computador. Depois disso, peça para o usuário digitar um número (chave) e seu programa deve mostrar em que posições essa chave foi encontrada. Mostre também quantas vezes a chave foi sorteada. var n: vetor[1..30] de Inteiro i, c, chave: inteiro inicio para i de 1 ate 30 faca timer 1 aleatorio 1,15 leia (n[i]) aleatorio off fimpara limpatela escreva ("Digite o numero chave: ") leia(chave) c <- 0 para i de 1 ate 30 faca se (n[i] = chave) entao escreval ("Chave na posicao ",i) c <- c + 1 fimse fimpara se (c=0) entao escreval ("Chave nao encontrada no vetor") senao escreva ("Chave encontrada ",c," vezes") fimse fimalgoritmo 64 81) Crie um programa que leia a idade de 8 pessoas e guarde-as em um vetor. No final, mostre: a) Qual é a média de idade das pessoas cadastradas b) Em quais posições temos pessoas com mais de 25 anos c) Qual foi a maior idade digitada (podem haver repetições) d) Em que posições digitamos a maior idade var n: vetor[1..8] de Inteiro i, p, maior: inteiro soma: real inicio para i de 1 ate 8 faca escreva ("Digite a ",i,"a. idade: ") leia(n[i]) se (n[i]>maior) entao maior <- n[i] p <- i fimse soma <- soma + n[i] fimpara limpatela escreval ("A media das idades: ",soma/8) para i de 1 ate 8 faca se (n[i] > 25) entao escreval ("Idade maior que 25 anos na posicao",i) fimse fimpara escreval ("A maior idade digitada foi ",maior, " na posicao ",p) fimalgoritmo 65 82) Faça um algoritmo que leia a nota de 10 alunos de uma turma e guarde-as em um vetor. No final, mostre: a) Qual é a média da turma b) Quantos alunos estão acima da média da turma c) Qual foi a maior nota digitada d) Em que posições a maior nota aparece var n: vetor[1..10] de Inteiro i, p, maior,c: inteiro soma: real inicio para i de 1 ate 10 faca escreva ("Digite a ",i,"a. nota: ") leia(n[i]) se (n[i]>maior) entao maior <- n[i] p <- i fimse soma <- soma + n[i] fimpara soma <- soma/10 para i de 1 ate 10 faca se (n[i] > soma) entao c <- c +1 fimse fimpara limpatela escreval ("A media da turma: ",soma) escreval (c, " alunos estao acima da media") escreval ("A maior nota foi ",maior, " na posicao ",p) fimalgoritmo 66 83) [DESAFIO] Crie uma lógica que preencha um vetor de 20 posições com números aleatórios (entre 0 e 99) gerados pelo computador. Logo em seguida, mostre os números gerados e depois coloque o vetor em ordem crescente, mostrando no final os valores ordenados. var n: vetor[1..20] de Inteiro i, j, aux: inteiro inicio para i de 1 ate 20 faca timer 1 aleatorio 0,100 leia (n[i]) aleatorio off fimpara para i de 1 ate 19 faca para j de i+1 ate 20 faca se (n[i] > n[j]) entao aux <- n[i] n[i] <- n[j] n[j] <- aux fimse fimpara fimpara limpatela para i de 1 ate 20 faca escreval (n[i]) fimpara fimalgoritmo 67 84) Crie um programa que leia o nome e a idade de 9 pessoas e guarde esses valores em dois vetores, em posições relacionadas. No final, mostre uma listagem contendo apenas os dados das pessoas menores de idade. var nome: vetor[1..9] de caractere idade: vetor[1..9] de inteiro i: inteiro inicio para i de 1 ate 9 faca escreva ("Digite o nome: ") leia (nome[i]) escreva ("Digite a idade: ") leia (idade[i]) escreval () fimpara para i de 1 ate 9 faca se (idade[i]> 18) entao escreval (nome[i]:10,idade[i]) fimse fimpara fimalgoritmo 68 85) Faça um algoritmo que leia o nome, o sexo e o salário de 5 funcionários e guarde esses dados em três vetores. No final, mostre uma listagem contendo apenas os dados das funcionárias mulheres que ganham mais de R$5 mil. var nome: vetor[1..5] de caractere sexo: vetor[1..5] de caractere salario: vetor[1..5] de real i: inteiro inicio para i de 1 ate 5 faca escreva ("Digite o nome: ") leia (nome[i]) escreva ("Digite o sexo [M/F]: ") leia (sexo[i]) escreva ("Digite o salario: R$") leia (salario[i]) escreval () fimpara para i de 1 ate 5 faca se (sexo[i]= "F") entao se (salario[i] > 5000) entao escreval (nome[i]:10," Salario R$",salario[i]) fimse fimse fimpara fimalgoritmo 69 PASSO 09 – PROCEDIMENTOS 86) Crie um programa que tenha um procedimento Gerador() que, quando chamado, mostre a mensagem "Olá, Mundo!" com algum componente visual (linhas) Ex: Ao chamar Gerador() aparece: +-------=======------+ Olá, Mundo! +-------=======------+ var procedimento olamundo() inicio escreval ("+-------=======------+") escreval (" Olá, Mundo! ") escreval ("+-------=======------+") fimprocedimento inicio olamundo() fimalgoritmo 70 87) Crie um programa que melhore o procedimento Gerador() da questão anterior para que mostre uma mensagem personalizada, passada como parâmetro. Ex: Ao chamarGerador("Aprendendo Portugol") aparece: +-------=======------+ Aprendendo Portugol +-------=======------+ var frase: caractere procedimento personalizada(x: caractere) inicio limpatela escreval ("+-------=======------+") escreval (" ",x," ") escreval ("+-------=======------+") fimprocedimento inicio Escreva ("Digite sua frase personalizada: ") leia (frase) personalizada(frase) fimalgoritmo 71 88) Crie um programa que melhore o procedimento Gerador() da questão anterior para que mostre uma mensagem vário Ex: Ao chamar Gerador("Aprendendo Portugol", 4) aparece: +-------=======------+ Aprendendo Portugol Aprendendo Portugol Aprendendo Portugol Aprendendo Portugol +-------=======------+ var frase: caractere n,cont: inteiro procedimento personalizada(x: caractere; y:inteiro) inicio limpatela cont <- 0 escreval ("+-------=======------+") repita escreval (" ",x," ") cont <- cont +1 ate (cont = y) escreval ("+-------=======------+") fimprocedimento inicio Escreva ("Digite sua frase personalizada: ") leia (frase) Escreva ("Digite a quantidade de vezes: ") leia (n) personalizada(frase, n) fimalgoritmo 72 89) Crie um programa que melhore o procedimento Gerador() da questão anterior para que o programador possa escolher uma entre três bordas: +-------=======------+ Borda 1 ~~~~~~~~:::::::~~~~~~~ Borda 2 <<<<<<<<------->>>>>>> Borda 3 Ex: Uma chamada válida seria Gerador("Portugol Studio", 3, 2) ~~~~~~~~:::::::~~~~~~~ Portugol Studio Portugol Studio Portugol Studio ~~~~~~~~:::::::~~~~~~~ var frase, borda: caractere n,cont,num: inteiro procedimento personalizada(x,y: caractere; z:inteiro) inicio limpatela cont <- 0 escreval (y) repita escreval (" ",x," ") cont <- cont +1 ate (cont = z) escreval (y) fimprocedimento inicio Escreva ("Digite sua frase personalizada: ") leia (frase) Escreva ("Digite a quantidade de vezes: ") leia (n) escreval ("Digite o número da borda: ") escreval ("[1]: +-------=======------+") escreval ("[2]: ~~~~~~~~:::::::~~~~~~~") escreval ("[3]: <<<<<<<<------->>>>>>>>") leia (num) escolha num caso (1) borda <- "+-------=======------+" caso (2) borda <- "~~~~~~~~:::::::~~~~~~~" caso (3) borda <- "<<<<<<<<------->>>>>>>>" fimescolha personalizada(frase, borda, n) fimalgoritmo 73 90) Desenvolva um algoritmo que leia dois valores pelo teclado e passe esses valores para um procedimento Somador() que vai calcular e mostrar a soma entre eles. var a,b: real procedimento soma(x,y: real) inicio escreval("A soma de ",a," +",b," =",x+y) fimprocedimento inicio escreva ("Digite A: ") leia (a) escreva ("Digite B: ") leia (b) soma(a, b) fimalgoritmo 74 91) Desenvolva um algoritmo que leia dois valores pelo teclado e passe esses valores para um procedimento Maior() que vai verificar qual deles é o maior emostrá-lo na tela. Caso os dois valores sejam iguais, mostrar uma mensagem informando essa característica. var a,b: real procedimento maior (x,y: real) inicio se (x>y) entao escreval (x, " é maior que ",y) senao se(x<y) entao escreval (y, " é maior que ",x) senao escreval("Números iguais") fimse fimse fimprocedimento inicio escreva ("Digite A: ") leia (a) escreva ("Digite B: ") leia (b) maior(a, b) fimalgoritmo 75 92) Crie uma lógica que leia um número inteiro e passe para um procedimento ParOuImpar() que vai verificar e mostrar na tela se o valor passado como parâmetro é PAR ou ÍMPAR. var a: inteiro procedimento parouimpar (x: inteiro) inicio se (x%2=0) entao escreval (x, " é par") senao escreval (x, " é impar") fimse fimprocedimento inicio escreva ("Digite A: ") leia (a) parouimpar(a) fimalgoritmo 76 93) Faça um programa que tenha um procedimento chamado Contador() que recebe três valores como parâmetro: o início, o fim e o incremento de uma contagem. O programa principal deve solicitar a digitação desses valores e passá-los ao procedimento, que vai mostrar a contagem na tela. Ex: Para os valores de início (4), fim (20) e incremento(3) teremos Contador(4, 20, 3) vai mostrar na tela 4 >> 7 >> 10 >> 13 >> 16 >> 19 >> FIM var a,b,c: inteiro procedimento contador(x,y,z: inteiro) inicio repita escreva (x,">> ") x <- x + z ate (x=y) escreval (y,">> FIM!") fimprocedimento inicio escreva ("Digite o valor de ínicio: ") leia (a) escreva ("Digite o valor final: ") leia (b) escreva ("Digite o incremento: ") leia (c) contador(a,b,c) fimalgoritmo 77 94) [DESAFIO] Desenvolva um aplicativo que tenha um procedimento chamado Fibonacci() que recebe um único valor inteiro como parâmetro, indicando quantos termos da sequência serão mostrados na tela. O seu procedimento deve receber esse valor e mostrar a quantidade de elementos solicitados. Obs: Use os exercícios 70 e 75 para te ajudar na solução Ex: Fibonacci(5) vai gerar 1 >> 1 >> 2 >> 3 >> 5 >> FIM Fibonacci(9) vai gerar 1 >> 1 >> 2 >> 3 >> 5 >> 8 >> 13 >> 21 >> 34 >> FIM var num: inteiro procedimento fibonacci(x: inteiro) var anterior, atual, proximo, contador: inteiro inicio anterior <- 0 atual <- 1 contador <- 2 escreva (anterior,">> ",atual,">> ") enquanto (contador < x) faca proximo <- anterior + atual escreva (proximo,">> ") anterior <- atual atual <- proximo contador <- contador + 1 fimenquanto escreval ("FIM") fimprocedimento inicio escreva ("Digite a quantidade de numeros (n>2): ") leia (num) fibonacci(num) fimalgoritmo 78 PASSO 10 – FUNÇÕES 95) Refaça o exercício 90, só que agora em forma de função Somador(), que vai receber dois parâmetros e vai retornar o resultado da soma entre eles para o programa principal. var a,b,S: real funcao soma(x,y: real) :real inicio S <- X + Y retorne S fimfuncao inicio escreva ("Digite A: ") leia (a) escreva ("Digite B: ") leia (b) S <- soma(a, b) escreval ("A soma entre ",a," e ",b," é de ",s) fimalgoritmo 79 96) Crie um programa que tenha uma função Media(), que vai receber as 2 notas de um aluno e retornar a sua média para o programa principal. var n1, n2, mediag: real funcao media(x,y: real) :real var M: real inicio M <- (X + Y)/2 retorne M fimfuncao inicio escreva ("Digite nota 1: ") leia (n1) escreva ("Digite nota 2: ") leia (n2) mediag <- media(n1, n2) escreval ("A media entre ",n1," e ",n2," é de ",mediag) fimalgoritmo 80 97) Refaça o exercício 91, só que agora em forma de função Maior(), mas faça uma adaptação que vai receber TRÊS números como parâmetro e vai retornar qual foi o maior entre eles. var a,b,c, M: real funcao maior(x,y,z: real): real var mai: real inicio se (x>y) e (x>z) entao mai <- x senao se(y>x) e (y>z) entao mai <- y senao se(z>x) e (z>y) entao mai <- z fimse fimse fimse retorne mai fimfuncao inicio escreva ("Digite A: ") leia (a) escreva ("Digite B: ") leia (b) escreva ("Digite C: ") leia (c) M <- maior(a, b, c) escreval ("O maior número é ",M) fimalgoritmo 81 98) Crie um programa que tenha uma função SuperSomador(), que vai receber dois números como parâmetro e depois vai retornar a soma de todos os valores no intervalo entre os valores recebidos. Ex: SuperSomador(1, 6) vai somar 1 + 2 + 3 + 4 + 5 + 6 e vai retornar 21 SuperSomador(15, 19) vai somar 15 + 16 + 17 + 18 + 19 e vai retornar 85 var a, b, total: inteiro funcao SuperSomador(x,y: real): real var s, i,c: real inicio s <- 0 c <- 0 para (x<=y) faca s <- x + s fimpara retorne s fimfuncao inicio escreva ("Digite A: ") leia (a) escreva ("Digite B: ") leia (b) total <- SuperSomador(a,b) escreval ("O maiornúmero é "total) fimalgoritmo 82 99) Faça um programa que possua uma função chamada Potencia(), que vai receber dois parâmetros numéricos (base e expoente) e vai calcular o resultado da exponenciação. Ex: Potencia(5,2) vai calcular 52 = 25 var b, p: inteiro total: real funcao potencia(x,y: inteiro): real var i,num: inteiro inicio num <- x para i de 1 ate y faca num <- num * x fimpara retorne num fimfuncao inicio escreva ("Digite a base: ") leia (b) escreva ("Digite a potencia: ") leia (p) total <- potencia(b, p) escreval ("A pontencia entre ",b," e ",p," é ",total) fimalgoritmo 83 100) Melhore o exercício 96, criando além da função Media() uma outra função chamada Situacao(), que vai retornar para o programa principal se o aluno está APROVADO, em RECUPERAÇÃO ou REPROVADO. Essa nova função, vai receber como parâmetro o resultado retornado pela função Media(). var n1, n2, mediag: real s: caractere funcao media(x,y: real) :real var M: real inicio M <- (X + Y)/2 retorne M fimfuncao funcao situacao(x: real) :caractere var a: caractere inicio se (x>=0) e (x<3) entao a <- "Reprovado" senao se (x>=3) e (x<7) entao a <- "Recuperacao" senao se (x>=7) e (x<=10) entao a <- "Aprovado" fimse fimse fimse retorne a fimfuncao inicio escreva ("Digite nota 1: ") leia (n1) escreva ("Digite nota 2: ") leia (n2) mediag <- media(n1, n2) s <- situacao(mediag) escreval ("A media entre ",n1," e ",n2," é de ",mediag, " situacao: ",s) fimalgoritmo
Compartilhar