-
Posts
42 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por GustavoHCS
-
-
Resolveu muito. Entendi o que foi feito, mais ainda o porque do código constantemente falar para definir o contador, mas não entendia como. a eliminação do for e usar apenas o a na de repetição while. Ajudou demais e aprendi muito com estas alterações.
Muito agradecido @Marcelo Calazans.
-
Galera, boa noite, há um desafio que consegui fazer, porém queria ter uma visão mais "light" do código que executasse o mesmo processo...
DesafioFaça a leitura de um valor inteiro. Em seguida, calcule o menor número de notas possíveis (cédulas) onde o valor pode ser decomposto. As notas que você deve considerar são de 100, 50, 20, 10, 5, 2 e 1. Na sequência mostre o valor lido e a relação de notas necessárias.
EntradaVocê receberá um valor inteiro N (0 < N < 1000000).
SaídaExiba o valor lido e a quantidade mínima de notas de cada tipo necessárias, seguindo o exemplo de saída abaixo. Após cada linha deve ser imprimido o fim de linha.
Se a entrada for 576 a saída será...576
5 nota(s) de R$ 100,00
1 nota(s) de R$ 50,00
1 nota(s) de R$ 20,00
0 nota(s) de R$ 10,00
1 nota(s) de R$ 5,00
0 nota(s) de R$ 2,00
1 nota(s) de R$ 1,00
Fiz o código e funcionou, mas ficou carregado de IF'slet valor = 576; let nota100 = 0; let nota50 = 0; let nota20 = 0; let nota10 = 0; let nota5 = 0; let nota2 = 0; let nota1 = 0; let valor_aux = valor; while (valor != 0) { if ( valor >= 100 ) { valor -= 100; nota100 += 1; } else if ( valor >= 50 ) { valor -= 50; nota50 += 1; } else if ( valor >= 20 ) { valor -= 20; nota20 += 1; } else if ( valor >= 10 ) { valor -= 10; nota10 += 1; } else if ( valor >= 5 ) { valor -= 5; nota5 += 1; } else if ( valor >= 2 ) { valor -= 2; nota2 += 1; } else if ( valor >= 1 ) { valor -= 1; nota1 += 1; } } console.log( valor_aux ); console.log( nota100 + " nota(s) de R$ 100,00"); console.log( nota50 + " nota(s) de R$ 50,00"); console.log( nota20 + " nota(s) de R$ 20,00"); console.log( nota10 + " nota(s) de R$ 10,00"); console.log( nota5 + " nota(s) de R$ 5,00"); console.log( nota2 + " nota(s) de R$ 2,00"); console.log( nota1 + " nota(s) de R$ 1,00");
Consegui reduzir o código, mas estou com dificuldade pra corrigir no bloco do while e if onde não consigo fazer com que o identificador "valor" permanecesse, exemplo, 576 - 500 = 76, ele não permanece os 76, simplesmente reinicia o valor:let valor = 576; let nota = [100, 50, 20, 10, 5, 2, 1]; let contador = []; let contador_aux = valor; for( let a = 0; a < 7; a++ ) { while( valor >= nota[a] ) { if( valor >= nota[a] ) { valor -= nota[a]; contador_aux += 1; contador[a] = contador_aux; } } } console.log( valor_aux ); for (let i = 0; i < 7; i++) { console.log( contador[i] + " nota(s) de R$ " + nota[i] + ",00"); }
-
É possível usar o conteúdo de uma posição do array para realizar uma operação?
Exemplo:
x[0] = 100; // valor que há na posição x[0] += 1; // a operação que desejo fazer e resultar em 101
-
Estou estudando JavaScript e me deparei com a uilização de dois pontos de esclamação, mas confesso que não entendi a lógica para utilização deles.
Uma negação até faz sentido pra mim, mas duas... Eu não consigo ver a aplicação destes em alguma função ou qualquer outro lugar. Tipo:
const isAtivo = true console.log(!!isAtivo)
Define o identificador e é atribuído à ele o valor verdadeiro, daí no console vira falso depois verdadeiro de novo. Qual o sentido disso? Se ele é verdadeiro, pra que trocar pra ter certeza de que realmente é verdadeiro? O mesmo pergunto se for falso.
Compreendo que há as formas para identificar o que pode ser verdadeiro e falso...
console.log('Os verdadeiros...') console.log(!!3) console.log(!!-1) console.log(!!' ') console.log(!![]) console.log(!!{}) console.log(!!Infinity) console.log(!!(isAtivo = true)) console.log('Os falsos...') console.log(!!0) console.log(!!'') console.log(!!null) console.log(!!NaN) console.log(!!undefined) console.log(!!(isAtivo = false))
Isso é muito confuso pra mim. Já fim alguns códigos de colegas, mas não entendi foi nada, fiquei mais perdido que cego em tiroteio.
-
Citação
Se está "definindo os valores do vetor no próprio código", para que está perguntando quantos elementos terá no vetor? A proposto do algoritmo seria preencher o vetor lendo os dados do usuário.
Porque isso foi mero exemplo de que funcionava atribuindo os valores, não significava que era, de fato, a resposta.
- 1
-
Citação
O i é uma variável qualquer. Poderia chamar de letra que iria funcionar da mesma forma. Usa i, j, k etc, seria apenas uma convenção/padrão. Qualquer nomenclatura (válida) iria funcionar.
Eu sei que poderia ser qualquer coisa, não estou me referindo ao nome da variável, mas à função dela diante da rotina.
CitaçãoNops! Segue um teste com o código original (apenas copiei, colei e rodei) :
Aqui original apareceu este erro...
-
Citação
Então, no caso eu "analisei o código e forcei o erro"... vi ali que tem uma divisão... logo, o denominador não pode ser 0 para esse contexto (computadores não funcionam muito bem com divisão por 0)... mas vejam: de um modo geral não caberia a nós "ajudantes" ficarmos caçando erros em código... ele que deveria já mais ou menos indicar. A partir do relato, partiríamos para ver o que está acontecendo . (Claro que vale como exercício ficar caçando.)
Havia testado várias vezes aqui e não apareceu essa mensagem em nenhum momento.
CitaçãoComo citado, ele está tentando "ler um vetor"... ou seja: "está preenchendo o vetor do programa com valores vindos do teclado".
Sim, mas o que ele fez foi pedir para que o usuário informasse até quantas vezes a rotina seria executada e não pedia para o usuário informar mais nenhum valor, mesmo sabendo que que os valores em cada posição seja 0.
CitaçãoSobre o uso do i, não importa o que se está utilizando para "acessar o vetor". Não existe qualquer relação técnica entre o valor passado para definir a posição e o valor do conteúdo da variável. Seria algo assim:
Mas o i está sendo utilizado como identificador da posição do vetor, 0, 1, 2, ...
CitaçãoJá no caso do código do @VictorMenezesNA, a leitura estaria tecnicamente de funcional... veja:
Sim, é funcional se utilizar o comando aleatório ou mesmo o randi(), mas no código ele mostrou seco, sem estas, apenas realizou a leitura do mesmo.
-
Em 03/01/2021 às 15:44, VictorMenezesNA disse:
Boa tarde!
Estou tendo o mesmo problema, porém meu código não possui raiz quadrada. Já tentei fazer o negócio de alterar la nas configurações de região, mas nada também.
Algoritmo "media_pares" Var N, i, QuantidadePares, SomaPares : inteiro media : real vet : vetor[0..20] de inteiro Inicio escreva("Quantos elementos terá o vetor? ") leia(N) QuantidadePares <- 0 SomaPares <- 0 para i de 0 ate N - 1 faca leia(vet[i]) se vet[i] % 2 = 0 entao SomaPares <- SomaPares + vet[i] QuantidadePares <- QuantidadePares + 1 fimse fimpara media <- SomaPares / QuantidadePares se QuantidadePares > 0 entao escreva("A MÉDIA DOS PARES É: ", media) senao escreva("NÃO HÁ NÚMEROS PARES") fimse Fimalgoritmo
Brother,seu problema é diferente da colega acima, não aparece nenhuma mensagem de "Invalid floating point operation" e deveria ter criado outro tópico para não confundir outras pessoas;
Tu criou um vetor inteiro e está tentando ler as posições do vetor por meio do contador do ' i ', logo, durante a leitura de cada posição não há valores, não faz sentido você querer ler um vetor sem valores.
Adicionei valores à 3 posições onde N será 3 e rodou liso sem a necessidade do leia(vet[i]) que antecedia a estrutura de condição.
Algoritmo "media_pares" Var N, i, QuantidadePares, SomaPares : inteiro media : real vet : vetor[0..20] de inteiro Inicio escreva("Quantos elementos terá o vetor? ") leia(N) QuantidadePares <- 0 SomaPares <- 0 vet[0] <- 2 vet[1] <- 8 // valores adicionados à 3 posições do vetor vet[2] <- 3 para i de 0 ate N - 1 faca //aqui ficava o leia(vet[i]), não há necessidade disso se vet[i] % 2 = 0 entao SomaPares <- SomaPares + vet[i] QuantidadePares <- QuantidadePares + 1 fimse fimpara media <- SomaPares / QuantidadePares se QuantidadePares > 0 entao escreva("A MÉDIA DOS PARES É: ", media) senao escreva("NÃO HÁ NÚMEROS PARES") fimse Fimalgoritmo
- 1
-
@Juniorjbk7 Normal.
Quando estiver muito tempo martelando mentalmente em um problema, pára, respira um pouco fora do código, depois volte analise calmamente, linha por linha com o auxílio do botão Passo ou apenas apertar a tecla F8.
Ótima semana e bons estudos. TMJ!
- 2
-
@Juniorjbk7 Vamos lá!
- Dentro da estrutura escolha do sexo Masculino você não declarou o fimescolha, logo impossibilita a execução do programa.
- Em ate c = "s" substitua o "s" pelo "n", caso contrário entrará em loop das perguntas.
- Na estrutura do escolha da cor do cabelo masculino onde conta quantas pessoas que são maiores de 18 você esqueceu de adicionar o identificador ch para adicionar: ch <- ch + 1
- 2
-
Entendi. Muito agradecido pelo esclarecimento.
- 2
-
Em 28/12/2020 às 10:34, Simon Viegas disse:
@Hatchiko, tem mais um probleminha... experimente apenas informar valores pares ou só valores ímpares...
Bem observado, agradecido pela dica.
- 1
-
Em 26/12/2020 às 12:06, devair1010 disse:
@Hatchiko, isso mesmo que o @Flávio Pedroza disse, logo que pegar o primeiro valor atribua ele a variável menorV, e nas outras leituras não faça mais isso, e poderia ser assim:
escreva( "Informe o valor do ", contador, "º produto: " ) leia( valor ) se contador = 1 entao menorV = valor fimse se ( valor > maiorV ) entao maiorV <- valor fimse
Mas de qualquer modo não indicará sempre que o numero 1 é o menor valor? Meio que já fica como o menor sem ter a necessidade de realizar novas comparações exceto se o usuário informar 0.1.
- 1
-
Cara, eu investiria em uma Corsair CV Series CV550 80 Plus Bronze.
-
Em 20/11/2020 às 00:55, Esleide disse:
@Simon Viegas cara, acho que analisando o que você me falou e testando uns negócios no programa eu acho que entendi os problemas que eu estava cometendo xD, e achei criativo o jeito como você mudou o "met" de lugar, além de se parecer mais como você executa uma calculadora (numero, depois operação, depois outro número), acho que preciso praticar um pouco mais de fluxogramas para "liberar" minha criatividade de programação haha. você falou que algumas sintaxes não existiam , como:
senão então
ou
met<-("+"),("-"),("*"),("/"),("^")
porém por algum motivo elas não faziam diferença no programa (ou seja, tanto fazia estar quanto não estar) sabe o porquê disto?
Colega, no portugol não é permitido palavras com acento, logo, senão e então não existem como sintaxe da pseudolinguagem. Bem como o @Simon Viegas falou acima, o programa nem deveria rodar. Em todo caso, dê uma olhadinha no material da Apoio Informática responsável pela construção do Visualg clicando aqui.
- 1
-
Vamos lá!
1º) Nome não pode ser do tipo inteiro, mas caractere;
2º) Não entendi porque pediu a nota da turma no início do código, menos ainda a variável ct3;
3º) No primeiro Se você não definiu o valor a ser comparado com a "nota1";
4º) Quando é solicitado que você mostre os nomes dos alunos que foram aprovados nas matérias 1 e 4 não deve mostrar dentro do para, mas fora dele como resultado final. Nessa brincadeira você deverá utilizar concatenação de texto;
5º) Para mostrar a porcentagem não seria para apenas contar, mas calcular, de fato, por exemplo para uma turma de 45 alunos, logo, você pegaria o total de aprovados, dividira pela quantidade de alunos da turma. Supondo que apenas 10 alunos foram aprovados, ficaria algo como: 10 / 45 = 0,22 -> 22% da turma foi aprovado.
Bom, é isso.
Sei que sua dúvida é antiga, mas comecei meus estudos dia 15/12/2020, daí estou buscando ajudar a galera de acordo com o que aprendi.
Uma dica, se estiver com dificuldades ainda sobre Algoritmos, acessa o material do Curso em Vídeo lá tem muito material gratuito e de boa qualidade, estou estudando por lá.
- 1
-
Posta ai o que você já fez e poderei ajudar a sanar sua dúvida. Resolver a atividade sem você ter ao menos tentado é complicado.
-
Brother, não entendi o que você queria ao publicar isso.
- 1
-
Brother, tendo em vista que, segundo você:
Citação(...) eu sei quase nada de logica !
Faça o curso de Algoritmos do Gustavo Guanabara pelo Curso em Vídeo. É gratuito. Estou aprendendo muita coisa por lá.
-
Hey colega, segue abaixo o código atualizado e funcionando perfeitamente. Espero que entenda e supra seu problema a fim de entender o exercício proposto.
algoritmo "semnome" // Função : // Autor : // Data : 25/12/2020 // Seção de Declarações var valor_par, valor_impar, qtd_valor_par, qtd_valor_impar, media_par, media_impar, diferenca: real valor, acima50, contador: inteiro inicio contador <- 1 //O contador é apenas deixar a solicitação do valor mais convidativo repita escreva( "Informe ", contador, "º valor inteiro: " ) leia( valor ) contador <- contador + 1 se ( valor = 0 ) entao escreva( "Programa encerrado!" ) senao se ( valor > 50 ) entao acima50 <- acima50 + 1 fimse se ( ( valor % 2 ) = 0 ) entao //Então o valor é par valor_par <- valor_par + valor //Realiza a soma qtd_valor_par <- qtd_valor_par + 1 //Conta quantos valores pares existem senao //Então o valor é ímpar valor_impar <- valor_impar + valor //Realiza a soma qtd_valor_impar <- qtd_valor_impar + 1 //Conta quantos valores ímpares existem fimse fimse ate ( valor = 0 ) media_par <- valor_par / qtd_valor_par media_impar <- valor_impar / qtd_valor_impar diferenca <- valor_par - valor_impar limpatela escreval( "---------------------------------------" ) escreval( "> NÚMEROS ACIMA DE 50: ", acima50 ) escreval( "---------------------------------------" ) escreval( "> NÚMEROS PARES" ) escreval( "SOMA: ", valor_par ) escreval( "QUANTIDADE: ", qtd_valor_par ) escreval( "MÉDIA: ", media_par ) escreval( "---------------------------------------" ) escreval( "> NÚMEROS ÍMPARES" ) escreval( "SOMA: ", valor_impar ) escreval( "QUANTIDADE: ", qtd_valor_impar ) escreval( "MÉDIA: ", media_impar ) escreval( "---------------------------------------" ) escreval( "> DIFERENÇA ENTRE PARES E ÍMPARES: ", diferenca ) escreval( "---------------------------------------" ) fimalgoritmo
Resultado na imagem em anexo.
- 2
-
A atividade é:
Citação51) Faça um aplicativo que leia o preço de 8 produtos. No final, mostre na tela qual foi o maior e qual foi o menor preço digitados.
Fiz o código, executei.
algoritmo "semnome" // Função : // Autor : // Data : 26/12/2020 // Seção de Declarações var contador: inteiro valor, maiorV, menorV: real inicio enquanto ( contador < 2 ) faca contador <- contador + 1 escreva( "Informe o valor do ", contador, "º produto: " ) leia( valor ) se ( valor > maiorV ) entao maiorV <- valor fimse se ( valor < menorV ) entao menorV <- valor fimse fimenquanto escreval( "Maior: ", maiorV ) escreval( "Menor: ", menorV ) fimalgoritmo
Obs.: Sei que há parênteses desnecessário, mas é uma questão de organização pessoal.
Foi identificado o maior valor e, consequentemente, atribuído à variável correspondente.
Porém para descobrir o menor valor, é feita a comparação, mas o valor não é atribuído. Sei que por se tratar de uma variável sem valor definido ele "entende" como zero, logo, não há valor menor que zero.
Como proceder com relação à isso?
- 1
-
@devair1010 Que da hora, troca os valores das variáveis por meio de uma auxiliar o que facilita posteriormente o processo. Como não pensei nisso? Agradecido, farei agora mesmo essas modificações.
- 1
-
Ah sim, entendi. Agradecido pela ajuda.
Quanto aos parênteses desnecessários é mais para organização minha mesmo.
@devair1010 Utilizando conforme orientou, se eu informar zero como primeiro valor ele não executa mais nada, em contrapartida o programa trava apresentando a mensagem:
CitaçãoInvalid floating point operation.
e para sair, de fato, apenas utilizando o comando de Parar localizado no Menu ou por meio das teclas CTRL + F2. Porquê isso acontece?
- 1
-
Vi o perrengue de um colega no fórum, aceitei o desafio, e me prontifiquei a resolver o problema (detalhe, sou iniciante em programação). A atividade pede:
CitaçãoDesenvolva um algoritmo que leia N valores inteiros (0- finaliza) que apresente:
- quantidade de valores acima de 50
- soma e a media dos valores pares
- soma e a media dos valores impares
- diferença entre a soma dos valores pares e impares.
Consegui construir e deixá-lo funcional...
algoritmo "semnome" // Função : // Autor : // Data : 25/12/2020 // Seção de Declarações var valor_par, valor_impar, qtd_valor_par, qtd_valor_impar, media_par, media_impar, diferenca: real valor, acima50: inteiro inicio repita escreva( "Informe um valor inteiro: " ) leia( valor ) se ( valor > 50 ) entao acima50 <- acima50 + 1 fimse se ( ( valor % 2 ) = 0 ) entao //Então o valor é par valor_par <- valor_par + valor //Realiza a soma qtd_valor_par <- qtd_valor_par + 1 //Conta quantos valores pares existem senao //Então o valor é ímpar valor_impar <- valor_impar + valor //Realiza a soma qtd_valor_impar <- qtd_valor_impar + 1 //Conta quantos valores ímpares existem fimse ate ( valor = 0 ) media_par <- valor_par / qtd_valor_par media_impar <- valor_impar / qtd_valor_impar diferenca <- valor_par - valor_impar limpatela escreval( "---------------------------------------" ) escreval( "> NÚMEROS ACIMA DE 50: ", acima50 ) escreval( "---------------------------------------" ) escreval( "> NÚMEROS PARES" ) escreval( "SOMA: ", valor_par ) escreval( "QUANTIDADE: ", qtd_valor_par ) escreval( "MÉDIA: ", media_par ) escreval( "---------------------------------------" ) escreval( "> NÚMEROS ÍMPARES" ) escreval( "SOMA: ", valor_impar ) escreval( "QUANTIDADE: ", qtd_valor_impar ) escreval( "MÉDIA: ", media_impar ) escreval( "---------------------------------------" ) escreval( "> DIFERENÇA ENTRE PARES E ÍMPARES: ", diferenca ) escreval( "---------------------------------------" ) fimalgoritmo
O que me incomoda é que no momento em que executa a primeira vez a estrutura de repetição o bloco de código que verifica se é número par, ele conta o 'zero', que é utilizado para sair do loop, como item par, logo, em quantidade apresenta 2 valores ao invés de apenas 1.
Há possibilidade de ajuda?
- 1
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
Ubuntu 20.04: sem acesso para criar pastas, tampouco deletá-las
em Linux
Postado
Certamente fiz alguma besteira em algum momento que estava tentando resolver um problema e em decorrência disso não tenho mais nenhum acesso para criar pastas, renomear, tampouco deletá-las.
Inicialmente achei que fosse a unidade que estivesse manipulando como a C, mas tentei em outras que há no HD como a D e E, mas não obtive sucesso.
Utilizo o Ubuntu 20.04 LTS.