Ir ao conteúdo
  • Cadastre-se

Simon Viegas

Membro VIP
  • Posts

    3.944
  • Cadastrado em

Tudo que Simon Viegas postou

  1. @Laura Tchaly, é sempre bom tentar fazer algo e postar onde está com dúvidas. Mas vamos lá... Uma sugestão é deixar o enunciado no próprio código... Assim fica mais fácil para consultar. Exemplo: algoritmo "Gerenciar até 50 números em um vetor" // Disciplina : // Professor : // Autor(a) : Laura Tchaly // Data atual : 05/11/2022 //Faça um programa, utilizando o VisuALG, que armazene 50 números em um vetor. //O programa terá a opção de adicionar, buscar, ordenar ou remover os dados. O //programa deverá ter as seguintes condições: //ADICIONAR //Somente adicione números com as seguintes faixas: //Faixa 1 -> Entre 1 e 20 (inclusos) //Faixa 2 -> Entre 50 e 60 (inclusos) //Faixa 3 - Entre 100 e 120 (inclusos) //Não adicione números que estão fora das faixas //Eftuar uma pesquisa para saber se o número existe ou não no vetor //Se existir, informar que o número já se encontra presente no vetor e não //adicione //Caso não exista, verifique se o vetor está ou não lotado antes de inserir //PESQUISAR: //O usuário poderá escolher entre a pesquisa sequencial ou binária //Se a pesquisa binária for selecionada, informe que o vetor deve estar //ordenado e deixe o usuário escolher a ordenação antes de efetuar a pesquisa //ORDERNAR: //O usuário poderá escolher qual o método de ordenação desejado: BubbleSort ou //Insertion Sort. //Se o vetor já estiver ordenado, informe para o usuário e não faça a ordenação var inicio fimAlgoritmo Daí, recomendado se aprofundar no enunciado. Ler e reler várias vezes. Assimile que precisa fazer. Não é muito sensato tentar resolver um problema do qual não sabe do que se trata. Daí, tentar abstrair o problema maior (resultado final completo) em problemas menores ou mesmo mais simplificados... por exemplo... em vez se seguir todas essas regras, inicialmente poderia criar estruturas mais simples, como apenas ler números quaisquer e exibir depois esses números na tela . . . var numeros : vetor[1..5] de inteiro i : inteiro inicio //aqui coloque para ler 5 números //aqui coloque para exibir esses 5 números lidos fimAlgoritmo Sugiro inicialmente fazer isso. Aos pouco vá adicionado novas funcionalidades. Não tente fazer tudo de uma vez. Vá adicionando coisas bem simples... no final vai ficando mais "complexo" naturalmente. No aguardo
  2. Se a referência for VisualG, precisa ter as quebras de linhas entre os comandos (não integrados). Ex.: algoritmo "Tabela de preços" var codigo : inteiro inicio escreva ("Digite o codigo do produto: ") leia(codigo) escolha codigo caso 1 escreval("Maçã R$ 1,90") caso 2 escreval("Laranja R$ 1,45") caso 3 escreval("Abacaxi R$ 2,79") outrocaso escreval("Produto inexistente" ) fimEscolha fimAlgoritmo Ou seja: todas essas linhas acima precisam estar separadas (por linhas). Duas ou mais não podem ser agrupadas em uma linha só. Como notório, "escolha codigo" faz parte de uma estrutura só... e nesse caso ocorre o contrário: precisam estar na mesma linha... isso é devido às características dessa "linguagem" ou mesmo por limitação técnica. Um exemplo utilizando laço de repetição: algoritmo "Tabela de preços" var codigo : inteiro inicio repita escreva ("Digite o codigo do produto (ou 0 para sair): ") leia(codigo) se (codigo <> 0) então escolha codigo caso 1 escreval("Maçã R$ 1,90") caso 2 escreval("Laranja R$ 1,45") caso 3 escreval("Abacaxi R$ 2,79") outrocaso escreval("Produto inexistente" ) fimEscolha fimSe ate (codigo = 0) fimAlgoritmo
  3. algoritmo "Transcrever o fluxograma em portugol" var qtdQuilometros, qtdLitro : real media : real inicio escrevaL("Digite a quantidade de quilômetros e a quantidade de litros que foram gastos") leia(qtdQuilometros, qtdLitro) media <- qtdQuilometros / qtdLitro escreval(media) fimAlgoritmo
  4. @Lorenzo Nunez, vou por enquanto me atentar apenas aos problemas de sintaxes. Sobre: Tanto um, tanto o outro, são inteiros. O primeiro por ser uma posição. O segundo por ser o parâmetro da pesquisa de um valor, ou seja, precisa ser do mesmo (correspondente) tipo do valor que está sendo pesquisado... (O tipo real não bate com inteiro.) Mude para inteiro: meio, pesq: inteiro Como meio é inteiro, pegue a parte inteira da divisão De: . Para: meio <- (comeco + final) \ 2 Adendo: repare que a barra está invertida... é assim mesmo. Daí você vai tentando e corrigindo (já adianto que tem problema). Qualquer dúvida é só ir tentando mesmo :D, se persistir, só perguntar... ADENDO: para facilitar os testes, altere a leitura para algo assim: para i de 1 ate 8 faca escreva ("Digite o ", i:1, "º número: ") //leia(vetA[i]) vetA[i] <- RandI(9)+1 escreval(vetA[i]) vetB[i] <- vetA[i] * 5 fimPara Dá para fazer o mesmo se quiser também o valor a ser pesquisado: escreva("Qual número você deseja procurar: ") //leia(pesq) pesq <- RandI(9)+1 escrevaL(pesq) Desta forma... bastando executar o problema... em detrimento de não poder escolher o que quer pesquisar.
  5. @dilucq, o % serve para retornar o resto. E é isso. Veja: Se já saberia o resultado, para que serviria a conta? Entende? Vamos lá: quanto é 6 / 3 ? Dá 2, com resto 0. Logo, 6 % 3 = 0. Fim Quanto é 27/4? Dá 6, com resto 3. 27 % 4 = 3. Fim. O algoritmo está verificando se o número é ímpar... pois um número seria ímpar quando este é dividido por 2 e tem resto 1... Se se enquadrar nesse caso, diminui um do valor... para assim iniciar do primeiro par. Se digitou 9, vai ser ímpar, daí o valor vai para 8... após, exibir de 8 a 0...
  6. @dilucq, poste o código que você já fez. Se tiver dúvidas, em qual parte.
  7. Opa! Sim podemos... é para isso que serve os fóruns... Sobre: Certo. Qual a sua dúvida agora? É uma pergunta retórica... mas a ideia é que você precisa primeiro identificar qual é o problema, para assim tentar solucioná-lo... Especifique algo... Ex.: "o cálculo da porcentagem não está batendo". Daí, você vai lá e foca nisso... Te adianto duas dicas: 1. Faça testes com uma faixa menor, por exemplo, com 10 itens (de 500 a 509); 2. O total de itens NÃO está em cont... você poderia usar o delta da faixa, mais 1... (500-509), ou seja, o total seria 10, e não 509. Tem diversos outros probleminhas... vá aí fazendo testes... vendo qual resultado está dando e aí vai ajustando... Tá! vai mais uma dica: para calcular a porcentagem, precisa multiplica por 100, e não dividir. Ex.: Total: 5 Ocorrências: 3 Logo: 3/5*100 = 60, ou seja: 60% Adendo: a porcentagem em si seria 3/5, mas como vai exibir em %, aí multiplica por 100 (pois "por cento" se traduz em "dividido por 100", por isso se multiplica por 100 para compensar, ou seja, ou usa 0,6 ou usa 60%... é a mesma coisa) Por aí vai... Adendo: sobre os vetores... não se preocupe. Primeiro arrume o código para rodar lisinho do jeito que está, depois para para alterar para vetores.
  8. @alyson23, esqueça o gráfico.. faça apenas o que está sendo pedido após: Poste o que já conseguiu fazer e em qual parte está com dúvidas. (Lembrando para ignorar o gráfico.)
  9. Qual a linguagem de programação? Qual problema deveria utilizar para implementar e rodar o código?
  10. @dilucq, tente transformar o problema maior em um problema menor... Por exemplo: em vez de exibir todos os nomes dos maiores, exiba apenas qual a maior nota e quantas pessoas também tiveram ela. Ex.: Quantidade de notas: 10 Notas informadas: 6, 7, 6, 7, 8, 4, 8, 8, 5, 7 Exemplo de resultado: "A maior nota foi 8. Do total de 10 pessoas, 3 tiveram essa nota". Não vai precisar de vetores... só uma lógica para saber contar quantas pessoas empataram.
  11. Qual dificuldade? Mas vamos lá... a quantidade seria basicamente uma soma... só que seria de um em um (devido ao contexto). Ex.: se (idade < 5) então menos5 <- menos5 + 1 Adendo: teu algoritmo tem pequenos outros probleminhas, mas aí você vai testando e tentando entender o que está errado... Após tenta corrigir. Adianto um ponto: essa variável menos5, por exemplo, deve ser inicializada com 0, ou seja, quando eventualmente uma idade for menor que 5, vai ficar "0 + 1", que dá "1"... depois "1 + 1", que dá "2" etc. DICA GERAL: Não tente fazer tudo de uma vez só. A sugestão é inserindo um "tópico" de cada vez. Por exemplo... se decidir começar pelo "menos de 5 anos". algoritmo "teste-66" var idade, menos5: inteiro cont: inteiro inicio cont <- 0 menos5 <- 0 enquanto (cont < 6) faca cont <- cont + 1 escreval("--------------------------------------- ") escreva ("Digite a idade da ", cont:1, "º pessoa: ") leia(idade) se (idade < 5) então menos5 <- menos5 + 1 fimse fimEnquanto escreval("--------------------------------------- ") escreval("Quantidade de pessoas que tem menos de 5 anos: ", menos5:1) fimAlgoritmo Veja: para chegar nesse código, eu testei o programa umas 4 vezes... imagine se tivesse tudo junto? Daí, supondo que está "tudo mais ou menos certo", inseriria outro "tópico" qualquer... sei lá, o dá média. Focaria nos teste da média... até ficar redondo... ao mesmo tempo que cuida para não bagunçar o que já está feito. Por que isso? Se algo der errado ao inserir algo novo, terá uma boa referência que o problema está especificamente naquilo que inseriu novou, ou seja, "se antes estava ok, e agora deu problema... tudo indica que foi aquilo novo que bagunçou"... aí fica mais fácil para focar em achar o problema e corrigir. RESUMINDO: Sugiro pegar o código acima como referência. Tenta adicionar o "tópico" da média. Para facilitar os testes. Insira números repetidos.. ex.: só 4. Daí, a média tem que dá 4. (Faça inicialmente faça testes simples.) No aguardo. Adendo 2: Como sempre vai entrar no laço de repetição, poderia utilizar repita. Ex.: algoritmo "teste-66" var idade, menos5: inteiro cont: inteiro inicio cont <- 0 menos5 <- 0 repita cont <- cont + 1 escreval("--------------------------------------- ") escreva ("Digite a idade da ", cont:1, "º pessoa: ") leia(idade) se (idade < 5) então menos5 <- menos5 + 1 fimse ate cont >= 6 escreval("--------------------------------------- ") escreval("Quantidade de pessoas que tem menos de 5 anos: ", menos5:1) fimAlgoritmo Veja... como "eu teria uma noção de que antes de mudar de enquanto para repita estava funcionando, eu foquei apenas em mudar isso... se parou de funcionar, comparo com o código que tinha antes... ou simplesmente desfaço tudo... (Aí vai do teu controle de backup ou gerenciamento do Ctrl+Z.). Se precisa ou prefere enquanto, não tem problema... foi só para exemplificar.
  12. @dilucq, para armazenar várias "maiores notas" e vários "nomes de alunos com a maior nota" você poderia utilizar vetores... Já te adianto que não precisa de um vetor para as maiores notas, afinal sempre será uma nota só (seria uma redundância desnecessária)... daí, precisaria ir só gerenciando os nomes dos alunos que tem essa maior nota..., ou seja: se a maior nota fora 9, todos os alunos com a nota 9 estariam na lista de nomes. Basicamente seria isso: utilizar um vetor para armazenar os nomes. Daí precisa criar um algoritmo para gerenciar essa "lista de nomes". Adendo: utilizar o conceito de "listas" seria ainda melhor, mas para mexer com listas, precisaria antes dominar mais sobre vetores. Uma lista seria basicamente um vetor, só que contendo uma lógica na embutida e "automatizada". (Como inserir elementos, remover, limpar, controle de quantidade etc. Com vetores puro, precisa tratar tudo isso manualmente... mas não seria nada de outro mundo... seria e testando, entendendo e ajustando ao poucos.)
  13. Já ouviu falar no conceito de flags? Vou tentar explicar por um exemplo: repita escreva("Insira o email: ") leia(usuario[i].email) emailJaCadastrado <- FALSO para j de 0 ate i-1 faca se (usuario[j].email = usuario[i].email) então escreval("Email já está em uso por outro usuário") escreval("Insira um e-mail diferente") emailJaCadastrado <- VERDADEIRO fimSe fimPara ate não emailJaCastrado Tente entender a lógica acima... vá fazendo os ajustes necessários... vá pesquisando sobre flags e tentando se aprofundar no que poderia ser o algoritmo acima.. por aí vai. Tente ficar deduzindo o que poderia ser cada uma das linhas que eventualmente ainda não entende... Por exemplo: "como assim atribuído a palavra FALSO a variável? Ué?". Uma hora iria descobrir que seria do tipo lógico (caso ainda não tinha conhecido)... "E aquele não ali"... vá se virando... Outro exemplo: aí no até, seria outra variável ou está escrito errado?
  14. Perfeito. Incluir também o 0. Fica implícito que é de 24 horas. Nesse algoritmo não tem um conceito de "contador". Da mesma forma que está implícito que é "sistema de 24 horas", também está implícito que os valores sempre devem ser digitados de modo correto, ou seja, supostamente o algoritmo não deve se preocupar com "regras de negócios", como as validações das entradas de dados. Resumindo: Seria verificado isso se no enunciado estivesse estipulando. Ou, por exemplo, caso queira "ir além"... para treinar ou algo do tipo... Seguindo o que já foi discutido, acho que o código poderia ficar com algo assim: algoritmo "Bom dia, boa tarde, boa noite" var nome, saudacao: caractere hora: inteiro inicio escrevaL("Insira seu nome: ") leia(nome) escrevaL("Que horas são? (Sem minutos)") leia (hora) se (hora >= 0) e (hora < 12) então saudacao <- "Bom dia, " senao se (hora >= 12) E (hora < 18) então saudacao <- "Boa tarde, " senao se (hora >= 18) e (hora <= 23) então saudacao <- "Boa noite, " fimSe fimSe fimSe escrevaL(saudacao, nome) fimalgoritmo ou assim: algoritmo "Bom dia, boa tarde, boa noite" var nome, saudacao: caractere hora: inteiro inicio escrevaL("Insira seu nome: ") leia(nome) escrevaL("Que horas são? (Sem minutos)") leia (hora) se (hora >= 0) e (hora < 12) então saudacao <- "Bom dia" senao se (hora >= 12) E (hora < 18) então saudacao <- "Boa tarde" senao se (hora >= 18) e (hora <= 23) então saudacao <- "Boa noite" fimSe fimSe fimSe escrevaL(saudacao, ", ", nome) fimalgoritmo
  15. @Vicaa, conseguiu evoluir com o teu código? Poste o que já conseguiu fazer e onde está com dúvidas.
  16. Se foi uma pergunta, não, não seria... tua tentativa foi boa, mas não me parece correta ainda. Você está indo bem! 1. como diríamos aqui na Bahia: "pai, adiante teu lado! Utilize a parada de gerar números". (Falo mais abaixo.) 2. você testou o código que você implementou? (Lembre-se do item 1 para ajudar nessa questão!). (Falo mais abaixo também.) Sobre: Em relação aos materiais eu não sei ajudar muito, rs. Aguardar que alguém indique algum... Pelo que observei até aqui, você já tem alguma bagagem, precisaria ter só mais um pouco de atenção. Veja: Ou seja: eu já te adiantei que existia um problema, correto? Mas qual era o problema? Não citei de proposito... para exercitar. Já fica outra dica: PRIMEIRO se entender o problema, DEPOIS se procurar uma solução. Parece óbvio né? Mas o tempo todo, no dia a dia, ocorre o contrário. Assimile isso: como nós vamos encontrar uma solução para um problema do qual não sabemos qual é o problema? Foque inicialmente no entendimento do problema!!! Isso é para o dia a dia mesmo... claro que na prática querer se aprofundar tanto... vai do contexto. Vamos testar o teu código. Inseri 5 como a quantidade e preenchi (na mão, já que você se recusou a segui minha dica de gerar números aleatórios .): Dá uma olhada lá no enunciado. Tem isso: Só aqui, no teu novo código, já criaria uma inconformidade... Percebe? Mas não se preocupe. Isso é comum (não confundi com normal, que significa outra coisa). Vamos a cada dia desenvolvimento isso: ATENÇÃO AO QUE FOI PROPOSTO. Quando vamos mais amadurecendo, vamos percebendo que a falta de atenção é beeem comum mesmo. Em fim... Vamos lá... vou tomar meu código como base. algoritmo "Gerenciador de bovinos" // Disciplina : // Professor : // Autor : Jef2022 //João cria bovinos de duas raças (1 e 2) em sua fazenda. Devido a uma //necessidade gerencial, ele deseja um algoritmo para calcular: // * a quantidade de bois de cada raça; // * a média de peso de cada raça; // * o boi mais pesado e sua raça; // * e, o boi mais leve e a sua raça. //Para o funcionamento do algoritmo serão informados os seguintes dados, pelo //gerente da fazenda: //Primeiramente, e somente uma vez, a quantidade total de bois; //A raça (1 ou 2) e o peso de cada boi. //Diante do enunciado, forneça um algoritmo que atenda ao proposto e forneça //os resultados esperados. //Primeiramente, e somente uma vez, a quantidade total de bois; //A raça (1 ou 2) e o peso de cada boi. //Diante do enunciado, forneça um algoritmo que atenda ao proposto e forneça //os resultados esperados. var qtdTotal: inteiro qtdRaca1, qtdRaca2: inteiro raca: inteiro i: inteiro inicio escreva ("Quantidade de bovinos: ") leia(qtdTotal) escrevaL("") escrevaL("") escrevaL("Informe a raça e o peso de cada boi") para i de 1 ate qtdTotal faca escrevaL("") escrevaL("Dados do bovino ", i:1) escreva ("Raça (1 ou 2): ") //leia(raca) raca <- RandI(2) + 1 escreval(raca:1) se (raca = 1) então qtdRaca1 <- qtdRaca1+1 fimSe se (raca = 2) então qtdRaca2 <- qtdRaca2+2 fimSe fimPara fimAlgoritmo Agora para implementar o: Deixei o código assim: algoritmo "Gerenciador de bovinos" // Disciplina : // Professor : // Autor : Jef2022 //João cria bovinos de duas raças (1 e 2) em sua fazenda. Devido a uma //necessidade gerencial, ele deseja um algoritmo para calcular: // * a quantidade de bois de cada raça; // * a média de peso de cada raça; // * o boi mais pesado e sua raça; // * e, o boi mais leve e a sua raça. //Para o funcionamento do algoritmo serão informados os seguintes dados, pelo //gerente da fazenda: //Primeiramente, e somente uma vez, a quantidade total de bois; //A raça (1 ou 2) e o peso de cada boi. //Diante do enunciado, forneça um algoritmo que atenda ao proposto e forneça //os resultados esperados. //Primeiramente, e somente uma vez, a quantidade total de bois; //A raça (1 ou 2) e o peso de cada boi. //Diante do enunciado, forneça um algoritmo que atenda ao proposto e forneça //os resultados esperados. var qtdTotal: inteiro qtdRaca1, qtdRaca2: inteiro raca: inteiro i: inteiro inicio escreva ("Quantidade de bovinos: ") leia(qtdTotal) escrevaL("") escrevaL("") escrevaL("Informe a raça e o peso de cada boi") para i de 1 ate qtdTotal faca escrevaL("") escrevaL("Dados do bovino ", i:1) escreva ("Raça (1 ou 2): ") //leia(raca) raca <- RandI(2) + 1 escreval(raca:1) se (raca = 1) então qtdRaca1 <- qtdRaca1+1 fimSe se (raca = 2) então qtdRaca2 <- qtdRaca2+2 fimSe fimPara escrevaL() escrevaL("Quantidade de bovinos da raça 1: ", qtdRaca1:1) escrevaL("Quantidade de bovinos da raça 2: ", qtdRaca2:1) fimAlgoritmo (Só adicionei essas três último linhas antes do fimAlgoritmo e após o fimPara. Resultado de teste: Volta a pergunta: o que está errado aqui? Oras! se adicionei 3 (três) bovinos, como o resultado deu 5 (cinco) no total? Retomando: é focar no problema!!! (Que seria o resultado do teste.) Depois de ter entendido o problema (que foi reduzido apenas a uma coisinha, já que estou usando a [1] dica de implementar apenas uma pequena coisa em vez do programa todo de uma vez)... Como resolvo esse pepininho? Hum! depois de testar algumas vezes (que é bem rápido, já que eu já [2] implementei o recurso de gerar as respostas), vi que o resultado da raça 2 está saindo com o valor duplicado!! Por que será? Oh! Lá! Por que a raça 2 teria peso 2? Não faz sentido, né?. Simplesmente alterar para +1, ou seja, cada vez que for a raça 2, vou lá a "adiciono mais 1 na quantidade de raça 2". Pronto!!! Identificou e corrigiu o bug! Novo teste após corrigido: Agora bateu! Esse problema em específico estaria resolvido! RESUMINDO: Pegue esse código abaixo: algoritmo "Gerenciador de bovinos" // Disciplina : // Professor : // Autor : Jef2022 //João cria bovinos de duas raças (1 e 2) em sua fazenda. Devido a uma //necessidade gerencial, ele deseja um algoritmo para calcular: // * a quantidade de bois de cada raça; [Implementado] // * a média de peso de cada raça; // * o boi mais pesado e sua raça; // * e, o boi mais leve e a sua raça. //Para o funcionamento do algoritmo serão informados os seguintes dados, pelo //gerente da fazenda: //Primeiramente, e somente uma vez, a quantidade total de bois; //A raça (1 ou 2) e o peso de cada boi. //Diante do enunciado, forneça um algoritmo que atenda ao proposto e forneça //os resultados esperados. //Primeiramente, e somente uma vez, a quantidade total de bois; //A raça (1 ou 2) e o peso de cada boi. //Diante do enunciado, forneça um algoritmo que atenda ao proposto e forneça //os resultados esperados. var qtdTotal: inteiro qtdRaca1, qtdRaca2: inteiro raca: inteiro i: inteiro inicio escreva ("Quantidade de bovinos: ") leia(qtdTotal) escrevaL("") escrevaL("") escrevaL("Informe a raça e o peso de cada boi") para i de 1 ate qtdTotal faca escrevaL("") escrevaL("Dados do bovino ", i:1) escreva ("Raça (1 ou 2): ") //leia(raca) raca <- RandI(2) + 1 escreval(raca:1) se (raca = 1) então qtdRaca1 <- qtdRaca1+1 fimSe se (raca = 2) então qtdRaca2 <- qtdRaca2+1 fimSe fimPara escrevaL() escrevaL("Quantidade de bovinos da raça 1: ", qtdRaca1:1) escrevaL("Quantidade de bovinos da raça 2: ", qtdRaca2:1) fimAlgoritmo E implemente o próximo passo: Pegue o segundo! O da média. DAQUI EM DIANTE JÁ TEM MAIS SPOILER Qual seria agora o novo problema? Diríamos de cara por aqui: "Venha cá, meu rei... o que raios é uma média?" Você sabe? Tem certeza? Lembre-se: foque no problema. Não tente supor!!! Entender de fato... Ao pesquisar um pouco, verás que tem uma várias tipos de médias... mas qual média é essa que esse cidadão quer? Uma resposta seria: "Sei não, mermão. Quem souber morre". kkkkkkkkkk Mas falando sério, pelo mais comum do dia a dia, e pelo contexto do problema, deve ser uma tal de "Média Aritmética Simples". Se não lembra dela, basta pesquisar também! Mas é isso: se atente ao problema! Não adiantaria nada fazer com outro tipo de média sendo que ele (quem propôs o enunciado) quer. (O que adiantaria trazer um hambúrguer super bem feito se o cliente pediu um cachorro-quente?) Vou tentar adiantar o lado: Se quer a média de peso (o problema), então fica implícito que vou ter que de alguma forma ter acesso aos pesos: algoritmo "Gerenciador de bovinos" // Disciplina : // Professor : // Autor : Jef2022 //João cria bovinos de duas raças (1 e 2) em sua fazenda. Devido a uma //necessidade gerencial, ele deseja um algoritmo para calcular: // * a quantidade de bois de cada raça; // * a média de peso de cada raça; // * o boi mais pesado e sua raça; // * e, o boi mais leve e a sua raça. //Para o funcionamento do algoritmo serão informados os seguintes dados, pelo //gerente da fazenda: //Primeiramente, e somente uma vez, a quantidade total de bois; //A raça (1 ou 2) e o peso de cada boi. //Diante do enunciado, forneça um algoritmo que atenda ao proposto e forneça //os resultados esperados. //Primeiramente, e somente uma vez, a quantidade total de bois; //A raça (1 ou 2) e o peso de cada boi. //Diante do enunciado, forneça um algoritmo que atenda ao proposto e forneça //os resultados esperados. var qtdTotal: inteiro qtdRaca1, qtdRaca2: inteiro raca: inteiro peso: real i: inteiro inicio escreva ("Quantidade de bovinos: ") leia(qtdTotal) escrevaL("") escrevaL("") escrevaL("Informe a raça e o peso de cada boi") para i de 1 ate qtdTotal faca escrevaL("") escrevaL("Dados do bovino ", i:1) escreva ("Raça (1 ou 2): ") //leia(raca) raca <- RandI(2) + 1 escreval(raca:1) escreva ("Peso (em KG): ") //leia(peso) peso <- RandI(200) + 400 //de 400 a 600kg escreval(peso:1) se (raca = 1) então qtdRaca1 <- qtdRaca1+1 fimSe se (raca = 2) então qtdRaca2 <- qtdRaca2+1 fimSe fimPara escrevaL() escrevaL("Quantidade de bovinos da raça 1: ", qtdRaca1:1) escrevaL("Quantidade de bovinos da raça 2: ", qtdRaca2:1) fimAlgoritmo Observe que tudo é/deve ser simples e coerente. Como quero ler o peso, e já sabia como ler a raça, basicamente copiei um e adaptei para o outro... simples assim. Esse código acima só mudou isso: passei a ler o peso de cada bovino. Se for seguir minha sugestão, sua missão seria: - Copie e cole esse código acima. Sem alterar nada, teste o funcionamento e entenda cada linha de código. Se tiver dúvidas sobre qualquer coisa, tente entender... se persistir, pode perguntar aqui no tópico. - Pesquise na internet "como se calcular uma média aritmética simples". Se já sabe, não tem problema, pesquise mesmo assim. Absorva mais e ao ponto de saber calcular de cabeça ou no papel. - Depois de entender sobre a tal média, só depois, pesquise "Como calcular uma média aritmética no VisualG", ou algo do tipo... Isso é importante. Mais um vez: o que vai adiantar calcular tentar calcular uma média no VisualG se eventualmente nem saber o que é uma média? Mesmo que acerte uma resposta correta, seria por sorte! Mais pra frente verás que tem coisas que você não precisa dominar, mas aqui sim! Aprender sobre médias faz parte do exercício. O código é só um pretexto. - Implemente a parte do cálculo das média. - Implemente a parte que exibe essas médias que foram calculadas. ADENDO: não tente fazer nada mais além disso. Foque apenas em uma coisa. A anterior (da quantidade) já foi resolvida. Agora foca nesse próximo passo. ADENDO 2: claro que se identificar algum probleminha em alguma outra parte, já para para resolver, mas aí vai passar a forca APENAS nesse probleminha... de modo que tudo fica liso.. rodando como desejado!!! Mas sempre deve ficar assim... é só ir fazendo aos poucos. No aguardo.
  17. @Jef2022, esse código que você postou tem dedo meu aí, hem?!. . Mas não tem problema... o importante é assimilar/aprender. Adendo inicial: removi uma crase do enunciando. Não existe crase antes de artigo. Vamos lá... abaixo fiz apenas 2 coisas: 1. inseri o enunciado no código. Ajuda a organizar e facilita a consulta na hora de implementar; 2. inseri um código para gerar automaticamente os valores para as raças. Assim, facilitando os testes e ajudando a evitar a LER . Esse conceito pode ser aplicado onde achar necessário!!! (Por exemplo: na própria quantidade... sei lá, de 4 a 10... Por aí vai). algoritmo "Gerenciador de bovinos" // Disciplina : // Professor : // Autor : Jef2022 //João cria bovinos de duas raças (1 e 2) em sua fazenda. Devido a uma //necessidade gerencial, ele deseja um algoritmo para calcular: // * a quantidade de bois de cada raça; // * a média de peso de cada raça; // * o boi mais pesado e sua raça; // * e, o boi mais leve e a sua raça. //Para o funcionamento do algoritmo serão informados os seguintes dados, pelo //gerente da fazenda: //Primeiramente, e somente uma vez, a quantidade total de bois; //A raça (1 ou 2) e o peso de cada boi. //Diante do enunciado, forneça um algoritmo que atenda ao proposto e forneça //os resultados esperados. //Primeiramente, e somente uma vez, a quantidade total de bois; //A raça (1 ou 2) e o peso de cada boi. //Diante do enunciado, forneça um algoritmo que atenda ao proposto e forneça //os resultados esperados. var qtdTotal: inteiro qtdRaca1, qtdRaca2: inteiro raca: inteiro i: inteiro inicio escreva ("Quantidade de bovinos: ") leia(qtdTotal) escrevaL("") escrevaL("") escrevaL("Informe a raça e o peso de cada boi") para i de 1 ate qtdTotal faca escrevaL("") escrevaL("Dados do bovino ", i:1) escreva ("Raça (1 ou 2): ") //leia(raca) raca <- RandI(2) + 1 escreval(raca:1) se (raca = 1) então qtdRaca1 <- qtdRaca1+1 fimSe se (raca = 2) então qtdRaca2 <- qtdRaca2+2 fimSe fimPara fimAlgoritmo Exemplo: Ou seja: ao informar a quantidade, o programa já gera as respostas (não precisa perder tempo redigitando a cada teste)... isso ajuda também na variação do resultados. Depois de pronto você tira (ou não). Antes de avançarmos, segue uma dica bacana: nunca tente fazer tudo de uma vez só e tente deixar sempre teu código rodável e sem erros. Seguindo a máxima supracitada, avançamos: Temos: // * a quantidade de bois de cada raça; // * a média de peso de cada raça; // * o boi mais pesado e sua raça; // * e, o boi mais leve e a sua raça. Qual quer implementa? Precisa entender mais ou menos todo o contexto do problema... Então, desses acima, acho que o mais simples seria o primeiro. Daí vai lá e implementaria ele. Algo como: ... se (raca = 2) então qtdRaca2 <- qtdRaca2+2 fimSe fimPara escrevaL() escrevaL("Quantidade de bovinos da raça 1: ", qtdRaca1) escrevaL("Quantidade de bovinos da raça 2: ", qtdRaca2) A quantidade já estaria sendo sendo calculada, né? Faltou só exibir... Creio que só essas duas linhas acima basta. Testando: Opa! Tem algo errado aí. Conseguiu ver? Daqui em diante é contigo!!! Veja o que está errado e corrija. Finalize esse "tópico" até que fique tudo mais ou menos certo...Entenda erro no código acima (espero que já tinha identificado) OU ele se originou do que já tinha no código OU é em algo que foi implementando agora... Onde está o erro? AGORA PERCERBA (feat Prof. Procópio): eu só inseri duas linhas e já foi identificado um problema, agora imagine se tentasse fazer tudo de uma só vez??? Vai lá e corrige. Testa novamente! Estando tudo certo, implementa algo novo!!! Pode ir também ir ajustando coisas "já prontas".. mas os ajustes tendem a ser bem menores fazendo aos poucos e evoluindo... (em detrimento de tentar fazer tudo de uma vez e testar de uma vez só).. #confia No aguardo.
  18. @Ana Caroline Martins, poste o código que já fez e onde está com dúvidas.
  19. Está repetindo código desnecessariamente: Só apagar essas três linhas e deixa apenas uma após os se.
  20. @Igor França Cintra, poste o que já conseguiu fazer e onde está com dúvidas. Segue um exemplo de esboço inicial utilizando vetores: algoritmo "Correção de provas" // Disciplina : aaa // Professor : bbb // Descrição : Algoritmo para coletar dados sobre provas e efetuar correção por gabarito // Autor(a) : ccc // Data atual : 09/09/2022 //Fazer um algoritmo para corrigir provas de múltipla escolha de uma turma de //80 alunos. Cada prova tem 10 questões, sendo que cada questão vale um ponto. //Além da leitura dos dados dos alunos (nome e respostas das questões), deve //ser lido o gabarito para a correção da prova. O algoritmo deverá calcular e //imprimir a maior nota obtida, e a porcentagem de alunos aprovados, sabendo-se //que a nota mínima de aprovação é 7,0. Utilizar matriz para armazenar as //respostas dos 80 alunos. var gabarito : vetor [1..10] de caractere inicio escrevaL("PREENCHA O GABARITO") escrevaL() fimAlgoritmo A dica geral seria: sempre deixe seu código rodando corretamente. Sem erros. Por exemplo: poderia fazer o programa preencher o gabarito... testa e vê se está dando certo... só após, tenta implementar outra coisa, como ler os nomes... vai sempre testando... NUNCA tente fazer tudo de uma vez e depois testar!!! No aguardo.
  21. Qual o enunciado do problema e seria para ser feito em qual linguagem de programação?
  22. Pois sem as aspas duplas o VisualG entende que sim seria um nome de variável (em vez de um texto a ser comparado)... ou seja, era para dar uma mensagem do tipo: Mas como está dentro de um se, apresenta resultados estranhos!!! Vá se acostumando... kkkkkkkkkkkkkk O ajuste é bem simples... e uma forma mais elegante seria assim: se (Maiusc(P) = "SIM") então escreva ("Praticar esportes é uma ótima maneira de se exercitar e se divertir ao mesmo tempo. ") senao escreva ("Você pode ou ir a academia ou encontrar algum outro jeito de se exercitar. ") fimSe Observação: o VisualG NÃO É case-sensitive para este caso. Logo, não precisa fazer como sugerido acima, mas pode deixar se quiser. Essa forma acima seria apenas uma forma mais didática, pois na maioria das outras linguagens do mercado, existe diferença entre maiúsculo e minúsculo (são case-sensitive)... Por exemplo: "sim" seria diferente de "Sim"... teria que ter exatamente "Sim" para entrar no se. Ah! observe que pode utilizar "Escreva" ou "esCREva"... tanto faz... . Mas é a mesma coisa... é bom ir se acostumando com apenas um padrão... eu particularmente prefiro iniciando em minúsculo para esses comandos... por aí vai.
  23. @Deivid Bittencourt, basicamente você poderia colocar dentro de um procedimento aquilo que você quer que fique no procedimento. Exemplo: procedimento exibirResultadoDesempenho() inicio se (pontos = 100) então escreval(" Seu desempenho no quiz foi *Excelente*") senao se (pontos <= 99) e (pontos >= 75) então escreval(" Seu desempenho no quiz foi *Ótimo*") senao se (pontos <= 74) e (pontos >= 50) então escreval(" Seu desempenho no quiz foi *Bom*") senao se (pontos <= 49) e (pontos >= 25) então escreval(" Seu desempenho no quiz foi *Regular*") senao escreval(" Seu desempenho no quiz foi *Péssimo*") fimse fimse fimse fimse fimProcedimento Só chamar o procedimento quando necessário: Como conceitualmente as variáveis precisam ser enviadas por parâmetro (em vez de utilizar as variáveis globais), só ajustar. Exemplo: procedimento exibirResultadoDesempenho(p : inteiro) inicio se (p = 100) então escreval(" Seu desempenho no quiz foi *Excelente*") senao se (p <= 99) e (p >= 75) então escreval(" Seu desempenho no quiz foi *Ótimo*") senao se (p <= 74) e (p >= 50) então escreval(" Seu desempenho no quiz foi *Bom*") senao se (p <= 49) e (p >= 25) então escreval(" Seu desempenho no quiz foi *Regular*") senao escreval(" Seu desempenho no quiz foi *Péssimo*") fimse fimse fimse fimse fimProcedimento Daí, só chamar: exibirResultadoDesempenho(pontos) Ou seja, o valor da variável global pontos será enviada para o procedimento através da variável local p. ADENDO: é possível utilizar a mesma nomenclatura para variável do parâmetro. Exemplo: procedimento exibirResultadoDesempenho(pontos : inteiro) inicio se (pontos = 100) então escreval(" Seu desempenho no quiz foi *Excelente*") senao se (pontos <= 99) e (pontos >= 75) então escreval(" Seu desempenho no quiz foi *Ótimo*") senao se (pontos <= 74) e (pontos >= 50) então escreval(" Seu desempenho no quiz foi *Bom*") senao se (pontos <= 49) e (pontos >= 25) então escreval(" Seu desempenho no quiz foi *Regular*") senao escreval(" Seu desempenho no quiz foi *Péssimo*") fimse fimse fimse fimse fimProcedimento Ou seja, o valor da variável global pontos será enviada para o procedimento através da variável local pontos. É isso mesmo: serão duas variáveis distintas, só que ambas com o mesmo nome. ADENDO 2: você está repetindo a mesma frase em casa se. Para treinar, deixe as estruturas de seleções apenas para verificar a parte final ("Excelente", "Ótimo", "Bom" etc.), e monte a frase final no fim. Algo como: escreval(" Seu desempenho no Quiz foi *", resultado, "*") ADENDO 3: dá para simplificar as expressões. Veja: se não é igual a 100 (por sinal, mude para >= 100), SEMPRE será menor ou igual a 99 (por sinal, seria melhor utilizar menor que 100), ou seja, seria uma tautologia. Algo assim: se (pontos >= 100) então escreval(" Seu desempenho no quiz foi *Excelente*") senao se (pontos >= 75) então escreval(" Seu desempenho no quiz foi *Ótimo*") . . . O senao é a negação da expressão anterior, "se não é maior ou igual a 100, então é menor que 100"... inserir na nova expressão seria uma redundância desnecessária.
  24. No meu Windows 10 está assim: Especificações: Edição Windows 10 Pro Versão 21H2 Instalado em ‎12/‎05/‎2021 Compilação do SO 19044.1826 Experiência Windows Feature Experience Pack 120.2212.4180.0 [pt-BR] ADENDO: Teste logando com outro usuário no Windows... caso só tenha um, crie um novo.

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!