Ir ao conteúdo

Simon Viegas

Membro VIP
  • Posts

    3.940
  • Cadastrado em

Tudo que Simon Viegas postou

  1. @Ryan1010, poste o texto do código que conseguiu fazer e em qual parte está com dúvida.
  2. @Thalis Eduardo, a pergunta central seria: para que quer converter esse código? Se o exercício for justamente para converter esse código, beleza. Seria estranho, mas tudo bem. Se o código seria um algoritmo que poderia servir para um exercício que foi proposto para ser feito em VisualG, sugiro que esqueça o código... simplesmente crio um código em VisualG do zero. Não tem porque pegar um "código pronto".
  3. @Iago1234, esse exercício não tem qualquer relação com o tipo de dados que está sendo armazeno no vetor, mas sim apenas em relação às coordenadas deste (do vetor). Não importa se começa com 0 ou com 1, ou qualquer outro valor válido... Iniciar com um ou outro estaria relacionado a outros critérios e padrões do contexto... por exemplo: para mim, no VisualG, os vetores normalmente deveriam começar com 1, pois era meio que comum começar os vetores com 1 no Pascal ("pai do VisualG"). Ao mesmo tempo, na grande e absoluta maioria das linguagens de programação do mercado, nem existe a opção de definir com qual valor começar.. simplesmente começam do 0 e pronto... daí alguns acham que deveriam começar com 0.. para ir se acostumando... mas... tanto faz! Beleza... mas como fica em relação ao enunciado. Veja: É só ir lá e fazer isso. Exemplo: algoritmo "Exibir os nomes das posições pares do vetor" var nomes :vetor [1..15] de caractere i :inteiro inicio ALEATORIO ON //comando para gerar valores aleatórios LISTA "Nomes" //gerar valores aleatórios a partir de uma lista para i de 1 ate 15 faca escreva ("Nome ", i:2, ": ") leia(nomes[i]) fimpara ALEATORIO OFF //desativa o recurso escreval("") para i de 1 ate 15 faca se (i mod 2 = 0) entao //se a posição for par escreval("Posicao ", i:2, ": ", nomes[i]) fimSe fimPara fimAlgoritmo Desse modo, o próprio algoritmo já identifica a paridade do índice. Mas veja.. a lógica do algoritmo depende muito do contexto, como por exemplo o que está estuando no momento. Não é só o resultado final que importa, mas sim a forma que usou para chegar ao resultado. Caso ache que é válido "já saber que o índice começa com ímpar e que a paridade varia de 2 em 2", poderia fazer como sugerido anteriormente. Exemplo: Se o vetor começa com um índice 1, que é ímpar: escreval("") para i de 2 ate 15 passo 2 faca escreval("Posicao ", i:2, ": ", nomes[i]) fimPara Se o vetor começa com um índice 0, que é par: escreval("") para i de 0 ate 14 passo 2 faca escreval("Posicao ", i:2, ": ", nomes[i]) fimPara Adendo: veja que o vetor poderia começar com outros valores... não apenas 0 e 1...
  4. A variável que "acumula" e a que "obtém os dados da família" deveria ser diferente, não?
  5. Outro repositório: https://sourceforge.net/projects/visualg30/files/ Para a 3.0.6.5, baixar a versão VISUALG3_REV60.rar. Link direto: https://sourceforge.net/projects/visualg30/files/VISUALG3_REV60.rar/download
  6. Segue um exemplo de esboço: algoritmo "Aproveitamento do Aluno" var n1, n2, n3, m: Real inicio escreva ("Primeira Nota: ") leia(n1) escreva ("Segunda Nota: ") leia(n2) escreva ("Terceira Nota: ") leia(n3) escreval("------------------") m <- (n1+n2+n3)/3 escreval ("Média: ", M:2:1) se ((m >= 0) E (M <6)) entao escreval ("APROVEITAMENTO: A") senao se ((m >= 6) E (M < 8)) entao escreval ("APROVEITAMENTO: X") fimSe fimSe fimAlgoritmo
  7. @Vktcs18, a resolução de um problema vai depender da definição do problema em si. Esse seria o enunciado completo? Tem mais alguma informação? Está meio confuso... por que apenas essa "duas opções em específico"? O que seria "juntar"? Pelo suposto enunciado citado acima, basicamente poderia "verificar" o valores do sexo e da idade. Ex.: algoritmo "ID" var nome, sexo: caractere idade: inteiro inicio escreva ("Insira o nome : ") leia(nome) escreva ("Insira a idade: ") leia(idade) escreva ("Sexo - Escreva M para masculino e F para feminino") leia(sexo) se ((idade >= 18) E (sexo = "M")) entao escreval("Adulta Masculina") fimSe se ((idade < 18) E (sexo = "F")) entao escreval("Menor Feminina") fimSe fimAlgoritmo
  8. @Luccas Fernando, seu código aparentemente não tem erro de sintaxe... talvez apenas incompleto. Qual versão do VisualG está utilizando. Baixe novamente... sugiro utilizar a verão 3.6.0.5. Exemplo de fonte: https://sourceforge.net/projects/visualg30/files/ Baixe o VISUALG3_REV60.rar algoritmo "Exercício com BubbleSort" var val: vetor [0..49] de inteiro i, j, k, op, ops, vals, orn, cond, ret: inteiro soParaReceberORetorno: inteiro funcao bubblesort(): inteiro var aux, indi, indj: inteiro inicio para indi de 0 ate i faca para indj de (i - 1) ate indi passo (-1) faca se (val[indj] < val[indj-1]) entao aux <- val[indj] val[indj] <- val[indj-1] val[indj-1] <- aux fimse fimpara fimpara retorne 0 fimfuncao inicio soParaReceberORetorno <- bubblesort() //é preciso de algum modo receber o retorno da função fimAlgoritmo Então, faz mais sentido: - preencher o vetor com dados; (sugiro deixar valores fixos no próprio código) - exibir na tela o vetor - chamar a função para ordenar o vetor - exibir novamente o vetor (para ver se ficou ordenado) Adendo: Devido a esse erro de lógica (que seria diferente de erro de sintaxe), o VisuaG nem chega ao entao... logo, nem era para dar o erro informado no tópico. O código poderia está assim, quem não daria erro algum. algoritmo "Exercício com BubbleSort" var val: vetor [0..49] de inteiro i, j, k, op, ops, vals, orn, cond, ret: inteiro soParaReceberORetorno: inteiro funcao bubblesort(): inteiro var aux, indi, indj: inteiro inicio para indi de 0 ate i faca escreval("1") para indj de (i - 1) ate indi passo (-1) faca escreval("2") se (val[indj] < val[indj-1]) blablabla escreval("3") aux <- val[indj] val[indj] <- val[indj-1] val[indj-1] <- aux fimse fimpara fimpara retorne 0 fimfuncao inicio soParaReceberORetorno <- bubblesort() //é preciso de algum modo receber o retorno da função fimAlgoritmo
  9. @Gustavo Vieira2910., em vez de "traduzir", crie um novo algoritmo do zero em Portugol Studio. Poste o que já conseguiu fazer e em qual parte está com dúvidas.
  10. @Joaquim teixeira, poste o que já conseguiu fazer e em qual parte está com dúvidas.
  11. Faz o seguinte... antes de tentar corrigir, me diga: por que está aparecendo dois "E"?
  12. @deirozz, por favor: Poste o enunciado completo da questão; Poste todo o código em forma de texto. Clique antes no botão <> que está na barra de ferramentas; Informa em qual parte está com dúvidas.
  13. O título parece uma chamada do Globo Repórter... No corpo da postagem tem apenas um código... não entendi do que se trataria
  14. @Pedrusto, faltou incluir o 40 na conta: Provavelmente: se (IMC >= 40) entao
  15. 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") } }
  16. 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.
  17. @kleverson henrique , simule a execução das operação... e dê o resultado solicitado. Está com dúvida em qual parte?
  18. @kleverson henrique, simule a execução das operação... e dê o resultado solicitado. Está com dúvida em qual parte?
  19. @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.
  20. 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
  21. 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.
  22. @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'')
  23. 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.
  24. @Hydra_, por favor, poste o enunciado completo da questão.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!