Você está aqui: Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Portugol Básico |
Escrever um algoritmo que lê o público total de um jogo de futebol e fornece a renda do jogo - Desafio de Programação Resolvido em PortugolQuantidade de visualizações: 698 vezes |
Pergunta/Tarefa: Em um determinado jogo de futebol havia 4 tipos de ingressos, assim distribuídos: popular 10% a R$ 1,00; geral 50% a R$ 5,00; arquibancada 30% a R$ 10,00 e cadeiras 10% a R$ 20,00. Escreva um programa (algoritmo) Portugol que leia o público total do jogo e forneça a renda obtida. Um outro enunciado muito comum deste exercício é: Escrever um algoritmo que lê o público total de futebol e fornecer a renda do jogo, sabendo-se que havia 4 tipos de ingressos assim distribuídos: popular 10% a R$ 1,00, geral 50% a R$ 5,00, arquibancada 30% a R$10,00 e cadeiras 10% a R$ 20,00. Sua saída deverá ser parecida com: Informe o público total do jogo de futebol: 10000 Renda geral do jogo: R$ 76.000,00 Veja a resolução comentada deste exercício usando Portugol Webstudio: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // Ler o público total de um jogo de futebol programa { funcao inicio() { // Variáveis usadas na resolução do problema inteiro publico real popular, geral, arquibancada, cadeiras, renda_total // vamos obter o público total do jogo de futebol escreva("Informe o público total do jogo de futebol: ") leia(publico) // renda do ingresso popular popular = (publico * (10.0 / 100)) * 1.00 // renda do ingresso geral geral = (publico * (50.0 / 100)) * 5.00 // renda do ingresso arquibancada arquibancada = (publico * (30.0 / 100)) * 10.00 // renda do ingresso cadeiras cadeiras = (publico * (10.0 / 100)) * 20.00 // obtemos a renda total renda_total = popular + geral + arquibancada + cadeiras // e exibimos o resultado escreva("Renda geral do jogo: ", renda_total) } } |
![]() |
Portugol ::: Dicas & Truques ::: Cadeias e Caracteres |
Como converter uma palavra, frase ou texto para letras minúsculas usando a função caixa_baixa() da biblioteca Texto do PortugolQuantidade de visualizações: 41 vezes |
Em algumas situações nós precisamos converter uma letra, palavra, frase ou texto em letras minúsculas. Na linguagem Portugol isso pode ser feito usando-se a função caixa_baixa() da biblioteca Texto. Veja um código Portugol completo no qual pedimos para o usuário informar o seu nome e mostramos o resultado convertido para letras minúsculas: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- programa { // vamos incluir a biblioteca Texto inclua biblioteca Texto --> texto funcao inicio() { // vamos declarar uma variável para guardar o nome de uma pessoa cadeia nome, nome_minusculo // vamos pedir para o usuário informar o seu nome escreva("Informe o seu nome: ") leia(nome) // vamos converter o nome para letras minúsculas nome_minusculo = texto.caixa_baixa(nome) // vamos mostrar o resultado escreva("O seu nome em letras minúsculas é: " + nome_minusculo) } } Ao executar este código Portugol nós teremos o seguinte resultado: Informe o seu nome: Fabiana de Carvalho Gomes O seu nome em letras minúsculas é: fabiana de carvalho gomes |
Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de Portugol - Como testar se um ano é bissexto em Portugol - Um programa que lê um ano com quatro dígitos e informa se ele é bissexto ou nãoQuantidade de visualizações: 1586 vezes |
Pergunta/Tarefa: Chama-se ano bissexto o ano ao qual é acrescentado um dia extra, ficando ele com 366 dias, um dia a mais do que os anos normais de 365 dias, ocorrendo a cada quatro anos (exceto anos múltiplos de 100 que não são múltiplos de 400). Isto é feito com o objetivo de manter o calendário anual ajustado com a translação da Terra e com os eventos sazonais relacionados às estações do ano. O último ano bissexto foi 2012 e o próximo será 2016. Um ano é bissexto se ele for divisível por 4 mas não por 100, ou se for divisível por 400. Escreva um programa Portugol que pede ao usuário um ano com quatro dígitos e informa se ele é bissexto ou não. Sua saída deverá ser parecida com: Informe o ano: 2024 O ano informado é bissexto. Veja a resolução comentada deste exercício usando Portugol Webstudio: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // Como testar se um ano é bissexto em Portugol programa { funcao inicio() { // variáveis usadas na resolução do problema inteiro ano // vamos solicitar que o usuário informe um ano escreva("Informe o ano: ") leia(ano) // vamos verificar se o ano informado é bissexto se (((ano % 4 == 0) e (ano % 100 != 0)) ou (ano % 400 == 0)) { escreva("O ano informado é bissexto.") } senao { escreva("O ano informado não é bissexto.") } } } |
Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Portugol - 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árioQuantidade de visualizações: 27 vezes |
Pergunta/Tarefa: 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. Sua saída deverá ser parecida com: Digite um número a ser localizado: 8 O número 8 aparece nas seguintes posições: [8] posição => 5 [8] posição => 22 [8] posição => 26 O número 8 apareceu => 3 vez(es). Veja a resolução comentada deste exercício usando Portugol: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- programa { // vamos incluir a biblioteca de utilidades inclua biblioteca Util --> u funcao inicio() { // vamos declarar as variáveis necessárias inteiro numeros[30] inteiro chave, vezes = 0 // vamos sortear 30 números de 1 até 15 (incluindo os dois) para (inteiro i = 0; i < 30; i++) { numeros[i] = u.sorteia(1, 15) } // vamos pedir para o usuário informar a chave e vamos verificar em // quais posições essa chave foi encontrada escreva("Digite um número a ser localizado: ") leia(chave) escreva("\nO número " + chave + " aparece nas seguintes posições:") escreva("\n") para (inteiro i = 0; i < 30; i++) { se (numeros[i] == chave) { // registra a quantidade de vezes vezes = vezes + 1 escreva("\n[" + numeros[i] + "]" + " posição => " + i) } } // agora mostramos quantas vezes o número pesquisado apareceu escreva("\n\nO número " + chave + " apareceu => " + vezes + " vez(es).") escreva("\n") } } |
Portugol ::: Dicas & Truques ::: Cadeias e Caracteres |
Como remover todos os espaços de um nome, frase ou texto usando a função substituir() da biblioteca Texto do PortugolQuantidade de visualizações: 50 vezes |
Como remover espaços de um nome, frase ou texto usando a função substituir() da biblioteca Texto do Portugol Nesta dica mostrarei como podemos usar a função substituir() da biblioteca Texto do Portugol para remover todas as ocorrências de espaços em um nome, frase ou texto. Esta técnica é muito interessante quando queremos processar e salvar dados informados pelos usuários em um arquivo texto. Veja o código Portugol completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- programa { // vamos incluir a biblioteca Texto inclua biblioteca Texto --> texto funcao inicio() { // vamos declarar uma variável para guardar um nome cadeia nome, novo_nome // vamos pedir para o usuário informar o seu nome escreva("Informe o seu nome: ") leia(nome) // agora vamos remover todos os espaços do nome informado novo_nome = texto.substituir(nome, " ", "") // e mostramos os resultados escreva("Você informou o nome: " + nome) escreva("\nSem os espaços: " + novo_nome) } } Ao executar este código Portugol nós teremos o seguinte resultado: Informe o seu nome: Marcela de Oliveira Macedo Cunha Você informou o nome: Marcela de Oliveira Macedo Cunha Sem os espaços: MarceladeOliveiraMacedoCunha |
Portugol ::: Dicas & Truques ::: Cadeias e Caracteres |
Como testar se uma sub-cadeia está contida em uma cadeia de caracteres em Portugol usando a função posicao_texto()Quantidade de visualizações: 359 vezes |
Nesta dica mostrarei como podemos verificar se uma substring está contida em uma string em Portugol. Para isso nós vamos usar a função posicao_texto() da biblioteca Texto. A função posicao_texto() pede a sub-cadeia a ser pesquisada, a cadeia na qual a pesquisa será feita e o índice do primeiro caractere a partir do qual a sub-string será pesquisada. Se a substring for encontrada, a função retorna a posição do primeiro caractere. Caso contrário o valor -1 será retornado. Veja o código completo para um programa Portugol no qual testamos se uma palavra está contida em uma frase: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- programa { // vamos importar a biblioteca Texto inclua biblioteca Texto --> tx funcao inicio() { // vamos criar uma frase cadeia frase = "Gosto de programar em Portugol" // vamos criar uma sub-cadeia cadeia palavra = "Portugol" // vamos verificar se a sub-cadeia está contida na cadeia se (tx.posicao_texto(palavra, frase, 0) != -1) { escreva("A substring está contida na string") } senao { escreva("A substring não está contida na string") } } } Ao executar este código Portugol nós teremos o seguinte resultado: A substring está contida na string. |
Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Portugol - Faça um algoritmo em Portugol que leia 9 números inteiros, guarde-os em uma matriz 3x3 e mostre os números paresQuantidade de visualizações: 971 vezes |
Pergunta/Tarefa: Faça um algoritmo em Portugol que leia 9 números inteiros e guarde-os em uma matriz 3x3. Imprima a matriz no formato tabular, usando a melhor formatação que você conseguir. Em seguida, percorra a matriz novamente e imprima somente os números que são pares, todos na mesma linha e separados por espaço. Sua saída deverá ser parecida com: Linha 1 e coluna 1: 8 Linha 1 e coluna 2: 1 Linha 1 e coluna 3: 5 Linha 2 e coluna 1: 3 Linha 2 e coluna 2: 9 Linha 2 e coluna 3: 30 Linha 3 e coluna 1: 7 Linha 3 e coluna 2: 23 Linha 3 e coluna 3: 10 Valores na matriz 8 1 5 3 9 30 7 23 10 Os valores pares são: 8 30 10 Veja a resolução completa para o exercício em Portugol, comentada linha a linha (fiz a resolução no Portugol Webstudio): ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // Um algoritmo que lê uma matriz 3x3 programa { funcao inicio() { // variáveis usadas na resolução do problema inteiro matriz[3][3] inteiro i, j // vamos pedir para o usuário informar os valores // dos elementos da matriz, uma linha de cada vez para (inteiro i = 0; i < 3; i++) { para (inteiro j = 0; j < 3; j++) { escreva("Linha ", (i + 1), " e coluna ", (j + 1), ": ") leia(matriz[i][j]) } } // vamos mostrar a matriz da forma que ela foi informada escreva("\nValores na matriz:\n\n") para (inteiro i = 0; i < 3; i++) { para (inteiro j = 0; j < 3; j++) { escreva(matriz[i][j], " ") } // passa para a próxima linha da matriz escreva("\n") } // agora vamos percorrer a matriz novamente e mostrar // apenas os valores pares escreva("\nOs valores pares são: ") para (inteiro i = 0; i < 3; i++) { para (inteiro j = 0; j < 3; j++) { // é um número par? se (matriz[i][j] % 2 == 0) { escreva(matriz[i][j], " ") } } } } } |
Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercícios Resolvidos de Portugol - Escreva um programa que leia o ano de nascimento de um rapaz e mostre a sua situação em relação ao alistamento militarQuantidade de visualizações: 18 vezes |
Pergunta/Tarefa: Escreva um programa que leia o ano de nascimento de um rapaz e mostre a sua situação em relaçã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. Sua saída deverá ser parecida com: Informe o ano atual: 2025 Informe o ano do seu nascimento: 1980 Você tem 45 anos. Já se passaram 27 anos do alistamento militar. Informe o ano atual: 2025 Informe o ano do seu nascimento: 2007 Você tem 18 anos. Você já tem idade suficiente para fazer o alistamento militar. Informe o ano atual: 2025 Informe o ano do seu nascimento: 2009 Você tem 16 anos. Faltam 2 anos para você fazer o alistamento militar. Veja a resolução comentada deste exercício usando Portugol Web Studio: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- programa { funcao inicio() { // variáveis usadas na resolução do problema inteiro ano_nasc, ano_atual, idade, anos_faltam, anos_passaram // vamos pedir para o usuário informar o ano atual escreva("Informe o ano atual: ") leia(ano_atual) // vamos pedir para o usuário informar o ano de nascimento escreva("Informe o ano do seu nascimento: ") leia(ano_nasc) // vamos calcular a idade do usuário idade = ano_atual - ano_nasc // vamos calcular os anos que faltam para o alistamento anos_faltam = 18 - idade // vamos calcular os anos que já se passaram do alistamento anos_passaram = idade - 18 // vamos mostrar os resultados se (idade < 18) { escreva("\nVocê tem " + idade + " anos.") escreva("\nFaltam " + anos_faltam + " anos para você fazer o alistamento militar.") } senao se (idade == 18) { escreva("\nVocê tem " + idade + " anos.") escreva("\nVocê já tem idade para o alistamento militar.") } senao { escreva("\nVocê tem " + idade + " anos.") escreva("\nJá se passaram " + anos_passaram + " anos do alistamento militar.") } } } |
Portugol ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de Portugol - Um programa que lê três números inteiros e mostra o maiorQuantidade de visualizações: 3210 vezes |
Pergunta/Tarefa: Faça um algoritmo em Portugol que solicita três números inteiros e mostra o maior deles. Exiba uma mensagem caso os três números não forem diferentes. Sua saída deverá ser parecida com: Informe o primeiro número: 5 Informe o segundo número: 8 Informe o terceiro número: 3 O segundo número é o maior Veja a resolução comentada deste exercício usando Portugol Webstudio: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // Um programa que lê três números inteiros e mostra o maior programa { funcao inicio() { // variáveis usadas na resolução do problema inteiro num1, num2, num3 // vamos solicitar os três números inteiros escreva("Informe o primeiro número: ") leia(num1) escreva("Informe o segundo número: ") leia(num2) escreva("Informe o terceiro número: ") leia(num3) // o primeiro número é o maior? se (num1 > num2 e num1 > num3) { escreva("O primeiro número é o maior") } senao { // o segundo número é o maior? se (num2 > num1 e num2 > num3) { escreva("O segundo número é o maior") } senao{ // o terceiro número é o maior? se (num3 > num1 e num3 > num2) { escreva("O terceiro número é o maior") } // os número não são diferentes senao { escreva("Os três números não são diferentes") } } } } |
Vamos testar seus conhecimentos em |
Vidros Qual dos tipos abaixo não é um vidro: A) Soda-cálcico. B) Boro-silicato. C) Ao chumbo. D) Quartzitos. E) Alumínio borosilicato. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Alvenaria: Técnicas construtivas A elevação de paredes em alvenaria deve: A) Iniciar no meio do vão em direção aos cantos. B) Iniciar do lado direito para o lado esquerdo. C) Iniciar do lado esquerdo para o lado direito. D) Iniciar dos cantos, ou junto ao pilares, em direção ao centro. E) Iniciar pelos cantos, em toda a altura do pé-direito, e depois seguir em direção ao centro. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Fases de uma obra Em relação aos conceitos envolvidos na elaboração de um orçamento de obras, assinale a alternativa correta. A) Custos diretos são aqueles em que é necessário estipular um fator de rateio para que sejam apropriados aos serviços. B) Devem ser incluídas no título "desmobilização" de um orçamento as despesas com locação, fechamento, tapumes, demolições e relocações. C) A administração do canteiro de obras e as despesas decorrentes da administração da empresa fazem parte dos custos diretos de uma obra. D) Como regra, orçam-se os preços na construção civil por serviço, determinando-os segundo a produção de composições unitárias. E) Em um solo, caso seja necessário escavar 1 m3 do terreno, deve-se orçar, no item referente à escavação do material, o valor 1,4 m3. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais |
Sistema domiciliar de abastecimento de água Instalações hidrossanitárias compreendem subsistemas de uma edificação para a correta captação, transporte e armazenagem de fluidos. Para o perfeito funcionamento dessas instalações, conhecer seus principais componentes é fundamental. Dessa forma, conforme a NBR 5626:2020, qual das opções a seguir está correta? A) Cavalete: conjunto padronizado de tubulações e conexões destinado à instalação do hidrômetro, situado no ramal predial. B) Extravasor: é caracterizado pela tubulação derivada do barrilete e destinado a alimentar os reservatórios. C) Alimentador predial: tubulação que se origina no reservatório e do qual derivam as colunas de distribuição se o tipo de abastecimento for indireto. D) Fonte de abastecimento: reservatório localizado na parte mais elevada de uma residência, destinada ao seu abastecimento direto. E) Instalação elevatória: sistema destinado a fornecer água para o sistema. Pode ser a rede pública da concessionária ou qualquer sistema particular de fornecimento de água. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Viscosidade dinâmica A viscosidade cinemática de um óleo lubrificante é de 0,028m2/s, e seu peso específico relativo é de 0,85. Qual a sua viscosidade dinâmica, em Pa.s? Sabe-se que a aceleração gravitacional local é de 10m/s2. A) 233Pa.s. B) 85Pa.s. C) 85000Pa.s. D) 23,8Pa.s. E) 2,38Pa.s. Verificar Resposta Estudar Cards Todas as Questões |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Portugol |
Veja mais Dicas e truques de Portugol |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |