-
Posts
3.940 -
Cadastrado em
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que Simon Viegas postou
-
VisualG Atividade do Visualg com vetores
Simon Viegas respondeu ao tópico de Ryan1010 em Programação - iniciantes
@Ryan1010, poste o texto do código que conseguiu fazer e em qual parte está com dúvida. -
Portugol Conversão de c++ para Portugol
Simon Viegas respondeu ao tópico de Thalis Eduardo em Programação - iniciantes
@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". -
VisualG Entender a lógica desse vetor.
Simon Viegas respondeu ao tópico de Iago1234 em Programação - iniciantes
@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... -
VisualG Exercício de algoritmo no VisualG
Simon Viegas respondeu ao tópico de ana caroline 2323 em Programação - iniciantes
A variável que "acumula" e a que "obtém os dados da família" deveria ser diferente, não? -
VisualG Condicional múltipla no VisuAlg
Simon Viegas respondeu ao tópico de LuanaNasc em Programação - iniciantes
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 -
VisualG Erro "Esperava uma expressão do tipo REAL"
Simon Viegas respondeu ao tópico de Leonardo Gross em Programação - iniciantes
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 -
VisualG como juntar a informação do sexo com a idade do individuo?
Simon Viegas respondeu ao tópico de Vktcs18 em Programação - iniciantes
@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 -
Portugol Esperava encontrar ENTAO BubbleSort
Simon Viegas respondeu ao tópico de Luccas Fernando em Programação - iniciantes
@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 -
Portugol Como traduzir código para Portugol Studio
Simon Viegas respondeu ao tópico de Gustavo Vieira2910. em Programação - iniciantes
@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. -
Portugol Como exibir os elementos que possuem maior , menos e igual valor em um vetor?
Simon Viegas respondeu ao tópico de Joaquim teixeira em Programação - iniciantes
@Joaquim teixeira, poste o que já conseguiu fazer e em qual parte está com dúvidas. -
VisualG Numero por extenso: exceções de dezenas ou unidades?
Simon Viegas respondeu ao tópico de Davi Matos em Programação - iniciantes
Faz o seguinte... antes de tentar corrigir, me diga: por que está aparecendo dois "E"? -
@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.
-
VisualG Numero por extenso: exceções de dezenas ou unidades?
Simon Viegas respondeu ao tópico de Davi Matos em Programação - iniciantes
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 -
VisualG "Esperava uma expressão do tipo lógico"
Simon Viegas respondeu ao tópico de Pedrusto em Programação - iniciantes
@Pedrusto, faltou incluir o 40 na conta: Provavelmente: se (IMC >= 40) entao -
Portugol Não sei como resolver essa questão de Repetição Enquanto, Portugol Studio
Simon Viegas respondeu ao tópico de Paulo_Assunção em Programação - iniciantes
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") } } -
Outro Exercício com pilhas
Simon Viegas respondeu ao tópico de kleverson henrique em Programação - iniciantes
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. -
VisualG Dado o algoritmo a seguir, que utiliza ponteiros, informe qual a saída (informa
Simon Viegas respondeu ao tópico de kleverson henrique em Programação - iniciantes
Está com dúvida em qual parte? -
Outro Exercício com fila
Simon Viegas respondeu ao tópico de kleverson henrique em Programação - iniciantes
@kleverson henrique , simule a execução das operação... e dê o resultado solicitado. Está com dúvida em qual parte? -
Outro Exercício com pilhas
Simon Viegas respondeu ao tópico de kleverson henrique em Programação - iniciantes
@kleverson henrique, simule a execução das operação... e dê o resultado solicitado. Está com dúvida em qual parte? -
VisualG Impressão de horário na tela
Simon Viegas respondeu ao tópico de kleverson henrique em Programação - iniciantes
@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. -
VisualG Esperava encontrar então visualg
Simon Viegas respondeu ao tópico de dve em Programação - iniciantes
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 -
VisualG Cálculo de desconto errado nas prestações
Simon Viegas respondeu ao tópico de dve em Programação - iniciantes
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. -
VisualG Visualg não reconhece caracteres:nomes, palavras, frases. porém reconhece número
Simon Viegas respondeu ao tópico de Marcus V Santos em Programação - iniciantes
@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'') -
VisualG Tabela de torneios com vetores, como fazer?
Simon Viegas respondeu ao tópico de Frank Charles Peach em Programação - iniciantes
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. -
VisualG Fila de nomes VisualG
Simon Viegas respondeu ao tópico de Hydra_ em Programação - iniciantes
@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