Ir ao conteúdo
  • Cadastre-se

Simon Viegas

Moderador
  • Total de itens

    4.931
  • Cadastrado em

  • Qualificações

    0%

Tudo que Simon Viegas postou

  1. Justamente. Faça o que ele pede... ele quer "quantos", não "quais". Basicamente é precisado se atentar ao problema, ou seja: aquilo que estaria sendo pedido no enunciado. As alterações são simples... segue um exemplo de código: programa { inclua biblioteca Util --> u funcao inicio() { inteiro num, cont_num = 1, qtd_acima_de_5 = 0, qtd_divisiveis_por_3 = 0 escreva("==================================\n") escreva("EXERCÍCIOS DE REPETIÇÕES ENQUANTO \n") escreva("==================================\n") enquanto(cont_num <= 20) { num = u.sorteia(0, 10) escreva("NÚMERO GERADO: ", num, "\n") se (num > 5) { qtd_acima_de_5++ } se (num % 3 == 0) { qtd_divisiveis_por_3++ } cont_num++ } escreva("\nQuantidade de números acima de 5 : ", qtd_acima_de_5, "\n") escreva("Quantidade de números divisíveis por 3: ", qtd_divisiveis_por_3, "\n") } }
  2. Se está tendo contato com exercícios de Pilhas e Filas, é que provavelmente está estudando Pilhas e Filas, correto?... Então, faça isso: pesquise e estude mais sobre Pilhas e Filas... entenda o que se trata cada um dos dois. Veja exemplos... Após, conseguirá responder o enunciado.
  3. @kleverson henrique , simule a execução das operação... e dê o resultado solicitado. Está com dúvida em qual parte?
  4. @kleverson henrique, simule a execução das operação... e dê o resultado solicitado. Está com dúvida em qual parte?
  5. @kleverson henrique, segue: 1. qual programa utilizar para editar e rodar o código? 2. poste o que conseguiu fazer e em qual parte está com dúvidas.
  6. Essa sintaxe não existe no VisualG. A variável contador é do tipo inteiro, ou seja: ele não é um vetor. Assim como o nomes_vet é um vetor e não poderia ser utilizado como uma coordenada de um suposto vetor... Segue um exemplo de possível solução: algoritmo "Localizar nome em vetor" var nomes_vet: vetor[1..5] de caractere nome_busca: caractere contador: inteiro achei: logico inicio escreval("Digite o nome de cinco pessoas: ") para contador de 1 ate 5 faca escreva ("Nome: ") leia(nomes_vet[contador]) fimpara escreval("Digite um nome para ser buscado: ") leia(nome_busca) achei <- FALSO para contador de 1 ate 5 faca se nome_busca = nomes_vet[contador] entao achei <- VERDADEIRO fimSe fimPara se achei = VERDADEIRO entao escreva("ACHEI") senao escreva("NÃO ACHEI") fimSe fimAlgoritmo
  7. Fiz um esboço de uma possível solução: algoritmo "semnome" //Leia o preço de um produto e o código relativo à forma de pagamento. De //acordo com a tabela dada abaixo, deve ser aplicado o desconto especificado //e o programada deve exibir o número de prestações e o valor de cada prestação //a ser paga: // // FORMA DE PAGAMENTO | Cod | Desconto em cada parcela // À vista (parcela única) | 1 | 30% // Em duas vezes | 2 | 20% // Em três vezes | 3 | 10% // De 4 a 6 vezes | 4 | Sem desconto var precoProduto, desconto, precoProdutoComDesconto: real taxaDesconto: real codigoPagamento: inteiro numeroPrestacoes: inteiro valorParcela: real np: inteiro inicio numeroPrestacoes <- 1 escreva ("Preço do Produto: R$") //leia(precoProduto) precoProduto <- Randi(200000)/100 escreval(precoProduto) escreval("") escreval("FORMA DE PAGAMENTO | Cod | Desconto em cada parcela") escreval("À vista (parcela única) | 1 | 30% ") escreval("Em duas vezes | 2 | 20% ") escreval("Em três vezes | 3 | 10% ") escreval("De 4 a 6 vezes | 4 | Sem desconto ") escreval("") escreva ("Cód. da Forma de Pagamento: ") //leia(codigoPagamento) codigoPagamento <- Randi(4)+1 escreval(codigoPagamento) escreval("") escreval("Preço original : R$", precoProduto:1:2) escolha codigoPagamento caso 1,2,3 escolha codigoPagamento caso 1 numeroPrestacoes <- 1 taxaDesconto <- 0.30 caso 2 numeroPrestacoes <- 2 taxaDesconto <- 0.20 caso 3 numeroPrestacoes <- 3 taxaDesconto <- 0.10 fimEscolha desconto <- precoProduto * taxaDesconto precoProdutoComDesconto <- precoProduto - desconto valorParcela <- precoProdutoComDesconto / numeroPrestacoes escreval("Desconto : R$", desconto:1:2, " (", taxaDesconto*100:1, "%)") escreval("Preço com desconto : RS", precoProdutoComDesconto:1:2) escreval("Número de prestações : ", numeroPrestacoes:1) se (numeroPrestacoes > 1) entao escreval("Valor de cada parcela: R$", valorParcela:1:2) fimSe caso 4 taxaDesconto <- 0.00 precoProdutoComDesconto <- precoProduto * (1 - taxaDesconto) para np de 4 ate 6 faca numeroPrestacoes <- np valorParcela <- precoProdutoComDesconto / numeroPrestacoes escreval("") escreval("Número de prestações : ", numeroPrestacoes:1) escreval("Valor de cada parcela: R$", valorParcela:1:2) fimPara fimEscolha fimAlgoritmo Executando o programa algumas vezes: No gerador só está utilizando códigos válidos... mas se for algum diferente de 1, 2, 3 e 4, está considerando como à vista.
  8. @Marcus V Santos, além dos prints, poste também o texto completo do código para facilitar as análises e também indexação dos motores da internet. Em relação ao erro, utilize um par de aspas duplas. Ex.: Modo certo: escreval("Texto entre duas aspas duplas") Modo errado: escreval(''Texto entre dois pares de aspas simples'')
  9. Uma resumida... Alteração para imprimir utilizando laços de repetição: Para cada c (time da casa) imprimir o jogo com um v (time visitante). Por isso um para dentro do outro. algoritmo "TORNEIO DE FUTEBOL" var vet: vetor [1..3] de caractere time: caractere i, c, v: inteiro inicio para i <- 1 ate 3 faca escreva("Nome do ", i:1,"º time: ") leia(vet[i]) fimPara escreval(" TABELA DAS PARTIDAS ") para c <- 1 ate 3 faca para v <- 1 ate 3 faca se (c <> v) entao escreval(vet[c]:15, "[ ] X [ ] ", vet[v]) fimSe fimPara fimPara fimAlgoritmo Alteração para continuar deixando alinhado o placar no centro, mas deixando um espaçamento mínimo à esquerda: O placar no centro vai ficar "um espaço a direita do nome mais comprido". algoritmo "TORNEIO DE FUTEBOL" var vet: vetor [1..3] de caractere time: caractere i, c, v: inteiro maior, espacos: inteiro inicio para i <- 1 ate 3 faca escreva("Nome do ", i:1,"º time: ") leia(vet[i]) fimPara maior <- Compr(vet[1]) //inicializa o maior com o primeiro para i <- 2 ate 3 faca //para cada um dos outros times se (Compr(vet[i]) > maior) entao //se o comprimento dele é maior que o maior maior <- Compr(vet[i]) //o maior passa a esse ele fimSe fimPara espacos <- maior+1 escreval(" TABELA DAS PARTIDAS ") para c <- 1 ate 3 faca para v <- 1 ate 3 faca se (c <> v) entao escreval(vet[c]:espacos, "[ ] X [ ] ", vet[v]) fimSe fimPara fimPara fimAlgoritmo Alteração para deixar o placar alinhado ao centro e deixando o time da casa alinhado à direita (próximo ao placar) : algoritmo "TORNEIO DE FUTEBOL" var vet: vetor [1..3] de caractere time: caractere i, c, v: inteiro maior, espacos: inteiro inicio para i <- 1 ate 3 faca escreva("Nome do ", i:1,"º time: ") leia(vet[i]) fimPara maior <- Compr(vet[1]) //inicializa o maior com o primeiro para i <- 2 ate 3 faca //para cada um dos outros times se (Compr(vet[i]) > maior) entao //se o comprimento dele é maior que o maior maior <- Compr(vet[i]) //o maior passa a esse ele fimSe fimPara escreval(" TABELA DAS PARTIDAS ") para c <- 1 ate 3 faca para v <- 1 ate 3 faca se (c <> v) entao espacos <- maior-Compr(vet[c]) //maior comprimento menos o tamanho do texto escreval("":espacos, vet[c], " [ ] X [ ] ", vet[v]) fimSe fimPara fimPara fimAlgoritmo O maior terá o tamanho do maior comprimento do nome do time... o espacos vai conter os espaços necessário para que, cada um dos time, passem a ter o mesmo comprimento do maior... como os espaços estão sendo adicionados à esquerda, vai alinha a direita. Observe que dei um espaço antes de "[ ]", para não ficar colado. Adendo: essas alterações não necessariamente são triviais, mas ao mesmo tempo não são coisas do outros mundo... boa parte do que demonstrei eu tive que quebrar a cabeça em algum momento... isso é normal, mas o que eu aprendi durante o tempo, fui "reutilizando"... mesmo que não seja exatamente igual o que já vi, mas a base ajuda a expandir as possibilidades. Por exemplo: se quiser colocar um espaço mais à esquerda... para não deixar colado na parede, como faria? Oras! só dar mais um espaço em cada um. Algo como: espacos <- maior-Compr(vet[c]) + 1 Por aí vai.
  10. @Hydra_, por favor, poste o enunciado completo da questão.
  11. OK. Isso eu entendi. Enunciado fornece o código e pede para você alterar ele? É isso? @Hydra_, poste o texto completo do enunciado para entendermos melhor o que precisaria ser feito... Mas em relação a alteração, altere o tipo do vetor, dos parâmetros das funções e o tipo da entrada de inteiro para caractere... é isso. Primeiro entenda o código original. Tem alguma dúvida sobre ele? Qual?
  12. Sobre: Sobrepondo como? Seria bom demonstrar o erro. Sobre> Não use read(), utilize somente readln(). Troque isso já! Após os ajustes, teste novamente e informe e demonstre o problema que está ocorrendo. No aguardo. Dica: utilize um replace de read( para readln(.
  13. @Andrieli Mendes, poste o que já conseguiu fazer e em qual parte está com dúvidas.
  14. @Hydra_, poste o enunciado completo da questão e em qual parte está com dúvidas.
  15. @Frank Charles Peach, bem vindo de volta. Sobre: A definição de "certo" é muito relativa.... basicamente vai depender do enunciado e daquilo que está estudando. Como está utilizando vetores, provavelmente faria mais sentido utilizar um laço de repetição... Ex.: para c <- 1 ate 3 faca para v <- 1 ate 3 faca se (c <> v) entao escreval(vet[c]:15, "[ ] X [ ] ", vet[v]) fimSe fimPara fimPara Adendo: observe que não adianta muita coisa "inserir espaços à direita para o time visitante". Concorda? Outra forma... deixando o espaçamento mais ajustado: algoritmo "TORNEIO DE FUTEBOL" var vTimes: vetor [1..3] de caractere i: inteiro x: inteiro c, v:inteiro funcao calcularLargulaColuna(): inteiro var maior: inteiro i: inteiro inicio maior <- Compr(vTimes[1]) para i <- 2 ate 3 faca se (Compr(vTimes[i]) > maior) entao maior <- Compr(vTimes[i]) fimSe fimPara retorne maior fimFuncao inicio para i <- 1 ate 3 faca escreva("Nome do ", i, "º time: ") leia(vTimes[i]) fimPara x <- calcularLargulaColuna() + 1 escreval(" TABELA DAS PARTIDAS ") escreval("---------------------------------") para c <- 1 ate 3 faca para v <- 1 ate 3 faca se (c <> v) entao escreval(vTimes[c]:x, "[ ] X [ ] ", vTimes[v]) fimSe fimPara fimPara fimalgoritmo Outra forma seria alinhar à direita para o time da casa: Se quiser tentar implementar: x <- calcularLargulaColuna() + 1 escreval(" TABELA DAS PARTIDAS ") escreval("---------------------------------") para c <- 1 ate 3 faca para v <- 1 ate 3 faca se (c <> v) entao espacos <- calcularEspacos(x) escreval("":espacos, vTimes[c], " [ ] X [ ] ", vTimes[v]) fimSe fimPara fimPara Faltaria apenas criar o calcularEspacos(). Observe que está recebendo um parâmetro. A função deve retornar a quantidade de espaços à esquerda... de modo que o resultado sai como a imagem acima. Qualquer dúvida, ou comentário, é só postar.
  16. @RENAN FP, conseguiu?
  17. Pegue o seu código original (da primeira postagem) e: 1. ajuste as variáveis. Deixe as nomenclaturas dos vetores no plural: var perguntas: vetor [1..10] de caractere respostas: vetor [1..30] de caractere corretas : vetor [1..10] de caractere resposta : caractere pontos, c: inteiro Ajuste o código para funcionar com essa alteração. Teste e deixe funcionado. Veja: apenas altere isso e deixe funcionando! Não tente fazer duas ou mais coisas ao mesmo tempo. 2. deixe o preenchimento do "banco de perguntas" separado da parte principal do código Apague o que está na parte principal e deixe o preenchimento dentro de um procedimento. Depois é só invocar o procedimento lá no parte principal: inicio pontos <- 0 // INICIAR O PLACAR carregarBancoDeQuestoes() Veja: apenas altere isso e deixe funcionando! Não tente fazer duas ou mais coisas ao mesmo tempo. *** Escolha fazer uma coisa ou outra... tente fazer até funcionar... NÃO tente fazer as duas coisas ao mesmo tempo. Caso tenha dúvidas sobre alguma parte, informe em que está com dúvidas, e não apenas não consegui mudar. É normal ter dúvidas (tanto que estamos num fórum), mas é preciso dizer qual é dúvida e tentar resolver... Poste o código completo após as alterações. Caso tenha dúvida, informa em qual parte. No aguardo.
  18. Sobre: Seria só separar o código: procedimento carregarBancoDeQuestoes() inicio // BANCO DE QUESTÕES perguntas[1] <- "O que são VETORES?" respostas[1] <- "(A) Estruturas de dados Rígido" respostas[2] <- "(B) Estruturas de dados homogêneas " respostas[3] <- "(C) Estruturas de dados Restrito" corretas[1] <- "B" perguntas[2] <- "Qual é o Paradgma que executam processos como se fossem funções matemáticas?" respostas[4] <- "(A) Paradgma Fundador" respostas[5] <- "(B) Paradgma Operacional" respostas[6] <- "(C) Paradgma Funcional" corretas[2] <- "C" //por enquanto deixe apenas com duas perguntas. Depois só inserir as outras seguindo a mesma lógica fimProcedimento Sobre: // FAZER A PERGUNTA procedimento perguntar(p:inteiro) var r: inteiro inicio escreval("QUESTÃO ", p) escreval(perguntas[p]) escreval("") para r de 1 ate 3 passo 1 faca escreval(respostas[p, r]) fimPara escreva ("QUAL É A LETRA DA SUA RESPOSTA? ") leia(resposta) fimProcedimento Como a "assinatura do procedimento mudou", precisará também mudar "as chamadas do procedimento" lá no parte principal. Ex.: // GAME PLAY perguntar e pontuar // GAME PLAY perguntar e pontuar perguntar(1) pontuar(1) perguntar(2) pontuar(2) Deu para entende? Antes, você colocou as respostas em sequência, daí precisava "calcular" as posições das respostas para as respectivas perguntas. Dessa forma acima, as resposta de cada pergunta já ficam associadas as próprias perguntas. Faça esses ajustes e vá arrumando outras detalhes. Qualquer dúvida, é só informar em qualquer parte.
  19. Está com dúvidas em qual parte? Por favor, poste o enunciado completo da questão, o que já conseguiu fazer e em qual parte está com dúvidas.
  20. Sobre: @RENAN FP, está com dúvidas em qual parte? Dicas gerais: sugeriria cadastrar o "BANCO DE QUESTÕES" em um procedimento. Deixar o "programa principal" mais limpo; que tal usar uma matriz (em vez de um vetor) para armazenar as respostas? Algo assim: respostas: vetor [1..10, 1..3] de caractere //[<nº da pergunda>, <nº da resposta da perguna>] Creio que assim fica mais fácil para gerenciar. Daí, só precisa do número da pergunta mesmo, já que "sempre serão 3 respostas, ou seja: usaria o p para primeira coordenada e r variando de 1 a 3; assim como alguns dados são enviados para os procedimentos pelos parâmetros, a resposta também precisariam voltar de alguma forma. No código atual, você está acessando a variável global resposta, em vez disso, você poderia passar ela por parâmetro por referência (vide Google) lá no procedimento perguntar() (o valor vai ficar salvo) e no pontuar() passar essa variável por parâmetro também, já que também está acessando diretamente. PS: pense assim: um procedimento deveria utilizar apenas aquilo que vem por parâmetro ou que foi declarada dentro dela mesma. (Com exceção dos vetores, pois o VisualG não permite... por limitação técnica) Qualquer dúvida é só perguntar.
  21. Vou tentar também aqui para demonstrar.. @Pedroso90, um ponto principal é: seu código SEMPRE deve está compilável, ou seja: se botar para compilar, tem que compilar sem erros... No caso do seu código postado, ele está incompleto... ou porque você esqueceu de copiar (acontece); ou porque realmente deixou parte faltando (isso é proibido ). A primeira coisa a se fazer é entender o problema... me parece que tudo está bem claro... então não tem nem muito no que pensar... dá para ir direto para o código. Exemplo de base inicial: program EX2; {$CODEPAGE UTF8} //para permitir acentos nas string em alguns compiladores [Não necessário no PascalZim, mas pode deixar] { ENUNCIADO: Utilizando as estruturas de repetição estudadas em sala de aula, faça um programa em Pascal que receba dez idades, pesos e alturas, calcule e mostre: * A média das idades das dez pessoas; * A quantidade de pessoas com peso superior a 90 quilos e altura inferior a 1,50 metros; * A percentagem de pessoas com idade entre 10 e 30 anos entre as pessoas que medem mais de 1,90 metros. } var mediaIdade, qtdPesoMaior90AlturaMenor150, qtdIdadeEntre10e30AlturaMaior190: real; begin end. Se botar para compilar, deve compilar de boa... Aí, vou partir para leitura dos dados... ex.: [...] const QTD_PESSOAS = 10; var mediaIdade, qtdPesoMaior90AlturaMenor150, qtdIdadeEntre10e30AlturaMaior190: real; cont: integer; begin for cont := 1 to QTD_PESSOAS do begin end; end. Observe que o código continua compilável... daí vai implementando... Mas porque isso? Dessa forma, você vai garantido que o código não tem erros de sintaxe... vai ficar apenas "preocupado" com a parte da lógica. Se compilar e der erro, vai meio que ter certeza que o erro está em algo que acabou de fazer... vai lá e corrigo. OBSERVAÇÃO: deixar compilável não é mesma coisa de "deixar certo". A proposta aqui é que foque apenas na lógica... Mais um pouco: [...] const //QTD_PESSOAS = 10; QTD_PESSOAS = 3; var somaIdade, mediaIdade, qtdPesoMaior90AlturaMenor150, qtdIdadeEntre10e30AlturaMaior190: real; cont: integer; idade: integer; peso, altura: real; begin for cont := 1 to QTD_PESSOAS do begin write ('Idade : '); readln(idade); //write ('Altura: '); readln(altura); //write ('Peso : '); readln(peso); somaIdade := somaIdade+idade; end; mediaIdade := somaIdade / QTD_PESSOAS; //observe que o cálculo da média só precisa ser feito apenas uma vez! writeln('Média das idades: ', mediaIdade:1:3); ReadKey(); end. Fazendo testes: Resultado esperado: Até aqui bateu! ..fui fazendo testes e ajustes. Cheguei a isso: program EX2; {$CODEPAGE UTF8} //para permitir acentos nas string em alguns compiladores [Não necessário no PascalZim, mas pode deixar] uses CRT; //necessário para alguns compiladores reconhecerem o ReadKey() { ENUNCIADO: Utilizando as estruturas de repetição estudadas em sala de aula, faça um programa em Pascal que receba dez idades, pesos e alturas, calcule e mostre: * A média das idades das dez pessoas; * A quantidade de pessoas com peso superior a 90 quilos e altura inferior a 1,50 metros; * A percentagem de pessoas com idade entre 10 e 30 anos entre as pessoas que medem mais de 1,90 metros. } const //QTD_PESSOAS = 10; QTD_PESSOAS = 3; var mediaIdade: real; somaIdade, qtdPesoMaior90AlturaMenor150, qtdIdadeEntre10e30AlturaMaior190, cont: integer; idade: integer; peso, altura: real; begin for cont := 1 to QTD_PESSOAS do begin write ('Idade : '); readln(idade); write ('Altura: '); readln(altura); write ('Peso : '); readln(peso); somaIdade := somaIdade+idade; if ((peso > 90) and (altura < 1.50)) then Inc(qtdPesoMaior90AlturaMenor150); if (((idade > 10) and (idade <=30)) and (altura > 1.90)) then Inc(qtdIdadeEntre10e30AlturaMaior190); end; mediaIdade := somaIdade / QTD_PESSOAS; //observe que o cálculo da média só precisa ser feito apenas uma vez! writeln(); writeln(); writeln('Média das idades'); writeln(mediaIdade:1:3); writeln(); writeln('Quantidade de pessoas com peso superior a 90 quilos e altura inferior a 1,50 metros'); writeln(qtdPesoMaior90AlturaMenor150); writeln(); writeln('Percentagem de pessoas com idade entre 10 e 30 anos entre as pessoas que medem mais de 1,90 metros'); writeln(qtdIdadeEntre10e30AlturaMaior190); ReadKey(); end. Teste rápido: Nesses testes utilizei apenas dados para 3 pessoas... Se funciona com 3, deve funcionar com qualquer* N>1. Testar com 3 já fica chato pra c@c&t&, imagine com 10? Daí, uma ideia é criar alguma estrutura que poupe-nos desse trabalho. Tem duas formas básicas: - deixar os dados fixos; (Seria mais útil quando usando vetores.) - gerar dados automaticamente. (Basicamente utilizando dados aleatórios.) Exemplo: //VERSÂO GERANDO AUTOMATICAMENTE (vou deixar você mesmo interpretar e, se desejar, efetuar ajustes) write ('Idade : '); idade := 14 + Random(60); writeln(idade); write ('Altura: '); altura := 1.30 + Random(70)/100; writeln(altura:1:2); write ('Peso : '); peso := 40 + Random(800)/10; writeln(peso:1:1); Sai algo assim: Ajustei para imprimir os dados de uma mesma pessoa um ao lado do outro (economizar linhas): //VERSÂO GERANDO AUTOMATICAMENTE (vou deixar você mesmo interpretar e, se deseja, ajustar) write ('Idade: '); idade := 14 + Random(60); write (idade); write ('Altura: ':15); altura := 1.30 + Random(90)/100; write (altura:1:2); write ('Peso : ':15); peso := 40 + Random(800)/10; writeln (peso:1:1); Pode parecer estranho... mas só para para entender!!! Obs.: claro que essa estrutura não sai do nada.. fui fazendo teste até que ficasse mais ou menos bom... Os comandos também fui tendo contato em outros experiências e pesquisas... basicamente fui apenas testando na práticas, mas se não soubesse, poderia vir no fórum e perguntar como poderia fazer, entende? Resultado: O ":" ficou separado do "Peso", estou com preguiça de tirar outro print, rs. Mas veja que seria apenas ir lá no código e tirar o espaço... e rodar novamente. Principais pontos: - deixe sempre o código compilável. Pode ficar compilando toda hora... mas a medida que vai pegando a prática, vai reduzindo a quantidade de vezes; - utilize nomenclaturas de variáveis o mais sugestíveis possíveis ("deixar semântico"). Facilita na identificação de qual variável usar em qual momento... e deixa o código mais legível para outros lerem. Adendo: observe o detalhe importante no cálculo da porcentagem... é para certas idades apenas para certa altura... veja nesse caso como a nomenclatura da variável deixa isso mais claro!!! (não é uma porcentagem sobre o total). Por aí vai. Qualquer dúvida é só perguntar Ah! segue o código atual: program EX2; {$CODEPAGE UTF8} //para permitir acentos nas string em alguns compiladores [Não necessário no PascalZim, mas pode deixar] uses CRT; //necessário para alguns compiladores reconhecerem o ReadKey() { ENUNCIADO: Utilizando as estruturas de repetição estudadas em sala de aula, faça um programa em Pascal que receba dez idades, pesos e alturas, calcule e mostre: * A média das idades das dez pessoas; * A quantidade de pessoas com peso superior a 90 quilos e altura inferior a 1,50 metros; * A percentagem de pessoas com idade entre 10 e 30 anos entre as pessoas que medem mais de 1,90 metros. } const QTD_PESSOAS = 10; var mediaIdade, percIdadeEntre10e30AlturaMaior190: real; somaIdade, qtdPesoMaior90AlturaMenor150, qtdIdadeEntre10e30AlturaMaior190, qtdAlturaMaior190, cont: integer; idade: integer; peso, altura: real; begin Randomize; //evitar que gere números repetidos com o Random() for cont := 1 to QTD_PESSOAS do begin //write ('Idade : '); readln(idade); //write ('Altura: '); readln(altura); //write ('Peso : '); readln(peso); //VERSÂO GERANDO AUTOMATICAMENTE (vou deixar você mesmo interpretar e, se deseja, ajustar) write ('Idade: '); idade := 14 + Random(60); write (idade); write ('Altura: ':15); altura := 1.30 + Random(90)/100; write (altura:1:2); write ('Peso: ':15); peso := 40 + Random(800)/10; writeln (peso:1:1); somaIdade := somaIdade+idade; if ((peso > 90) and (altura < 1.50)) then Inc(qtdPesoMaior90AlturaMenor150); if ((altura > 1.90)) then begin Inc(qtdAlturaMaior190); if ((idade > 10) and (idade <=30)) then Inc(qtdIdadeEntre10e30AlturaMaior190); end; end; mediaIdade := somaIdade / QTD_PESSOAS; //observe que o cálculo da média só precisa ser feito apenas uma vez! if (qtdAlturaMaior190 > 0) then percIdadeEntre10e30AlturaMaior190 := (qtdIdadeEntre10e30AlturaMaior190 / qtdAlturaMaior190) * 100; writeln(); writeln(); writeln('Média das idades'); writeln(mediaIdade:1:1); writeln(); writeln('Quantidade de pessoas com peso superior a 90 quilos e altura inferior a 1,50 metros'); writeln(qtdPesoMaior90AlturaMenor150); writeln(); writeln('Percentagem de pessoas com idade entre 10 e 30 anos entre as pessoas que medem mais de 1,90 metros'); writeln(percIdadeEntre10e30AlturaMaior190:1:2, '%'); ReadKey(); end.
  22. @KalI555, em qual linguagem de programação e qual programa utilizará para editar o código? Por favor, poste também o que já conseguiu fazer e em que parte está com dúvidas.
  23. Em outro tópico parecido, foi dado uma solução alternativa, segue:

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Redes-Wi-Fi-capa-3d-newsletter.png

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!